3 votos

Normalización de la población en la regresión

Actualmente estoy interesado en estudiar la relación entre el número de universidades en un estado y un índice económico por estado. Sin embargo, se me ocurre que el número de universidades en un estado puede estar correlacionado con la población. Después de investigar la correlación, se encontró que era de 0,82.

Si divido el número de universidades por la población de ese estado, mi preocupación es si tiene sentido para la interpretación. Cada valor de esta variable recién construida es aproximadamente 0,000001. ¿Hay algún otro método que deba considerar para normalizar la población?

3voto

Ben Puntos 129

El hecho de que una variable -llámese $N_i$ - definida como "número de universidades en un estado dividido por la población del estado" toma valores muy pequeños no debería ser un problema. Significará que las diferencias absolutas de valores entre estados serán muy pequeñas, pero eso no importa. Lo que importa para una regresión son los proporcional diferencias de valores. Supongamos, por ejemplo, que para dos estados $j$ y $k$ , $N_j=0.0000010$ y $N_k=0.0000012$ . Entonces $N_k$ es un 20% mayor que $N_j$ . Si en lugar de ello se adoptara la sugerencia de Henry, de modo que los valores se convirtieran en $1.0$ y $1.2$ la diferencia proporcional seguiría siendo del 20%.

Suponga ahora que estima una ecuación de regresión:

$$N_i = \beta_0 + \beta_1 E_i + \epsilon_i$$

donde $E_i$ es un índice económico, el $\beta$ son parámetros a estimar, y $\epsilon_i$ es el término de error. (Estoy asumiendo aquí que $N_i$ se toma como variable dependiente). Los valores pequeños de la $N_i$ no le impedirá ejecutar dicha regresión. Sólo significarán que el $\beta$ también será pequeño (aunque lo pequeño que sea también dependerá de los valores de $E_i$ ). Como siempre ocurre con las regresiones, otras cuestiones serán si el valor estimado de $\beta_1$ es significativamente diferente de cero y, en caso afirmativo, si la relación estimada puede tener una interpretación causal.

2voto

Khb Puntos 1002

Teóricamente no importa, como demostró @Adam Bailey (siempre que se ignore la teoría informática).

Siendo realistas, importa bastante por al menos dos razones:

  • ¿cómo interpreta su coeficiente? Como ser humano, ¿prefiere escuchar que hay 1,2 universidades por cada millón de habitantes en una ciudad, o le resulta más fácil comprender que hay 0,000001 por persona? Personalmente, esto último me parece bastante desolador. La mayoría de las veces (por ejemplo google camas de hospital per cápita ), los valores reportados serán escalados a algo que los humanos puedan comprender.

  • Como señaló @BrsG, los ordenadores pueden ser su enemigo aquí. Utilizan predominantemente la matemática de punto flotante (y si tratas con números grandes, la aritmética de enteros también te morderá). Esto puede ser un poco esotérico sin ejemplos, pero se puede mostrar rápidamente con el código. Respondí a una pregunta sobre si el "la función de valor futuro está rota" hace algún tiempo que está relacionado con esto. Sin embargo, probablemente sea mejor utilizar un ejemplo de regresión real.

Utilizaré lo más sencillo posible y me limitaré a copiar y pegar de la OLS de Wikipedia ejemplo . Uno puede pensar que OLS será OLS, sin importar la implementación o el lenguaje que se utilice, pero eso no es generalmente cierto. Las estimaciones por mínimos cuadrados cumplen la condición de que el residuo es ortogonal a las columnas de $\mathbf{X}$ . $$ \mathbf{X^\prime (y - X\widehat{\beta})} = \mathbf{0} $$ que puede reescribirse como $$ \mathbf{X^\prime X}\widehat{\mathbf{\beta}}=\mathbf{X^\prime y} $$ Resolver para $\beta$ proporciona las fórmulas estándar de los libros de texto para la estimación por mínimos cuadrados calculada como $$ \widehat{\mathbf{\beta}}=\mathbf{X^\prime X}^{-1}\mathbf{X^\prime y}. $$

Decidí utilizar Julia porque es un lenguaje muy flexible y de lectura intuitiva, incluso si no se está familiarizado con el propio lenguaje.

# manually create the data from the Wikipedia example 
using DataFrames, GLM, LinearAlgebra
height = [1.47,1.50,1.52,1.55,1.57,1.60,1.63,1.65,1.68,1.70,1.73,1.75,1.78,1.80,1.83]
weight = [52.21,53.12,54.48,55.84,57.20,58.57,59.93,61.29,63.11,64.47,66.28,68.10,69.92,72.19,74.46]

data = DataFrame(weight=weight,height=height, height2 = height.^2)

enter image description here

El ejemplo simple de la Wiki es así: enter image description here

Si no quiere un paquete, sino que prefiere la vieja forma manual, puede utilizar varios procedimientos. La forma habitual de definir una operación de "división" para matrices es definir $A / B =

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X