PythonでVARモデルを作成しようとしています(statsmodel内でVARなどの事前に作成された関数を使用することは許可されていません)。
このために、従属変数の行列が必要です。私は3つの国債のデータセットを持っていますが、それらはすべて満期が異なります。データは次のようにインポートおよび処理されます
# importing file
df = pd.read_csv("C://Users/raymond/Desktop/Econometrie3/us_tbills_8019.csv")
# dropping years > 1999
df = df.iloc[:240]
# calculating log differences
Dates = pd.to_datetime(df['DATE'], format='%Y-%m-%d')
mData = df[['GS10','GS5','GS1']]
mData.index = pd.DatetimeIndex(Dates)
AllData = mData
logdif = np.log(mData).diff().shift(1).dropna()
従属変数の行列である行列Yを作成するには、範囲i = 1:Kおよびj = P + 1:T-1のlogdifの値を取得します。
マトリックスを作成するために、次のことを試みました。
# variables
K = 3
T = df.shape[0]
P = 4
# matrix of Dependent Variable
Y = logdif
def functionY():
for i in range(1, 3, 1):
for j in range(P+1, T-1, 1):
Y[i][j-1] = logdif[i][j]
return Y
マトリックスを見つけるために他の方法も試しましたが、どれも機能しませんでした。
マトリックスを作成するためのヒントはありますか?
すべてのコードを理解することはできませんが(他の問題がある可能性があります)、データフレームlogdif
を2番目の変数に割り当ててから、にY
値を書き込んでいることに気付きましたY
。logdif
参照によってのみ割り当てられるため、これは変更されることに注意してください。(logdif
同時に読んでいるので、これはあなたが望むもののようには見えません。)
それY = logdif.copy()
を避けるために使用してください。
編集:また、range(1,3,1)
と同じですrange(1,3)
。
編集:また、あなたはあなたがマトリックスを作成しようとしていると述べています; 現在使用している変数は引き続きDataFrameです(np.logはここで引数のタイプを保持します)。Y = np.matrix(logdif)
これを変更するために使用できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加