การแก้ระบบสมการด้วยข้อมูลที่กระจัดกระจาย


11

ฉันพยายามที่จะแก้ชุดสมการซึ่งมีตัวแปรอิสระ 40 ตัว (x1, ... , x40) และตัวแปรตาม (y) หนึ่งตัว จำนวนสมการทั้งหมด (จำนวนแถว) คือ ~ 300 และฉันต้องการแก้สำหรับชุดของ 40 สัมประสิทธิ์ที่ช่วยลดข้อผิดพลาดรวมของสี่เหลี่ยมจัตุรัสระหว่าง y และค่าที่คาดการณ์ไว้

ปัญหาของฉันคือเมทริกซ์เบาบางมากและฉันไม่รู้วิธีที่ดีที่สุดในการแก้ระบบสมการด้วยข้อมูลเบาบาง ตัวอย่างของชุดข้อมูลที่แสดงด้านล่าง:

   y    x1  x2 x3 x4 x5 x6 ... x40
87169   14  0  1  0  0  2  ... 0 
46449   0   0  4  0  1  4  ... 12
846449  0   0  0  0  0  3  ... 0
....

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

ใครก็ตามสามารถแนะนำวิธีการหรือเทคนิคที่แตกต่างกันซึ่งสามารถแก้ชุดสมการด้วยข้อมูลที่กระจัดกระจายได้


2
พิมพ์ผิดในชื่อเรื่อง: spare => sparse
Aleksandr Blekh

คำตอบ:


11

ถ้าฉันเข้าใจคุณอย่างถูกต้องนี่เป็นกรณีของการถดถอยเชิงเส้นหลายครั้งพร้อมข้อมูลเบาบาง (การกระจายแบบเบาบาง ) สมมติว่าฉันหวังว่าคุณจะพบว่าแหล่งข้อมูลต่อไปนี้มีประโยชน์

1) สไลด์บรรยาย NCSU เกี่ยวกับการถดถอยแบบเบาบางพร้อมภาพรวมของอัลกอริทึมบันทึกสูตรกราฟิกและการอ้างอิงถึงวรรณกรรม: http://www.stat.ncsu.edu/people/zhou/courses/st810/notes/lect23sparse.pdf

2) Rระบบนิเวศเสนอแพคเกจมากมายมีประโยชน์สำหรับการวิเคราะห์การถดถอยแบบเบาบาง ได้แก่ :

3) โพสต์บล็อกพร้อมตัวอย่างของโซลูชันการถดถอยแบบกระจัดกระจายโดยอ้างอิงจากSparseM: http://aleph-nought.blogspot.com/2012/03/multiple-linear-regression-with-sparse.html

4) โพสต์บล็อกเกี่ยวกับการใช้เมทริกซ์กระจัดกระจายใน Rซึ่งรวมถึงไพรเมอร์ในการใช้glmnet: http://www.johnmyleswhite.com/notebook/2011/10/31/using-sparse-matrices-in-r

5) ตัวอย่างเพิ่มเติมและการอภิปรายบางหัวข้อสามารถพบได้ในStackOverflow : /programming/3169371/large-scale-regression-in-r-with-a-speat-matrix

อัปเดต (ตามความคิดเห็นของคุณ):

ถ้าคุณกำลังพยายามที่จะแก้ปัญหาที่มีข้อ จำกัด LP คุณอาจพบนี้กระดาษทฤษฎีที่มีประโยชน์: http://web.stanford.edu/group/SOL/papers/gmsw84.pdf

นอกจากนี้ยังตรวจสอบ R แพคเกจlimSolve : http://cran.r-project.org/web/packages/limSolve และโดยทั่วไปแพคเกจในการตรวจสอบCRAN งานดู "การเพิ่มประสิทธิภาพและการเขียนโปรแกรมทางคณิตศาสตร์" : http://cran.r-project.org/web/views/Optimization.html

