Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

integral: 시계열의 누적 적분

foundryts.functions.integral(method='LINEAR')는 숫자형 시계열 하나를 시간에 따라 누적 적분하는 함수를 반환합니다. 각 관측 시각까지의 구간 넓이를 더하며 시간 간격은 초 단위로 계산합니다. 입력과 출력은 FunctionNode입니다.

적분 방법

method는 String이며 다음 값 중 하나를 사용합니다.

method계산 방법과 특성
LHS구간 시작값으로 넓이를 계산하는 왼쪽 합. 증가하는 구간에서는 작게, 감소하는 구간에서는 크게 추정하는 경향이 있음. 초기 값이 구간을 대표하는 모델에 사용
RHS구간 끝값으로 계산하는 오른쪽 합. 증가하는 구간에서는 크게, 감소하는 구간에서는 작게 추정하는 경향이 있음. 최근 값이 구간을 대표하는 모델에 사용
LINEAR기본값. 양끝 값을 평균한 사다리꼴 넓이로 계산하여 두 시점의 값을 함께 반영

LHS와 RHS는 리만 합으로 구간 넓이를 추정합니다. LINEAR는 구간 내 선형 변화를 가정하는 사다리꼴 적분입니다. 범주형 시계열에는 적용하지 않습니다.

가상 관측 예제

import foundryts.functions as F

series = F.points(
    (1000, 1.0),
    (3000, 3.0),
    (5000, 0.0),
    (6000, 5.0),
    (8000, -7.0),
    name="series",
)
linear_integral = F.integral(method="LINEAR")(series)
lhs_integral = F.integral(method="LHS")(series)
rhs_integral = F.integral(method="RHS")(series)
linear_df = linear_integral.to_pandas()

시각은 나노초이므로 첫 구간의 길이는 2마이크로초입니다. LINEAR의 첫 누적값은 평균값 2에 0.000002초를 곱한 0.000004입니다. 필요한 다른 방법의 노드도 같은 방식으로 평가할 수 있습니다.

timestamp입력 값LINEARLHSRHS
1970-01-01 00:00:00.0000011.00.00.00.0
1970-01-01 00:00:00.0000033.00.0000040.0000020.000006
1970-01-01 00:00:00.0000050.00.0000070.0000080.000006
1970-01-01 00:00:00.0000065.00.00000950.0000080.000011
1970-01-01 00:00:00.000008-7.00.00000750.000018-0.000003

첫 관측에는 아직 적분할 시간 구간이 없어 누적값이 0입니다. 각 출력 DataFrame은 pandas.Timestamp 형식의 timestamp와 float 형식의 value를 가집니다. 초당 값의 변화율을 구하려면 derivative를 사용합니다.