Ritter, Christian C SRTCL-CTGAS
2002-Feb-14 18:42 UTC
[R] two comments regarding predict.lm
Here is the first one. It concerns the handling of multiple offsets. The following lines creates a list with 3 explanatory variables and one response. > x<-seq(0,1,length=10);y<-sin(x);z<-cos(x); w<-x+y+z+rnorm(x) > data<-list(x=x,y=y,z=z,w=w) A lm is fitted with one explanatory variable and two offsets. So far, so good. > tt<-lm(w~x+offset(y)+offset(z),data=data) Then predict dies since it can only handle one offset term. > predict(tt,data) Error in eval(attr(tt, "variables")[[off.num + 1]], newdata) : attempt to select more than one element The following shows that it works with a single offset term. > tt<-lm(w~x+offset(y+z),data=data) > predict(tt,data) 1 2 3 4 5 6 7 8 1.011794 1.302522 1.579625 1.841981 2.088647 2.318876 2.532122 2.728049 9 10 2.906535 3.067673 I would find it useful, if I could handle several offset terms. Here is the second. It concerns again offsets. Deep in the belly of predict.lm we find the lines: predictor <- drop(X[, piv, drop = FALSE] %*% beta[piv]) if (!is.null(offset)) predictor <- predictor + offset X is the model matrix as obtained by X <- model.matrix(delete.response(tt), newdata, contrasts object$contrasts, xlev = object$xlevels) and offset is a vector if there is an offset term. Now imagine that the variables in newdata which make the offset contain some missing values and that the variables in newdata which correspond to the model matrix dont. In this case, predictor will be longer than offset and taking the sum predictor + offset will make no sense. In the current version, this will result in a warning of "different lengths". I would prefer if the result were one of the following two: a) a stop with an error message (since the consequence of ignoring the warning could be disastrous) b) that predictor and offset would be constructed of the same (maximum) length, eventually padded by NA's where necessary The second choice may make things easier to work with. Greetings, Chris _ platform i386-pc-mingw32 arch x86 os Win32 system x86, Win32 status major 1 minor 4.1 year 2002 month 01 day 30 language R> > Kind Regards, > Christian Ritter, Statistical Services >Tel +32 10 477349/ Fax +32 10 477219 email : Christian.C.Ritter at OPC.Shell.com Shell Coordination Centre Shell Research and Technology Centre Avenue Jean Monnet 1 B-1348 Ottignies Louvain-La-Neuve (Belgium) -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._