วิธีการเชื่อมโยงอนุกรมเวลาสองช่วงกับช่องว่างและช่วงเวลาต่างกันอย่างไร


10

ฉันถามคำถามนี้ไปที่ StackOverflow และแนะนำให้ถามที่นี่


ฉันมีชุดข้อมูล accelerometer 3D สองชุดที่มีช่วงเวลาต่างกัน (นาฬิกาเริ่มต้นในเวลาที่แตกต่างกันโดยมีการคืบเล็กน้อยเล็กน้อยในช่วงเวลาการสุ่มตัวอย่าง) รวมถึงมีช่องว่างขนาดต่าง ๆ มากมาย (เนื่องจากความล่าช้าที่เกี่ยวข้องกับการเขียนแยก อุปกรณ์แฟลช)

accelerometers ฉันใช้มีราคาไม่แพงGCDC X250-2 ฉันใช้เครื่องวัดความเร่งเพื่อให้ได้ประโยชน์สูงสุดดังนั้นข้อมูลจึงมีจุดรบกวนที่สำคัญ

อนุกรมเวลาแต่ละชุดมีจุดข้อมูลประมาณ 2 ล้านจุด (มากกว่าหนึ่งชั่วโมงที่ 512 ตัวอย่าง / วินาที) และมีประมาณ 500 เหตุการณ์ที่น่าสนใจโดยที่เหตุการณ์ทั่วไปครอบคลุมตัวอย่าง 100-150 ตัวอย่าง (แต่ละ 200-300 มิลลิวินาที) หลายเหตุการณ์เหล่านี้ได้รับผลกระทบจากการขาดข้อมูลในระหว่างการเขียนแฟลช

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

มาตรวัดความเร่งอยู่ในสภาพแวดล้อมที่คล้ายกัน แต่อยู่ในระดับปานกลางเท่านั้นซึ่งหมายความว่าฉันสามารถบอกด้วยตาเปล่าว่าเหตุการณ์ใดที่ตรงกับมาตรความเร่งแต่ละตัว แต่ฉันก็ไม่ประสบความสำเร็จเท่าที่เคยทำมา เนื่องจากข้อ จำกัด ทางกายภาพอุปกรณ์ต่าง ๆ ก็ถูกติดตั้งในทิศทางที่แตกต่างกันซึ่งแกนไม่ตรงกัน แต่พวกมันอยู่ใกล้กับมุมฉากที่สุดเท่าที่ฉันจะทำได้ ตัวอย่างเช่นสำหรับ accelerometers 3 แกน A & B, + Ax maps ไปที่ -By (ขึ้น - ลง), + แผนที่ Az ไปที่ -Bx (ซ้ายขวา), และ + Ay maps ไปยัง -Bz (ด้านหน้า - หลัง) .

เป้าหมายเริ่มต้นของฉันคือการสร้างความสัมพันธ์เหตุการณ์ช็อตบนแกนตั้งแม้ว่าในที่สุดฉันก็อยากจะ) ค้นพบการแมปแกนโดยอัตโนมัติข) กิจกรรมที่สัมพันธ์กันบนเอซที่แมปและ c) แยกความแตกต่างของพฤติกรรมระหว่าง accelerometers สองตัว หรืองอ)

ธรรมชาติของข้อมูลอนุกรมเวลาทำให้ Numpy.correlate () ของ Python ใช้ไม่ได้ ฉันดูแพคเกจ R's Zoo แล้ว แต่ก็ไม่ได้ทำอะไรเลย ฉันดูการวิเคราะห์สัญญาณที่แตกต่างกันเพื่อขอความช่วยเหลือ แต่ฉันไม่คืบหน้า

ใครมีเบาะแสเกี่ยวกับสิ่งที่ฉันสามารถทำได้หรือแนวทางที่ฉันควรวิจัย?

อัปเดต 28 กุมภาพันธ์ 2554: เพิ่มบางส่วนที่นี่เพื่อแสดงตัวอย่างของข้อมูล


1
@BobC อาจเป็นหนึ่งในผู้ดำเนินรายการอาจย้ายโพสต์ของคุณไปยังไซต์นี้ นั่นจะสมเหตุสมผลที่สุด สำหรับคำถามทางเทคนิคก่อนอื่นคุณใช้ FFT เพื่อสร้างความสัมพันธ์หรือไม่? ซึ่งน่าจะเป็นไปได้สำหรับ 2 ล้านจุดข้อมูลบนคอมพิวเตอร์ที่เหมาะสม อัตราส่วนสัญญาณต่อเสียงรบกวนของคุณดูค่อนข้างสูงดังนั้นคุณควรดำเนินธุรกิจ การตัดอย่างรวดเร็วและสกปรกคือการกรอกข้อมูลที่ขาดหายไปด้วยตัวอย่างล่าสุดที่มีหรือศูนย์ การคืบคลานจากความแตกต่างของช่วงการสุ่มตัวอย่างอาจเป็น "คุณสมบัติ" ที่ท้าทายที่สุดสำหรับข้อมูลของคุณ
พระคาร์ดินัล

