Modèle linéaire de la fonction lm() erreur: NA/NaN/Inf étrangères appel de fonction (arg 1)

Dire que j'ai données.cadre a

- Je utiliser

m.fit <- lm(col2 ~ col3 * col4, na.action = na.exclude)

col2 a quelques NA valeurs, col3 et col4 ont des valeurs inférieures à 1.

Je reçois

Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 
NA/NaN/Inf in foreign function call (arg 1)

J'ai vérifié la liste de diffusion, et il semble que c'est à cause de la NAs dans col2 mais j'ai essayé d'utiliser na.action=na.exclude/omit/pass mais aucun d'entre eux semblent fonctionner. J'ai testé lm de nouveau sur les 10 premières entrées, certainement pas à cause de la NAs. Problème avec cet avertissement, c'est tous les résultats de google semblent pointer à NA.

Ai-je mal interprété l'erreur ou suis-je à l'aide de lm à tort?

De données est à kaggle. Je suis modélisation MonthlyIncome données à l'aide de la régression linéaire (comme je ne pouvais pas obtenir un certain glm famille pour travailler). J'ai créé mes propres variables à utiliser, mais si vous essayez d'modèle MonthlyIncome avec des variables déjà présentes il échoue.

  • m.fit<-lm(col2 ~ col3 + col4 + col3*col4, data=a, na.action=na.exclude) est beaucoup plus lisible pour spécifier votre modèle
  • Sans reproductible exemple, il est très difficile de répondre à votre question. Merci de voir stackoverflow.com/q/5963269/567015 sur les instructions pour ce faire.
  • Si vous sous-ensemble a pour les lignes sans NA dans col2 et puis exécutez le lm(), ne vous obtenez toujours l'erreur?
  • Pour ce que ça vaut, ~ col3*col4 est équivalent à ~ col3+col4+col3:col4 qui est équivalent à ~ col3+col4+col3*col4 (la dernière est sans danger redondant)
  • Merci Ben vous avez raison, j'ai mal lu, un point dans mes notes.
  • Pas beaucoup de point en publiant un lien vers un fichier de données derrière un écran de connexion. En attendant, essayez de traçage de vos données pour voir si il ressemble vaguement linéaire.
  • O barrage je savais que cela arriverait :S. Mais oui une petite section de données fonctionne bien, le problème est lorsque vous utilisez l'ensemble des observations. Et de la régression linéaire est assez logique étant donné les données, mais certainement pas quelque chose que je veux en faire l'usage si j'avais un meilleur contrôle sur R.
  • obtenir un dropbox et d'utiliser les liens publics en y (www.dropbox.com). C'est encore la solution la plus propre pour partager des données que je connais.
  • J'ai signé pour Kaggle, et je ne peux pas reproduire. a <- read.csv("~/Downloads/cs-training.csv"); names(a)[2:4] <- paste("col",2:4,sep=""); m.fit <-lm(col2~col3*col4,data=a) a bien fonctionné pour moi.
  • Les colonnes que vous utilisez dans le lm ajustement? Si vous utilisez les noms dans la ligne d'en-tête dans le fichier, c'est plus clair que col2, etc. J'ai essayé quelques combinaisons de colonnes et ne peut pas reproduire l'erreur.
  • Donc ne a <- read.csv("~/Downloads/cs-training.csv"); m.fit <-lm(MonthlyIncome~age*DebtRatio*SeriousDlqin2yrs,data=a,na.action=na.exclude)
  • Urgh désolé tout le monde, Il semble que le problème a été Inf valeurs dans mon personnalisée coloumn, que j'ai fixé après une bonne nuit de sommeil... encore une Fois très très désolé pour perdre du temps.

InformationsquelleAutor Pk.yd | 2011-12-07