I\'ve got some coefficients for a logit model set by a non-r user. I\'d like to import those coefficients into r and generate some goodness of fit estimates on the same data
Or, you can use something like this:
fit <- lm(Y ~ A + B + C, data=fakedata)
fit$coefficients <- c(1, 2, 3) # this would change the coefficients for A, B, C to 1, 2 and 3, respectively.
Y_hat_new <- predict(fit, new_fakedata) # this Y_hat_new will be calculated as your new predicted outcome given the new coefficients and/or new_fakedata.
The results should be the same if you follow the model.matrix route.
If you follow the code through predict.glm which passes the object to predict.lm, it appears that the node of the model list that needs to be altered is indeed fit$coefficients. However, altering the summary()-object will have no effect. The [['coefficients']] in the glm and lm objects are not matrices with columns: 'Estimate', 'Std. Error', 't value', 'Pr(>|t|)' such as produced by summary, but rather just a vector of coefficients.
fit$coefficients <- y
newpred <- predict(fit)
You might make a copy and work on it if you will need any further use of fit.
This is not an answer to your posted question - which BondedDust answered - but describes an alternate way in calculating the predicted probabilities yourself which might help in this case.
# Use the mtcars dataset for a minimum worked example
data(mtcars)
# Run a logistic regression and get predictions
mod <- glm(vs ~ mpg + factor(gear) + factor(am), mtcars, family="binomial")
p1 <- predict(mod, type="response")
# Calculate predicted probabilities manually
m <- model.matrix(~ mpg + factor(gear) + factor(am), mtcars)[,]
p2 <- coef(mod) %*% t(m)
p2 <- plogis(p2)
all(p1 == p2)
#identical(as.numeric(p1), as.numeric(p2))
You can replace coef(mod) with the vector of coefficients given to you. model.matrix will generate the dummy variables required for the calculation - check that the ordering is the same as that of the coefficient vector.