イベントスタディにおいて、イベント日を0としその前後も含めた時点でのt値の求め方を教えていただきたいです。
平均異常リターン、累積異常リターンは出ています。
以下コードとなります。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
1306 東証ETF TOPIX連動型上場投資信託(ETF)
df =pd.read_csv("C:/Users/Desktop/stock_data/topix_2018-2019.csv", encoding="shift-jis")
df.set_index("日付")
plt.figure(figsize=(12.2,4.5)) #width = 12.2in, height = 4.5
plt.plot(df.index,df["終値調整値"], label='Close Price')
plt.title('Close Price History')
plt.xlabel('2018/1/4-2020/10/30',fontsize=18)
plt.ylabel('stock price',fontsize=18)
plt.show()
df["return"] = (df["終値調整値"] - df["終値調整値"].shift(1))/ df["終値調整値"].shift(1)
df = pd.read_csv("C:/Users/Desktop/stock_data/rakuten_2018-2019.csv", encoding="shift-jis")
楽天10/1ポイント還元ニュース日
df[df["日付"] == "2019/9/17"]
楽天10/1ポイント還元ニュース日をt=0としたときの他の日のt
df["t"]= [i for i in range(-415, 71)]
df["r_i"] = (df["終値調整値"] - df["終値調整値"].shift(1))/ df["終値調整値"].shift(1)
etf = pd.read_csv("C:/Users/Desktop/stock_data/topix_2018-2019.csv", encoding="shift-jis")
etf["r_m"] = (etf["終値調整値"] - etf["終値調整値"].shift(1))/ etf["終値調整値"].shift(1)
df["r_m"] = etf["r_m"]
推定期間スタート
df[df["t"] == -200]
推定期間エンド
df[df["t"] == -21]
rakuten = df[["r_i"]][215:394]
market = df[["r_m"]][215:394]
from sklearn import linear_model 線形モデル関係
import statsmodels.api as smf 統計量計算
Y = rakuten["r_i"]
X = market["r_m"]
単回帰分析モデルの作成
model = smf.OLS(Y,X)
result = model.fit()
result.summary()
from sklearn import linear_model
clf = linear_model.LinearRegression()
Y = seven[["r_i"]]
X = market[["r_m"]]
clf.fit(X,Y)
print(f"傾き : {clf.coef_[0][0]}")
print(f"切片 : {clf.intercept_[0]}")
回帰式
print(f"回帰式 : y = {clf.intercept_[0]} + {clf.coef_[0][0]}x")
df["expect"] = list(map(lambda x: clf.intercept_[0] + clf.coef_[0][0] * x, df["r_m"].values))
df["ar"] = df["r_i"].values - df["expect"].values
ar = round(df[df["t"] == 0]["ar"].values[0] * 100, 1)
car =( df[df["t"] == -1]["ar"].values[0]
+df[df["t"] == 0]["ar"].values[0]
+df[df["t"] == 1]["ar"].values[0])
car_li = []
value = 0
for i in df["ar"].values[1:] :
value += i
car_li.append(value)
検証期間中の累積異常リターンを描画
import matplotlib.pyplot as plt
plt.plot(df["t"].values[410:425], car_li[410:425], marker="o", label="CAR")
凡例の表示
plt.legend()
装飾
plt.ylabel('CAR')
プロット表示(設定の反映)
plt.show()
listA = df["t"].values[410:425]
listb = df["ar"].values[410:425]
df1 = pd.DataFrame(listA, index=car_li[410:425])
df1[1] = listb
この図表にt期それぞれのt値を求めたいです。
あなたの回答
tips
プレビュー