การลดขนาด SVD สำหรับอนุกรมเวลาที่มีความยาวต่างกัน


13

ฉันกำลังใช้การลดค่าเอกพจน์เป็นเทคนิคการลดขนาด

ให้Nเวกเตอร์ของมิติDความคิดคือการแสดงคุณสมบัติในพื้นที่แปลงของมิติ uncorrelated ซึ่งรวมส่วนใหญ่ของข้อมูลของข้อมูลใน eigenvector ของพื้นที่นี้ในลำดับความสำคัญลดลง

ตอนนี้ฉันกำลังพยายามใช้ขั้นตอนนี้กับข้อมูลอนุกรมเวลา ปัญหาคือว่าบางส่วนไม่ได้มีความยาวเท่ากันดังนั้นฉันจึงไม่สามารถสร้างnum-by-dimเมทริกซ์และใช้ SVD ได้ ความคิดแรกของฉันคือการวางเมทริกซ์ด้วยเลขศูนย์ด้วยการสร้างnum-by-maxDimเมทริกซ์และเติมช่องว่างด้วยศูนย์ แต่ฉันไม่แน่ใจว่านั่นเป็นวิธีที่ถูกต้องหรือไม่

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

ด้านล่างเป็นส่วนหนึ่งของรหัส MATLAB เพื่อแสดงแนวคิด:

X = randn(100,4);                       % data matrix of size N-by-dim

X0 = bsxfun(@minus, X, mean(X));        % standarize
[U S V] = svd(X0,0);                    % SVD
variances = diag(S).^2 / (size(X,1)-1); % variances along eigenvectors

KEEP = 2;                               % number of dimensions to keep
newX = U(:,1:KEEP)*S(1:KEEP,1:KEEP);    % reduced and transformed data

(ฉันเขียนโปรแกรมเป็นส่วนใหญ่ใน MATLAB แต่ฉันสบายใจที่จะอ่าน R / Python / .. เช่นกัน)


คำถามที่ดี! ฉันคิดว่าคุณสามารถปรับปรุงชื่อเรื่องอาจมีบางอย่างเช่น "ข้อมูลที่หายไป" บางแห่งหรือ "คูณชุดของความยาวต่างกัน"
robin girard

1
ฉันจะไม่เรียกมันว่า "ข้อมูลที่หายไป" บางทีอาจเป็น "การลดมิติข้อมูล SVD สำหรับอนุกรมเวลาที่มีความยาวต่างกัน"
Amro

1
ฉันชอบชื่อที่คุณเสนอ!
robin girard

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

คำตอบ:


5

มีงานวิจัยใหม่ที่มีเหตุผลพอสมควรที่เรียกว่าMatrix Completionซึ่งอาจเป็นสิ่งที่คุณต้องการ มีการแนะนำที่ดีจริงๆในบทบรรยายนี้โดย Emmanuel Candes


+1 สำหรับเว็บไซต์ VideoLecture ฉันไม่รู้คุณพูดถึงคำถามเกี่ยวกับวิดีโอบรรยายหรือไม่
robin girard

ฉันเพิ่งจะอ่านเกี่ยวกับสิ่งนี้เมื่อเร็ว ๆ นี้ ฉันชอบบทความล่าสุดของ Candes และ Tao ในหัวข้อarxiv.org/abs/0903.1476
Robby McKilliam

2

การเติมด้วยศูนย์นั้นไม่ดี ลองเติมด้วยการเปลี่ยนตัวอย่างโดยใช้การสังเกตจากอดีต


1 การจำลองแบบ / resampling แน่นอนดีกว่าศูนย์ padding .. ยังคงฉันจะรอและดูว่ามีความคิดอื่น ๆ ออกมี :)
Amro

2

