2016-11-21 19 views
0

Googleの在庫データで季節性を探しています。私はすでに、私はアルゴリズム取引のためのより良いサポートが利用できることがわかりましたので、今、私は、PythonでそれをやりたいRRとPythonのフーリエ変換で季節性を検出

library(quantmod) 
library(TSA) 
a=getYahooData("GOOGL",start=20130101,end=20160127,freq="daily") 
a=log(a$Close)-lag(log(a$Close)) 
a=na.exclude(a) 
periodogram(a) 

Periodogram with R

で正常にそれをやりました。 は、ここに私のコードはPythonで私のコードが間違っている何

import numpy as np 
from scipy import signal 
import matplotlib.pyplot as plt 
import pandas_datareader.data as web 
import datetime 
start = datetime.datetime(2013, 1, 1) 
end = datetime.datetime(2016, 1, 27) 
df = web.DataReader("GOOGL", 'yahoo', start, end) 
# import data from yahoo finance 
z=np.array(df) 
# convert data to array in order to manipulate with numpy 
y=z[:,5] 
# column with close prices 
logR=np.diff(np.log(y)) 
# logarithmic returns 
periodgram = signal.periodogram(logR) 
plt.plot(periodgram) 
plt.show() 
# periodgram graph 

Periodogram with Python

のですか?なぜ私のピリオドグラムはとても違って見えるのですか?

+0

遅延(diff(log(a $ Close))の文のRHS –

答えて

0

periodogramは、(f, Pxx)のペアを返します。

... 
f, Pxx = signal.periodogram(logR) 
plt.plot(f, Pxx) 
... 

まだR出力とはかなり異なっています。多分あなたは別の列を望んでいましたか?使用

logR = np.diff(np.log(df["Adj Close"])) 

または[閉じる代わりにしたい場合は、::あなたが使用して、直接、パンダのデータフレームの列にアクセスすることができます

注1が正常に書くでしょうRコードで

logR = np.diff(np.log(df.Close)) 
+0

日付やデータマイニングの方法の違いがあると思います。ありがとう、私はなぜペアを使用する必要性を尋ねることがありますか? @Neapolitan –

+0

'plot(array)'を使用すると、matplotlibは配列の各行に対して1つのプロット線を生成します。xは1からnまでです(nは列の数です)。 – Neapolitan

関連する問題