สุดท้ายตรวจสอบหนังสือ"การใช้ R สำหรับการวิเคราะห์เชิงตัวเลขในวิทยาศาสตร์และวิศวกรรม" (โดย Victor A. Bloomfield) มันมีส่วนเกี่ยวกับระบบการแก้สมการซึ่งแสดงโดยเมทริกซ์กระจัดกระจาย (ส่วนที่ 5.7 หน้า 99-104) ซึ่งรวมถึงตัวอย่างตามแพคเกจดังกล่าวข้างต้นบางส่วน: http://books.google.co.th/books? id


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

1
@ mike1886: ความสุขของฉัน! ฉันได้อัปเดตคำตอบตามความคิดเห็นของคุณแล้ว หวังว่ามันจะช่วย
Aleksandr Blekh

7

คำตอบของ Aleksandrนั้นถูกต้องสมบูรณ์

อย่างไรก็ตามวิธีการตั้งคำถามแสดงว่านี่เป็นคำถามการถดถอยกำลังสองน้อยที่สุดตรงไปตรงมา: ลดผลรวมของส่วนที่เหลือกำลังสองระหว่างตัวแปรตามและการรวมกันเชิงเส้นของตัวทำนาย

ขณะนี้อาจมีค่าศูนย์จำนวนมากในเมทริกซ์การออกแบบของคุณระบบของคุณเช่นนี้ไม่ใหญ่เกินไป: การสังเกตการณ์ 300 ครั้งในตัวทำนาย 40 ตัวไม่เกินขนาดกลาง คุณสามารถเรียกใช้การถดถอยโดยใช้ R โดยไม่ต้องใช้ความพยายามเป็นพิเศษสำหรับข้อมูลที่กระจัดกระจาย เพียงใช้lm()คำสั่ง (สำหรับ "โมเดลเชิงเส้น") ใช้?lmเพื่อดูหน้าช่วยเหลือ และโปรดทราบว่าlmโดยค่าเริ่มต้นจะเพิ่มคอลัมน์คงที่ของคอลัมน์ลงในเมทริกซ์การออกแบบของคุณ (การสกัดกั้น) - รวมถึง-1ทางด้านขวามือของสูตรของคุณเพื่อระงับสิ่งนี้ โดยรวมแล้วสมมติว่าข้อมูลทั้งหมดของคุณ (และไม่มีอะไรอื่น) อยู่ในdata.frameชื่อเรียกfooคุณสามารถทำได้:

model <- lm(y~.-1,data=foo)

จากนั้นคุณสามารถดูการประมาณพารามิเตอร์เป็นต้นดังนี้

summary(model)
residuals(model)

หากระบบของคุณมากขนาดใหญ่กล่าวว่าในการสั่งซื้อ 10,000 สังเกตและร้อยพยากรณ์ที่กำลังมองหาที่เชี่ยวชาญแก้เบาบางตามคำตอบของอเล็กซานเดอาจเริ่มต้นที่จะทำให้ความรู้สึก

ในความคิดเห็นของคุณต่อคำตอบของอเล็กซานเดอร์คุณพูดถึงข้อ จำกัด ในสมการของคุณ ถ้านั่นเป็นปัญหาสำคัญของคุณมีวิธีการคำนวณกำลังสองน้อยที่สุดในอาร์ฉันส่วนตัวชอบpcls()ในmgcvแพ็คเกจ บางทีคุณต้องการที่จะแก้ไขคำถามของคุณที่จะรวมถึงประเภทของข้อ จำกัด (ข้อ จำกัด กล่องข้อ จำกัด nonnegativity, ข้อ จำกัด บูรณาการข้อ จำกัด เชิงเส้น, ... ) คุณเผชิญ?


1
สเตฟานฉันซาบซึ้งในคำพูดของคุณ! ยกระดับคำตอบที่ดีของคุณ คุณอาจสนใจในการอัปเดตที่ฉันทำกับคำตอบของฉันตามความคิดเห็นโดยผู้เขียนคำถาม
Aleksandr Blekh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.