ขั้นตอนวิธีใดที่ใช้ในการถดถอยเชิงเส้น


42

ฉันมักจะได้ยินเกี่ยวกับ "กำลังสองน้อยที่สุดธรรมดา" นั่นเป็นอัลกอริทึมที่ใช้กันอย่างแพร่หลายที่สุดสำหรับการถดถอยเชิงเส้นหรือไม่? มีเหตุผลที่จะใช้อันอื่นหรือไม่?


@hxd ยกเว้นโครงสร้างพิเศษใด ๆ ในเมทริกซ์การออกแบบนี่เป็นอัลกอริธึมO(mn2)ซึ่งแตกต่างกันเฉพาะในปัจจัยคงที่ วิธีการย่อยสลายเป็นนิสัยที่ดีที่สืบทอดมาจากประเพณีของพีชคณิตเชิงเส้นเชิงตัวเลข
JM ไม่ใช่นักสถิติ

@hxd และนั่นเป็นสาเหตุที่คำตอบของฉันได้รับการปรับให้เหมาะสมเพื่อแสดงถึงอัลกอริทึมที่เกี่ยวข้อง หากคุณมีคำถามที่ไม่ครอบคลุมในชุดข้อความนี้ให้ลองตั้งคำถามใหม่
JM ไม่ใช่นักสถิติ

คำตอบ:


32

เกี่ยวกับคำถามในชื่อเรื่องเกี่ยวกับอัลกอริทึมที่ใช้คืออะไร:

ในมุมมองพีชคณิตเชิงเส้นอัลกอริทึมการถดถอยเชิงเส้นเป็นวิธีการแก้ระบบเชิงเส้นAx=bมีสมการมากกว่านิรนาม ในกรณีส่วนใหญ่ไม่มีวิธีแก้ไขปัญหานี้ และเป็นเพราะเวกเตอร์bไม่ได้อยู่ในพื้นที่คอลัมน์ของ, C ( )AC(A)

best straight linee=Axb b C ( A )e2bC(A)

การฉาย (orthogonally) เวกเตอร์ไปยังจุดที่ใกล้ที่สุดในพื้นที่คอลัมน์ให้เวกเตอร์ที่แก้ปัญหาระบบ (ส่วนประกอบอยู่บนเส้นตรงที่ดีที่สุด) โดยมีข้อผิดพลาดน้อยที่สุดA b bAb

ATAx^=ATbx^=(ATA)1ATb

และเวกเตอร์ที่คาดการณ์มอบให้โดย:b

b=Ax^=A(ATA)1ATb

บางทีเมธอดกำลังสองน้อยที่สุดอาจไม่ได้ถูกใช้อย่างเฉพาะเจาะจงเนื่องจากวิธีนั้นจะsquaring ชดเชยค่าใช้จ่ายมากเกินไป

ขอยกตัวอย่างง่ายๆใน R ที่แก้ปัญหาการถดถอยโดยใช้อัลกอริทึมนี้:

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

ฉันได้รับผิดพลาดcould not find inv!
hhh


5
มีเหตุผลในการใช้คำเชิญจาก fBasics เมื่อมันเป็นเพียงคำพ้องสำหรับการแก้ปัญหา? จะดีกว่าไหมถ้าคำตอบไม่ต้องการการพึ่งพาแพ็คเกจภายนอกหากไม่จำเป็น?
Dason

@ George ฉันชอบคำตอบที่ชัดเจน แต่ฉันคิดว่าคำถามดั้งเดิมกำลังถามอัลกอริทึมและ QR เป็นเพียงหนึ่งในนั้น การสลายตัวของ LU, SVD, Cholesky เป็นอย่างไร? นอกจากนี้ใน R วิธีการlmคือ QR มีเหตุผลที่คุณสามารถอธิบายได้ว่าทำไม
Haitao Du

@Gorgeorge โปรดทราบว่าอาจเป็นไปได้ว่าไม่สามารถย้อนกลับได้ ดังที่อธิบายไว้ในคำตอบนี้วิธีหนึ่งในการจัดการกับสิ่งนั้นคือการลบออกจากคอลัมน์ที่เป็นการรวมเชิงเส้นของคอลัมน์อื่น ๆ AATAA
Oren Milman

