He creado un script como el siguiente para hacer algo que se llama como la regresión "ponderada":regresión "ponderada" en I
library(plyr)
set.seed(100)
temp.df <- data.frame(uid=1:200,
bp=sample(x=c(100:200),size=200,replace=TRUE),
age=sample(x=c(30:65),size=200,replace=TRUE),
weight=sample(c(1:10),size=200,replace=TRUE),
stringsAsFactors=FALSE)
temp.df.expand <- ddply(temp.df,
c("uid"),
function(df) {
data.frame(bp=rep(df[,"bp"],df[,"weight"]),
age=rep(df[,"age"],df[,"weight"]),
stringsAsFactors=FALSE)})
temp.df.lm <- lm(bp~age,data=temp.df,weights=weight)
temp.df.expand.lm <- lm(bp~age,data=temp.df.expand)
Se puede ver que en temp.df
, cada fila tiene su peso, lo Quiero decir es que hay un total de 1178 muestras, pero para las filas con el mismo bp
y age
, se fusionan en 1 fila y se representan en la columna weight
.
I utiliza los parámetros weight
en la función lm
, entonces cruzo comprobar el resultado con otra trama de datos que el temp.df
trama de datos se "expande". Pero encontré las salidas lm
diferentes para el cuadro de datos 2.
¿He interpretan mal los parámetros weight
en lm
función, y puede alguien que me haga saber cómo corro de regresión correctamente (es decir, sin la ampliación de la trama de datos de forma manual) para un conjunto de datos presentados como temp.df
? Gracias.
Las dos regresiones arrojan resultados idénticos para mí. –
ver el resultado 'resumen', son diferentes – lokheart
Los coeficientes son los mismos, pero los valores p son realmente diferentes. Supongo que sucede lo siguiente. Cuando expande los datos, se supone que las observaciones son independientes: dado que hay una gran cantidad de datos, puede tener mucha confianza en las estimaciones y los valores de p son bajos. Al usar pesos, el número de observaciones sigue siendo pequeño, y los valores de p son altos. –