Apakah mungkin untuk menghitung R-kuadrat pada total regresi kuadrat terkecil?


8

Saya menggunakan fungsi Deming yang disediakan oleh Terry T. pada utas arsip r-help ini . Saya membandingkan dua metode, jadi saya memiliki data yang terlihat seperti ini:

y  x     stdy   stdx
1  1.2   0.23   0.67
2  1.8   0.05   0.89
4  7.5   1.13   0.44
... ...  ...   ...

Saya telah melakukan regresi Deming saya (juga disebut "total kuadrat regresi") dan saya mendapatkan kemiringan dan mencegat. Saya ingin mendapatkan koefisien korelasi jadi saya mulai menghitungR2. Saya telah memasukkan formula secara manual:

R2 <- function(coef,i,x,y,sdty){
    predy    <- (coef*x)+i
    stdyl    <- sum((y-predy)^2)   ### The calculated std like if it was a lm (SSres)
    Reelstdy <- sum(stdy)          ### the real stdy from the data  (SSres real)
    disty    <- sum((y-mean(y))^2) ### SS tot
    R2       <- 1-(stdyl/disty)    ### R2 formula
    R2avecstdyconnu <- 1-(Reelstdy/disty) ### R2 with the known stdy
    return(data.frame(R2, R2avecstdyconnu, stdy, Reelstdy))
}

Formula ini berfungsi dan memberi saya output.

  • Yang mana dari keduanya R2Apakah lebih masuk akal? (Saya pribadi menganggap keduanya bias.)
  • Apakah ada cara untuk mendapatkan koefisien korelasi dari total regresi kuadrat terkecil?

OUTPUT DARI REGRESI PERMINTAAN:

Call:
deming(x = Data$DS, y = Data$DM, xstd = Data$SES, ystd = Data$SEM,     dfbeta = T)

               Coef  se(coef)         z            p
Intercept 0.3874572 0.2249302 3.1004680 2.806415e-10
Slope     1.2546922 0.1140142 0.8450883 4.549709e-02

   Scale= 0.7906686 
> 

2
Karena koefisien korelasi dapat dihitung tanpa referensi regresi sama sekali, dapatkah Anda menjelaskan apa yang Anda maksud dengan "koefisien korelasi"? Saya mencoba mencari tahu apakah Pearsonρ akan menjawab pertanyaan Anda atau jika Anda mungkin mencari semacam "koefisien determinasi" untuk dijadikan analog untuk kuadrat terkecil R2. Jika ini yang terakhir, apa yang Anda harapkan dari analog ini?
whuber

Saya mencoba melihat seberapa baik Anda berkorelasi dengan x. Saya telah menambahkan output saya ke pertanyaan dari regresi deming (total least squared regression) Saya ingin dapat mengatakan bahwa kedua metode memberikan hasil yang serupa dengan kata lain.
Nico Coallier

Jawaban:


6

Untuk menguraikan jawaban whuber di atas - Pearson akan memberikan apa yang Anda inginkan. Ini menentukan seberapa baik y berkorelasi dengan x menggunakan pendekatan yang independen dari model regresi :

ρX,Y=cov(X,Y)σXσY

gx.rma dari paket rgr akan melakukan total kuadrat terkecil dan menghitung Pearson untuk Anda (atau Anda dapat melanjutkan dengan Deming dan melakukannya secara manual).

require(rgr)
set.seed(3)
x<-rnorm(101,mean=2.3,sd=4.2)
x<-x+seq(0,100) 
set.seed(3)
y<-rnorm(101,mean=4.9,sd=1.9)
y<-y+seq(6,206,length=101)

rma<-gx.rma(x,y)
rma$corr
[1] 0.9922014

Jadi, jawaban dasar untuk pertanyaan Anda adalah, ketika melakukan kuadrat terkecil total, lupakan R-kuadrat dan gunakan saja Pearson. Anda selalu dapat menguadratinya jika Anda menginginkan hasil antara 0 dan 1. Ini akan melakukan semua yang Anda butuhkan.

Karena itu, saya akan menguraikan sedikit karena saya mengerti rasanya kita harus dapat menghitung setara R-squared.

Pertama, mari kita coba jumlah regresi kuadrat normal pada data menggunakan lm. Perhatikan bahwa ia memberikan koefisien korelasi yang sama dengan Pearson (setelah rooting kuadrat dan hanya mengkhawatirkan besarnya, jelas).

ols<-lm(y~x)
sqrt(summary(ols)$r.squared)
[1] 0.9922014

Ini dihitung dari hasil model lm menggunakan pendekatan jumlah tradisional kuadrat

R2=1SresStot

