Jednym z możliwych wyjaśnień byłyby nieliniowości w związku między twoim wynikiem a predyktorem.
Oto mały przykład. Używamy predyktorem który jest jednolity na [ - 1 , 1 ] . Wynik nie zależy jednak liniowo od predyktora, ale od kwadratu predyktora: PRAWDA jest bardziej prawdopodobna zarówno dla x ≈ - 1 i x ≈ 1 , ale rzadziej dla x ≈ 0 . W takim przypadku model liniowy będzie nieistotny, ale przecięcie predyktora na przedziały czyni go znaczącym.
> set.seed(1)
> nn <- 1e3
> xx <- runif(nn,-1,1)
> yy <- runif(nn)<1/(1+exp(-xx^2))
>
> library(lmtest)
>
> model_0 <- glm(yy~1,family="binomial")
> model_1 <- glm(yy~xx,family="binomial")
> lrtest(model_1,model_0)
Likelihood ratio test
Model 1: yy ~ xx
Model 2: yy ~ 1
#Df LogLik Df Chisq Pr(>Chisq)
1 2 -676.72
2 1 -677.22 -1 0.9914 0.3194
>
> xx_cut <- cut(xx,c(-1,-0.3,0.3,1))
> model_2 <- glm(yy~xx_cut,family="binomial")
> lrtest(model_2,model_0)
Likelihood ratio test
Model 1: yy ~ xx_cut
Model 2: yy ~ 1
#Df LogLik Df Chisq Pr(>Chisq)
1 3 -673.65
2 1 -677.22 -2 7.1362 0.02821 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Nie oznacza to jednak, że dyskretyzacja predyktora jest najlepszym podejściem. (Prawie nigdy tak nie jest.) Znacznie lepiej modelować nieliniowość za pomocą splajnów lub podobnych.
Jednym z możliwych sposobów jest, jeśli związek jest wyraźnie nieliniowy. Nie można powiedzieć (biorąc pod uwagę brak szczegółów), czy to naprawdę wyjaśnia, co się dzieje.
Możesz sprawdzić sam. Po pierwsze, możesz wykonać dodany wykres zmiennej dla samej zmiennej, a także możesz wykreślić dopasowane efekty w wersji modelu czynnikowego. Jeśli wyjaśnienie jest słuszne, oba powinny zobaczyć wyraźnie nieliniowy wzór.
źródło