Algoritma apa yang digunakan dalam regresi linier?

42

Saya biasanya mendengar tentang "kotak paling tidak biasa". Apakah itu algoritma yang paling banyak digunakan digunakan untuk regresi linier? Apakah ada alasan untuk menggunakan yang berbeda?

Belmont
sumber
@ hxd, kecuali setiap struktur khusus dalam matriks desain, ini semua adalah algoritma , hanya berbeda dalam faktor konstan. Pendekatan dekomposisi adalah kebiasaan baik yang diwarisi dari tradisi aljabar linear numerik. O(mn2)
JM bukan ahli statistik
@ hxd, dan itulah sebabnya jawaban saya dirancang untuk menjadi penjelasan tentang algoritma yang terlibat. Jika Anda memiliki pertanyaan yang tidak dicakup oleh utas ini, pertimbangkan untuk mengajukan pertanyaan baru.
JM bukan ahli statistik

Jawaban:

32

Mengenai pertanyaan pada judul, tentang apa algoritma yang digunakan:

Dalam perspektif aljabar linier, algoritma regresi linier adalah cara untuk menyelesaikan sistem linear dengan lebih banyak persamaan daripada yang tidak diketahui. Dalam sebagian besar kasus tidak ada solusi untuk masalah ini. Dan ini karena vektor tidak termasuk dalam ruang kolom , .Ax=bbAC(A)

Ini best straight lineadalah salah satu yang membuat kesalahan keseluruhan sekecil yang diperlukan. Dan nyaman untuk berpikir kecil sebagai panjang kuadrat, , karena itu tidak negatif, dan sama dengan 0 hanya ketika b \ dalam C (\ mathbf {A}) .e=Axbe2bC(A)

Memproyeksikan (secara orthogonal) vektor ke titik terdekat dalam ruang kolom memberikan vektor yang memecahkan sistem (komponennya terletak pada garis lurus terbaik) dengan kesalahan minimum.bAb

ATAx^=ATbx^=(ATA)1ATb

dan vektor yang diproyeksikan diberikan oleh:b

b=Ax^=A(ATA)1ATb

Mungkin metode kuadrat terkecil tidak secara eksklusif digunakan karena squaring kelebihan kompensasi untuk pencilan.

Biarkan saya memberikan contoh sederhana dalam R, yang memecahkan masalah regresi menggunakan algoritma ini:

library(fBasics)

