Tôi có hai chuỗi thời gian khác nhau với thời gian một phần chồng chéo:Làm cách nào để tổng hợp thời gian trong Python?
import scikits.timeseries as ts
from datetime import datetime
a = ts.time_series([1,2,3], dates=[datetime(2010,10,20), datetime(2010,10,21), datetime(2010,10,23)], freq='D')
b = ts.time_series([4,5,6], dates=[datetime(2010,10,20), datetime(2010,10,22), datetime(2010,10,23)], freq='D')
mà đại diện cho sau dữ liệu:
Day: 20. 21. 22. 23.
a: 1 2 - 3
b: 4 - 5 6
Tôi muốn tính toán một bình quân gia quyền trên mỗi ngày với các hệ số a (0,3) và b (0.7), trong khi bỏ qua các giá trị bị thiếu:
Day 20.: (0.3 * 1 + 0.7 * 4)/(0.3 + 0.7) = 3.1/1. = 3.1
Day 21.: (0.3 * 2 )/(0.3 ) = 0.6/0.3 = 2
Day 22.: ( 0.7 * 5)/( 0.7) = 3.5/0.7 = 5
Day 23.: (0.3 * 3 + 0.7 * 6)/(0.3 + 0.7) = 3.1/1. = 5.1
khi lần đầu tiên tôi cố căn chỉnh các khoảng thời gian sau:
a1, b1 = ts.aligned(a, b)
chuỗi thời gian tôi nhận được đeo mặt nạ đúng cách:
timeseries([1 2 -- 3],
dates = [20-Oct-2010 ... 23-Oct-2010],
freq = D)
timeseries([4 -- 5 6],
dates = [20-Oct-2010 ... 23-Oct-2010],
freq = D)
nhưng khi tôi làm a1 * 0.3 + b1 * 0.7
, nó bỏ qua các giá trị, đó là hiện nay chỉ trong một chuỗi thời gian:
timeseries([3.1 -- -- 5.1],
dates = [20-Oct-2010 ... 23-Oct-2010],
freq = D)
Tôi nên làm gì để nhận được sự chờ đợi?
timeseries([3.1 2. 5. 5.1],
dates = [20-Oct-2010 ... 23-Oct-2010],
freq = D)
EDIT: Câu trả lời nên được áp dụng cũng đến hơn hai chuỗi thời gian ban đầu với trọng lượng khác nhau và các giá trị khác nhau mất tích.
Vì vậy, nếu chúng ta có bốn chuỗi thời gian với trọng lượng T1 (0.1), T2 (0.2), T3 (0.3) và T4 (0,4), trọng lượng của họ tại một dấu thời gian nhất định sẽ là:
| T1 | T2 | T3 | T4 |
weight | 0.1 | 0.2 | 0.3 | 0.4 |
-------------------------------------
all present | 10% | 20% | 30% | 40% |
T1 missing | | 22% | 33% | 45% |
T1,T2 miss. | | | 43% | 57% |
T4 missing | 17% | 33% | 50% | |
etc.
"hơn hai chuỗi thời gian ban đầu"? Bạn có nghĩa là T1, T2, T3? Không phải là chỉ ((T1 * agg * T2) * agg * T3)? Trong trường hợp đó, bất kỳ số lượng chuỗi thời gian nào cũng có thể được tổng hợp bằng cách đơn giản áp dụng giải pháp làm giảm. Nếu không, tai sao không? –
@ S.Lott - không thực sự. Làm thế nào bạn sẽ xử lý trọng lượng với T1 (0.2), T2 (0.2) và T3 (0.6)? Nếu tại một dấu thời gian nhất định T1 bị thiếu, thì 0,6 của T3 thể hiện thực sự là 75% (T2 sau đó là 25%) và không phải là 60% của toàn bộ nhóm. Trong logic ((T1 agg T2) T3 của bạn) logic này sẽ không hoạt động. – eumiro
@eumiro: Vui lòng ** cập nhật ** câu hỏi của bạn với yêu cầu này. –