Como lidar com um erro como “Coeficientes: 14 não definidos por causa de singularidades” em R?


15

Ao fazer um GLM e você obtém o erro "não definido por causa de singularidades" na saída anova, como combater esse erro?

Alguns sugeriram que é devido à colinearidade entre covariáveis ​​ou que um dos níveis não está presente no conjunto de dados (consulte: interpretando "não definido por causa de singularidades" em lm )

Se eu quisesse ver qual "tratamento especial" está dirigindo o modelo e eu tenho 4 níveis de tratamento: Treat 1, Treat 2, Treat 3& Treat 4, que são gravados na minha planilha como: quando Treat 1é 1 o resto são zero, quando Treat 2é 1 o resto são zero, etc., o que eu teria que fazer?


Vejo muitas pessoas com esse problema - alguém entende a resposta a essa consulta de pessoas? stat.ethz.ch/pipermail/r-help/2006-April/103836.html
Platypezid

Respostas:


27

Você provavelmente está recebendo esse erro porque duas ou mais de suas variáveis ​​independentes são perfeitamente colineares (por exemplo, variáveis ​​dummy com códigos incorretos para fazer cópias idênticas).

Use cor () nos seus dados ou alias () no seu modelo para uma inspeção mais detalhada.


10
Obrigado não sabia a função alias (). Isso é realmente útil de se ter. Cheers, O.
OFish

1

O erro "não definido por causa de singularidades" ocorrerá devido à forte correlação entre suas variáveis ​​independentes. Isso pode ser evitado com variáveis ​​dummy n-1. No seu caso, para a variável Tratamento, você deve usar 3 variáveis ​​fictícias binárias (Tratar1, Tratar2, Tratar3).

Na programação R, a função de regressão linear lm () resultará em "NA" como coeficiente para variáveis ​​altamente correlacionadas.


1
Você pode dizer como vê isso como uma adição à resposta existente? Talvez editando?
Mdewey #
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.