6 votos

Intercepciones desplazadas en regresión logística

Tengo una pregunta acerca de los efectos de desplazamiento de la intersección en la logística de ajuste sobre la media de una determinada transformación de las puntuaciones.

Aquí es la notación que se utiliza para la pregunta. El modelo de regresión logística es $$ \begin{align} \mathbb{P}[Y_i =1 \mid \boldsymbol{X}_i] &= \dfrac{1}{1+\exp(-\boldsymbol{X}_i'\boldsymbol{\beta})} \\[1em] &\equiv p(\boldsymbol{X}_i; \boldsymbol{\beta}) \end{align} $$ donde $p$ es la puntuación de la función. Yo estimación de los parámetros del modelo, y denotan ellos $\widehat{\boldsymbol{\beta}}$, por lo que la estimación de las puntuaciones de la modelo se $p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})$. Estoy interesado en la media de la muestra de todas la estimación de las puntuaciones que cruzar un umbral determinado, $\delta$, dicen. Es decir, la cantidad $$ \dfrac{\sum_{i=1}^n p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\bf{1}_{\left[p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\geq \delta\right]}}{\sum_{i=1}^n\bf{1}_{\left[p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\geq \delta\right]}} $$

Now suppose that I shift the estimated linear index for all observations by the same quantity $\alpha$, and denote the transformed scores as

$$ \begin{align} q(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}}) &= \dfrac{1}{1+\exp(-(\boldsymbol{X}_i'\widehat{\boldsymbol{\beta}}+\alpha))} \\ &= \dfrac{\exp (\alpha)}{\exp (\alpha)+\exp(-\boldsymbol{X}_i'\widehat{\boldsymbol{\beta}})} \end{align} $$

Es fácil ver que si $$ \begin{alignat}{2} & \alpha &\geq& 0\\ \implies\,& \exp(\alpha) &\geq& 1\\ \implies\,& q(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}}) &\geq& p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}}) \\ \implies\,& \sum_{i=1}^n q(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\bf{1}_{\left[q(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\geq \delta\right]} &\geq& \sum_{i=1}^n p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\bf{1}_{\left[p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\geq \delta\right]}\,\text{and also,}\\ \implies & \sum_{i=1}^n\bf{1}_{\left[q(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\geq \delta\right]} &\geq& \sum_{i=1}^n\bf{1}_{\left[p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\geq \delta\right]} \end{alignat} $$ Sin embargo, dado que el denominador y el numerador tanto se vuelven más grandes de la $q$ función, es difícil saber qué pasará con la relación, $$ \dfrac{\sum_{i=1}^n p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\bf{1}_{\left[p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\geq \delta\right]}}{\sum_{i=1}^n\bf{1}_{\left[p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\geq \delta\right]}} $$ que es $$ \dfrac{\sum_{i=1}^n q(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\bf{1}_{\left[q(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\geq \delta\right]}}{\sum_{i=1}^n\bf{1}_{\left[q(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\geq \delta\right]}}\overset{?}{\lesseqqgtr} \dfrac{\sum_{i=1}^n p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\bf{1}_{\left[p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\geq \delta\right]}}{\sum_{i=1}^n\bf{1}_{\left[p(\boldsymbol{X}_i; \widehat{\boldsymbol{\beta}})\geq \delta\right]}}$$

Estoy bastante seguro de que hay un ejemplo como este en la Teoría del Punto de Estimación por Lehmann y Casella, para la univariante (no regresión caso), pero he sido incapaz de encontrarlo.


Simulaciones

Decidí simular el escenario anterior para ver si podía conseguir una intuición para este problema. Los datos de generación de proceso que he utilizado para la generación de los datos es ligeramente no-estándar, ya que quería asegurarme de que mi simulaciones fueron robustos a la distribución de la hipótesis. Puede ser útil para probar diferentes parámetros de configuraciones en la elección de unos parámetros fijos.

Aquí es el R código para las simulaciones (agradecería si alguien puede confirmar que este código está haciendo lo que creo que es).

# purpose: simulate logistic regression
# date created: 27th October 2012
# comments:
# author:
# dependencies: faraway

library(faraway)

# simulation parameters
vBeta <- rbind(0.1, 0.2, 0.3, 0.4)  # vector of coefficients
sDelta <- 0.16  # threshold for the scores
sAlpha <- 0.7  # shift in linear index

# matrix to hold the results
mResults <- matrix(0, nrow=1000, ncol=2)

for(i in seq(from=1, to=1000, by=1)) {
  # simulate the data
  mX <- matrix(rnorm(400, 4, 1), 100, 4)
  vY <- (0.4 + mX%*%vBeta + rt(n=100, df=7)>=5)
  data <- as.data.frame(cbind(vY,mX))

  # logistic regression
  resLogitFit <- glm(V1~V2+V3+V4+V5, binomial(link = "logit"), data=data)

  # save the mean of the scores that are above a certain value
  mResults[i,1] <- mean(resLogitFit$fitted.values[resLogitFit$fitted.values > sDelta])

  # effect the logit transformation on the shifted linear index
  data$shiftedScores <- ilogit(resLogitFit$linear.predictors+sAlpha)
  mResults[i, 2] <- mean(data$shiftedScores[data$shiftedScores > sDelta])
}

# plot the two means across simulations
matplot(y=mResults, type="l",ylim=c(0.2, 1), xlab="Simulation #", 
        ylab="Estimated statistic")
legend(1, 1, c("(mean) truncated scores", "(mean) shifted truncated scores"),
       cex=0.8, col=c("black","red"), lty=1:2)

# count the number of times the shifted scores exceed the older means
sum(mResults[,1] > mResults[,2])

Esto produce el siguiente gráfico, lo que parece indicar que el pasado truncado puntuaciones tienen una media más alta, aunque esto depende del cambio de parámetro.

enter image description here

Me gustaría mucho una explicación teórica para apoyar a estos resultados de la simulación.

6voto

Bill Puntos 3605

Su desplazado, promedio de la puntuación es:

\begin{align} M(X,\beta,\delta,\alpha) &= \frac{\sum_{p(X\beta+\alpha)>\delta} p(X\beta+\alpha)}{\sum \mathbf{1}_{p(X\beta+\alpha)>\delta}} \end{align}

Su pregunta es, básicamente, "Es $M$ monótonamente creciente en $\alpha$?" La respuesta es que no lo es. Una vez que usted pone la pregunta de esta manera, es fácil ver por qué no es. En "la mayoría" de los valores de $\alpha$, $M$ va a ser creciente. El numerador se aumenta en la $\alpha$ y el denominador no se ve afectada por $\alpha$. En muy pocos valores especiales de $\alpha$ (los puntos para los que $X_i\beta+\alpha=\delta$ para algunos $i$, $M$ disminuirá en $\alpha$. Por qué? Debido a que el numerador va a aumentar exactamente $\delta$ a uno de estos puntos, y el denominador también aumentará por exactamente 1 en uno de estos puntos. Dado que la fracción es mayor que $\delta$ todo el tiempo, esto va a arrastrar hacia abajo en ese punto (en efecto, de repente estás incluyendo un nuevo punto de datos en el promedio de la que sabe que es menor que el promedio fue antes de que lo incluye).

enter image description here

El poco-las garrapatas son donde los datos de la mentira. Para hacer la gráfica, he modificado ligeramente su programa R. Puedo generar un solo 100-observación del conjunto de datos. Luego me cambio es el uso de $\alpha=0$ y tomar el trunca media de las puntuaciones. Luego me cambio es el uso de $\alpha=0.001$ y el uso de la truncada media de las puntuaciones. Y así sucesivamente. Aquí es el R script:

# This program written in response to a Cross Validated question
# http://stats.stackexchange.com/questions/41267/shifted-intercepts-in-logistic-regression

# The program graphs the expectation of a shifted logit score conditional on the score passing
# some threshold.  The conditional mean is not monotonic in the shift.

library(faraway)
library(plyr)

set.seed(12344321)

# simulation parameters
vBeta <- rbind(0.1, 0.2, 0.3, 0.4)  # vector of coefficients
sDelta <- 0.16  # threshold for the scores

# simulate the data
mX <- matrix(rnorm(400, 4, 1), 100, 4)
vY <- (0.4 + mX%*%vBeta + rt(n=100, df=7)>=5)
data <- as.data.frame(cbind(vY,mX))

# logistic regression
resLogitFit <- glm(V1~V2+V3+V4+V5, binomial(link = "logit"), data=data)
raw.scores <- resLogitFit$fitted.values

# mean of scores bigger than delta:
mean(raw.scores[raw.scores>sDelta])


# Create mean greater than delta for a variety of alphas

shift.logit.mean <- function(alpha,delta,scores){
  alpha <- as.numeric(alpha)
  shifted <- ilogit(logit(scores) + alpha)
  return(mean(shifted[shifted>delta]))
}

results <- ddply(data.frame(alpha=seq(from=0,to=1000,by=1)/1000),.(alpha),
                    shift.logit.mean,delta=sDelta,scores=raw.scores)  
names(results)[2]<-"shifted.scores"

plot(results,type="l",main="Scores not monotonic in alpha")

# Now. let's artificially pile up the data right near the delta cut point:

raw.scores[1:10] <- sDelta - 1:10/1000

results <- ddply(data.frame(alpha=seq(from=0,to=1000,by=1)/1000),.(alpha),
                 shift.logit.mean,delta=sDelta,scores=raw.scores)  
names(results)[2]<-"shifted.scores"

plot(results,type="l",main="With scores piled up near delta")

Ahora que sabemos que la gráfica se va a ir abajo donde hay datos, es fácil de hacer bajar mucho. Acaba de modificar los datos, por lo que un montón de puntuaciones son sólo un poco menos de $\delta$ (o, en realidad, sólo agrupados juntos en cualquier punto a la izquierda de la original punto de corte). El R script anterior hace que, y aquí es lo que obtienes:

enter image description here

Me tengo que ir realmente rápido para valores bajos de $\alpha$ al acumular puntajes justo a la izquierda de $\delta$, el punto de corte.

OK, así que sabemos que, en teoría, no va a ser cualquier monotonía resultado. ¿Qué podemos decir? No mucho, creo. Obviamente, una vez $\alpha$ hace tan grande que todas las puntuaciones de pasar el punto de corte, la función va a ser monótono y va a aymptote en 1. De eso se trata, aunque. Usted puede hacer la función de ir hacia abajo, en promedio, a nivel local por poner un montón de puntos de datos allí. Usted puede hacer la función de subir a nivel local por no poner todos los puntos de datos allí.

Ahora, supongamos que tenemos un gran conjunto de datos, por lo que sería ACEPTAR a la aproximación de las sumas por integrales ($f(X)$ es el multivariante de la densidad de $X$):

\begin{align} M(X,\beta,\delta,\alpha) &= \frac{\int_{p(X\beta+\alpha)>\delta} p(X\beta+\alpha) f(X)}{\int_{p(X\beta+\alpha)>\delta}f(X)} \end{align}

Los derivados de este en $\alpha$ es feo. Sin embargo, se obtiene el mismo resultado. En $\alpha$s para los cuales el denominador es el aumento de un lote (donde $f(X)$ es alta), usted puede obtener un negativo derivado.

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