다른 날에 걸쳐 사용자의 체중을 평균화하는 프로그램을 작성 중입니다. 5 점 이동 평균 (현재 날짜, 이틀 전과 이틀 후)을 사용할 계획입니다. 때로는 1-2 일 동안 데이터 포인트가 누락되는 경우가 있습니다. 이러한 경우는 일반적으로 어떻게 처리됩니까?
(사용할 수있는 더 나은 저역 통과 필터가 있다면 제안을 좋아합니다)
다른 날에 걸쳐 사용자의 체중을 평균화하는 프로그램을 작성 중입니다. 5 점 이동 평균 (현재 날짜, 이틀 전과 이틀 후)을 사용할 계획입니다. 때로는 1-2 일 동안 데이터 포인트가 누락되는 경우가 있습니다. 이러한 경우는 일반적으로 어떻게 처리됩니까?
(사용할 수있는 더 나은 저역 통과 필터가 있다면 제안을 좋아합니다)
답변:
일반적인 인상으로, 회귀 분석은 선택한 이동 평균 필터보다 결 측점을 자동으로 맞추는 데 더 효과적입니다.
AR (자동 회귀 필터) 또는 ARMA 필터를 사용하는 경우 과거 입력을 기반으로 샘플 출력의 예측 값을 가질 수 있습니다.
여기서 는 예측값입니다.
특히 귀하의 경우, 사람의 체중이 특정 범위 임을 알고 있다고 가정하십시오 . 당신이하지 않은 경우 지금 값 - 두 개의 서로 다른 대체 적용 - 최소 하나와 최대 한 사용 가능한 모델을 기반으로이 두 가지 극단적 인 경우 결과 것 당신은 할 수 그들 사이에서 무언가를 선택하십시오.
다양한 다른 대안이 있습니다-유지할 수 있습니다
본질적으로 그것은 그 값을 예측하고 그것을 신호로 계속 사용하는 게임입니다. 물론 예측은 원본 샘플과 같지 않지만 데이터가 없어서 지불하는 가격은 아닙니다.
완전한 데이터가있는 경우 누락 된 데이터를 채우는 간단하고 일반적인 방법은
선형 회귀 를 사용하는 것 입니다. 행이 5 개씩 1000 회가없는 경우를 가정 해 봅시다.
1000 x 1 벡터 y 및 1000 x 4 행렬 X를 설정하십시오.
y X
wt[0] wt[-2] wt[-1] wt[1] wt[2]
---------------------------------
68 67 70 70 68
...
회귀는 가장 일치하는 4 개의 숫자 abcd를 제공합니다
wt[0] ~= a * wt[-2] + b * wt[-1] + c * wt[1] + d * wt[2]
1000 행의 데이터 – 다른 데이터, 다른 abc d.
그런 다음이 abcd를 사용하여 누락 된 wt [0]을 추정 (예측, 보간)합니다.
(인체 체중의 경우 abcd가 모두 약 1/4이 될 것으로 예상합니다.)
파이썬에서는 numpy.linalg.lstsq를 참조하십시오 .
(모든 수준에서 회귀에 관한 수많은 책과 논문이 있습니다. 그러나 보간과 관련하여 좋은 소개를 모릅니다.