Digamos que eu tenha dados que tenham alguma incerteza. Por exemplo:
X Y
1 10±4
2 50±3
3 80±7
4 105±1
5 120±9
A natureza da incerteza pode ser repetir medições ou experimentos, ou medir a incerteza do instrumento, por exemplo.
Eu gostaria de ajustar uma curva usando R, algo com o qual normalmente faria lm
. No entanto, isso não leva em consideração a incerteza nos dados quando me fornece a incerteza nos coeficientes de ajuste e, consequentemente, nos intervalos de previsão. Observando a documentação, a lm
página possui:
... pesos podem ser usados para indicar que observações diferentes têm variações diferentes ...
Então, isso me faz pensar que talvez isso tenha algo a ver com isso. Conheço a teoria de fazê-lo manualmente, mas estava pensando se é possível fazer isso com a lm
função. Caso contrário, existe alguma outra função (ou pacote) capaz de fazer isso?
EDITAR
Vendo alguns dos comentários, aqui estão alguns esclarecimentos. Veja este exemplo:
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)
Dá-me:
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
Então, basicamente, meus coeficientes são a = 39,8 ± 22,3, b = 92,0 ± 9,3, c = -4,3 ± 0,8. Agora vamos dizer que, para cada ponto de dados, o erro é 20. Usarei weights = rep(20,10)
a lm
chamada e recebo isso:
Residual standard error: 84.87 on 7 degrees of freedom
mas os erros padrão nos coeficientes não são alterados.
Manualmente, eu sei como fazer isso com o cálculo da matriz de covariância usando álgebra de matriz e colocando os pesos / erros lá, e derivando os intervalos de confiança usando isso. Então, existe uma maneira de fazê-lo na própria função lm ou em qualquer outra função?
lm
usará as variações normalizadas como pesos e assumirá que seu modelo é estatisticamente válido para estimar a incerteza dos parâmetros. Se você acha que esse não é o caso (barras de erro muito pequenas ou muito grandes), não confie em nenhuma estimativa de incerteza.
boot
pacote em R. Depois, você pode permitir uma regressão linear sobre o conjunto de dados inicializados.