Lorsque vous faites un GLM et que vous obtenez l'erreur "non défini en raison des singularités" dans la sortie anova, comment peut-on contrer cette erreur?
Certains ont suggéré que cela est dû à la colinéarité entre les covariables ou que l'un des niveaux n'est pas présent dans l'ensemble de données (voir: interpréter "non défini en raison des singularités" en lm )
Si je voulais voir quel « traitement particulier » est le moteur du modèle et j'ai 4 niveaux de traitement: Treat 1
, Treat 2
, Treat 3
et Treat 4
, qui sont enregistrées dans ma feuille de calcul comme: quand Treat 1
est 1 le reste sont nuls, quand Treat 2
est 1 le reste sont nuls, etc., que dois-je faire?
Réponses:
Vous obtenez probablement cette erreur car deux ou plusieurs de vos variables indépendantes sont parfaitement colinéaires (par exemple, des variables fictives mal codées pour faire des copies identiques).
Utilisez cor () sur vos données ou alias () sur votre modèle pour une inspection plus approfondie.
la source
alias
. Pas mal.L'erreur "non définie en raison des singularités" se produira en raison d'une forte corrélation entre vos variables indépendantes. Cela peut être évité en ayant n-1 variables fictives. Dans votre cas, pour la variable Traitement, vous devez utiliser 3 variables fictives binaires (Treat1, Treat2, Treat3).
Dans la programmation R, la fonction de régression linéaire lm () se traduira par "NA" comme co-efficace pour les variables hautement corrélées.
la source