Digamos que tengo datos que tienen cierta incertidumbre. Por ejemplo:
X Y
1 10±4
2 50±3
3 80±7
4 105±1
5 120±9
La naturaleza de la incertidumbre podría ser repetir mediciones o experimentos, o medir la incertidumbre del instrumento, por ejemplo.
Me gustaría ajustar una curva con R, algo que normalmente haría con lm
. Sin embargo, esto no tiene en cuenta la incertidumbre en los datos cuando me da la incertidumbre en los coeficientes de ajuste y, en consecuencia, los intervalos de predicción. Mirando la documentación, la lm
página tiene esto:
... los pesos se pueden usar para indicar que diferentes observaciones tienen diferentes variaciones ...
Entonces me hace pensar que quizás esto tenga algo que ver con eso. Conozco la teoría de hacerlo manualmente, pero me preguntaba si es posible hacerlo con la lm
función. Si no, ¿hay alguna otra función (o paquete) que sea capaz de hacer esto?
EDITAR
Al ver algunos de los comentarios, aquí hay algunas aclaraciones. Toma este ejemplo:
x <- 1:10
y <- c(131.4,227.1,245,331.2,386.9,464.9,476.3,512.2,510.8,532.9)
mod <- lm(y ~ x + I(x^2))
summary(mod)
Me da
Residuals:
Min 1Q Median 3Q Max
-32.536 -8.022 0.087 7.666 26.358
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 39.8050 22.3210 1.783 0.11773
x 92.0311 9.3222 9.872 2.33e-05 ***
I(x^2) -4.2625 0.8259 -5.161 0.00131 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 18.98 on 7 degrees of freedom
Multiple R-squared: 0.986, Adjusted R-squared: 0.982
F-statistic: 246.7 on 2 and 7 DF, p-value: 3.237e-07
Básicamente, mis coeficientes son a = 39.8 ± 22.3, b = 92.0 ± 9.3, c = -4.3 ± 0.8. Ahora digamos que para cada punto de datos, el error es 20. Usaré weights = rep(20,10)
en la lm
llamada y en su lugar obtendré esto:
Residual standard error: 84.87 on 7 degrees of freedom
pero los errores estándar en los coeficientes no cambian.
Manualmente, sé cómo hacerlo calculando la matriz de covarianza usando álgebra matricial y colocando los pesos / errores allí, y derivando los intervalos de confianza usando eso. Entonces, ¿hay alguna manera de hacerlo en la función lm misma o en cualquier otra función?
lm
utilizará las variaciones normalizadas como pesos y luego asumirá que su modelo es estadísticamente válido para estimar la incertidumbre de los parámetros. Si cree que este no es el caso (barras de error demasiado pequeñas o demasiado grandes), no debe confiar en ninguna estimación de incertidumbre.
boot
paquete en R. Luego, puede dejar que una regresión lineal se ejecute sobre el conjunto de datos de inicialización.