แค่คิด: คุณอาจไม่ต้องการ SVD แบบเต็มสำหรับปัญหาของคุณ ให้M = USV *เป็น SVD ของdโดยn matrix ( เช่นอนุกรมเวลาเป็นคอลัมน์) เพื่อให้บรรลุการลดมิติที่คุณจะใช้การฝึกอบรมVและS คุณสามารถค้นหาได้โดย diagonalizing M * M = V (S * S) V * อย่างไรก็ตามเนื่องจากคุณไม่มีค่าบางอย่างคุณจึงไม่สามารถคำนวณM * Mได้ อย่างไรก็ตามคุณสามารถประมาณได้ รายการของมันคือผลรวมของผลิตภัณฑ์ของคอลัมน์ของM. เมื่อคำนวณ SSP ใด ๆ ให้ละเว้นคู่ที่เกี่ยวข้องกับค่าที่หายไป ขายแต่ละผลิตภัณฑ์ให้รับผิดชอบค่าที่หายไป: นั่นคือเมื่อใดก็ตามที่ SSP เกี่ยวข้องกับคู่nkให้ขายใหม่โดยn / (nk) ขั้นตอนนี้เป็นตัวประมาณค่า "สมเหตุสมผล" ของM * Mและคุณสามารถดำเนินการต่อได้ หากคุณต้องการที่จะได้รับนักเล่นเทคนิคการใส่ร้ายบางทีหลายคนหรือเมทริกซ์แล้วเสร็จจะช่วยให้

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


MTM

นั่นเป็นประเด็นที่ดี แต่ผลลัพธ์อาจไม่เลวร้ายนัก สิ่งที่เราหวังคือการประมาณ M * M นั้นใกล้เคียงกับมูลค่าที่แท้จริงที่การก่อกวนของค่าลักษณะเฉพาะนั้นมีขนาดเล็กพอสมควร ดังนั้นเมื่อฉายไปที่ eigenspace ที่สอดคล้องกับค่าลักษณะเฉพาะที่ใหญ่ที่สุดคุณจะได้รับผลกระทบเพียงเล็กน้อยจากการแก้ปัญหาที่ถูกต้อง แต่ยังคงได้ผลการลดขนาดที่ต้องการ บางทีปัญหาที่ใหญ่ที่สุดอาจเป็นอัลกอริธึม: เนื่องจากคุณไม่สามารถสันนิษฐานได้ว่าเป็นความ semidefiniteness อีกต่อไปคุณอาจต้องใช้อัลกอริธึมที่มีจุดประสงค์ทั่วไปมากขึ้นเพื่อค้นหาระบบไออีเจน
whuber

1

คุณสามารถประเมินโมเดลอนุกรมเวลาที่ไม่เปลี่ยนแปลงสำหรับซีรีส์ 'สั้น' และคาดการณ์ในอนาคตเพื่อ 'จัดเรียง' ซีรีย์ทั้งหมด


การคาดการณ์จะรวมถึงความนุ่มนวลในส่วนที่เติมซึ่งไม่มีอยู่ในส่วนที่มีอยู่ คุณต้องเพิ่มการสุ่ม ... ดังนั้นการสุ่มใหม่ (และการทำแผนที่ใหม่ในการคาดการณ์ดูเหมือนจะเป็นความคิดที่ดี)
robin girard

การคาดการณ์แบบจำลองจะต้องมีการสุ่มตัวอย่างระยะความผิดพลาดซึ่งจะทำให้เกิดการสุ่มที่ต้องการ

IMO ทั้งสองข้อเสนอแนะนำไปใช้ในการทำนายค่าในอนาคตจากแบบจำลองที่มีอยู่ (บางทีแบบ AR / ARMA?) ผมคิดว่าผมยังคงหวังแก้ปัญหาที่ไม่เกี่ยวข้องกับค่าสุ่มตัวอย่าง (ดังนั้นความเป็นไปได้ของการแนะนำข้อผิดพลาด) .. นอกจากนี้การประเมินรูปแบบดังกล่าวอยู่ในตัวเองในรูปแบบของการลดมิติ :)
Amro

1

ฉันสับสนบ้างโดยรหัสตัวอย่างของคุณเป็นดูเหมือนว่าคุณวางตัวแปรจากการคำนวณของV newXคุณกำลังมองหารูปแบบXเป็นผลิตภัณฑ์ลดอันดับหรือคุณสนใจในพื้นที่คอลัมน์ลดลงของX? ในกรณีหลังฉันคิดว่าวิธีการ EM-PCA จะใช้งานได้ คุณสามารถค้นหาโค้ด MATLAB ภายใต้ชื่อน่าจะเป็น PCA ที่มีค่าที่ขาดหายไป

HTH,


ฉันไม่ได้พยายามคำนวณการลดอันดับ X, เปลี่ยน X คุณเห็นว่าเป้าหมายของฉันไม่ใช่การกรองลำดับที่มีเสียงดัง แต่เพื่อค้นหาการแสดงที่มีมิติลดลง (เพื่อใช้สำหรับการจำแนก / การจัดกลุ่มของอนุกรมเวลา ) ... คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับแนวทาง EM-PCA ได้ไหม?
Amro
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.