Estoy corriendo una regresión en los datos del censo de donde mi variable dependiente es la esperanza de vida y tengo ocho variables independientes. Los datos agregados, ciudades, así que tengo muchos miles de observaciones.

Mi modelo es un poco heteroscedastic aunque. Quiero ejecutar un promedio ponderado de los mínimos cuadrados, donde cada observación es ponderado por la población de la ciudad. En este caso, significaría que quiero de peso de las observaciones por la inversa de la raíz cuadrada de la población. Es claro para mí, sin embargo, cuál sería el mejor de la sintaxis. Actualmente, tengo:

Model=lm(,weights=(1/population))

¿Es correcto? O debería ser:

Model=lm(,weights=(1/sqrt(population)))

(He encontrado esta pregunta aquí: Mínimos Cuadrados Ponderados – R pero no aclara cómo R interpreta los pesos argumento.)

Si quieres peso por la inversa de la raíz cuadrada de la población, ¿cuál sería el argumento para la opción 1 a través de la opción 2?
Creo que es la raíz de la pregunta – ¿R interpretar los pesos argumento más?

OriginalEl autor Lucas De Abreu Maia | 2013-08-15

2 Comentarios

  1. 2

    Para responder a su pregunta, Lucas, creo que quiere que los pesos=(1/población). R parametriza las pesas como inversamente proporcional a las variaciones, por lo que la especificación de los pesos de esta manera equivale a asumir que la varianza del término de error es proporcional a la población de la ciudad, que es una suposición común en esta configuración.

    Pero verificación de la asunción! Si la varianza del término de error de hecho es proporcional al tamaño de la población, entonces si se divide cada uno de los residuales por la raíz cuadrada de su correspondiente tamaño de la muestra, los residuos deben tener varianza constante. Recuerde, la división de una variable aleatoria por una constante de los resultados en la varianza de ser dividido por el cuadrado de la constante.

    He aquí cómo usted puede comprobar esto: Obtener los residuos de la regresión por

    residuals = lm(..., weights = 1/population)$residuals

    A continuación, dividir los residuos por la raíz cuadrada de la población variaciones:

    standardized_residuals = residuals/sqrt(population)

    Para luego comparar la varianza de la muestra entre los residuos correspondientes a la parte inferior de la mitad de tamaño de la población:

    variance1 = var(standardized_residuals[population < median(population)])

    a la varianza de la muestra entre los residuos correspondiente a la mitad superior de tamaños de la población:

    variance2 = var(standardized_residuals[population > median(population)])

    Si estos dos números, variance1 y variance2 son similares, entonces usted está haciendo algo bien. Si son drásticamente diferentes, entonces tal vez tu suposición es violado.

    OriginalEl autor Scott Powers

  2. 2

    De ?lm: «pesas: opcional, un vector de pesos para ser utilizados en el proceso de montaje. Debe ser NULL o un vector numérico. Si no NULO, mínimos cuadrados ponderados se utiliza con pesos weights (es decir, la minimización de la suma(w*e^2)); de lo contrario mínimos cuadrados ordinarios.» R no realizar ninguna interpretación de los pesos argumento.

    Por lo tanto, si lo que desea es minimizar la suma de (el cuadrado de la distancia de cada punto a la línea de ajuste * 1/sqrt(de la población), a continuación, desea ...weights=(1/sqrt(population)). Si usted desea reducir al mínimo la suma de (el cuadrado de la distancia de cada punto a la línea de ajuste * 1/población), a continuación, desea ...weights=1/population.

    De cuál de ellas es la más adecuada… esa es una pregunta para CrossValidated!

    OriginalEl autor Drew Steen

Dejar respuesta

Please enter your comment!
Please enter your name here