Это не проблема, характерная для R. R использует обычное отображение коэффициентов.
Когда вы читаете такой вывод регрессии (в статье, учебнике или из статистического программного обеспечения), вам необходимо знать, какие переменные являются «непрерывными», а какие «категориальными»:
«Непрерывные» являются явно числовыми, и их числовые значения использовались как есть в подгонке регрессии.
«Категориальные» переменные могут быть любого типа, включая числовые! Что делает их категоричными, так это то, что программное обеспечение рассматривает их как «факторы»: то есть каждое найденное отдельное значение считается показателем чего-то особенного.
Большая часть программного обеспечения будет обрабатывать нечисловые значения (например, строки) как факторы. Можно убедить большинство программ рассматривать числовые значения как факторы. Например, код почтовой службы (почтовый индекс в США) выглядит как число, но на самом деле это просто код для набора почтовых ящиков; не имеет смысла складывать, вычитать и умножать почтовые индексы на другие числа! (Эта гибкость является источником распространенной ошибки: если вы неосторожны или невольны, ваше программное обеспечение может воспринимать переменную, которую вы считаете категоричной, как непрерывную, или наоборот. Будьте осторожны!)
Тем не менее, для применения алгоритмов подбора категориальные переменные должны быть представлены в виде чисел. Есть много способов их кодировать . Коды создаются с использованием «фиктивных переменных». Узнайте больше о фиктивной переменной кодирования, выполнив поиск на этом сайте; детали здесь не имеют значения.
В вопросе нам говорят, что это h
и f
есть категориальные («дискретные») значения. По умолчанию log(d)
и a
являются непрерывными. Это все, что нам нужно знать. Модель
Y= - 0,679695+ 1.791294 журнал ( д)+ 0.870735- 0,447570+ 0.542033+ 0.037362 a - 0,588362+ 0.816825+ 0.534440- 0,085658 а - 0,034970 а - 0,040637 а если h = h1 если h = h2 если h = h3 если ф= ф1 если ф= ф2 если ф= ф3 если h = h1 если h = h2 если h = h3
Правила, применяемые здесь:
Термин «перехват», если он появляется, является аддитивной константой (первая строка).
Непрерывные переменные умножаются на коэффициенты, даже в «взаимодействиях» подобно h1:a
, h2:a
и h3:a
сроки. (Это отвечает на оригинальный вопрос.)
Любая категориальная переменная (или коэффициент) включается только для случаев, когда появляется значение этого фактора.
журнал( д) = 2ч = ч3а = - 1е= ф2
Y^= - 0,6797 + 1,7913 × ( 2 ) + 0,5420 + 0,0374 × ( - 1 ) + 0,8168 - 0,0406 × ( - 1 ) .
h
час1час2час3( 0,870735 , - 0,447570 , 0,542033 )h
( - 0,085658 , - 0,034970 , - 0,040637 )a
h:a
взаимодействие; аналогично, f
в каждом конкретном случае применяется только один коэффициент .
g1
c
может быть запутанным в этом конкретном случае, потому что я выбираю две буквы для представляют уровни g1, но обычно это довольно интуитивно понятно - и это чистый текст, поэтому мы все равно можем редактировать исходный файл позже). Прилагается еще одно резюме, в которое я внес изменения,g1
так что теперь это четырехуровневый фактор. Тем не менее, с 0/1 метками это может быть более запутанным .Вы можете проверить ваши «контрасты» по умолчанию
options()
и искать:Если ваши неупорядоченные контрасты установлены как
contr.treatment
(как и должно быть, если вы не изменили их), то первый уровень каждого из ваших факторов будет установлен как базовый уровень. Вам будут даны только оценки для коэффициентов перед фиктивными переменными, созданными для других уровней фактора. По сути, эти коэффициенты будут «насколько в среднем отличается переменная отклика на этом уровне фактора по сравнению с базовым уровнем фактора, контролируя все остальное в модели».Я предполагаю, что из вашего вывода есть a
h0
иf0
базовые уровни для h и f (если у вас нет опции по умолчанию для контрастов, в этом случае есть несколько возможностей; попробуйте?contr.treatment
некоторую помощь).Это похоже на взаимодействие. Если мой предыдущий абзац верен, оценка, приведенная для
a
, действительно будет наклоном дляa
моментаh=h0
. Оценки, приведенные в кратком изложении и применимые к взаимодействиям, показывают, насколько сильно изменяется этот наклон для разных уровней.h
.Итак, в вашем примере, где h = h1 и f = f2, попробуйте:
О, и вы тоже можете использовать
predict()
много полезных вещей ... если вы действительно хотите что-то предсказать (вместо того, чтобы выписывать уравнение для отчета). Попробуйте?predict.lm
посмотреть, чтоpredict()
делает объект, созданныйlm
.источник
options()
. Вам нужно будет пролистать много мусора, чтобы найти то, что вам нужно. Вы можете попробоватьoptions()$contrasts
, который будет выводить только то, что вы хотите.