@ cardinal: ฉันลองใช้ FFT จริง ๆ เท่านั้นเพื่อให้ได้ขยะเท่านั้น คุณสมบัติ 'น่าสนใจ' ที่มองเห็นได้ง่ายในข้อมูลนั้นไม่สามารถแยกออกจากเสียงรบกวนใน FFT ได้ อย่างไรก็ตามฉันได้ทำ FFT เฉพาะกับชุดข้อมูลทั้งหมด: บางทีหน้าต่างย้าย FFT อาจให้ผลลัพธ์ที่ดีกว่า แต่ฉันยังไม่สามารถหาวิธีที่มีประสิทธิภาพในการคำนวณเพื่อนำไปใช้ ฉันสงสัยว่าการแปลงเวฟเล็ตสามารถช่วยได้ แต่ฉันไม่คุ้นเคยกับมัน (แต่เรียนรู้อย่างช้า ๆ เกี่ยวกับเรื่องนี้)
BobC

1
@ BobC สิ่งที่ฉันหมายถึงคือคุณได้พิจารณาการใช้งานแบบ FFT สำหรับการคำนวณความสัมพันธ์หรือไม่? การชักจูงโดยตรงคือแต่การติดตั้งแบบ FFT จะช่วยลดนี้ทำให้เป็นไปได้ สำหรับการดู FFT นั้นมี 2 ล้านจุดข้อมูลความละเอียดความถี่ของคุณจะสูงมาก การสุ่มตัวอย่างคืบและสิ่งอื่น ๆ ที่ถูกผูกไว้เพื่อล้างสัญญาณในแต่ละความถี่ แต่คุณควรจะสามารถรวมถังขยะจำนวนมากเพื่อนำสัญญาณออกมาจากเสียง บางอย่างเช่น Welch approach หรืออาจเป็นเทคนิคการกำหนดหน้าต่างเอง O ( n log n )O(n2)O(nlogn)
พระคาร์ดินัล

@ BobC ซึ่งอยู่ด้านบนของหัวของฉันดูเหมือนว่าอัลกอริทึมซ้อนทับและเพิ่มหรือทับซ้อนกันและบันทึกบางส่วนสามารถใช้ในการทำ FFT หน้าต่างบานเลื่อน การเลื่อนตัวอย่างภายในหน้าต่างเพียงแค่ปรับเปลี่ยนเฟสดังนั้นสิ่งที่คุณต้องทำคือชดเชยตัวอย่างเหล่านั้นที่ "หลุด" ทางซ้ายและผู้ที่ "เข้ามา" ทางด้านขวา
พระคาร์ดินัล

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

คำตอบ:


12

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

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

(z(p)z(q))2/2z(p)ppqZVar(Z(p))pZ(p)Z(q)

(z(p),w(p))zw

ด้วยสองล้านคะแนนคุณควรจะสามารถตรวจจับความเบี่ยงเบนเล็ก ๆ จากความคงที่ มีความเป็นไปได้ที่ความแตกต่างของเฟสระหว่างสองอนุกรมเวลาอาจแตกต่างกันไปตามกาลเวลาเช่นกัน รับมือกับสิ่งนี้ด้วยการคำนวณ cross-variogram แยกกันสำหรับหน้าต่างที่แตกต่างกันที่เว้นระยะตลอดช่วงเวลา

O(nk)O(n2)k


ntn=nttnτn=tn+α+βnαβ

ββ

@whuber, @BobC ฉันกำลังคาดเดาแบบกึ่งการศึกษาจากประสบการณ์ที่ผ่านมาในการจัดการกับปัญหาและปัญหาที่คล้ายกัน วิธีการส่วนใหญ่ที่ฉันเห็นมีความเข้มข้นในการคำนวณและไม่ประทับใจ หนึ่งในความพยายามอาจจะผ่านสิ่งที่ต้องการแปรปรวนเวลาแบบไดนามิกหรือสิ่งที่ Ramsay และโทร Silverman ลงทะเบียนโค้ง ไม่ว่าข้อมูลเหล่านี้จะเป็นไปได้ในชุดข้อมูลขนาดนี้ไม่ชัดเจนสำหรับฉัน
พระคาร์ดินัล

มันจะพาฉันสักหน่อยเพื่อให้สมองของฉันห่อหุ้มสิ่งนี้ ฉันจะเริ่มต้นด้วยตัวอย่างในแพ็คเกจ R ที่คุณพูดถึง
BobC

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