Извлечение конкретных коэффициентов взаимодействия из той же линейной модели в R - PullRequest
0 голосов
/ 24 июня 2018

Меня интересуют конкретные эффекты (или параметры) линейной модели. Например, принимая набор данных радужной оболочки, мне было бы интересно:

  1. Как Sepal.Width модулирует эффект versicolor и virginica (по сравнению с эталонным уровнем setosa ).
  2. Линейная связь между Sepal.Width и Sepal.Length на каждом из трех уровней species.

Единственный способ, который я нашел, - это совместить две модели, одну с взаимодействием, а другую с вложенным взаимодействием:

fit <- lm(Sepal.Length ~ Species * Sepal.Width, data=iris)
summary(fit)  # The two last lines

fit <- lm(Sepal.Length ~ Species / Sepal.Width, data=iris)
summary(fit)  # The three last lines

Тем не менее, подгонка в два раза по сравнению с для одной и той же модели представляется относительно неэффективной (особенно при подгонке моделей, которые требуют много времени для вычислений).

Есть ли способ получить из одной модели эквивалент двух последних строк первой модели и трех последних строк второй модели? спасибо

1 Ответ

0 голосов
/ 24 июня 2018

Если вас интересуют оценки коэффициента из сводки, то из одной модели можно получить эквивалент двух последних строк первой модели и трех последних строк второй модели черездополнение.Позвольте мне объяснить.

В действительности, оба резюме дают вам одну и ту же информацию, только по-разному.Для первого резюме, вот мой вывод:

                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                     2.6390     0.5715   4.618 8.53e-06 ***
Speciesversicolor               0.9007     0.7988   1.128    0.261    
Speciesvirginica                1.2678     0.8162   1.553    0.123    
Sepal.Width                     0.6905     0.1657   4.166 5.31e-05 ***
Speciesversicolor:Sepal.Width   0.1746     0.2599   0.672    0.503    
Speciesvirginica:Sepal.Width    0.2110     0.2558   0.825    0.411 

Это результат подбора, когда сето исключено из модели.Это автоматически происходит в R, потому что, когда вы передаете фактор в линейную модель, вам нужно только n-1 частей, чтобы описать его, так как часть базового уровня (в данном случае setosa ) полностью коллинеарна сдва других фактора.

Во втором сводном сводке это то, что я вижу.

                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                     2.6390     0.5715   4.618 8.53e-06 ***
Speciesversicolor               0.9007     0.7988   1.128    0.261    
Speciesvirginica                1.2678     0.8162   1.553    0.123    
Speciessetosa:Sepal.Width       0.6905     0.1657   4.166 5.31e-05 ***
Speciesversicolor:Sepal.Width   0.8651     0.2002   4.321 2.88e-05 ***
Speciesvirginica:Sepal.Width    0.9015     0.1948   4.628 8.16e-06 ***

В этой модели, несмотря на то, что она полностью коллинеарна, базовый уровень setosa хранится в модели.Обычно, если в модели сохранить полностью коллинеарную переменную, R выдаст ошибку, потому что будет жаловаться, что не может инвертировать матрицу, чтобы найти наиболее подходящую для нужной формулы (это потому, что матрица неполный ранг).

Но с моделью все в порядке, потому что она вернула ее успешно.Это означает, что матрица была обратимой, потому что, несмотря на наличие всех трех уровней фактора в терминах взаимодействия, она все еще была матрицей полного ранга.Используя это знание, я подумал, что информация о том, что «пропало» из второй модели, просто запеклась в первой модели.

И это именно то, что я увидел.Посмотрите на следующие уравнения с коэффициентом из модели 1 в левой части уравнения и коэффициентом из модели 2 в правой части уравнения.

Sepal.Width = Speciessetosa:Sepal.Width
Sepal.Width + Speciesversicolo:Sepal.Width = Speciesversicolor:Sepal.Width
Sepal.Width + Speciesvirginica:Sepal.Width = Speciesvirginica:Sepal.Width

Поэтому, чтобы получить коэффициент оценки из двух последних строк первой модели и последних трех строк второй модели, просто возьмите сводку первой модели, а затем выполните три уравнения, которые я написал выше, чтобы получить «дополнительные»информация хранится в последних трех строках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...