Как добавить модификатор наклона в glm (R) - PullRequest
0 голосов
/ 02 мая 2019

Я хотел бы соответствовать общей линейной модели вида:

lp = c + (a1+a2*Test)*x

Где c - это пересечение (будет установлено), a1 - это коэффициент для x, а a2 - модификатор для коэффициента x для второго уровня двухуровневого коэффициента «Test» (здесь кодируется как фиктивный значение переменной '1').

Таким образом, для первого уровня фактора 'Test', значение 0 фиктивной переменной, наклон равен a1. Для второго уровня «Тест» наклон составляет (a1 + a2).

В GenStat я мог бы добавить это как «x + Test.x» в меню «Обобщенные линейные модели», и это дало бы мне приблизительные значения для требуемых коэффициентов c, a1 и a2.

В R я пробовал следующее:

glm(y ~ x + Test*x)

Это дает мне следующие коэффициенты: Intercept (c), x, Test и x: Test.

Я думаю, что коэффициент 'Test' является модификатором для пересечения (который я не хочу вписывать), тогда как x: Test является модификатором для коэффициента x (то есть a2), который я на самом деле хочу.

Как можно избежать подгонки коэффициента для «Тест» в R? Есть ли оператор, который будет иметь тот же эффект, что и мое использование «.» в GenStat?

Редактировать: Я также пытался:

glm(y ~ x + offset(Test*x))

Но это только дает мне фиксированное смещение значения «Test * x», оно не соответствует коэффициенту «a2».

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Я думаю, что мне удалось найти решение.

Правильный оператор в R - ':'.

Так что код в R:

glm(y ~ x + Test: x)

И это дает мне подогнанные коэффициенты для пересечения, x и Test: x, как требуется.

0 голосов
/ 02 мая 2019

Я не знаю GenStat, но, похоже, вы запрашиваете линейный предиктор

lp = intercept + a1*x + Test*x

в алгебраической (не модельной) записи, где intercept и a1 должны соответствовать, но Test и x - фиксированные или наблюдаемые значения.

Если это правильно, то запись R должна описывать Test*x как «смещение», и подгонять модель, используя

glm(y ~ x + offset(Test*x))
...