70

เพื่อตอบจดหมายของคำถาม "ธรรมดากำลังสองน้อยสุด" ไม่ใช่อัลกอริธึม ค่อนข้างเป็นปัญหาประเภทหนึ่งในพีชคณิตเชิงเส้นเชิงคำนวณซึ่งการถดถอยเชิงเส้นเป็นตัวอย่างหนึ่ง โดยทั่วไปแล้วจะมีข้อมูลและฟังก์ชั่นเบื้องต้น ("รุ่น") เพื่อให้พอดีกับข้อมูลจากรูปแบบ(x) จะเรียกว่า "ฟังก์ชั่นพื้นฐาน" และได้อะไรจาก monomialsฟังก์ชั่นตรีโกณมิติ (เช่น , ) และฟังก์ชั่นการชี้แจง ( ) คำว่า "เชิงเส้น" ใน "การถดถอยเชิงเส้น" ที่นี่ไม่ได้หมายถึงฟังก์ชั่นพื้นฐานf ( x ) = c 1 f 1 ( x ) + + c n f n ( x ) f j ( x ) x j{(x1,y1),,(xm,ym)}f(x)=c1f1(x)++cnfn(x)fj(x)xjsin(jx)cos(jx)exp(jx)cjในการรับอนุพันธ์บางส่วนของแบบจำลองด้วยความเคารพใด ๆ ของให้คุณคูณปัจจัย ; นั่นคือ(x)cjcjfj(x)

หนึ่งตอนนี้มีเมทริกซ์สี่เหลี่ยม ( "การออกแบบเมทริกซ์") ที่ (ปกติ) มีแถวมากกว่าคอลัมน์และแต่ละรายการเป็นรูปแบบ ,เป็นดัชนีแถวและเป็น ดัชนีคอลัมน์ OLS เป็นหน้าที่ของการค้นหาเวกเตอร์ที่ลดปริมาณ (ในรูปของเมทริกซ์, ; ที่นี่,มักเรียกว่า "การตอบสนองของเวกเตอร์")m×nAfj(xi)ijc=(c1cn)j=1m(yjf(xj))2Acy2y=(y1ym)

มีอย่างน้อยสามวิธีที่ใช้ในการปฏิบัติเพื่อคำนวณหาวิธีแก้ปัญหากำลังสองน้อยที่สุด ได้แก่ สมการปกติการสลายตัว QR และการสลายตัวของค่าเอกพจน์ ในช่วงสั้น ๆ ที่พวกเขามีวิธีที่จะเปลี่ยนเมทริกซ์เป็นผลิตภัณฑ์ของการฝึกอบรมที่มีการจัดการได้อย่างง่ายดายในการแก้ปัญหาสำหรับเวกเตอร์{C}Ac

จอร์จได้แสดงวิธีการของสมการปกติในคำตอบของเขา; เราแค่แก้ชุดสมการเชิงเส้นn×n

AAc=Ay

สำหรับ{C} เนื่องจากข้อเท็จจริงที่ว่าเมทริกซ์เป็นสมมาตรบวก (กึ่ง) แน่นอนวิธีปกติที่ใช้สำหรับเรื่องนี้คือการสลายตัว Cholesky ซึ่งปัจจัยในรูปแบบโดยที่เมทริกซ์สามเหลี่ยมล่าง ปัญหาเกี่ยวกับวิธีการนี้แม้จะมีข้อได้เปรียบในการบีบอัด design matrix ลงในเมทริกซ์ (ปกติ) ที่เล็กมากคือการดำเนินการนี้มีแนวโน้มที่จะสูญเสียตัวเลขที่สำคัญ ทำกับ "หมายเลขเงื่อนไข" ของเมทริกซ์การออกแบบ)cAAAAGGGm×nn×n

