Katakanlah saya memiliki data yang memiliki ketidakpastian. Sebagai contoh:
X Y
1 10±4
2 50±3
3 80±7
4 105±1
5 120±9
Sifat ketidakpastian dapat berupa pengukuran ulang atau eksperimen, atau misalnya ketidakpastian instrumen pengukuran.
Saya ingin menyesuaikan kurva menggunakan R, sesuatu yang biasanya saya lakukan lm
. Namun, ini tidak memperhitungkan ketidakpastian dalam data saat itu memberi saya ketidakpastian dalam koefisien fit, dan akibatnya interval prediksi. Melihat dokumentasi, lm
halaman memiliki ini:
... bobot dapat digunakan untuk menunjukkan bahwa pengamatan yang berbeda memiliki varian yang berbeda ...
Jadi itu membuat saya berpikir bahwa mungkin ini ada hubungannya dengan itu. Saya tahu teori melakukannya secara manual, tetapi saya bertanya-tanya apakah mungkin melakukan itu dengan lm
fungsinya. Jika tidak, apakah ada fungsi lain (atau paket) yang mampu melakukan ini?
EDIT
Melihat beberapa komentar, berikut adalah beberapa klarifikasi. Ambil contoh ini:
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)
Memberi saya:
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
Jadi pada dasarnya, koefisien saya adalah a = 39,8 ± 22,3, b = 92,0 ± 9,3, c = -4,3 ± 0,8. Sekarang katakanlah untuk setiap titik data, kesalahannya adalah 20. Saya akan menggunakan weights = rep(20,10)
dalam lm
panggilan dan saya mendapatkan ini sebagai gantinya:
Residual standard error: 84.87 on 7 degrees of freedom
tetapi kesalahan std pada koefisien tidak berubah.
Secara manual, saya tahu bagaimana cara melakukannya dengan menghitung matriks kovarians menggunakan aljabar matriks dan meletakkan bobot / kesalahan di sana, dan menurunkan interval kepercayaan menggunakan itu. Jadi apakah ada cara untuk melakukannya dalam fungsi lm itu sendiri, atau fungsi lainnya?
lm
akan menggunakan varians yang dinormalisasi sebagai bobot dan kemudian menganggap bahwa model Anda secara statistik valid untuk memperkirakan ketidakpastian parameter. Jika Anda berpikir bahwa ini bukan masalahnya (bilah kesalahan terlalu kecil atau terlalu besar), Anda tidak boleh mempercayai perkiraan ketidakpastian.
boot
paket di R. Setelah itu Anda bisa membiarkan regresi linier berjalan di atas set data bootstrap.