0

'scipy'패키지의 'interp1d'함수를 사용하여 5700 데이터 샘플 (중복 된 x 값 즉 x : 가로 축)을 갖는 데이터에 스플라인을 맞추려고합니다. 파이썬에서. 저차 스플라인 (k = 1)과 2 차 스플라인 (k = 2), 3 차 스플라인 (k = 3)으로 시도했습니다. 그리고 내 데이터에서 '스플라인'의 이상한 반응을 목격 한 것에 충격을 받았습니다. 'k = 1'의 스플라인이 약간의 의미는 있지만 너무 우스꽝 스럽습니다 (2 차 및 3 차 스플라인이 너무 나 빠졌습니다). 첫 번째 재판에서 데이터와 결과에 맞게 다항식 피팅을 사용하는 것이 좋습니다. 스플라인 피팅이 다항식 피팅으로 얻은 결과보다 더 나은 결과를 줄 것으로 기대했습니다. This is the result with splines. 제게 제안 해주세요, 제가 틀린 부분이 있습니까?scipy (Python)를 사용하여 중복 x가있는 데이터에 스플라인 맞춤

답변

0

데이터 세트에 각 X 값에 대해 고유 한 값이있는 점이있는 경우 각 데이터 요소에 대한 유효 가중치는 1.0입니다. 그러나 해당 데이터 세트의 단일 데이터 포인트가 두 배가되거나 복사되는 경우 해당 데이터 포인트의 유효 가중치는 2.0입니다.

데이터 세트의 모든 데이터 포인트가 한 번 복사되면 각 포인트의 유효 가중치는 2.0으로 동일합니다. 즉, 모든 데이터 포인트의 가중치는 동일합니다.

이 데이터 세트의 일부 데이터 포인트에 고유 한 X 값이 있고 일부 데이터 포인트가 두 번 이상 나타나는 경우 한 가지 방법은 각 포인트의 유효 가중치가 1.0이되도록 "복제"데이터 포인트의 Y 값을 평균하는 것입니다. 이것은 내가 기술 한 특정한 경우에 때때로 작동 할 수 있습니다.

+0

감사합니다. James, 나는 그들의 평균과 중복을 제거했습니다. 이제는 k = 1에서의 스플라인은 k = 2와 같지만 k = 3과 같습니다. 'Quadratic', 'Cubic'스플라인의 성능이 'Linear'보다 좋을까요? 또는 다른 문제가 있습니까? –

+0

나는 쉽게 프로그래밍 할 수있는 몇 가지 간단한 테스트를 제안한다. 최소 (x), 최대 (x), 평균 (x) 및 예상대로 작동해야하는 몇 가지 다른 점을 더 작은 데이터 세트로 추출하십시오. 그런 다음 매 100 번째 데이터 포인트마다, 그 다음 10 번째마다 데이터 세트를 시도한 다음 다른 모든 데이터 포인트와 하나씩 데이터 세트를 시도하십시오. 분석은 결과에 대한 데이터 요소 수의 영향을 결정하는 것입니다. 이 작업을 수행하는 데는 시간이 매우 걸리고 유익해야합니다. 귀하의 그래프를 보면 의심 스럽지만 스플라인이 올바르게 작동하고 데이터의 노이즈가 원활 해졌습니다. –