win_type = 'gaussian'또는 win_type = 'general_gaussian'인 Pandas rolling_window 함수를 사용하려고합니다. datetime으로 인덱싱 된 시계열 데이터 세트가 있고 노이즈를 줄이기 위해 스무딩 기능이 필요합니다. 나는 boxcar를 피하고 대신 Gaussian weighting을 사용하고 싶다. 나는 윈도우 크기와 std (가우시안의 경우), 창 크기, 출력 및 너비 값 (일반 가우스의 경우)을 다양한 범위로 실험했으며 동일한 결과를 일관되게 얻습니다. 스무딩 된 출력은 원래 입력 데이터보다 더 낮게 오프셋됩니다. . 이것은 질문했지만 대답하지 않은 질문과 동일한 문제입니다. here.팬더 롤링 창 함수가 데이터를 오프셋합니다.
I이 사용하려고 코드의 특정 라인은 다음의 '는 날짜 인덱스 팬더의 dataframe에서 데이터의 단일 열이
dNorth_smooth = rolling_window(s, window=40, win_type='gaussian', std=30, center=True, freq='15S')
. 이 경우 's'는 15 초 간격으로 미터 단위로 표시됩니다. 따라서 창 크기는 40 줄 또는 40 * 15 = 600 초 = 10 분입니다. 정확하게 std 인수가 무엇을 의미하는지는 명확하지 않지만 주파수 영역에 있다고 가정하고 가우스 곡선의 모양을 제어하는 창 크기보다 작은 값일 것입니다 (관계없이 많은 표준 값을 실험했습니다). ; std가 매우 큰 경우 오프셋이 발생하지 않지만 이는 가우스 곡선이 창에 비해 너무 넓어 져서 본질적으로 상자를 사용하고 있기 때문입니다. 'center'및 'freq'인수는 출력을 어느 방향으로도 변경하지 않습니다. 다른 선택적 인수도 무의미한 것처럼 보입니다.
일단 내가 더 높은 평판을 얻으면 나는 설명 할 수있는 음모를 게시 할 수 있습니다. 위의 링크 된 질문에 대한 플롯을 보아라. 이것이 내가 가진 똑같은 문제이기 때문이다. 또한 유의 사항 : boxcar 창 (rolling_mean과 동일 함)은 이 아니고이 오프셋 문제가 있습니다. 그러나 다른 모든 윈도우 가중 함수 (triang, blackman 등)와 함께 존재하는 것처럼 보입니다.
링크 된 질문에서 가장 최근의 의견 (광산 제외)에 따라 단계 기능을 사용하는 것이 좋습니다. 라이브러리가 올바르게 작동하는지 여부를 나타냅니다. –
단계 함수를 생성하고 단계 함수를 입력으로 사용하여 Guassian 이동 창을 테스트했으며 오프셋없이 예상대로 작동하는 것으로 보입니다. 창 크기와 표준 값을 조정할 수 있으며 오프셋없이 부드럽게 곡선의 모양을 간단히 조정합니다. 이것은 좋은 테스트, 팁 덕분입니다. 그러나 움직이는 창을 적용 할 수없는 데이터 집합의 문제가 남아 있습니다. 내 테스트 단계 기능이 0에 가까운 반면 내 데이터가 3000.0에 가까운 값을 기준으로 +/- 0.05로 변하는 경향이 있는지 궁금합니다. – PJW
예, 제로 중심의 스텝 기능을 +3000만큼 오프셋하여 테스트했지만, 지금까지 설명한 것처럼 가우시안 이동 창이 실패합니다. – PJW