Линейная регрессия: поиск значимых переменных класса с использованием SAS - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь использовать SAS для решения довольно простой задачи регрессии, но у меня возникают проблемы с получением полного набора результатов.

Я использую набор данных, который включает общее качество профессора (зависимая переменная) и имеет следующие независимые переменные: пол, numYears, перец, дисциплина, легкость и rateInterest.

Я использую приведенный ниже код для генерации анализа набора данных:

proc glm data=WORK.IMPORT;
    class gender pepper discipline;
    model quality = gender numYears pepper discipline easiness raterInterest;
run;

Я получаю следующие результаты, в основном это то, что мне нужно, за исключением того, что я хотел бы видеть, какие именно ответы от переменных класса (пол, перец, дисциплина) являются значительными. The GLM Procedure

The GLM Procedure

Из этих результатов я могу видеть, что легкость, скорость, интерес, перец и дисциплина значимы; Тем не менее, я хотел бы увидеть, какие конкретные значения перца и дисциплины являются значительными. Например, студент ответил на перец «да» или «нет». Я хотел бы видеть, если качество соотносится конкретно с перцем или перцем. Может кто-нибудь дать мне несколько советов о том, как изменить мой код, чтобы вернуть разбивку переменных класса?

Здесь также есть ссылка на набор данных, если он необходим для справки: https://drive.google.com/file/d/1Kc9cb_n-l7qwWRNfzXtZi5OsiY-gsYZC/view?usp=sharing Rateprof

Я действительно, очень ценю любую помощь!

1 Ответ

0 голосов
/ 09 ноября 2018

Добавьте параметр solution в оператор model, чтобы разбить статистику по каждой переменной класса; однако эталонная параметризация недоступна в proc glm и приведет к смещенным оценкам. Есть способы обойти это, чтобы продолжать использовать proc glm, но самое простое решение - использовать proc glmselect. proc glmselect позволяет указать опорную параметризацию. Используйте параметр selection=none, чтобы отключить выбор переменной.

proc glmselect data=WORK.IMPORT;
    class gender(ref='female') pepper discipline / param=reference;
    model quality = gender numYears pepper discipline easiness raterInterest / selection=none;
run;

enter image description here

Интерпретация будет такой:

Все остальные переменные остаются неизменными, женщины влияют на оценку качества -0,046782 единиц по сравнению с мужчинами. Эта переменная не является статистически значимой.

Разбивка каждого уровня класса является сравнением с эталонным значением. По умолчанию выбранное значение ссылки является последним уровнем после внутренней сортировки всех значений класса. Вы можете указать ссылку, используя параметр ref= после каждой переменной класса. Например, если вы хотите использовать женщин в качестве ссылочного значения вместо мужчин:

proc glmselect data=WORK.IMPORT;
    class gender(ref='female') pepper discipline;
    model quality = gender numYears pepper discipline easiness raterInterest / selection=none;
run;

Обратите внимание, что вы также можете сделать это с prox mixed. Для этой конкретной цели предпочтение зависит от вашего стиля вывода, который вам нравится. proc mixed - более гибкий способ запуска регрессий, но здесь будет немного излишним.

proc mixed data=import;
    class gender pepper discipline;
    model quality = gender numYears pepper discipline easiness raterInterest / solution;
run;
...