ฉันมักจะได้ยินเกี่ยวกับ "กำลังสองน้อยที่สุดธรรมดา" นั่นเป็นอัลกอริทึมที่ใช้กันอย่างแพร่หลายที่สุดสำหรับการถดถอยเชิงเส้นหรือไม่? มีเหตุผลที่จะใช้อันอื่นหรือไม่?
ฉันมักจะได้ยินเกี่ยวกับ "กำลังสองน้อยที่สุดธรรมดา" นั่นเป็นอัลกอริทึมที่ใช้กันอย่างแพร่หลายที่สุดสำหรับการถดถอยเชิงเส้นหรือไม่? มีเหตุผลที่จะใช้อันอื่นหรือไม่?
คำตอบ:
เกี่ยวกับคำถามในชื่อเรื่องเกี่ยวกับอัลกอริทึมที่ใช้คืออะไร:
ในมุมมองพีชคณิตเชิงเส้นอัลกอริทึมการถดถอยเชิงเส้นเป็นวิธีการแก้ระบบเชิงเส้นมีสมการมากกว่านิรนาม ในกรณีส่วนใหญ่ไม่มีวิธีแก้ไขปัญหานี้ และเป็นเพราะเวกเตอร์ไม่ได้อยู่ในพื้นที่คอลัมน์ของ, C ( )
best straight line
b ∈ C ( A )
การฉาย (orthogonally) เวกเตอร์ไปยังจุดที่ใกล้ที่สุดในพื้นที่คอลัมน์ให้เวกเตอร์ที่แก้ปัญหาระบบ (ส่วนประกอบอยู่บนเส้นตรงที่ดีที่สุด) โดยมีข้อผิดพลาดน้อยที่สุดA b ∗
และเวกเตอร์ที่คาดการณ์มอบให้โดย:
บางทีเมธอดกำลังสองน้อยที่สุดอาจไม่ได้ถูกใช้อย่างเฉพาะเจาะจงเนื่องจากวิธีนั้นจะ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
!
lm
คือ QR มีเหตุผลที่คุณสามารถอธิบายได้ว่าทำไม
เพื่อตอบจดหมายของคำถาม "ธรรมดากำลังสองน้อยสุด" ไม่ใช่อัลกอริธึม ค่อนข้างเป็นปัญหาประเภทหนึ่งในพีชคณิตเชิงเส้นเชิงคำนวณซึ่งการถดถอยเชิงเส้นเป็นตัวอย่างหนึ่ง โดยทั่วไปแล้วจะมีข้อมูลและฟังก์ชั่นเบื้องต้น ("รุ่น") เพื่อให้พอดีกับข้อมูลจากรูปแบบ(x) จะเรียกว่า "ฟังก์ชั่นพื้นฐาน" และได้อะไรจาก monomialsฟังก์ชั่นตรีโกณมิติ (เช่น , ) และฟังก์ชั่นการชี้แจง ( ) คำว่า "เชิงเส้น" ใน "การถดถอยเชิงเส้น" ที่นี่ไม่ได้หมายถึงฟังก์ชั่นพื้นฐานf ( x ) = c 1 f 1 ( x ) + ⋯ + c n f n ( x ) f j ( x ) x jในการรับอนุพันธ์บางส่วนของแบบจำลองด้วยความเคารพใด ๆ ของให้คุณคูณปัจจัย ; นั่นคือ(x)
หนึ่งตอนนี้มีเมทริกซ์สี่เหลี่ยม ( "การออกแบบเมทริกซ์") ที่ (ปกติ) มีแถวมากกว่าคอลัมน์และแต่ละรายการเป็นรูปแบบ ,เป็นดัชนีแถวและเป็น ดัชนีคอลัมน์ OLS เป็นหน้าที่ของการค้นหาเวกเตอร์ที่ลดปริมาณ (ในรูปของเมทริกซ์, ; ที่นี่,มักเรียกว่า "การตอบสนองของเวกเตอร์")
มีอย่างน้อยสามวิธีที่ใช้ในการปฏิบัติเพื่อคำนวณหาวิธีแก้ปัญหากำลังสองน้อยที่สุด ได้แก่ สมการปกติการสลายตัว QR และการสลายตัวของค่าเอกพจน์ ในช่วงสั้น ๆ ที่พวกเขามีวิธีที่จะเปลี่ยนเมทริกซ์เป็นผลิตภัณฑ์ของการฝึกอบรมที่มีการจัดการได้อย่างง่ายดายในการแก้ปัญหาสำหรับเวกเตอร์{C}
จอร์จได้แสดงวิธีการของสมการปกติในคำตอบของเขา; เราแค่แก้ชุดสมการเชิงเส้น
สำหรับ{C} เนื่องจากข้อเท็จจริงที่ว่าเมทริกซ์เป็นสมมาตรบวก (กึ่ง) แน่นอนวิธีปกติที่ใช้สำหรับเรื่องนี้คือการสลายตัว Cholesky ซึ่งปัจจัยในรูปแบบโดยที่เมทริกซ์สามเหลี่ยมล่าง ปัญหาเกี่ยวกับวิธีการนี้แม้จะมีข้อได้เปรียบในการบีบอัด design matrix ลงในเมทริกซ์ (ปกติ) ที่เล็กมากคือการดำเนินการนี้มีแนวโน้มที่จะสูญเสียตัวเลขที่สำคัญ ทำกับ "หมายเลขเงื่อนไข" ของเมทริกซ์การออกแบบ)
วิธีที่ดีกว่าเล็กน้อยคือการย่อยสลาย QR ซึ่งทำงานกับเมทริกซ์การออกแบบ มันเป็นปัจจัยขณะที่โดยที่คือ orthogonal เมทริกซ์ (คูณเมทริกซ์ที่มีทรานสปอนเซอร์เมทริกซ์ตัวคูณ) และเป็นรูปสามเหลี่ยมด้านบน คำนวณต่อมาเป็น{y} ด้วยเหตุผลที่ฉันจะไม่เข้าไป (แค่ดูข้อความพีชคณิตเชิงเส้นเชิงตัวเลขที่เหมาะสมเช่นนี้ ) สิ่งนี้มีคุณสมบัติที่เป็นตัวเลขที่ดีกว่าวิธีของสมการปกติ
รูปแบบหนึ่งที่ใช้ในการย่อยสลาย QR เป็นวิธีการของสมการกึ่งอิสระ สั้น ๆ หากมีการสลายตัวระบบเชิงเส้นที่จะแก้ไขจะใช้รูปแบบ
อย่างมีประสิทธิภาพคนหนึ่งกำลังใช้การย่อยสลาย QR เพื่อสร้างสามเหลี่ยม Cholesky ของในแนวทางนี้ สิ่งนี้มีประโยชน์สำหรับกรณีที่กระจัดกระจายและการจัดเก็บและ / หรือการก่อตัวของอย่างชัดเจน(หรือรุ่นที่แยกตัวประกอบ) นั้นเป็นสิ่งที่ไม่ต้องการหรือไม่สามารถทำได้
ในที่สุดวิธีการแก้ปัญหา OLS ที่แพงที่สุด แต่ปลอดภัยที่สุดคือการสลายตัวของค่าเอกฐาน (SVD) เวลานี้ถูกแยกตัวเป็นโดยที่และเป็นทั้งมุมฉาก และเป็นเมทริกซ์แนวทแยงซึ่งมีรายการแนวทแยงที่เรียกว่า "ค่าเอกพจน์" พลังของการสลายตัวนี้ขึ้นอยู่กับความสามารถในการวินิจฉัยที่มอบให้กับคุณโดยค่าเอกพจน์ซึ่งหากคุณเห็นค่าเอกพจน์ที่น้อยหนึ่งค่าหรือมากกว่านั้นก็เป็นไปได้ว่าคุณได้เลือกชุดพื้นฐานที่ไม่อิสระทั้งหมด โมเดลของคุณ ("เงื่อนไขหมายเลข" ที่กล่าวถึงก่อนหน้านี้ในความเป็นจริงแล้วเกี่ยวข้องกับอัตราส่วนของค่าเอกพจน์ที่ใหญ่ที่สุดต่อหนึ่งที่เล็กที่สุด; อัตราส่วนของการกลายเป็นใหญ่ (และเมทริกซ์นั้นไม่ดี - ปรับอากาศ) ถ้าค่าเอกพจน์น้อยที่สุดคือ "เล็ก" .)
นี่เป็นเพียงภาพร่างของอัลกอริทึมทั้งสามนี้ หนังสือที่ดีเกี่ยวกับสถิติการคำนวณและพีชคณิตเชิงเส้นเชิงตัวเลขควรจะสามารถให้รายละเอียดที่เกี่ยวข้องกับคุณมากขึ้น
R^{-1} Q^T y
อย่างไรถ้า A ไม่ได้เป็นสี่เหลี่ยมจัตุรัส? คุณวางแถวศูนย์ใน R หรือไม่?
ลิงค์วิกิ: วิธีการประมาณค่าสำหรับการถดถอยเชิงเส้นให้รายการวิธีการประมาณค่าที่ครอบคลุมอย่างครอบคลุมรวมถึง OLS และบริบทที่ใช้วิธีการประมาณค่าแบบอื่น
มันง่ายที่จะสับสนระหว่างคำจำกัดความและคำศัพท์ มีการใช้คำทั้งสองซึ่งบางครั้งก็สลับกันได้ การค้นหาอย่างรวดเร็วบน Wikipedia ควรช่วย:
Ordinary Least Squares (OLS) เป็นวิธีที่ใช้เพื่อให้เหมาะสมกับโมเดลการถดถอยเชิงเส้น เนื่องจากความสอดคล้องและประสิทธิภาพที่พิสูจน์ได้ (ภายใต้สมมติฐานเสริม) ของวิธี OLS จึงเป็นวิธีการที่โดดเด่น ดูบทความสำหรับโอกาสในการขายเพิ่มเติม
ฉันมักจะคิดว่า 'กำลังสองน้อย' เป็นเกณฑ์สำหรับการกำหนดเส้นการถดถอยที่เหมาะสมที่สุด (นั่นคือสิ่งที่ทำให้ผลรวมของ 'กำลังสอง' เหลือน้อย ') และ' อัลกอริทึม 'ในบริบทนี้เป็นชุดของขั้นตอนที่ใช้ เพื่อกำหนดค่าสัมประสิทธิ์การถดถอยที่เป็นไปตามเกณฑ์นั้น ความแตกต่างนี้แสดงให้เห็นว่าเป็นไปได้ที่จะมีอัลกอริทึมที่แตกต่างกันซึ่งจะตอบสนองเกณฑ์เดียวกัน
ฉันอยากรู้ว่าคนอื่นสร้างความแตกต่างหรือไม่และใช้คำศัพท์ใด
หนังสือเล่มเก่า แต่มีอยู่เล่มหนึ่งที่ฉันพบว่าตัวเองเปลี่ยนไปเป็น
ลอว์สัน, CL และแฮนสัน, RJ แก้ปัญหากำลังสองน้อยที่สุด , Prentice-Hall, 1974
มันมีการอภิปรายอย่างละเอียดและสามารถอ่านได้มากของอัลกอริทึมบางอย่างที่คำตอบก่อนหน้านี้ได้กล่าวถึง คุณอาจต้องการดูมัน