J'essaie d'exécuter une transformation boxcox avec le code suivant:
urban1 <- subset(ski,urban <= 4,na.rm=TRUE)
ski$gender <- as.numeric((as.character(ski$gender)),na.rm=TRUE)
urban1 <- as.numeric((as.character(urban1)))
x <- (ski$gender*urban1)
y <- ski$EPSI.
bc <- boxcox(y ~ x)
(trans <- bc$x[which.max(bc$y)])
model3 <- lm(y ~ x)
model3new <- lm(y^trans ~ x)
ski$EPSI. <- ski$EPSI. + 1
Mais je continue à avoir cette erreur:
Erreur dans lm.fit (x, y, offset = offset, singular.ok = singular.ok, ...): 0 (non-NA) cas Appels: ... eval -> eval -> boxcar -> boxcar. formula -> lm -> lm.fit Exécution arrêtée
Merci d'avance!
Le message d'erreur
lm.fit (x, y, offset = offset, singulier.ok = singulier.ok, ...): 0 cas (non NA)
est généré par la commande lm(y ~ x)
lorsque les variables x
ou y
(ou les deux) ont uniquement des NA.
Voici un exemple:
n <- 10
x <- rnorm(n,1)
y <- rep(NA,n)
lm(y ~ x)
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
0 (non-NA) cases
Dans votre code, je suggère de tester (juste avant vos commandes lm
) si l'une de vos variables a toutes les NA utilisant:
all(is.na(x))
all(is.na(y))
all(is.na(y^trans))
Dans mon exemple:
all(is.na(y))
[1] TRUE
L'erreur peut être déclenchée par NA dans vos données ou une mauvaise transformation
#From the mtcars dataset
mpg.reg3 <- lm(mpg ~ cylinders + displacement + horsepower + weight + acceleration + year + Origin, data=Auto, na.action=na.exclude)
Notez l'argument na.action=
. Définir ceci sur na.exclude
permettra à la fonction lm
d'ignorer les NA de vos données. Une autre option est na.omit
, qui agit de manière légèrement différente.
L’autre problème peut être une mauvaise transformation de vos données - vérifiez bien les termes et manipulations de vos interactions.