R使用任意系数

时间:2018-05-07 14:24:06

标签: r glm predict

我正在R中运行以下形式的逻辑回归:

results<-glm(Y~X,family=binomial(link='logit'))我从中得出估计系数和拟合观测值\hat{Y}=f(X;\hat{\beta})

我想知道是否可以使用其他任意固定值\widetilde{Y}来计算不同的\widetilde{\beta}

请注意,我已经尝试更改估计系数results$cofficients<-c(0.9,1.2)(此处仅为0.9和1.2)并使用函数predict(results,type="response"),尽管它不起作用,因为它们之间没有区别拟合值。

1 个答案:

答案 0 :(得分:3)

更改系数应该这样做。但是,如果您仅使用原始数据依赖预测函数来预测原始数据,如果未传递任何其他数据进行预测(即不使用newdata=something),则使用模型中的拟合值直接反对。

您可以通过告诉您在预约中使用newdata=your_original_data来绕过这一点。

一个例子

> dat <- mtcars[1:5,]
> results <- glm(vs ~ mpg, data = dat, family = binomial(link = 'logit'))
Warning message:
glm.fit: fitted probabilities numerically 0 or 1 occurred 
> predict(results)
        Mazda RX4     Mazda RX4 Wag        Datsun 710    Hornet 4 Drive Hornet Sportabout 
        -23.66411         -23.66411         186.49174          23.03719        -292.19658 
> coefficients(results)
(Intercept)         mpg 
 -2475.4823    116.7532 
> results$coefficients[1] <- 0
> predict(results) # uses original fitted values
        Mazda RX4     Mazda RX4 Wag        Datsun 710    Hornet 4 Drive Hornet Sportabout 
        -23.66411         -23.66411         186.49174          23.03719        -292.19658 
> predict(results, newdata = dat)
        Mazda RX4     Mazda RX4 Wag        Datsun 710    Hornet 4 Drive Hornet Sportabout 
         2451.818          2451.818          2661.974          2498.519          2183.286