Jadi, asalkan Anda menggunakan model yang diberikan oleh lm, (Pearson) -quared dan R-squared adalah setara.

Namun, jika Anda menggunakan model dari jumlah total regresi kuadrat, dan mencoba menggunakan persamaan terakhir, Anda akan mendapatkan hasil yang sedikit berbeda. Itu jelas karena kuadrat normal dan total terkecil menggunakan fungsi minimisasi yang berbeda sehingga memberikan model dengan gradien dan intersepsi yang sedikit berbeda. (Ingat, persamaan pertama masih akan memberikan hasil yang sama karena hanya melihat data.)

Di sinilah aku digantung. Jika dua persamaan memberikan hasil yang sama ketika menggunakan model lm, maka tentunya harus ada formulasi yang setara untuk persamaan terakhir, tetapi ketika menggunakan model kuadrat terkecil total, yang juga memberikan hasil yang sama?

Saya bermain-main cepat dengan pendekatan yang berbeda menggunakan fungsi minimisasi yang sesuai (seperti yang ada di poster di sini: Koefisien penentuan regresi ortogonal ), tetapi tidak dapat menemukan cara untuk melakukannya - jika ada cara.

Mungkin kita berdua terpaku pada kenyataan bahwa Pearson dan R-kuadrat memberikan hasil yang sama ketika menggunakan sqaures paling normal - dan sama sekali tidak ada cara untuk melakukan R-kuadrat pada kuadrat terkecil total, yang akan memberikan hasil yang sama sebagai Pearson. Tetapi saya tidak cukup tahu tentang ini untuk mengatakan mengapa tidak.


Terima kasih atas jawaban Anda tetapi ... Saya masih berpikir gx.rma tidak sesuai untuk apa yang saya coba lakukan itu sebabnya saya menggunakan regresi deming. Karena saya tidak mengerti bagaimana sebenarnya gx.rma menjelaskan kesalahan standar yang diketahui ... Tapi mungkin saya salah paham tentang sesuatu di sini ... Saya harus memeriksanya ketika saya punya waktu
Nico Coallier

1
Intinya adalah Anda dapat menghitung koefisien korelasi antara x dan y (yang Anda sebutkan) tanpa perlu melakukan regresi sama sekali . Saya pikir Anda terpaku pada perbedaan korelasi antara data, dan penilaian kualitas regresi - mereka belum tentu hal yang sama. Pearson ^ 2 memberi Anda yang pertama dan, dalam kasus normal-LS (dengan lm), sama dengan R ^ 2. Untuk ortogonal-LS, mereka tidak. Jadi bertanya tentang koefisien korelasi. dan R ^ 2 (terutama sekarang Anda menyebutkan std error) sebenarnya adalah dua pertanyaan yang berbeda. Anda mungkin ingin mengulangi OP.
Mooks

Saya mungkin tidak cukup jelas .... apa yang ingin saya lakukan adalah Pearson. Tetapi yang menggangguku adalah bahwa tidak ada R ^ 2 untuk total regresi kuadrat terkecil. Saya menggunakan total kuadrat terkecil untuk menyesuaikan koefisien (kemiringan) saya. Tapi saya akan menggunakan Pearson untuk korelasinya seperti yang Anda sarankan. Terima kasih
Nico Coallier

Saya mengerti, itu juga sesuatu yang menggangguku! Saya pikir harus ada rumus setara untuk memberikan R2 untuk kuadrat terkecil juga, tapi mungkin saya tidak mengerti sepenuhnya. Meskipun, jika Anda hanya ingin menyesuaikan kemiringan Anda, maka Anda bisa menggunakan fungsi minimisasi yang merupakan dasar dari total LS di Deming. Coba mathworld.wolfram.com/... atau arxiv.org/pdf/math/9805076.pdf . Anda juga dapat mempertimbangkan analisis komponen utama dengan prcomp atau princomp - pada dasarnya sama dan mungkin mereka mengeluarkan sesuatu yang membantu.
Mooks

1

Menggunakan paket "mcr"

dan menggunakan fungsi untuk menghasilkan model regresi deming Anda

yourmodel<-mcreg(x, y, ...) # you need to be familiar with the various types of deming constant SD or CV%. these can give very different results. But that's different question.

dan menghasilkan plot menggunakan fungsi tersebut

MCResult.plot(your model)

Ini menampilkan korelasi momen produksi Pearson pada plot untuk model, yang memberi tahu Anda kekuatan dan arah hubungan linier antara dua variabel x, y Anda, tetapi tidak memberikan proporsi variasi yang dijelaskan.

Semoga itu bisa membantu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.