21 votos

Cómo utilizar los pesos en función de la lm en R?

Alguien podría ofrecer algunos consejos sobre cómo utilizar el weights argumento en R lm a la función? Decir, por ejemplo, que estaban tratando de ajustar un modelo a los datos de tráfico, y que había varios cientos de filas, cada una de las cuales representaba una ciudad (con una población diferente). Si se quiere que el modelo para ajustar la influencia relativa de cada observación con base en el tamaño de la población, podría simplemente especificar weights=[the column containing the city's population]? Es que el tipo de vector que puede ir en weights? O se tendría que utilizar otra función de R/paquete/enfoque totalmente?

Curioso oír cómo la gente hacer frente a este uno no ve cubierto en cualquiera de los modelos lineales tutoriales que he visto por ahí. Gracias!

17voto

Marc-Andre R. Puntos 789

Creo que la R de la página de ayuda de lm respuestas a su pregunta bastante bien. El único requisito para los pesos es que el vector suministrado debe ser de la misma longitud que la de los datos. Usted puede incluso suministro sólo el nombre de la variable en el conjunto de datos, R se encargará del resto, NA de gestión, etc. También puede utilizar las fórmulas de la weight argumento. Aquí está el ejemplo:

x <-c(rnorm(10),NA)
df <- data.frame(y=1+2*x+rnorm(11)/2,x=x,wght1=1:11)

##Fancy weights as numeric vector
summary(lm(y~x,data=df,weights=(df$wght1)^(3/4))) 

#Fancy weights as formula on column of the data set
summary(lm(y~x,data=df,weights=I(wght1^(3/4))))

#Mundane weights as the column of the data set
summary(lm(y~x,data=df,weights=wght1)

Tenga en cuenta que los pesos debe ser positivo, de lo contrario, R, se producirá un error.

3voto

Alan Puntos 7273

Lo que se sugiere que debe trabajar. A ver si esto tiene sentido:

lm(c(8000, 50000, 116000) ~ c(6, 7, 8))
lm(c(8000, 50000, 116000) ~ c(6, 7, 8), weight = c(123, 123, 246))
lm(c(8000, 50000, 116000, 116000) ~ c(6, 7, 8, 8))

La segunda línea produce el mismo intercepto y de la pendiente como la tercera línea (distinta de la primera línea del resultado), dando una observación relativamente dos veces el peso de cada uno de los otros dos observaciones, similar al impacto de la duplicación de la tercera observación.

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