Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a generic question about whether it might sometimes make sense to fix specific regression coefficients to predetermined values. And if this makes sense in particular cases, how do you best go about it?

In my case, I have about 1,600 observations but I am interested chiefly in a variable for which about 600 observations are missing. If I run a normal regression (OLS,GLS,CLM) all the variables that have missing values are dropped, and I am wondering whether it is possible to "save" all the observations to determine the coefficients for the variables for which I have full information, and then run a separate regression to determine the coefficients of the variables with all the missing values.

In simple formulas it looks about like this:

Step 1

For variables x1,x2,x3,x4 I have 1,600 observations

glm.core <- glm(y ~ x1 + x2 + x3 + x4) # determine the coefficients in the regression
beta <- glm.core$coef

Step 2

For variables z1 and z2 I only have a 1,000 observations

glm.main <- glm(y ~ beta[1]*x1 + beta[2]*x2 + beta[3]*x3 + beta[4]*x4 + z1 + z2)

So I want to predetermine the betas for which I have full information and then fix their values in the main regression. (Maybe this is a completely pointless idea and if so please tell me)

I know something like that can be achieved with offset BUT this does not work for factor variables and x2 and x3 are factors (x2 has values 'university', 'firm', 'government', and x3 has values 'known' , 'unknown', 'not relevant').

  1. Is an alternative to solving this problem to reduce the response variable y with the fitted values of the glm.core model and run the regression like that?

  2. If this is a sensible option

    • What happens to the errors?
    • How to calculate degrees of freedom?
    • Would this work as well with ordered logit (CLM) models where the fitted values are percentages?

Are there better ways of dealing with this problem?

PS: I am using R software, forgot to mention this initially...

share|improve this question
Since this is a missing data problem, you will likely want to consult the literature on missing data on how to proceed. Your approach is similar to full information maximum likelihood in its results (Allison, 2012‌​). The R package lavaan can estimate missing data OLS models. Paul Allison says for logistic regression the only package that currently does this is MPlus. – Andy W Sep 1 '14 at 12:16
You also need to give careful thought to why those 600 observations are missing. If their missingness is at all related to the response variable, then no technical solution that assumes "missing at random" is going to give meaningful answers. – rvl Sep 1 '14 at 13:42
Thanks @RussLenth They are missing because we did not ask all the questions to the respondents. Basically only respondents with specific knowledge were asked the questions relating to z1 and z2. My goal is actually to find out if fixing the betas for x1 to x4 (basically acknowledging the opinions of those who lack the specific knowledge) would change the coefficients for z1 and z2 – SJDS Sep 1 '14 at 13:51

I would not do it that way. The fixed betas are the betas for a model which excludes z1 and z2, so they are not appropriate for your model of interest. Instead I would look into multiple imputation to achieve your goal.

You seem to be using R. As far as I remember one R-package that does MI is called mice.

share|improve this answer
To posters: It is always polite and helpful to make clear what statistical software you are using, regardless of whether you think it is obvious. (My friend Maarten knows this!) – Nick Cox Sep 1 '14 at 12:36
Apologies, I should have mentioned R. I did not do so because of the generic nature of the question, but of course I'm asking about how to do this as well... – SJDS Sep 1 '14 at 12:44

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.