Doğrusal regresyonda hangi algoritma kullanılır?


42

Genelde "sıradan en küçük kareler" hakkında bir şeyler duyarım. Doğrusal regresyon için en yaygın kullanılan algoritma bu mu? Farklı bir tane kullanmak için sebepler var mı?


@hxd, tasarım matrisindeki herhangi bir özel yapıyı engelleyen, hepsi sabit faktörde farklılık gösteren tüm algoritmalarıdır. Ayrışma yaklaşımı, sayısal doğrusal cebir geleneğinden miras kalan iyi bir alışkanlıktır. O(mn2)
JM, istatistikçi değil

@ hxd, bu yüzden cevabım ilgili algoritmaların bir açıklaması olarak tasarlandı. Bu konuya dahil olmayan sorularınız varsa, yeni bir soru sormayı düşünün.
JM, istatistikçi değil

Yanıtlar:


32

Başlıktaki soruya ilişkin olarak, kullanılan algoritmanın ne olduğu hakkında:

Doğrusal bir cebir perspektifinde, doğrusal regresyon algoritması, bilinmeyenlerden daha fazla denklem içeren bir doğrusal sistemi çözmenin yoludur . Çoğu durumda bu soruna bir çözüm yoktur. Bunun nedeni vektörünün , sütun alanına ait olmamasıdır .b bir Cı- ( A )Ax=bbAC(A)

best straight lineToplam hata verendir bu alır kadar küçük. Kare uzunluğunun küçük olduğunu düşünmek uygundur, , çünkü negatif değildir ve sadece b \ C (\ mathbf {A}) olduğunda 0 olur .e=Axbe2bC(A)

vektörünü sütun alanındaki en yakın noktaya yansıtmak (dik olarak), sistemi (en iyi düz çizgide yer alan) minimum hatayla çözen vektöre verir .A b bAb

ATAx^=ATbx^=(ATA)1ATb

ve yansıtılan vektör şöyle verilir:b

b=Ax^=A(ATA)1ATb

Belki de en küçük kareler yöntemi yalnızca kullanılmaz, çünkü bu squaring aykırı değerlere aşırı telafi eder.

Bu algoritmayı kullanarak regresyon problemini çözen basit bir örnek vereyim:

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])

Hata could not find invmı alıyorum ?
hhh


5
Çözmek için sadece bir eşanlamlı olduğunda fBasics gelen inv kullanmak için bir neden var mı? Gereksiz olması durumunda cevabın dış paketlere bağımlılık gerektirmemesi daha iyi olmaz mıydı?
Dason

@George Açık cevabı seviyorum, Ancak asıl sorunun algoritmalar sorduğunu düşünüyorum ve QR bunlardan sadece biri. LU, SVD, Cholesky ayrışmasına ne dersiniz? Ayrıca, R'de, yöntem lmQR'dir, bunun nedenleri vardır, nedenini açıklayabilir misiniz?
Haitao Du

@GeorgeDontas tersinir olamayabileceğini unutmayın . Bu cevapta açıklandığı gibi , bununla başa çıkmanın bir yolu , diğer sütunların doğrusal kombinasyonları olan sütunlarından kaldırmaktır . birATAA
Oren Milman

70

Sorunun mektubunu cevaplamak için, "sıradan en küçük kareler" bir algoritma değildir; aksine, doğrusal regresyonun bir örneği olduğu hesaplamalı doğrusal cebirdeki bir problem türüdür. Genellikle birinin verisine göre ve biçimindeki verilere uyması için geçici bir işlev ("model") vardır. . "baz fonksiyonları" olarak adlandırılır ve monomials her şey olabilir trigonometrik fonksiyonlar (örneğin üzere , ) ve üstel fonksiyonlar ( ). Buradaki "doğrusal regresyon" daki "doğrusal" terimi, temel fonksiyonlara atıfta bulunmaz,{(x1,y1),,(xm,ym)}f(x)=c1f1(x)++cnfn(x)fj(x)xjsin(jx)cos(jx)exp(jx)cj, herhangi birine göre modelin kısmi türevini almak size çarparak verir ; yani, .cjcjfj(x)

Bir artık var dikdörtgen matris (genellikle) sütun daha fazla satır olduğunu ( "tasarım matrisi"), ve her bir giriş formu ait , satır dizini olan ve olmak sütun dizini OLS şimdi vektörünü bulma görevidir, miktarını en aza indirir (matris notasyonunda, ; burada, genellikle "yanıt vektörü" olarak adlandırılır).m×nAfj(xi)ijc=(c1cn)j=1m(yjf(xj))2Acy2y=(y1ym)

En küçük kareler çözümlerinin hesaplanmasında pratikte kullanılan en az üç yöntem vardır: normal denklemler, QR ayrışımı ve tekil değer ayrışması. Kısacası, matris matrisini, vektörü için çözmek üzere kolayca manipüle edilebilen bir matris ürününe dönüştürmenin yollarıdır .Ac

George, cevabında normal denklem yöntemini çoktan gösterdi; biri sadece doğrusal denklem kümesini çözern×n

AAc=Ay

için . matrisinin simetrik pozitif (yarı) kesin olması nedeniyle, bunun için kullanılan genel yöntem, etkileyen faktörler olan Cholesky ayrıştırmasıdır. , biçimine , alt üçgen matris ile. Bu yaklaşımla ilgili sorun, tasarım matrisini (genellikle) n'lik bir matris halinde sıkıştırabilmenin avantajına rağmen, bu işlemin önemli rakamların kaybına eğilimli olmasıdır (bu, tasarım matrisinin "koşul numarası" ile yapın).cAAAAGGGm×nn×n

