2016-12-19 7 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はウサギの穴を開けるのに適していますが、好ましい方法論はドメイン特有の傾向があります。 Pythonでは、あなたのオプションは、私はそれらを検討するために表示されることがあります。ドキュメントから、

1.汎用Interpollat​​ion

Pythonは例えばscipy package

でいくつかの技術をサポートし、 1Dのinterpollat​​ionは1D関数を補間

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,) 

1次元線形補間。

1次元の区分線形補間を、離散データ点に>与えられた値を持つ関数に戻します。

ここに始まるの利点は、あなたがより複雑な補間

参照scipyのダウンロードパッケージのすべての一般的な使用例matplotlibの

3を使用している場合、あなたはおそらくすでにnumpyのを設定したということです時にはより汎用性の高いモデルが必要な場合もあります。 Sklearnには、多くの強力な回帰技術が含まれています。例えば、Gaussian Processは、値に加えて分散の推定値を含む補間を可能にする。ドキュメントから:

あなたは簡単にこれらの数値計算手法のほとんどに入力されていない日付心配している場合は、いくつかのexisting (python using datetimes)(an example of conversion in matlab forums)方法がある日付

の対処

enter image description here


これを行う。