Ho incontrato esattamente la stessa domanda e ho provato a farmi strada. Vedi la mia risposta dettagliata di seguito.
Prima di tutto, ho trovato 4 opzioni che producono valori VIF simili in R:
• corvif
comando dal pacchetto DAE,
• vif
comando dal pacchetto auto,
• vif
comando dal pacchetto rms,
• vif
comando dal pacchetto DAAG.
L'uso di questi comandi su una serie di predittori che non include alcun fattore / variabile categorica o termine polinomiale è stretto. Tutti e tre i comandi producono lo stesso output numerico anche se il corvif
comando dal pacchetto DAE identifica i risultati come GVIF.
Tuttavia, in genere, GVIF entra in gioco solo per fattori e variabili polinomiali. Le variabili che richiedono più di 1 coefficiente e quindi più di 1 grado di libertà sono generalmente valutate usando GVIF. Per i termini a un coefficiente VIF è uguale a GVIF.
Pertanto, è possibile applicare regole empiriche standard sul fatto che la collinearità possa costituire un problema, come una soglia 3, 5 o 10. Tuttavia, potrebbe essere necessario applicare alcune precauzioni (consultare: http://www.nkd-group.com/ghdash/mba555/PDF/VIF%20article.pdf ).
Nel caso di termini a più coefficienti, come ad esempio per i predittori categorici, i 4 pacchetti producono output diversi. I vif
comandi dai pacchetti rms e DAAG producono valori VIF, mentre gli altri due producono valori GVIF.
Diamo un'occhiata prima ai valori VIF dai pacchetti rms e DAAG:
TNAP ICE RegB RegC RegD RegE
1.994 2.195 3.074 3.435 2.907 2.680
TNAP e ICE sono predittori continui e Reg è una variabile categorica presentata dai manichini RegB a RegE. In questo caso RegA è la linea di base. Tutti i valori VIF sono piuttosto moderati e di solito nulla di cui preoccuparsi. Il problema con questo risultato è che è influenzato dalla linea di base della variabile categoriale. Per essere certi di non avere un valore VIF al di sopra di un livello accettabile, sarebbe necessario ripetere questa analisi per ogni livello della variabile categoriale che costituisce la linea di base. In questo caso cinque volte.
Applicando il corvif
comando dal pacchetto AED o il vif
comando dal pacchetto auto, vengono prodotti i valori GVIF:
| GVIF | Df | GVIF^(1/2Df) |
TNAP | 1.993964 | 1 | 1.412078 |
ICE | 2.195035 | 1 | 1.481565 |
Reg | 55.511089 | 5 | 1.494301 |
Il GVIF viene calcolato per set di regressori correlati, ad esempio per un set di regressori fittizi. Per le due variabili continue TNAP e ICE questo è lo stesso dei valori VIF precedenti. Per la variabile categoriale Reg, ora otteniamo un valore GVIF molto elevato, anche se i valori VIF per i singoli livelli della variabile categoriale erano tutti moderati (come mostrato sopra).
G VioF( 1 / ( 2 × D f) )G VioF( 1 / ( 2 × D f) )il valore della variabile categoriale è una misura simile per la riduzione della precisione della stima dei coefficienti dovuta alla collinearità (anche se non pronta per la quotazione, consultare anche http://socserv2.socsci.mcmaster.ca/jfox/papers/linear- modelli-problemi.pdf ).
G VioF( 1 / ( 2 × D f) )G VioF( 1 / ( 2 × D f) )
G VioF( 1 / ( 2 × D f) )G VioF( 1 / ( 2 × D f) )G VioF2 ( 1 / ( 2 × D f) )< 2