Biraz daha iyi bir yol, doğrudan tasarım matrisiyle çalışan QR ayrışmasıdır. Bu faktörler olarak , ortogonal bir matrisi (onun devrik böyle bir matris çarpımı bir birim matris verir) ve üst üçgendir. daha sonra olarak hesaplanır . Nedenlerle ben (tıpkı herhangi terbiyeli sayısal lineer cebir metin, bkz girmeyeceğim bu bir ), bu normaldir denklemlerin yöntemine göre daha iyi sayısal özellikleri vardır.AA=QRQRcR1Qy

QR ayrışımının kullanılmasındaki bir değişiklik , seminormal denklemlerin yöntemidir . Kısaca, eğer biri ayrışmasına sahipse, çözülecek doğrusal sistem formu alır.A=QR

RRc=Ay

Etkili olarak, bu yaklaşımda ' nın Cholesky üçgeni oluşturmak için QR ayrıştırması kullanılıyor . Bu, nın seyrek olduğu ve (veya bunun faktörlü bir versiyonunun) açık bir şekilde depolanması ve / veya oluşturulmasının istenmeyen veya pratik olmadığı durumlarda faydalıdır.AAAQ

Son olarak, OLS'yi çözmenin en pahalı, ancak en güvenli yolu, tekil değer ayrıştırmasıdır (SVD). Bu kez, , , burada ve her ikisi de dikeydir veA = U Σ VU V ΣAA=UΣVUVΣköşegen girişleri "tekil değerler" olarak adlandırılan köşegen bir matristir. Bu ayrışmanın gücü, size tekil değerler tarafından verilmiş tanısal yeteneğin içinde yatmaktadır, ki eğer biri bir veya daha fazla küçük tekil değer görürse, o zaman tamamen bağımsız olmayan bir temel seti seçmiş olmanız muhtemeldir; senin modelin. (Daha önce belirtilen "koşul sayısı" aslında en büyük tekil değerin en küçük değere oranıyla ilgilidir; tabii ki en küçük tekil değer "minik" ise, elbette ki oran büyüktür (ve matris şartsızdır) .)

Bu sadece bu üç algoritmanın bir taslağıdır; Hesaplamalı istatistik ve sayısal lineer cebir üzerine yazılmış herhangi bir kitap size daha fazla ilgili detay verebilmelidir.


3
Güzel açıklama!
Mike Spivey

R^{-1} Q^T yA kare değilse nasıl hesaplarsınız ? Sıfır satırı R'ye mi düşürüyorsunuz?
bhan

1
@bhan, QR ayrışmasının "ekonomi" (veya "ince") varyantını kabul ediyorum; burada kare ve tasarım matrisi ile aynı boyutlara sahip. Yapmanız gereken bir şey: "full QR" ve "thin QR" arasındaki farkı araştırın. QRQ
JM, istatistikçi değil

@JM "Hesaplamalı istatistik ve sayısal doğrusal cebir üzerine iyi kitap" hakkında herhangi bir öneri? gerçekten daha fazla bilgi edinmek istiyorum.
Haitao Du,

1
@ hxd, başımın üstünde: Hesaplamalı istatistikler için Monahan ve sayısal doğrusal cebir için Golub / van Loan.
JM, istatistikçi değil


4

Tanımlar ve terminoloji arasında şaşırtmak kolaydır. Her iki terim de bazen birbirinin yerine kullanılır. Wikipedia'da hızlı arama yardımcı olacaktır:

Sıradan En Küçük Kareler (OLS) doğrusal regresyon modellerine uyması için kullanılan bir yöntemdir. OLS yönteminin gösterilebilir tutarlılığı ve verimliliği (ek varsayımlar altında) nedeniyle, hakim yaklaşımdır. Daha fazla müşteri adayı için makalelere bakın.


İşte bu yüzden, OLS'nin lineer regresyonda kullanılan bir "algoritma" olduğunu düşünüyorum ...
Belmont

3
Sıradan en küçük kareler bir tahmin edicidir. Tahmini hesaplamak için çeşitli algoritmalar vardır: genellikle QR gibi bir tür ortogonal matris ayrışması kullanılır. Bakınız en.wikipedia.org/wiki/…
Simon Byrne

4

'En küçük kareleri' en uygun regresyon çizgisini (yani, 'karesel' artıkların toplamını en az 'yapan en az' olanı) ve bu bağlamda kullanılan algoritmayı 'tanımlamak için bir kriter olarak düşünme eğilimindeyim. bu kriteri sağlayan regresyon katsayılarını belirlemek. Bu ayrım, aynı kriteri karşılayacak farklı algoritmalara sahip olmanın mümkün olduğunu göstermektedir.

Başkalarının bu ayrımı yapıp yapmadığını ve hangi terminolojiyi kullandıklarını bilmek isterim.


Algoritma ile kabaca, dağılımın ortalamasını modellemek için bir çizgiyi yerleştirmek için kullanılan yazılım uygulamasını kastediyorum.
Belmont

3

Eski bir kitap, ama kendimi defalarca döndüğümde buldum

Lawson, CL ve Hanson, RJ En Küçük Kareler Problemini Çözme , Prentice-Hall, 1974.

Önceki cevapların bahsettiği bazı algoritmaların detaylı ve okunabilir bir tartışmasını içerir. Buna bakmak isteyebilirsin.


1
Bu eski kitabı okuduysanız, Åke Björck'ün Lawson / Hanson'da tartışılmayan en küçük kareler problemleri için sayısal metotlarını da incelemelisiniz . Lawson / Hanson kitabında yer alan rutinler Netlib'den edinilebilir .
JM, istatistikçi değil
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.