質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

1805閲覧

pythonでのt値の求め方を教えてください。

yurai0522

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/11/24 13:45

編集2020/11/24 14:39

イベントスタディにおいて、イベント日を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値を求めたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2020/11/24 13:53

まずはコードを提示すると回答を得られるかもしれません。
yurai0522

2020/11/24 14:14

コードを記載いたしました。 ご教授いただけますと幸いです。
miyabi_takatsuk

2020/11/24 14:28

コードブロックを使って下さい。 Pythonは、インデントでスコープを取るので、インデントがないとそもそも動きません。 コードブロックを使わないと、インデントが表示されません。
miyabi_takatsuk

2020/11/24 14:55 編集

まだコードブロックになってません ```python コード ``` という形式で記述すると、コードブロックになります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問