2013-08-15 2 views
0

Après avoir chargé mgcv et exécuté le modèle ci-dessous - il renvoie l'erreur ci-dessous .. Ce code a travaillé dans les temps précédents (c'est-à-dire hier). Toute aide avec ceci serait très appréciée.Erreur GAM(): argument (s) non utilisé (s = "ps", k = 8)?

> aa1<-gam(Bin~s(Mud,bs="ps",k=8),family=binomial, gamma=1,data=Abaren) 

Error in s(Mud, bs = "ps", k = 8) : unused argument(s) (bs = "ps", k = 8) 

-

Je reçois maintenant l'erreur ci-dessous .. Tout cela semble un peu étrange compte tenu du fait tout ce code est en cours d'exécution parfaitement il y a deux jours ..

## UQ Abundance only data (i.e. positive values only) 

aa2<-gam(UQdata~s(MudUQ,bs="ps", k=15) ,family=Gamma(link=log),data=Antho) 
xmin <- ceiling(min(Antho$MudUQ[Antho$Bin==1])) 
xmax <- floor(max(Antho$MudUQ[Antho$Bin==1])) 
Mudnew <- seq(from=xmin, to=xmax, by=0.1) 
**Error in if (del == 0 && to == 0) return(to) : 
       missing value where TRUE/FALSE needed** 
pred.dat <- data.frame(Mudnew) 
names(pred.dat) <- "MudUQ" 
pred.aa2 <- data.frame(predict.gam(aa2, pred.dat, se.fit=TRUE, type="response")) 
pred.aa2.comb <- data.frame(pred.dat, pred.aa2) 
names(pred.aa2.comb) 
plot(fit ~ MudUQ, data=pred.aa2.comb, type="l", lwd=2, col=1, 
    lab="Density per 0.0132 m2", xlab="Mud content (%)") 
+0

Je ne sais pas pourquoi vous êtes surpris, si vous ne rendez pas votre code reproductible (à tel point que vous n'avez aucune idée * du paquet que vous utilisez *!). Comment savez-vous que cela * vraiment * travaillé avant et ne dépendait pas de certaines conditions locales? –

+0

J'apprécie votre aide Gavin- J'ai dit: "Après le chargement de mgcv et l'exécution du modèle ci-dessous" au début de ma question initiale .. Néanmoins, j'essaie de répondre à une question dans ma thèse post-grad avec un codage R minimal expertise (évidemment) et sous de sérieuses contraintes de temps - ainsi votre aide est grandement appréciée. Je sais que cela a vraiment fonctionné avant parce que cela produisait des modèles pour un certain nombre d'espèces à différentes occasions - cela satisfait-il au fait que le code est reproductible? – brober

Répondre

1

Utilisez-vous le mauvais paquet? Les packages mgcv et gam ont la fonction s(), mais seuls les premiers prennent un bs et un argument k pour influencer les fonctions de base.

Par exemple, je peux reproduire l'erreur en utilisant gam::gam():

> require("gam") 
> data(kyphosis) 
> gam(Kyphosis ~ s(Age, k = 4, bs = "ps") + Number, family = binomial, 
+  data=kyphosis, trace = TRUE) 
Error in s(Age, k = 4, bs = "ps") : unused arguments (k = 4, bs = "ps") 
> gam(Kyphosis ~ s(Age) + Number, family = binomial, data=kyphosis, trace = TRUE) 
GAM s.wam loop 1: deviance = 66.42095 
GAM s.wam loop 2: deviance = 63.77252 
GAM s.wam loop 3: deviance = 63.25199 
GAM s.wam loop 4: deviance = 63.13399 
GAM s.wam loop 5: deviance = 63.11016 
GAM s.wam loop 6: deviance = 63.10748 
GAM s.wam loop 7: deviance = 63.10727 
GAM s.wam loop 8: deviance = 63.10725 
GAM s.wam loop 9: deviance = 63.10725 
Call: 
gam(formula = Kyphosis ~ s(Age) + Number, family = binomial, 
    data = kyphosis, trace = TRUE) 

Degrees of Freedom: 80 total; 75.00002 Residual 
Residual Deviance: 63.10725 

mais pas avec le paquet mgcv et mgcv::gam():

> require(mgcv) 
> require("mgcv") 
> set.seed(2) ## simulate some data... 
> dat <- gamSim(1,n=400,dist="normal",scale=2) 
Gu & Wahba 4 term additive model 
> b <- gam(y ~ s(x0, k = 5, bs = "ps") + s(x1) + s(x2) + s(x3), data=dat) 
Loading required package: splines 
+0

Merci, je viens de mettre à jour R à 3.0.1 et son fonctionnement. – brober

+0

Toute idée concernant la deuxième erreur que j'ai posté sous le premier? – brober

+0

Regardez 'xmin' et' xmax' pour voir s'il y a des valeurs impaires ou 'NA's. –

Questions connexes