วิธีที่ดีกว่าเล็กน้อยคือการย่อยสลาย QR ซึ่งทำงานกับเมทริกซ์การออกแบบ มันเป็นปัจจัยขณะที่โดยที่คือ orthogonal เมทริกซ์ (คูณเมทริกซ์ที่มีทรานสปอนเซอร์เมทริกซ์ตัวคูณ) และเป็นรูปสามเหลี่ยมด้านบน คำนวณต่อมาเป็น{y} ด้วยเหตุผลที่ฉันจะไม่เข้าไป (แค่ดูข้อความพีชคณิตเชิงเส้นเชิงตัวเลขที่เหมาะสมเช่นนี้ ) สิ่งนี้มีคุณสมบัติที่เป็นตัวเลขที่ดีกว่าวิธีของสมการปกติAA=QRQRcR1Qy

รูปแบบหนึ่งที่ใช้ในการย่อยสลาย QR เป็นวิธีการของสมการกึ่งอิสระ สั้น ๆ หากมีการสลายตัวระบบเชิงเส้นที่จะแก้ไขจะใช้รูปแบบA=QR

RRc=Ay

อย่างมีประสิทธิภาพคนหนึ่งกำลังใช้การย่อยสลาย QR เพื่อสร้างสามเหลี่ยม Cholesky ของในแนวทางนี้ สิ่งนี้มีประโยชน์สำหรับกรณีที่กระจัดกระจายและการจัดเก็บและ / หรือการก่อตัวของอย่างชัดเจน(หรือรุ่นที่แยกตัวประกอบ) นั้นเป็นสิ่งที่ไม่ต้องการหรือไม่สามารถทำได้AAAQ

ในที่สุดวิธีการแก้ปัญหา OLS ที่แพงที่สุด แต่ปลอดภัยที่สุดคือการสลายตัวของค่าเอกฐาน (SVD) เวลานี้ถูกแยกตัวเป็นโดยที่และเป็นทั้งมุมฉาก และAA=UΣVUVΣเป็นเมทริกซ์แนวทแยงซึ่งมีรายการแนวทแยงที่เรียกว่า "ค่าเอกพจน์" พลังของการสลายตัวนี้ขึ้นอยู่กับความสามารถในการวินิจฉัยที่มอบให้กับคุณโดยค่าเอกพจน์ซึ่งหากคุณเห็นค่าเอกพจน์ที่น้อยหนึ่งค่าหรือมากกว่านั้นก็เป็นไปได้ว่าคุณได้เลือกชุดพื้นฐานที่ไม่อิสระทั้งหมด โมเดลของคุณ ("เงื่อนไขหมายเลข" ที่กล่าวถึงก่อนหน้านี้ในความเป็นจริงแล้วเกี่ยวข้องกับอัตราส่วนของค่าเอกพจน์ที่ใหญ่ที่สุดต่อหนึ่งที่เล็กที่สุด; อัตราส่วนของการกลายเป็นใหญ่ (และเมทริกซ์นั้นไม่ดี - ปรับอากาศ) ถ้าค่าเอกพจน์น้อยที่สุดคือ "เล็ก" .)

นี่เป็นเพียงภาพร่างของอัลกอริทึมทั้งสามนี้ หนังสือที่ดีเกี่ยวกับสถิติการคำนวณและพีชคณิตเชิงเส้นเชิงตัวเลขควรจะสามารถให้รายละเอียดที่เกี่ยวข้องกับคุณมากขึ้น


3
คำอธิบายที่ดี!
Mike Spivey

คุณคำนวณได้R^{-1} Q^T yอย่างไรถ้า A ไม่ได้เป็นสี่เหลี่ยมจัตุรัส? คุณวางแถวศูนย์ใน R หรือไม่?
Bhan

1
@ แบนฉันคิดว่า "เศรษฐกิจ" (หรือ "ผอม") แตกต่างจากการย่อยสลาย QR ซึ่งเป็นสี่เหลี่ยมจัตุรัสและมีมิติเดียวกับเมทริกซ์การออกแบบ สิ่งที่คุณต้องทำ: ค้นหาความแตกต่างระหว่าง "QR เต็ม" และ "เส้นบาง QR" คิวRQ
JM ไม่ใช่นักสถิติเมื่อ

@JM คำแนะนำใด ๆ ใน "หนังสือดีเกี่ยวกับสถิติการคำนวณและพีชคณิตเชิงเส้นเชิงตัวเลข"? ต้องการเรียนรู้เพิ่มเติม
Haitao Du

