Regressione graduale in R - Valore p critico


12

Qual è il valore p critico utilizzato dalla step()funzione in R per la regressione graduale? Presumo che sia 0,15, ma la mia ipotesi è corretta? Come posso modificare il valore p critico?


7
La funzione 'step' di R è basata su AIC.
Michael M,

7
È preferibile non utilizzare affatto routine di selezione del modello graduale. Per capire perché, può aiutarti a leggere la mia risposta qui: Algoritmi per la selezione automatica del modello .
gung - Ripristina Monica

3
A seguito del commento di @MichaelMayer: la Descriptionparte della pagina di aiuto per ?stepdire, nella sua interezza: selezionare un modello basato su formula di AIC.
Stephan Kolassa,

Risposte:


27

Come ho spiegato nel mio commento sull'altra tua domanda, stepusa l'AIC anziché i valori p.

Tuttavia, per una singola variabile per volta, AIC non corrispondono ad utilizzare un valore p 0,15 (o per essere più precisi, 0,1573):

Considera di confrontare due modelli, che differiscono per una singola variabile. Chiama i modelli (modello più piccolo) e (modello più grande) e lascia che i loro AIC siano rispettivamente e .M 1 AIC 0 AIC 1M0M1AIC0AIC1

Usando il criterio AIC, useresti il ​​modello più grande se . Questo sarà il caso se . - 2 registro L 0 - ( - 2 registro L 1 ) > 2AIC1<AIC02logL0(2logL1)>2

Ma questa è semplicemente la statistica in un test del rapporto di verosimiglianza. Dal teorema di Wilks, rifiuteremo il valore nullo se la statistica supera il quantile superiore di un . Quindi, se utilizziamo un test di ipotesi per scegliere tra il modello più piccolo e quello più grande, scegliamo il modello più grande quando .χ 2 1 - 2 log L 0 - ( - 2 log L 1 ) > C ααχ122logL0(2logL1)>Cα

Ora trova al 84,27 percentile di un . Quindi, se scegliamo il modello più grande quando ha un AIC più piccolo, ciò corrisponde a rifiutare l'ipotesi nulla per un test del termine aggiuntivo con un valore p di oχ 2 1 1 - 0,843 = 0,157 15,7 %2χ1210.843=0.15715.7%


Quindi come lo modifichi?

Facile. Cambia il kparametro stepda 2 a qualcos'altro. Vuoi invece il 10%? Fallo 2.7:

qchisq(0.10,1,lower.tail=FALSE)
[1] 2.705543

Vuoi il 2,5%? Impostare k=5:

qchisq(0.025,1,lower.tail=FALSE)
[1] 5.023886

e così via.


Tuttavia, anche se questo risolve la tua domanda, ti consiglio di prestare molta attenzione alla risposta di Frank Harrell sull'altra tua domanda, e di cercare le risposte di molti statistici su altre domande relative alla regressione graduale qui, il cui consiglio tende ad essere molto costantemente per evitare procedure graduali in generale.


Bella spiegazione. Sai se questo sarebbe approssimativamente vero per i valori p dei test di regressione ordinaria?
Ben Ogorek,

Mi dispiace Ben, non sono sicuro al 100% di cosa si riferisca "questo". Stai dicendo "potrei usare l'approccio sopra in cui hai mostrato come eseguire i test al 10% e al 2,5% per fare i test al 5%?" In tal caso la risposta è "ovviamente, sì" ... ma la frase finale - che sottolinea che anche se sembra che tu stia facendo dei test ad un certo livello nominale, i tassi di errore effettivi di tipo I non sono come i loro valori nominali . In altre parole, è possibile calcolare un valore da utilizzare e dovrebbe equivalere a fare l'impostazione graduale su ... ma il livello di significatività effettivo non sarà ancora del 5%. Questo è solo uno dei ... (ctd)α=0.05
Glen_b -Reinstate Monica

(ctd) ... una serie di gravi problemi con stepwise. Altri includono stime distorte ed errori standard che sono troppo piccoli.
Glen_b

1
Mettendo momentaneamente da parte i problemi con la selezione graduale del modello, sono interessato a generalizzare la regola più piccola AIC => .1573 valore p. Il valore p del Rapporto di probabilità che descrivi va bene, ma in routine come R's lm, la stima / std.err viene confrontata con una distribuzione t. Questo è un test diverso e mi chiedevo se il tuo risultato .1573 potesse contenere approssimativamente.
Ben Ogorek,

2
Ben: sì, il .1573 è asintotico (basato sul normale; sarà solo approssimativamente corretto). Penso che potresti calcolare il corrispondente valore p in stepAIC per una , poiché dipenderà solo dai gradi di libertà nel tuo problema (ad esempio, penso che sia 0,1579 per 200 df); di conseguenza dovresti essere in grado di ripristinare il desiderato . @ Nick È molto interessante. A prima vista non credo che ci sia una connessione diretta tra i calcoli: stanno calcolando la stessa quantità, ma per ragioni diverse. ktk
Glen_b

4

Come detto sopra, la stepfunzione in R si basa su criteri AIC. Ma suppongo che per valore p intendi alpha per entrare e alpha per uscire. Quello che puoi fare è usare la funzione stepwisescritta da Paul Rubin e disponibile qui . Come puoi vedere, puoi modificare gli argomenti di alpha.to.enter e alpha.to.leave. Si noti che questa funzione utilizza il test F o il test t equivalente per selezionare i modelli. Inoltre, può gestire non solo la regressione graduale, ma anche la selezione diretta e l'eliminazione all'indietro se si definiscono correttamente gli argomenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.