hi all -- i'm running into a strange problem that i can't seem to easily get around, but i'm probably just missing something obvious.
i have a model to which some data is fit using glm with no intercept term (using my data variables "x" and "y" and a specific link function "mylink"): ######################################## > foo.glm <- glm(y ~ x + 0, family = Gamma(link = mylink)) > foo.glm Call: glm(formula = y ~ x + 0, family = Gamma(link = mylink)) Coefficients: x 8.643e-05 Degrees of Freedom: 272 Total (i.e. Null); 271 Residual Null Deviance: 1821 Residual Deviance: 1135 AIC: -969 > predict(foo.glm, newdata = data.frame(x = c(10e3, 20e3))) 1 2 0.8642988 1.7285976 ######################################## so far, everything is great. now i'd like to force a constraint on my model: an particular (fixed) non-zero response variable intercept term, let's call it 0.5. the only method i know of to accomplish this is to use an offset term (either in the formula, or with the offset parameter to glm), like so: ######################################## > foo.glm <- glm(y ~ x + 0, offset = rep(0.5, length(y)), family = Gamma(link = > mylink)) > foo.glm Call: glm(formula = y ~ x + 0, family = Gamma(link = mylink), offset = rep(0.5, length(y))) Coefficients: x 8.019e-05 Degrees of Freedom: 272 Total (i.e. Null); 271 Residual Null Deviance: 1639 Residual Deviance: 1131 AIC: -970.5 ######################################## now i'd like to try predict(...) again, but clearly predict.glm(...) wants to add (actually subtract) the full offset vector used in the glm(...) call explicitly to my new predictions, which forces recycling and gives me something like this: ######################################## > predict(foo.glm, newdata = data.frame(x = c(10e3, 20e3))) [1] 1.301893 2.103787 1.301893 2.103787 1.301893 2.103787 1.301893 2.103787 1.301893 [10] 2.103787 1.301893 2.103787 1.301893 2.103787 1.301893 2.103787 1.301893 2.103787 ... [262] 2.103787 1.301893 2.103787 1.301893 2.103787 1.301893 2.103787 1.301893 2.103787 [271] 1.301893 2.103787 ######################################## furthermore, with some additional glm-'like' packages (e.g. betareg), the differing lengths of 'newdata' and the original 'offset' vectors produce full-on errors. is there any way in formula(...) other than including offset(...) to force a CONSTANT non-zero intercept? thanks for any insight! -m ______________________________________________ R-help@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.