Come affrontare un errore come "Coefficienti: 14 non definito a causa delle singolarità" in R?


15

Quando si esegue un GLM e si ottiene l'errore "non definito a causa delle singolarità" nell'output di anova, come si fa a contrastare questo errore?

Alcuni hanno suggerito che è dovuto alla collinearità tra covariate o che uno dei livelli non è presente nel set di dati (vedi: interpretazione "non definito a causa delle singolarità" in lm )

Se volevo vedere quale "trattamento particolare" sta guidando il modello e ho 4 livelli di trattamento: Treat 1, Treat 2, Treat 3e Treat 4, che sono registrati nel mio foglio di calcolo come: quando Treat 1è 1 il resto sono pari a zero, quando Treat 2è 1 il resto sono pari a zero, ecc., cosa dovrei fare?


Vedo che molte persone hanno questo problema: qualcuno capisce la risposta a questa domanda? stat.ethz.ch/pipermail/r-help/2006-April/103836.html
Platypezid

Risposte:


27

Probabilmente stai riscontrando questo errore perché due o più delle tue variabili indipendenti sono perfettamente collineari (ad es. Codificare erroneamente variabili fittizie per fare copie identiche).

Utilizzare cor () sui dati o alias () sul modello per un controllo più approfondito.


10
Grazie non conoscevo la funzione alias (). È davvero utile averlo. Saluti, O.
OFish,

1

L'errore "non definito a causa delle singolarità" si verificherà a causa della forte correlazione tra le variabili indipendenti. Questo può essere evitato avendo n-1 variabili fittizie. Nel tuo caso, per la variabile di trattamento, dovresti usare 3 variabili binarie fittizie (Treat1, Treat2, Treat3).

Nella programmazione R, la regressione lineare functin lm () risulterà in "NA" come co-efficiente per variabili altamente correlate.


1
Puoi dire come lo vedi come aggiunta alla risposta esistente? Forse modificandolo?
mdewey,
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.