2 つの通貨ペアでグレンジャー因果関係テストを実行しようとしていますが、テストしようとすると、シェルでこのエラー メッセージが表示されるようです。誰でもアドバイスできますか?
私はプログラミングに非常に慣れていないため、プロジェクトの分析を実行するためにこれが必要です。シェルでは、私は入れています-
import ats15 ats15.grangertest('EURUSD', 'EURGBP', 8)
何がうまくいかないのですか?以下のスクリプトをコピーしました。
前もって感謝します。
見出し ##def grangertest(Y,X,maxlag):
"""
Performs a Granger causality test on variables (vectors) Y and X.
The null hypothese is: Does X cause Y ?
Returned value: pvalue, F, df1, df2
"""
# Create linear model involving Y lags only.
n = len(Y)
if n != len(X):
raise ValueError, "grangertest: incompatible Y,X vectors"
M = [ [0] * maxlag for i in range(n-maxlag)]
for i in range(maxlag, n):
for j in range(1, maxlag+1):
M[i-maxlag][j-1] = Y[i-j]
fit = ols(M, Y[maxlag:])
RSSr = fit.RSS
# Create linear model including X lags.
for i in range(maxlag, n):
xlagged = [X[i-j] for j in range(1, maxlag+1)]
M[i-maxlag].extend(xlagged)
fit = ols(M, Y[maxlag:])
RSSu = fit.RSS
df1 = maxlag
df2 = n - 2 * maxlag - 1
F = ((RSSr - RSSu)/df1)/(RSSu/df2)
pvalue = 1.0 - stats.f.cdf(F,df1,df2)
return pvalue, F, df1, df2, RSSr, RSSu