I'm sure this is an easy thing to do, but I can't seem to get it right. My 
first question is:  Is there a way to set the intercept of a glm to be an 
overall average of the response variable, as opposed to the coefficient 
for a particular term. 

For example, let's say there are 2 variables (1 and 2) with levels A, B, C 
and D, E, F, respectively.  The default glm output provides an intercept 
term that is the coefficient for A*D and seperate terms for B, C, F, B*F, 
and C*F.  My issue is that I don't always have estimates for certain 
interactions.  When I try to predict values for new data using the 
coefficients from the model, predict.glm assumes the NAs are 0 and, 
therefore, those coefficients have the same estimate as the intercept plus 
other main effects for which there are data.  So, if there's an easy way 
to do that, that would be great.  If not...

...I could do it by changing the design matrix.  I've played with glm.fit 
and model.matrix to create the design matrices, but I'm having trouble 
using them in glm.  I created a matrix and populated it, but when I use 
the saved glm.fit as the "method" argument in glm, I get:
'Error in switch(method, model.frame = return(mf), glm.fit = 1, 
stop("invalid 'method': ",  :switch: EXPR must return a length 1 vector"

EX
glm.fit(x=model.matrix(Y ~ X+Z), y=c(1,...,1))
glm(Y ~ X+Z, family='binomial', method=glm.fit)

So, I guess my question is: How do I include the design matrix so that the 
glm function uses it instead of the default design matrix?

Thanks,
Adam Green
	[[alternative HTML version deleted]]

