株式市場の洞察:Pythonを使った二日間の価格変動の相関分析

回帰

今日は、株価の動きにおける興味深い相関を探る方法についてお話しします。私たちは、PythonとPandasライブラリを使用して、2024年1月25日と1月26日の株価データを読み込み、分析します。このデータを通じて、株式市場の微妙な動きを理解し、投資戦略を洗練させることが目的です。

データ分析と視覚化

この章では、特定の二日間のデータをフィルタリングし、各日における株価の開始値と終了値の差(price_diff)を計算する方法を紹介します。この価格差を計算した後、各銘柄ごとにこの差の平均値を求め、市場全体の傾向を探ります。そして、散布図を作成して、一日目と二日目の価格差の関係を視覚的に分析します。この視覚化は、データの背後にある物語を明らかにし、より深い洞察を提供します。

添付の散布図を見てください。この図は、2024年1月25日と1月26日の、株価の開始値と終了値の差を表しています。点がプロットされたパターンを見ると、どのようなストーリーを想像しますか?私たちの直感は、前日の動きが翌日に影響を与えると予想するかもしれませんが、この散布図はそうとは限らないことを示唆しています。

相関とその意味

これら二日間の価格差の相関を計算し、その結果が株式市場の分析にどのように役立つかを探ります。相関係数を用いることで、一日目の市場動向が次の日にどのような影響を与えるかを数値的に理解し、リスク管理や投資戦略の策定に役立てることができます。

実際の相関係数は-0.092571です。これは、一日目の価格差と二日目の価格差の間には弱い負の相関があることを意味します。つまり、一日目に価格が大きく上昇した銘柄は、次の日にはやや下落する傾向があることを示唆していますが、この関係は弱いです。これは市場が完全に予測可能ではないこと、または他の多くの要因が株価に影響を与えていることを思い出させてくれます。

まとめ

この分析から得られる最も興味深い点は、市場の行動が多次元であり、単純な因果関係では説明できないことです。負の相関関係が見られるものの、この関係は決して強くはありません。株式市場は多くの要素によって動かされており、一日の動きが次の日にどのような結果をもたらすかを正確に予測することは難しいのです。

この散布図と相関係数により、市場分析においては、統計的な手法を用いながらも、柔軟な思考が必要であることが強調されています。市場のカオスの中で秩序を見出す試みは、経済学者、アナリスト、そして投資家にとって永遠のテーマです。

コード

import pandas as pd
import matplotlib.pyplot as plt

# CSVファイルをDataFrameとして読み込む
csv_file = 'stock_data.csv'
stock_hist_df = pd.read_csv(csv_file)

# 特定の日付のデータをフィルタリング
filtered_data_20240125 = stock_hist_df[(stock_hist_df['date'] == '2024-01-25')]
filtered_data_20240126 = stock_hist_df[(stock_hist_df['date'] == '2024-01-26')]

# high_priceとopen_priceの差を計算
filtered_data_20240125['price_diff'] = filtered_data_20240125['close_price'] - filtered_data_20240125['open_price']
filtered_data_20240126['price_diff'] = filtered_data_20240126['close_price'] - filtered_data_20240126['open_price']

# code毎にデータをグループ化し、平均値を計算(必要に応じて)
grouped_data_20240125 = filtered_data_20240125.groupby('code')['price_diff'].mean()
grouped_data_20240126 = filtered_data_20240126.groupby('code')['price_diff'].mean()

# 両日のデータを結合
combined_data = pd.merge(grouped_data_20240125, grouped_data_20240126, on='code', how='inner', suffixes=('_20240125', '_20240126'))

# 散布図の作成
plt.figure(figsize=(10, 6))
plt.scatter(combined_data['price_diff_20240125'], combined_data['price_diff_20240126'], alpha=0.5)
plt.title('Price Difference Comparison between 2024-01-25 and 2024-01-26')
plt.xlabel('Price Difference on 2024-01-25')
plt.ylabel('Price Difference on 2024-01-26')
plt.grid(True)
plt.show()

# 2024年1月25日と2024年1月26日の価格差の相関を計算
correlation = combined_data.corr()

print(correlation)
タイトルとURLをコピーしました