Errore "sistema computazionalmente singolare" quando si esegue un glm


29

Sto usando il pacchetto robustbase per eseguire una stima glm. Tuttavia quando lo faccio, ottengo il seguente errore:

Error in solve.default(crossprod(X, DiagB * X)/nobs, EEq) : 
  system is computationally singular: reciprocal condition number = 1.66807e-16

Cosa significa / indica? E come posso eseguire il debug?

PS. Se hai bisogno di qualcosa (la formula / le specifiche o i dati) per rispondere, ti fornirò volentieri.

Risposte:


26

Significa che la tua matrice di progettazione non è invertibile e quindi non può essere utilizzata per sviluppare un modello di regressione. Ciò deriva da colonne linearmente dipendenti, ovvero variabili fortemente correlate. Esamina la covarianza a coppie (o correlazione) delle tue variabili per verificare se ci sono variabili che possono essere potenzialmente rimosse. Stai cercando covarianze (o correlazioni) >> 0. In alternativa, puoi probabilmente automatizzare questa selezione di variabili usando una regressione graduale in avanti.

Ciò può anche derivare dall'avere più variabili delle osservazioni, nel qual caso la tua matrice di progettazione non è probabilmente al livello massimo. Questo è un po 'più complicato da risolvere, ma ci sono modi. Credo che la regressione del lazo dovrebbe funzionare bene quando i dati sono "più ampi" di "lunghi".

Ricorda: se decidi di provare il lazo o la selezione graduale, stai facendo molto di più (in termini di selezione variabile) rispetto alla semplice gestione della multicolinearità.


Grazie, due domande: 1. Conosci qualche procedura in r, che potrebbe funzionare bene per me nel debugging? 2. Vedo che quando eseguo lo stesso modello sugli stessi stessi dati con glm () invece di glmrob () non ottengo alcun errore - ha senso o implica un errore in glmrob () funzione?
NK1

2

Ho trascorso molto tempo su questo errore, ma controlla questa pagina che lo ha risolto per me

https://www.kaggle.com/c/house-prices-advanced-regression-techniques/discussion/24586

Fondamentalmente puoi semplicemente cambiare il metodo utilizzato dai topi. Stavo usando ppn e l'ho cambiato nel carrello


2
Cerca di rendere la risposta autonoma nel testo della tua risposta, per favore. In questo modo, le persone hanno maggiori probabilità di leggerlo e meno probabilità di eliminarlo come troppo breve e non sull'argomento.
Carl,
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.