前回の記事「Pythonでできる!Googleトレンド×株価分析入門【初心者向け】」では、Googleトレンドと株価を組み合わせて、基本的なグラフ表示や相関の調べ方を紹介しました。
今回はそれを一歩進め、以下の3つの分析を行っていきます:
- 相関スコア+ピーク検出
- 変化率スコアの自動算出(スコアリング)
- 他銘柄のトレンド比較
すべてPythonだけで実装可能。コードも簡潔なので、初心者の方でも試せます!
1. 相関分析+トレンドのピーク検出で“山場”を見つけよう
1.1. 目的
- Googleトレンドと株価の相関係数を出す
- トレンドデータのピーク(山)の日付と株価の動きを照らし合わせる
どのタイミングで注目が集まり、それが株価にどう影響しているのかを、グラフで直感的に把握できます。
1.2. 実装コード
from pytrends.request import TrendReq
import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt
from scipy.signal import find_peaks
# データ収集
pytrends = TrendReq(hl='en-US', tz=360)
pytrends.build_payload(["Apple stock"], timeframe='2024-04-01 2024-04-25')
trend_series = pytrends.interest_over_time()["Apple stock"].squeeze() # ← ここ修正
# 株価取得
price_series = yf.download("AAPL", start="2024-04-01", end="2024-04-25")["Close"].squeeze()
# 日付で揃える & データ結合
df = pd.DataFrame({
"Trend": trend_series,
"Price": price_series
}).dropna()
# 相関係数
correlation = df["Trend"].corr(df["Price"])
print(f"📊 相関係数: {correlation:.3f}")
# ピーク検出
peaks, _ = find_peaks(df["Trend"])
print("📍 トレンドのピーク日:")
for peak in peaks:
date = df.index[peak].strftime('%Y-%m-%d')
print(f" - {date}: トレンド={df['Trend'].iloc[peak]}, 株価={df['Price'].iloc[peak]}")
# グラフ
plt.figure(figsize=(14, 6))
plt.plot(df.index, df["Price"], label="AAPL Price", linewidth=2)
plt.plot(df.index, df["Trend"], label="Google Trend", linestyle="--", color="orange")
plt.scatter(df.index[peaks], df["Trend"].iloc[peaks], color='red', label='Trend Peaks')
plt.title("AAPL Stock vs Google Trend ('Apple stock')")
plt.legend()
plt.grid()
plt.tight_layout()
plt.show()
1.3. グラフ出力例
- AAPL株価とGoogleトレンドの推移(折れ線グラフ)
- 赤点(●)で示されるのがトレンドのピーク
📊 相関係数: 0.684 📍 トレンドのピーク日: - 2024-04-03: トレンド=88, 株価=168.85269165039062 - 2024-04-12: トレンド=100, 株価=175.72027587890625 - 2024-04-19: トレンド=88, 株価=164.2245635986328

