Как выполнить тест отношения правдоподобия в R


Тест отношения правдоподобия сравнивает соответствие двух вложенных регрессионных моделей.

Вложенная модель — это просто модель, которая содержит подмножество переменных-предикторов в общей регрессионной модели.

Например, предположим, что у нас есть следующая регрессионная модель с четырьмя переменными-предикторами:

Y = β 0 + β 1 х 1 + β 2 х 2 + β 3 х 3 + β 4 х 4 + ε

Одним из примеров вложенной модели может быть следующая модель только с двумя исходными предикторными переменными:

Y = β 0 + β 1 х 1 + β 2 х 2 + ε

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

H 0 : Полная модель и вложенная модель одинаково хорошо соответствуют данным. Таким образом, вы должны использовать вложенную модель .

H A : Полная модель соответствует данным значительно лучше, чем вложенная модель. Таким образом, вы должны использовать полную модель .

Если p-значение теста ниже определенного уровня значимости (например, 0,05), то мы можем отклонить нулевую гипотезу и сделать вывод, что полная модель предлагает значительно лучшее соответствие.

В следующем примере показано, как выполнить тест отношения правдоподобия в R.

Пример: тест отношения правдоподобия в R

В следующем коде показано, как подобрать следующие две модели регрессии в R, используя данные из встроенного набора данных mtcars :

Полная модель: миль на галлон = β 0 + β 1 расход + β 2 карбюратор + β 3 л.с. + β 4 цилиндра

Уменьшенная модель: mpg = β 0 + β 1 disp + β 2 carb

Мы будем использовать функцию lrtest() из пакета lmtest , чтобы выполнить тест отношения правдоподобия для этих двух моделей:

library (lmtest)

#fit full model
model_full <- lm(mpg ~ disp + carb + hp + cyl, data = mtcars)

#fit reduced model
model_reduced <- lm(mpg ~ disp + carb, data = mtcars)

#perform likelihood ratio test for differences in models
lrtest(model_full, model_reduced)

Likelihood ratio test

Model 1: mpg ~ disp + carb + hp + cyl
Model 2: mpg ~ disp + carb
 #Df LogLik Df Chisq Pr(>Chisq)
1 6 -77.558 
2 4 -78.603 -2 2.0902 0.3517

Из вывода мы видим, что критерий хи-квадрат равен 2,0902 , а соответствующее значение p равно 0,3517 .

Поскольку это p-значение не меньше 0,05, мы не сможем отвергнуть нулевую гипотезу.

Это означает, что полная модель и вложенная модель одинаково хорошо соответствуют данным. Таким образом, мы должны использовать вложенную модель, потому что дополнительные переменные-предикторы в полной модели не обеспечивают значительного улучшения соответствия.

Затем мы могли бы провести еще один тест отношения правдоподобия, чтобы определить, значительно ли отличается модель только с одной переменной-предиктором от модели с двумя предикторами:

library (lmtest)

#fit full model
model_full <- lm(mpg ~ disp + carb, data = mtcars)

#fit reduced model
model_reduced <- lm(mpg ~ disp, data = mtcars)

#perform likelihood ratio test for differences in models
lrtest(model_full, model_reduced)

Likelihood ratio test

Model 1: mpg ~ disp + carb
Model 2: mpg ~ disp
 #Df LogLik Df Chisq Pr(>Chisq) 
1 4 -78.603 
2 3 -82.105 -1 7.0034 0.008136 \*\*
---
Signif. codes: 0 ‘\*\*\*’ 0.001 ‘\*\*’ 0.01 ‘\*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Из вывода мы видим, что p-значение теста отношения правдоподобия равно 0,008136.Поскольку это меньше 0,05, мы отвергаем нулевую гипотезу.

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

Таким образом, наша окончательная модель будет:

миль на галлон = β 0 + β 1 расход + β 2 углеводов

Дополнительные ресурсы

Как выполнить простую линейную регрессию в R
Как выполнить множественную линейную регрессию в R
Как интерпретировать коды значимости в R