Disons que j'ai des données qui ont une certaine incertitude. Par exemple:
X Y
1 10±4
2 50±3
3 80±7
4 105±1
5 120±9
La nature de l'incertitude pourrait être des mesures ou des expériences répétées, ou la mesure de l'incertitude des instruments par exemple.
Je voudrais lui adapter une courbe en utilisant R, quelque chose que je ferais normalement avec lm
. Cependant, cela ne prend pas en compte l'incertitude dans les données lorsqu'elle me donne l'incertitude sur les coefficients d'ajustement, et par conséquent les intervalles de prédiction. En regardant la documentation, la lm
page a ceci:
... les poids peuvent être utilisés pour indiquer que différentes observations ont des variances différentes ...
Cela me fait donc penser que cela a peut-être quelque chose à voir avec cela. Je connais la théorie de le faire manuellement, mais je me demandais s'il était possible de le faire avec la lm
fonction. Sinon, existe-t-il une autre fonction (ou package) capable de le faire?
ÉDITER
En voyant certains des commentaires, voici quelques éclaircissements. Prenez cet exemple:
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)
Donne moi:
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
Donc, fondamentalement, mes coefficients sont a = 39,8 ± 22,3, b = 92,0 ± 9,3, c = -4,3 ± 0,8. Disons maintenant que pour chaque point de données, l'erreur est de 20. J'utiliserai weights = rep(20,10)
dans l' lm
appel et j'obtiens ceci à la place:
Residual standard error: 84.87 on 7 degrees of freedom
mais les erreurs std sur les coefficients ne changent pas.
Manuellement, je sais comment le faire en calculant la matrice de covariance en utilisant l'algèbre matricielle et en y mettant les poids / erreurs, et en dérivant les intervalles de confiance en utilisant cela. Existe-t-il un moyen de le faire dans la fonction lm elle-même, ou dans toute autre fonction?
lm
utilisera les variances normalisées comme poids, puis supposera que votre modèle est statistiquement valide pour estimer l'incertitude des paramètres. Si vous pensez que ce n'est pas le cas (barres d'erreur trop petites ou trop grandes), vous ne devriez pas faire confiance à une estimation d'incertitude.
boot
package dans R. Ensuite, vous pouvez laisser une régression linéaire s'exécuter sur l'ensemble de données amorcé.