Come eseguire un test del rapporto di verosimiglianza in r


Un test del rapporto di verosimiglianza confronta la bontà dell’adattamento di due modelli di regressione nidificati.

Un modello nidificato è semplicemente un modello che contiene un sottoinsieme di variabili predittive nel modello di regressione complessivo.

Ad esempio, supponiamo di avere il seguente modello di regressione con quattro variabili predittive:

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

Un esempio di modello nidificato sarebbe il seguente modello con solo due delle variabili predittive originali:

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

Per determinare se questi due modelli sono significativamente diversi, possiamo eseguire un test del rapporto di verosimiglianza che utilizza le seguenti ipotesi nulle e alternative:

H 0 : il modello completo e il modello nidificato si adattano ugualmente bene ai dati. Quindi, dovresti usare il modello nidificato .

H R : Il modello completo si adatta ai dati in modo decisamente migliore rispetto al modello nidificato. Quindi devi utilizzare il modello completo .

Se il valore p del test è inferiore a un certo livello di significatività (ad esempio 0,05), allora possiamo rifiutare l’ipotesi nulla e concludere che il modello completo fornisce un adattamento significativamente migliore.

L’esempio seguente mostra come eseguire un test del rapporto di verosimiglianza in R.

Esempio: test del rapporto di verosimiglianza in R

Il codice seguente mostra come adattare i due modelli di regressione seguenti in R utilizzando i dati del set di dati mtcars integrato:

Modello completo: mpg = β 0 + β 1 disponibile + β 2 carboidrati + β 3 cv + β 4 cil

Modello: mpg = β 0 + β 1 disponibile + β 2 carb

Utilizzeremo la funzione lrtest() del pacchetto lmtest per eseguire un test del rapporto di verosimiglianza su questi due modelli:

 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 ~ available + carb
  #Df LogLik Df Chisq Pr(>Chisq)
1 6 -77.558                     
2 4 -78.603 -2 2.0902 0.3517

Dal risultato, possiamo vedere che la statistica del test chi quadrato è 2,0902 e il corrispondente valore p è 0,3517 .

Poiché questo valore p non è inferiore a 0,05, non riusciremo a rifiutare l’ipotesi nulla.

Ciò significa che il modello completo e il modello nidificato si adattano ugualmente bene ai dati. Dobbiamo quindi utilizzare il modello nidificato, poiché le variabili predittive aggiuntive nel modello completo non forniscono un miglioramento significativo dell’adattamento.

Potremmo quindi eseguire un altro test del rapporto di verosimiglianza per determinare se un modello con una singola variabile predittrice è significativamente diverso da un modello con entrambi i predittori:

 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 ~ available + carb
Model 2: mpg ~ available
  #Df LogLik Df Chisq Pr(>Chisq)   
1 4 -78.603                        
2 3 -82.105 -1 7.0034 0.008136 **
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Dal risultato, possiamo vedere che il valore p del test del rapporto di verosimiglianza è 0,008136 . Poiché questo numero è inferiore a 0,05, rifiuteremo l’ipotesi nulla.

Pertanto, potremmo concludere che il modello a due predittori fornisce un miglioramento significativo dell’adattamento rispetto al modello a predittore singolo.

Quindi, il nostro modello finale sarebbe:

mpg = β 0 + β 1 disponibile + β 2 carboidrati

Risorse addizionali

Come eseguire una regressione lineare semplice in R
Come eseguire la regressione lineare multipla in R
Come interpretare i codici di significato in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *