2016-12-19 3 views
1

x 축이 datetime 모듈을 사용하는 날짜 인 커브를 플롯했지만 그 사이를 보간 할 수 있기를 원합니다. 예를 들어, 값을 입력하지 않더라도 2017-05-05에 값을 보간하고 싶습니다. 내 코드는 다음과 같습니다.x 축의 날짜로 커브 보간

import pandas as pd 
import numpy as np 
import datetime as dt 
import matplotlib.pyplot as plt 


eudata = pd.read_csv("H:/euriborspots.csv") 

months = eudata.ix[:, 'Expiry'] 
badspots = eudata.ix[:, 'Spot'] 
spots = [100 -x for x in badspots] 


dates = [dt.datetime.strptime(d,'%Y-%m-%d').date() for d in months] 
datearray = np.array(dates) 
ratearray = np.array(spots) 

ratecurve = plt.plot(datearray, ratearray) 

아무도 도와 드릴 수 있습니까?

+0

어떤 종류의 보간? 선형 ("최적"선 그리기), 다항식, 지수, 기계 학습 기술 사용? 일부는 다른 사람보다 쉽게 ​​할 수 있습니다 :) –

답변

0

보간법은 꽤 광범위한 주제입니다. 늘 그렇듯이 Wikipedia은 관심있는 경우 토끼 구멍을 시작하기에 좋은 장소입니다. 그러나 선호되는 방법론은 도메인 특유의 경향이 있습니다. 파이썬에서, 옵션, 나는 그들을 고려할 것 순으로 나열 될 수 있습니다 : 워드 프로세서에서,

1. 일반 목적 Interpollation

파이썬은 예를 들어 scipy package

에서 몇 가지 기술을 지원, 1 차원 (1D) interpollation는 보간 함수

scipy.interpolate.interp1d(x, y, kind='linear')) 

수행 될 수있다.

x 및 y는 일부 함수 f : y = f (x)를 근사하는 데 사용되는 값의 배열입니다. 이 클래스는 새로운 점의 값을 찾기 위해 보간법을 사용하는 함수를 반환합니다.

여기 시작의 장점은, 그것은 빠르고 쉽게 발사 장소이다 (아나콘다에 포함, 예를 들어) 최소한의 종속성을 필요로하고, 유연성의 공급이 많이 나중에 모델을 변경하고자하는 경우.

Plotting code found in the docs:in the docs

enter image description hereenter image description here

2. 간단한 1D 보간 단순 1D 보간도 찾을 수

right in numpy

numpy.interp(x, xp, fp,) 
,174,

1 차원 선형 보간.

이산 데이터 포인트에서 지정된 값보다 큰 함수로 1 차원 조각 별 선형 보간을 반환합니다.

여기 시작의 이점은하기 matplotlib에게

3. 더 복잡한 보간

참조 된 Scipy 패키지의 모든 일반적인 사용 사례를 사용하는 경우 당신은 아마 이미 NumPy와를 설정 한 것입니다 , 때로는 좀 더 보편화가 가능한 모델을 원한다. Sklearn에는 많은 강력한 회귀 기술이 포함되어 있습니다. 예를 들어, Gaussian Process은 값 이외에 분산 추정을 포함하는 보간을 허용합니다.워드 프로세서에서 :

enter image description here


가 쉽게 이러한 수치 방법의 대부분에 입력되지 않는 날짜에 대해 걱정이 있다면 날짜

다루기, 여러 existing (python using datetimes)(an example of conversion in matlab forums) 방법이 있습니다 이렇게.