1
@hxd อยู่ด้านบนของหัวของฉัน: Monahan สำหรับสถิติการคำนวณและ Golub / van Loan สำหรับพีชคณิตเชิงเส้นเชิงตัวเลข
JM ไม่ใช่นักสถิติ

6

ลิงค์วิกิ: วิธีการประมาณค่าสำหรับการถดถอยเชิงเส้นให้รายการวิธีการประมาณค่าที่ครอบคลุมอย่างครอบคลุมรวมถึง OLS และบริบทที่ใช้วิธีการประมาณค่าแบบอื่น


1
ไม่ตอบคำถาม (หน้าไม่ได้พูดถึง QR)
user603

4

มันง่ายที่จะสับสนระหว่างคำจำกัดความและคำศัพท์ มีการใช้คำทั้งสองซึ่งบางครั้งก็สลับกันได้ การค้นหาอย่างรวดเร็วบน Wikipedia ควรช่วย:

Ordinary Least Squares (OLS) เป็นวิธีที่ใช้เพื่อให้เหมาะสมกับโมเดลการถดถอยเชิงเส้น เนื่องจากความสอดคล้องและประสิทธิภาพที่พิสูจน์ได้ (ภายใต้สมมติฐานเสริม) ของวิธี OLS จึงเป็นวิธีการที่โดดเด่น ดูบทความสำหรับโอกาสในการขายเพิ่มเติม


ขวานั่นเป็นเหตุผลที่ผมคิดว่า OLS เป็น "ขั้นตอนวิธีการ" ที่ใช้ในการถดถอยเชิงเส้น ...
เบลมอนต์

3
กำลังสองน้อยที่สุดธรรมดาเป็นตัวประมาณ มีอัลกอริธึมที่หลากหลายสำหรับการคำนวณการประมาณ: โดยปกติแล้วการสลายตัวเมทริกซ์แบบ orthogonal บางประเภทเช่น QR จะใช้ ดูen.wikipedia.org/wiki/…
Simon Byrne

4

ฉันมักจะคิดว่า 'กำลังสองน้อย' เป็นเกณฑ์สำหรับการกำหนดเส้นการถดถอยที่เหมาะสมที่สุด (นั่นคือสิ่งที่ทำให้ผลรวมของ 'กำลังสอง' เหลือน้อย ') และ' อัลกอริทึม 'ในบริบทนี้เป็นชุดของขั้นตอนที่ใช้ เพื่อกำหนดค่าสัมประสิทธิ์การถดถอยที่เป็นไปตามเกณฑ์นั้น ความแตกต่างนี้แสดงให้เห็นว่าเป็นไปได้ที่จะมีอัลกอริทึมที่แตกต่างกันซึ่งจะตอบสนองเกณฑ์เดียวกัน

ฉันอยากรู้ว่าคนอื่นสร้างความแตกต่างหรือไม่และใช้คำศัพท์ใด


โดยอัลกอริทึมฉันหมายถึงการใช้งานซอฟต์แวร์อย่างคร่าว ๆ เพื่อปรับให้เส้นตรงเป็นแบบจำลองการกระจายตัว
เบลมอนต์

3

หนังสือเล่มเก่า แต่มีอยู่เล่มหนึ่งที่ฉันพบว่าตัวเองเปลี่ยนไปเป็น

ลอว์สัน, CL และแฮนสัน, RJ แก้ปัญหากำลังสองน้อยที่สุด , Prentice-Hall, 1974

มันมีการอภิปรายอย่างละเอียดและสามารถอ่านได้มากของอัลกอริทึมบางอย่างที่คำตอบก่อนหน้านี้ได้กล่าวถึง คุณอาจต้องการดูมัน


1
หากคุณอ่านหนังสือเล่มเก่านี้คุณควรมองหาวิธีการเชิงตัวเลขของÅkeBjörck สำหรับปัญหากำลังสองน้อยที่สุดซึ่งไม่ได้กล่าวถึงใน Lawson / Hanson การปฏิบัติที่รวมอยู่ในหนังสือลอว์สัน / แฮนสันมีความพร้อมใช้งานจาก netlib
JM ไม่ใช่นักสถิติ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.