문제

I have a logistic regression model with the coefficients already determined and I want to deploy in R.

I know it is extremely simple to just write my own function to do it, but I'm curious if there is some existing functionality that I am missing that's even simpler?

Basically I am looking to use something like the predict() functionality of glm with my own coefficients rather than fitting the model in R.

도움이 되었습니까?

해결책

You can use the matrix form to do this:

logitp_est <- sum(c(1, values) * coefficients)

If you want the probability,

prob_est <- 1 / (1 + exp(-1 * logitp_est))

or the built in plogis():

prob_est <- plogis(logitp_est)

If you want the classification:

class_est <- logitp_est > 0

다른 팁

It's not recommended, but you could always change the coefficients by hand.

iris2 <- iris[, 1:4]; iris2$dep_var <- as.integer(ifelse(iris2$Sepal.Length > 5, 1, 0))
x <- glm(dep_var ~ ., family = binomial(link = logit), iris2)
x$coefficients
# (Intercept)  Sepal.Length   Sepal.Width  Petal.Length   Petal.Width
# -1990.9311682   392.5953392     2.0776581     0.5389770     0.9594286
predict(x, iris2[1, ])
#          1
#   19.52332
x$coefficients['Sepal.Length'] <- 393
predict(x, iris2[1, ])
#        1
# 21.58709

Note this will likely screw with things like summary(x).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top