17 votos

¿Cómo puedo utilizar la regresión logística betas + datos en bruto para obtener las probabilidades

Tengo un modelo ajustado (de la literatura). También tengo los datos en bruto para las variables predictoras.

¿Cuál es la ecuación que debe utilizar para obtener las probabilidades? Básicamente, ¿cómo puedo combinar los datos en bruto y los coeficientes para obtener las probabilidades?

20voto

ocram Puntos 9992

La función de enlace de un modelo logístico es $f: x \mapsto \log \tfrac{x}{1 - x}$. Su inversa es $g: x \mapsto \tfrac{\exp x}{1 + \exp x}$.

En un modelo logístico, el lado izquierdo es el logit de $\pi$, la probabilidad de éxito:

$f(\pi) = \beta_0 + x_1 \beta_1 + x_2 \beta_2 + \ldots$

Por lo tanto, si usted desea $\pi$ es necesario evaluar el $g$ en el lado derecho:

$\pi = g( \beta_0 + x_1 \beta_1 + x_2 \beta_2 + \ldots)$.

13voto

Brett Veenstra Puntos 10238

Aquí se aplica el investigador de la respuesta (utilizando el paquete estadístico R).

En primer lugar, vamos a crear algunos de los datos, es decir, yo soy la simulación de los datos de un simple modelo de regresión logística bivariado $log(\frac{p}{1-p})=\beta_0 + \beta_1 \cdot x$:

> set.seed(3124)
> 
> ## Formula for converting logit to probabilities 
> ## Source: http://www.statgun.com/tutorials/logistic-regression.html
> logit2prop <- function(l){exp(l)/(1+exp(l))}
> 
> ## Make up some data
> y <- rbinom(100, 1, 0.2)
> x <- rbinom(100, 1, 0.5)

El predictor x es una variable dicotómica:

> x
  [1] 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 
 [48] 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0
 [95] 1 1 1 1 1 0

Segundo, la estimación del intercepto ($\beta_0$) y la pendiente ($\beta_1$). Como se puede ver, la intersección es $\beta_0 = -0.8690$ y la pendiente es $\beta_1 = -1.0769 $.

> ## Run the model
> summary(glm.mod <- glm(y ~ x, family = "binomial"))

[...]

    Coefficients:
            Estimate Std. Error z value Pr(>|z|)   
(Intercept)  -0.8690     0.3304  -2.630  0.00854 **
x            -1.0769     0.5220  -2.063  0.03910 * 
---
Signif. codes:  0 ‘***' 0.001 ‘**' 0.01 ‘*' 0.05 ‘.' 0.1 ‘ ' 1 

(Dispersion parameter for binomial family taken to be 1)

[...]

Tercera, R, como la mayoría de los paquetes estadísticos, puede calcular los valores ajustados, es decir, de las probabilidades. Voy a utilizar estos valores como referencia.

> ## Save the fitted values
> glm.fitted <- fitted(glm.mod)

Cuarto, este paso se refiere directamente a tu pregunta: Tenemos los datos en bruto (aquí: $x$) y tenemos los coeficientes de ( $\beta_0$ $\beta_1$ ). Ahora, vamos a calcular los logits y guardar estos valores ajustados en glm.rcdm:

> ## "Raw data + coefficients" method (RDCM)
## logit = -0.8690 + (-1.0769) * x
glm.rdcm <- -0.8690 + (-1.0769)*x

El paso final es una comparación de los valores ajustados basados en R fitted-función (glm.fitted) y mi "hecho a mano" enfoque (logit2prop.glm.rdcm). Mi propia función, logit2prop (primera fase) se convierte en logits a las probabilidades:

> ## Compare fitted values and RDCM
> df <- data.frame(glm.fitted, logit2prop(glm.rdcm))
> df[10:25,]
> df[10:25,]
   glm.fitted logit2prop.glm.rdcm.
10  0.1250000            0.1250011
11  0.2954545            0.2954624
12  0.1250000            0.1250011
13  0.2954545            0.2954624
14  0.2954545            0.2954624
15  0.1250000            0.1250011
16  0.1250000            0.1250011
17  0.1250000            0.1250011
18  0.2954545            0.2954624
19  0.1250000            0.1250011
20  0.1250000            0.1250011
21  0.1250000            0.1250011
22  0.1250000            0.1250011
23  0.1250000            0.1250011
24  0.1250000            0.1250011
25  0.2954545            0.2954624

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