赤い点(●)は検索トレンドのピークで、株価の変動と重なっている日もあります。特に4月11日前後では、両方が一緒に上昇しています。
たとえば4月11日前後では、Googleトレンドと株価が同時に上昇しており、注目の高まりが価格にも影響している可能性があります。
1.4. 読み取りポイント
- 赤丸が検索トレンドの山(ピーク)
- ピークの直前や直後に株価が動いていれば、「注目度の高まり」が市場に影響を与えているかもしれません
2. 変化率スコアで“注目銘柄”を自動検出!
2.1. 目的
- Googleトレンド、株価、出来高それぞれの変化率を組み合わせて
- 簡易的な「注目度スコア」を算出
一時的な検索トレンドの上昇でも、株価や出来高の動きが重なれば、その銘柄が「注目されている」と判断できます。
2.2. 実装コード
from pytrends.request import TrendReq
import yfinance as yf
import pandas as pd
# データ取得
pytrends = TrendReq()
pytrends.build_payload(["Apple stock"], timeframe='2024-04-01 2024-04-25')
trend = pytrends.interest_over_time()["Apple stock"].squeeze()
stock = yf.download("AAPL", start="2024-04-01", end="2024-04-25")
price = stock["Close"].squeeze()
volume = stock["Volume"].squeeze()
# 統合
df = pd.DataFrame({
"Trend": trend,
"Price": price,
"Volume": volume
}).dropna()
# 変化率
df["Trend_chg"] = df["Trend"].pct_change()
df["Price_chg"] = df["Price"].pct_change()
df["Volume_chg"] = df["Volume"].pct_change()
# スコア計算
df["Score"] = (
df["Trend_chg"] * 0.5 +
df["Price_chg"] * 0.3 +
df["Volume_chg"] * 0.2
)
# 閾値超えの注目日
THRESHOLD = 0.03
signal_days = df[df["Score"] > THRESHOLD]
print("🚨 注目シグナル日:")
print(signal_days[["Trend", "Price", "Volume", "Score"]])
2.3. 出力される情報
日付 | トレンド | 株価 | 出来高 | スコア |
---|---|---|---|---|
2024-04-10 | 77 | 166.99 | 49,709,300 | 0.037 |
2024-04-11 | 96 | 174.22 | 91,070,300 | 0.303 |
2024-04-12 | 100 | 175.72 | 101,593,300 | 0.047 |
2024-04-19 | 88 | 164.22 | 67,772,100 | 0.182 |
表を見ると、4月11日に非常に高いスコア(0.30以上)が記録されており、検索トレンド・株価・出来高すべてが急上昇しています。
こうした日を検出しておけば、決算や報道など重要なイベントを見逃さずに済みます。
2.4. 読み取りポイント
- 4月11日は、トレンド・株価・出来高すべてが急上昇しており、特に注目すべき日
- スコアを使えば、注目が集まったタイミングを手軽に拾えるので、売買の判断材料としても使えます
3. 他銘柄とトレンド比較して“人気株”を見極めよう
3.1. 目的
- 同時期に注目された複数銘柄(例:Apple vs Tesla)を可視化
- 「どちらの注目度が高かったか」を一目で比較可能に
Googleトレンドは、世の中の関心度をざっくり把握するツールとしても使えます。
銘柄ごとの比較にもぴったりです。
3.2. 実装コード
from pytrends.request import TrendReq
import matplotlib.pyplot as plt
pytrends = TrendReq(hl='en-US', tz=360)
kw_list = ["Apple stock", "Tesla stock"]
pytrends.build_payload(kw_list, timeframe='2024-04-01 2024-04-25')
df = pytrends.interest_over_time()
# グラフ
plt.figure(figsize=(14, 6))
for col in kw_list:
plt.plot(df.index, df[col], label=col)
plt.title("Google Trend: Apple stock vs Tesla stock")
plt.legend()
plt.grid()
plt.tight_layout()
plt.show()
3.3. グラフ出力例

この比較グラフでは、Apple stockとTesla stockがそれぞれ注目を集めたタイミングが視覚的に把握できます。
たとえば4月中旬はAppleへの注目が高く、ニュースやイベントが影響していた可能性も考えられます。
3.4. 読み取りポイント
- 決算・新製品・事件報道など、銘柄ごとの注目イベントの強弱を読み解ける
- どちらの銘柄がどのタイミングで話題になったかを、グラフから比較できます
4. まとめ:3つの分析の違いと活用ポイント
分析手法 | 内容 | 主な用途 |
---|---|---|
相関+ピーク検出 | トレンドの山と株価を照らす | 材料発生の振り返り、因果の検証 |
変化率スコアリング | トレンド×価格×出来高の合成 | 異常検知、短期注目銘柄の発見 |
他銘柄比較 | トレンドで人気株比較 | 銘柄選定、セクター動向の把握 |
ぜひこの記事をヒントに、あなたなりの「注目株の見つけ方」を試してみてください。
分析を通じて、新たな気づきや発見につながれば幸いです。
コメント
コメント一覧 (1件)
[…] 続きもチェック!「相関分析・スコアリング・人気銘柄比較」など、もう一歩進んだ分析方法も紹介しています。👉 Pythonで株価分析応用|Googleトレンドと相関・スコア・人気比較 […]