6 votos

La regresión logística como un modelo para los no-discretos resultados

Si tengo un conjunto de continuo predictores $X$ y un resultado binario $Y$ y quería construir un modelo predictivo de $P(Y|X)$, me gustaría empezar con un modelo de regresión logística.

Sin embargo, en mi caso particular, mi $Y$ no es binario, es continua entre 0 y 1. Hay un similar Modelo Lineal Generalizado que se pueden aplicar en este caso? Mi optimista/ingenuo intento en R revela que

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

Tenga en cuenta que algunas de las predicciones que están fuera de $(0,1)$. Alguna sugerencia?

9voto

Momo Puntos 5125

Si usted tiene "continuo" (aparentemente, ya que todavía podría ser discretos) los valores entre 0 y 1 hay al menos dos casos:

  1. Venían de un número de binario independiente los ensayos y el "continuo", el valor es el número de éxitos dividido por las pruebas. A continuación, un binomio GLM podría ser apropiado. En este caso, usted necesita para encajar en el R glm(cbind(numberSuccesses,numberFailures)~x,family=binomial)
  2. Si ese no es el caso, entonces usted podría tener algo por lo que una Beta Modelo puede ser más apropiado. El enlace que he proporcionado muestra cómo hacer que en R.

Tenga en cuenta que en R glm(y~x,family=binomial) con un "continuo" $y$ va a lanzar una advertencia y, en general, el resultado no será el mismo que en el caso con el número de éxitos y de los ensayos:

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

pero

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!

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X