上昇する月、下落する月
- 曜日によって上昇/下落の差があるか否かを以前に調査した。
- 月によって上昇/下落の差があるか否かを調査する。いつものようにLibraryをimport。
import pandas as pd import numpy as np import scipy.stats as st from matplotlib import pylab as plt import seaborn as sns sns.set() #今回は月ごとのデータで分析 fx_data = pd.read_csv("/Users/ユーザー名/Documents/FX/foreign_exchange_historical_data/USDJPY/USDJPY_MONTH.csv")#データの読み込み #pandasの計算は遅いので、全てnumpy配列に変換
- 以下一気にグラフまで
#時系列データのためdatetimeをimport import datetime from collections import defaultdict opening = np.array(fx_data["opening"])#始値 high = np.array(fx_data["high"])#高値 low = np.array(fx_data["low"])#低値 closing = np.array(fx_data["closing"])#終値 #月のデータに変換 fx_data["date"] = pd.to_datetime(fx_data["date"]) fx_data["date"].dt.month #12か月分のデータ配列を準備 month_stat = defaultdict(int) for row in fx_data.itertuples(): if row[5] - row[2] >= 0:#row[5]は終値、row[2]は始値 month_stat[row[1].month] += 1 else: month_stat[row[1].month + 12] += 1 #比率を出すためここでも空の配列を準備 month_stat_ratio = np.zeros(12) for i in range(12): month_stat_ratio[i] = month_stat[i+1]/(month_stat[i+1] + month_stat[i+13]) #χ二乗検定を行う。 df = pd.DataFrame([month_stat_ratio, [0.5]*12]) st.chi2_contingency(df, correction = False) #p = 0.9999999758455512となり、「為替の上下に月は無関係である」という帰無仮説は棄却できない。 dict = ["{0}".format(i) for i in range(1, 13)] # %%まとめて選択 plt.bar(dict, month_stat_ratio, color = "skyblue", alpha = 0.7) plt.title("usdjpy") plt.xlabel("month") plt.ylabel("increase") plt.savefig("/Users/ユーザー名/Desktop/month.png", format = "png", dpi = 300) #このようにしても同じ結果になる。 st.chisquare(month_stat_ratio, f_exp = [0.5]*12)
- グラフも。
- これを見ると1月は下落する確率が高い印象もあるが。