reg.data <- read.table(textConnection("
   b      x
  12      0
  10      1
   8      2
  11      3
   6      4
   7      5
   2      6
   3      7
   3      8 "), header = T)

attach(reg.data)

A <- model.matrix(b~x)

# intercept and slope
inv(t(A) %*% A) %*% t(A) %*% b

# fitted values - the projected vector b in the C(A)
A %*% inv(t(A) %*%A ) %*% t(A) %*% b

# The projection is easier if the orthogonal matrix Q is used, 
# because t(Q)%*%Q = I
Q <- qr.Q(qr(A))
R <- qr.R(qr(A))

# intercept and slope 
best.line <- inv(R) %*% t(Q) %*% b

# fitted values 
Q %*% t(Q) %*% b

plot(x,b,pch=16)
abline(best.line[1],best.line[2])
George Dontas
sumber
Saya mendapatkan kesalahan could not find inv?!
hhh
5
Apakah ada alasan untuk menggunakan inv dari fBasics padahal itu hanya sinonim untuk diselesaikan? Bukankah lebih baik jika jawabannya tidak memerlukan ketergantungan pada paket eksternal jika tidak diperlukan?
Dason
@ George Saya suka jawaban yang jelas, Namun, saya pikir pertanyaan aslinya adalah mengajukan algoritma, dan QR hanyalah salah satunya. Bagaimana dengan LU, SVD, dekomposisi Cholesky? Juga, dalam R, metode untuk lmQR, ada alasan untuk itu, dapatkah Anda menjelaskan mengapa?
Haitao Du
@ GeorgeDontas Perhatikan bahwa mungkin tidak dapat dibalik. Sebagaimana dijelaskan dalam jawaban ini , salah satu cara untuk mengatasinya adalah dengan menghapus dari kolom yang merupakan kombinasi linear dari kolom lainnya. ATAA
Oren Milman
70

Untuk menjawab surat pertanyaan, "kuadrat terkecil" bukan merupakan algoritma; melainkan merupakan jenis masalah dalam aljabar linear komputasi, yang salah satu contohnya adalah regresi linier. Biasanya seseorang memiliki data dan fungsi sementara ("model") agar sesuai dengan data, dari bentuk . The disebut "fungsi dasar" dan dapat berupa apa saja dari monomial hingga fungsi trigonometrik (misalnya , ) dan fungsi eksponensial ( ). Istilah "linear" dalam "regresi linier" di sini tidak merujuk pada fungsi dasar,{(x1,y1),,(xm,ym)}f(x)=c1f1(x)++cnfn(x)fj(x)xjsin(jx)cos(jx)exp(jx)cj, dalam mengambil turunan parsial model sehubungan dengan salah satu dari memberi Anda faktor mengalikan ; yaitu, .cjcjfj(x)

Satu sekarang memiliki matriks persegi panjang ("matriks desain") yang (biasanya) memiliki lebih banyak baris daripada kolom, dan setiap entri berbentuk , menjadi indeks baris dan menjadi indeks kolom. OLS sekarang tugas untuk menemukan vektor yang meminimalkan kuantitas (dalam notasi matriks, ; di sini, biasanya disebut "vektor respons").m×nAfj(xi)ijc=(c1cn)j=1m(yjf(xj))2Acy2y=(y1ym)

Setidaknya ada tiga metode yang digunakan dalam praktik untuk menghitung solusi kuadrat-terkecil: persamaan normal, dekomposisi QR, dan dekomposisi nilai singular. Secara singkat, mereka adalah cara untuk mengubah matriks menjadi produk dari matriks yang mudah dimanipulasi untuk memecahkan untuk vektor .Ac

George sudah menunjukkan metode persamaan normal dalam jawabannya; satu hanya memecahkan set persamaan linearn×n

AAc=Ay

untuk . Karena kenyataan bahwa matriks adalah simetris positif (semi) pasti, metode yang biasa digunakan untuk ini adalah dekomposisi Cholesky, yang merupakan faktor ke dalam formulir , dengan matriks segitiga lebih rendah. Masalah dengan pendekatan ini, terlepas dari keuntungan karena dapat mengompres matriks desain menjadi matriks (biasanya) jauh lebih kecil matriks, adalah bahwa operasi ini rentan terhadap kehilangan angka-angka signifikan (ini memiliki sesuatu untuk lakukan dengan "nomor kondisi" dari matriks desain).cAAAAGGGm×nn×n

Cara yang sedikit lebih baik adalah dekomposisi QR, yang langsung bekerja dengan matriks desain. Itu faktor sebagai , di mana adalah matriks ortogonal (mengalikan matriks tersebut dengan transposnya memberikan matriks identitas) dan adalah segitiga atas. selanjutnya dihitung sebagai . Untuk alasan saya tidak akan masuk (hanya melihat teks aljabar linear numerik yang layak, seperti ini ), ini memiliki sifat numerik yang lebih baik daripada metode persamaan normal.AA=QRQRcR1Qy

Salah satu variasi dalam menggunakan dekomposisi QR adalah metode persamaan seminormal . Secara singkat, jika seseorang memiliki dekomposisi , sistem linear yang harus dipecahkan mengambil bentukA=QR

RRc=Ay

Secara efektif, seseorang menggunakan dekomposisi QR untuk membentuk segitiga Cholesky dari dalam pendekatan ini. Ini berguna untuk kasus di mana jarang, dan penyimpanan eksplisit dan / atau pembentukan (atau versi yang difaktorkan) tidak diinginkan atau tidak praktis.AAAQ

Akhirnya, cara memecahkan OLS yang paling mahal, namun paling aman adalah dekomposisi nilai singular (SVD). Kali ini, diperhitungkan sebagai , di mana dan keduanya ortogonal , danAA=UΣVUVΣadalah matriks diagonal, yang entri diagonalnya disebut "nilai singular". Kekuatan dekomposisi ini terletak pada kemampuan diagnostik yang diberikan kepada Anda oleh nilai-nilai singular, di mana jika seseorang melihat satu atau lebih nilai-nilai singular kecil, maka kemungkinan Anda telah memilih set basis yang tidak sepenuhnya independen, sehingga memerlukan reformulasi model Anda. ("Angka kondisi" yang disebutkan sebelumnya sebenarnya terkait dengan rasio nilai singular terbesar dengan yang terkecil; rasio tentu saja menjadi besar (dan matriksnya dengan demikian tidak terkondisi) jika nilai singular terkecil adalah "kecil" .)

Ini hanyalah sketsa dari ketiga algoritma ini; buku bagus apa pun tentang statistik komputasi dan aljabar linear numerik harus dapat memberi Anda detail yang lebih relevan.

JM bukan ahli statistik
sumber
3
Penjelasan yang bagus!
Mike Spivey
Bagaimana Anda menghitung R^{-1} Q^T yjika A tidak kuadrat? Apakah Anda menjatuhkan baris nol dalam R?
bhan
1
@ Bhan, saya mengasumsikan varian "ekonomi" (atau "tipis") dari dekomposisi QR, di mana adalah kuadrat dan memiliki dimensi yang sama dengan matriks desain. Sesuatu yang harus Anda lakukan: cari perbedaan antara "QR penuh" dan "QR tipis". RQ
JM bukan ahli statistik
@ JM ada rekomendasi untuk "buku bagus tentang statistik komputasi dan aljabar linear numerik"? benar-benar ingin belajar lebih banyak.
Haitao Du
1
@ hxd, dari atas kepala saya: Monahan untuk statistik komputasi, dan Pinjaman Golub / van untuk aljabar linear numerik.
JM bukan ahli statistik
6

Tautan wiki: Metode Estimasi untuk Regresi Linier memberikan daftar metode estimasi yang cukup komprehensif termasuk OLS dan konteks di mana metode estimasi alternatif digunakan.

pengguna603
sumber
1
Tidak menjawab pertanyaan (halaman bahkan tidak menyebutkan QR)
user603
4

Sangat mudah untuk bingung antara definisi dan terminologi. Kedua istilah tersebut digunakan, terkadang secara bergantian. Pencarian cepat di Wikipedia akan membantu:

Ordinary Least Squares (OLS) adalah metode yang digunakan untuk menyesuaikan model regresi linier. Karena konsistensi dan efisiensi yang dapat dibuktikan (dengan asumsi tambahan) dari metode OLS, itu adalah pendekatan yang dominan. Lihat artikel untuk petunjuk lebih lanjut.

Dirk Eddelbuettel
sumber
Benar, itu sebabnya saya menganggap OLS sebagai "algoritma" yang digunakan dalam regresi linier ...
Belmont
3
Kuadrat terkecil biasa adalah penduga. Ada berbagai algoritma untuk menghitung estimasi: biasanya beberapa jenis dekomposisi matriks ortogonal, seperti QR, digunakan. Lihat en.wikipedia.org/wiki/…
Simon Byrne
4

Saya cenderung menganggap 'kuadrat terkecil' sebagai kriteria untuk menentukan garis regresi pas terbaik (yaitu, yang membuat jumlah dari 'kuadrat' residu 'paling sedikit') dan 'algoritma' dalam konteks ini sebagai serangkaian langkah yang digunakan untuk menentukan koefisien regresi yang memenuhi kriteria itu. Perbedaan ini menunjukkan bahwa dimungkinkan untuk memiliki algoritma yang berbeda yang akan memenuhi kriteria yang sama.

Saya ingin tahu apakah orang lain membuat perbedaan ini dan terminologi apa yang mereka gunakan.

Jeromy Anglim
sumber
Dengan algoritma, maksud saya kira-kira implementasi perangkat lunak yang digunakan untuk memasang garis untuk memodelkan rata-rata distribusi.
Belmont
3

Sebuah buku tua, namun saya menemukan diri saya berulang kali beralih ke, adalah

Lawson, CL dan Hanson, RJ Memecahkan Masalah Kuadrat Terkecil , Prentice-Hall, 1974.

Ini berisi diskusi terinci dan sangat mudah dibaca dari beberapa algoritma yang telah disebutkan sebelumnya. Anda mungkin ingin melihatnya.

F. Tusell
sumber
1
Jika Anda membaca buku lama ini, Anda juga harus melihat ke Metode Numerik Åke Björck untuk Masalah Least Squares , yang memiliki hal-hal yang tidak dibahas dalam Lawson / Hanson. Rutinitas yang termasuk dalam buku Lawson / Hanson tersedia dari Netlib .
JM bukan ahli statistik