[R] glm predict on new data

Tóth Dénes tdenes at cogpsyphy.hu
Thu Apr 7 00:24:06 CEST 2011


Dear Dirk,

You should avoid indexing in the glm call so that the name of the terms
will not contain the indexing part. (Check str(lg) in your example.)
A more preferred solution uses predefined data frames in the original calls:
n <- 250
x <- rnorm(n)
noise <- rnorm(n,0,0.3)
y <- round(exp(x+noise)/(1+exp(x+noise)),digits=0)
datfr <- data.frame(x=x,y=y)
lg <- glm(y~x,data=datfr[1:200,],family="binomial")
pred <- predict(lg,newdata=datfr[201:n,],type="response")

HTH,
  Denes



> I am aware this has been asked before but I could not find a resolution.
>
> I am doing a logit
>
> lg <- glm(y[1:200] ~ x[1:200,1],family=binomial)
>
> Then I want to predict a new set
>
> pred <- predict(lg,x[201:250,1],type="response")
>
> But I get varying error messages or warnings about the different number of
> rows. I  have tried data/newdata and also to wrap in data.frame() but
> cannot
> get to work.
>
> Help would be appreciated.
>
> Dirk.
>
> --
> View this message in context:
> http://r.789695.n4.nabble.com/glm-predict-on-new-data-tp3431855p3431855.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list