Saya membuat pengukuran dua variabel dan . Mereka berdua mengetahui ketidakpastian dan terkait dengannya. Saya ingin menemukan hubungan antara dan . Bagaimana saya bisa melakukannya?x y σ x σ y x y
EDIT : setiap memiliki terkait dengannya, dan sama dengan .σ x , i y i
Contoh R yang dapat direproduksi:
## pick some real x and y values
true_x <- 1:100
true_y <- 2*true_x+1
## pick the uncertainty on them
sigma_x <- runif(length(true_x), 1, 10) # 10
sigma_y <- runif(length(true_y), 1, 15) # 15
## perturb both x and y with noise
noisy_x <- rnorm(length(true_x), true_x, sigma_x)
noisy_y <- rnorm(length(true_y), true_y, sigma_y)
## make a plot
plot(NA, xlab="x", ylab="y",
xlim=range(noisy_x-sigma_x, noisy_x+sigma_x),
ylim=range(noisy_y-sigma_y, noisy_y+sigma_y))
arrows(noisy_x, noisy_y-sigma_y,
noisy_x, noisy_y+sigma_y,
length=0, angle=90, code=3, col="darkgray")
arrows(noisy_x-sigma_x, noisy_y,
noisy_x+sigma_x, noisy_y,
length=0, angle=90, code=3, col="darkgray")
points(noisy_y ~ noisy_x)
## fit a line
mdl <- lm(noisy_y ~ noisy_x)
abline(mdl)
## show confidence interval around line
newXs <- seq(-100, 200, 1)
prd <- predict(mdl, newdata=data.frame(noisy_x=newXs),
interval=c('confidence'), level=0.99, type='response')
lines(newXs, prd[,2], col='black', lty=3)
lines(newXs, prd[,3], col='black', lty=3)
Masalah dengan contoh ini adalah saya pikir itu mengasumsikan bahwa tidak ada ketidakpastian dalam . Bagaimana saya bisa memperbaikinya?
r
regression
deming-regression
rhombidodecahedron
sumber
sumber
lm
cocok dengan model regresi linier, yaitu: model ekspektasi terhadap , di mana jelas adalah acak dan dianggap dikenal. Untuk menghadapi ketidakpastian dalam Anda membutuhkan model yang berbeda. P ( Y | X ) Y X XDeming
fungsi dalam paket R MethComp .Jawaban:
Garis yang benar ditampilkan dalam titik-titik biru. Sepanjang itu titik-titik aslinya diplot sebagai lingkaran kosong. Panah abu-abu menghubungkannya ke titik yang diamati, diplot sebagai cakram hitam pekat. Solusinya digambarkan sebagai garis merah solid. Meskipun ada penyimpangan besar antara nilai-nilai yang diamati dan aktual, solusinya sangat dekat dengan garis yang benar dalam wilayah ini.
sumber
deming
fungsi dapat menangani kesalahan variabel juga. Mungkin harus menghasilkan cocok sangat mirip dengan milikmu.Optimalisasi kemungkinan maksimum untuk kasus ketidakpastian x dan y telah ditangani oleh York (2004). Berikut adalah kode R untuk fungsinya.
"YorkFit", ditulis oleh Rick Wehr, 2011, diterjemahkan ke dalam R oleh Rachel Chang
Rutin universal untuk menemukan garis lurus terbaik sesuai dengan data dengan variabel, kesalahan berkorelasi, termasuk estimasi kesalahan dan goodness of fit, mengikuti Persamaan. (13) dari York 2004, American Journal of Physics, yang didasarkan pada York 1969, Earth and Planetary Sciences Letters
YorkFit <- fungsi (X, Y, Xstd, Ystd, Ri = 0, b0 = 0, printCoefs = 0, makeLine = 0, eps = 1e-7)
X, Y, Xstd, Ystd: gelombang yang berisi titik X, titik Y, dan deviasi standar mereka
PERINGATAN: Xstd dan Ystd tidak boleh nol karena ini akan menyebabkan Xw atau Yw menjadi NaN. Gunakan nilai yang sangat kecil sebagai gantinya.
Ri: koefisien korelasi untuk kesalahan X dan Y - panjang 1 atau panjang X dan Y
b0: tebakan awal kasar untuk kemiringan (dapat diperoleh dari standar kuadrat-terkecil tanpa kesalahan)
printCoefs: set sama dengan 1 untuk menampilkan hasil di jendela perintah
makeLine: set sama dengan 1 untuk menghasilkan gelombang Y untuk garis fit
Mengembalikan matriks dengan intersep dan kemiringan ditambah ketidakpastiannya
Jika tidak ada tebakan awal untuk b0, maka gunakan saja OLS jika (b0 == 0) {b0 = lm (Y ~ X) $ koefisien [2]}
a, b: intersep dan kemiringan akhir a.err, b.err: estimasi ketidakpastian dalam intersep dan kemiringan
sumber