非离散结果的类逻辑回归模型

机器算法验证 r 可能性 物流 广义线性模型
2022-03-23 09:52:30

如果我有一组连续预测变量和二元结果并且我想建立的预测模型,我将从逻辑回归模型开始。XYP(Y|X)

但是,在我的特定情况下,我的不是二进制的,它在 0 和 1 之间是连续的。在这种情况下是否可以应用类似的广义线性模型?我在 R 中的乐观/天真尝试表明Y

set.seed(123)
df <- data.frame(y=runif(8), x1=rnorm(8), x2=rnorm(8))
mod <- glm(y ~ ., data=df, family=binomial('logit'))

# Warning message:
# In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!

rbind(yhat=predict(mod, newdata=df), y=df$y)
#              1         2          3         4         5          6         7           8
# yhat 0.7461449 0.4869853 -0.1092115 1.9854276 0.8328304 -1.3708688 1.0150934 -0.03496334
# y    0.2875775 0.7883051  0.4089769 0.8830174 0.9404673  0.0455565 0.5281055  0.89241904

请注意,一些预测在之外。有什么建议么?(0,1)

1个回答

如果您有介于 0 和 1 之间的“连续”(看起来,因为它们仍然可能是离散的)值,则至少有两种情况:

  1. 它们来自许多独立的二元试验,“连续”值是成功次数除以试验。那么二项式 GLM 可能是合适的。在这种情况下,您需要将其安装在 R 中glm(cbind(numberSuccesses,numberFailures)~x,family=binomial)
  2. 如果不是这种情况,那么您可能拥有更适合Beta 模型的东西。我提供的链接显示了如何在 R 中执行此操作。

请注意,在 R 中glm(y~x,family=binomial),带有“连续”将引发警告,并且通常结果与成功和试验次数不同的情况:y

set.seed(1)
successes<-sample(1:10,100,replace=TRUE)
x<-1:100
n<-12
failures<-n-successes

summary(glm(cbind(successes,failures)~x,family=binomial))
Call:
glm(formula = cbind(successes, failures) ~ x, family = binomial)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.8197  -0.9434   0.0454   0.9358   2.4921  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) -0.24622    0.11349   -2.17     0.03 *
x            0.00080    0.00195    0.41     0.68  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 134.99  on 99  degrees of freedom
Residual deviance: 134.82  on 98  degrees of freedom
AIC: 422.2

Number of Fisher Scoring iterations: 3

props<-successes/n
summary(glm(props~x,family=binomial))

Call:
glm(formula = props ~ x, family = binomial)

Deviance Residuals: 
   Min      1Q  Median      3Q     Max  
-0.852  -0.282  -0.105   0.394   0.760  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.134339   0.403836   -0.33     0.74
x            0.000281   0.006941    0.04     0.97

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 20.888  on 99  degrees of freedom
Residual deviance: 20.887  on 98  degrees of freedom
AIC: 141.3

Number of Fisher Scoring iterations: 3

Warning message:
In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!