¿Cómo manejo variables predictoras de diferentes distribuciones en regresión logística?

8

Estoy usando regresión logística para predecir y dado x1 y x2:

z = B0 + B1 * x1 + B2 * x2
y = e^z / (e^z + 1)

¿Cómo se supone que la regresión logística maneja los casos en que mis variables tienen escalas muy diferentes? ¿Alguna vez las personas construyen modelos de regresión logística con coeficientes de orden superior para las variables? Me estoy imaginando algo como esto (para dos variables):

z = B0 + B1 * x1 + B2 * x1^2 + B3 * x2 + B4 * x2^2

Alternativamente, ¿es la respuesta correcta simplemente normalizar, estandarizar o reescalar los valores x1 y x2 antes de usar la regresión logística?

James Thompson
fuente

Respuestas:

6

Por supuesto, puede normalizar sus parámetros, esto también aumentaría la velocidad del algoritmo de aprendizaje.

Para tener comparables β al final de la ejecución del algoritmo debe, para cada característica xi, calcule su media μi y su alcance ri=maximinyo. Luego, cambia cada valor de , es decir, el valor de la característica para un registro , con: Ahora tus valores de se encuentran en el intervalo [- 1,1], para que pueda comparar su con más confianza y, por lo tanto, su odds ratio. Esto también acorta el tiempo para encontrar el mejor conjunto de si está utilizando el descenso de gradiente. Solo recuerde normalizar sus funciones si desea predecir la clase de un nuevo registro .r[xyo]Xyor

r[Xyo]-μyoryo
r[Xyo]ββr

También puede agregar características de orden superior, pero esto conduce a un sobreajuste. Por lo general, siempre que agregue más parámetros es mejor agregar regularización, que trate de evitar el sobreajuste disminuyendo la magnitud de su . Esto se obtiene agregando este término a la función de costo de regresión logística donde sintoniza el poder de la regularización.β

λyo=0 0norteβyo2
λ

Sugeriría echar un vistazo a las clases de Stanford sobre aprendizaje automático aquí: http://www.ml-class.org/course/video/preview_list , Unit 6 and 7.

Simone
fuente
sólo para aclarar, cuando se dice para normalizar un nuevo registro R', se utiliza edad y derivada de los datos originales, correcto? Graciasmetrotuyoryo
FMZ
Sí lo es. Debe usar y calculados en el conjunto de entrenamiento para normalizar los valores de un nuevo registro. PD: también puede usar la desviación estándar de su función lugar de . μyoryoXyoryo
Simone
6

@Simone hace algunos buenos puntos, así que solo agregaré un par de cositas complementarias. Aunque la normalización puede ayudar con cosas como la velocidad, la regresión logística no hace suposiciones sobre las distribuciones de las variables predictoras. Por lo tanto, no tiene que normalizarse. En segundo lugar, si bien agregar un término al cuadrado puede conducir a un sobreajuste (y debe ser cauteloso al respecto) es permisible. Lo que eso significaría es que la probabilidad de éxito es mayor en el medio del rango de un predictor que en los extremos (o viceversa).

gung - Restablece a Monica
fuente
4

En teoría, la escala de sus entradas es irrelevante para la regresión logística. Puede "teóricamente" multiplicar por y la estimación de se ajustará en consecuencia. Será veces más pequeño que el original , debido a la propiedad de invariancia de los MLE.X110101010β110-101010β1

Pero intente hacer que R haga la regresión ajustada anterior: se asustará (ni siquiera podrá construir la matriz X).

Esto es un poco como el algoritmo de descomposición cholesky para calcular una raíz cuadrada de matriz. Sí, en matemáticas exactas , la descomposición cholesky nunca implica tomar la raíz cuadrada de un número negativo, sino redondear los errores, y la aritmética de coma flotante puede conducir a tales casos.

Puede tomar cualquier combinación lineal de sus variables X, y los valores pronosticados serán los mismos.

Si tomamos el consejo de @ simone y utilizamos las variables X reescaladas para ajustar el modelo . Pero podemos usar la propiedad de invariancia de MLE para obtener la beta que queremos, después de usar variables de entrada X numéricamente estables. Puede ser que la beta en la escala original sea más fácil de interpretar que la beta en la transformada de @ simone. Entonces, tenemos el transformado ( th observación para la ésima variable), llámelo , definido por:XyojyojX~yoj

X~yoj=unajXyoj+sij

La elección de @ simone corresponde a y (usando para denotar la estadística de orden de la variable , es decir ). El y pueden ser considerados como parámetros del algoritmo (elegidos para hacer el algoritmo más estable y / o correr más rápido). Luego ajustamos una regresión logística usando , y obtenemos estimaciones de parámetros . Así escribimos el predictor lineal:unaj=1X[norte]j-X[1]jsij=X¯jX[norte]j-X[1]jX[yo]jyojX[norte]jX[norte-1]jX[1]junajsijX~yojβ~j

zyo=β~0 0+jX~yojβ~j

Ahora sustituya la ecuación por y obtendrá:X~yoj

zyo=β~0 0+j(unajXyoj+sij)β~j=β0 0+jXyojβj
Donde
β0 0=β~0 0+jsijβ~jβj=unajβ~j

Puede ver que, en teoría, los parámetros no hacen ninguna diferencia: cualquier elección (aparte de ) conducirá a la misma probabilidad, porque el predictor lineal no cambia. Incluso funciona para transformaciones lineales más complicadas, como la representación de la matriz X por sus componentes principales (que implica rotaciones). Entonces podemos volver a transformar los resultados para obtener las versiones beta que queremos para la interpretación.unaj,sijunaj=0 0

probabilidadislogica
fuente
Buena prueba teórica. Sin normalización, los odds ratios tienen un significado realmente práctico. Sin embargo, a veces los profesionales usan esas razones de probabilidad para evaluar la importancia de esa característica, y de alguna manera es engañoso porque una característica puede ser significativa pero también puede variar en un rango amplio y, por lo tanto, tener una razón de probabilidad baja. Con la normalización son inmediatamente comparables incluso si pierden su significado práctico. Por supuesto, se debe realizar una prueba estadística para evaluar la importancia de una característica.
Simone