Google TrendのデータをAPI経由で取得し時系列解析②〜プログラム言語の人気トレンドを国別比較する〜


Summary

分析ゴール

  • 各プログラム言語のキーワード検索傾向に関する国別の違いを把握する
  • 対象国は下記とする(言語の影響を排除するため、英語圏に絞りました)
    • 日本
    • U.S
    • イギリス
    • シンガポール
    • オーストラリア
    • カナダ

対象データ

  • 前回分析時の結果を参考に、対象言語を以下として、Google trendから抽出する
    • Python(日本では上昇傾向)
    • JavaScript(日本では横ばい)
    • Java(日本では下降傾向)
  • 2014年〜2018年9月末の期間で考察する

データ取得

  • Pytrendsを利用して、Google Trend APIへアクセスし対象データを抽出
  • 検索キーワードと対象エリアをそれぞれリストにして、for文を回す
data = pd.DataFrame()
for kw in kw_list:
    df = pd.DataFrame()
    for area in trg_area:
        pytrends.build_payload([kw], timeframe='2014-01-01 2018-09-30', geo=area)
        df_ = pytrends.interest_over_time()
        df = pd.concat([df, df_], axis=1)
    data = pd.concat([data, df], axis=1)
  • データフレームを整形します(不要な列の削除、カラム名の修正)
data.drop('isPartial', axis=1, inplace=True)
python = data[kw_list[0]]
JavaScript = data[kw_list[1]]
Java = data[kw_list[2]]
python.columns = trg_area
JavaScript.columns = trg_area
Java.columns = trg_area

データの可視化

  • まずはシンプルに各プログラミング言語別に国別の検索状況を可視化する
python.plot(figsize=(15, 3), lw=.7)
plt.legend(bbox_to_anchor=(1.04,1), loc="upper left")
plt.title('Python')

JavaScript.plot(figsize=(15, 3), lw=.7)
plt.legend(bbox_to_anchor=(1.04,1), loc="upper left")
plt.title('JavaScript')

Java.plot(figsize=(15, 3), lw=.7)
plt.legend(bbox_to_anchor=(1.04,1), loc="upper left")
plt.title('Java')

時系列データ解析(季節成分分解)

  • 周期性があり、解釈しづらいので季節成分分解を施して、トレンドのみで比較する
trend = pd.DataFrame()
for i in range(len(trg_area)):
    res = sm.tsa.seasonal_decompose(python.iloc[:,i])
    trend = pd.concat([trend, res.trend], axis=1)

trend.plot(figsize=(15, 3), lw=.7)
plt.legend(bbox_to_anchor=(1.04,1), loc="upper left")
plt.title('python')

分析結果の考察

  • Pythonは全ての国において上昇トレンドにある
    • ただし、国によって傾きが異なる為、線形回帰をして、傾きを比較する(次分析テーマ)
  • JavaScriptは国によってトレンドが大きく異なる
    • ただし、最大でも週で約10ポイントのぶれなので誤差の可能性もある
  • Javaは全ての国において下降トレンドにある
    • Pythonと同様に国によって傾きが異なる
    • 日本とシンガポールは下降が緩やかなのに対して、米国や英国は2015年からの急に下降している

最後に

  • PythonとJavaは国ごとに傾きが異なっている点が面白い発見でした
  • 国や文化によって、新たなプログラミング言語への移り変わりが異なるのかもしれません
  • この辺りはグローバルのIT業界知識のある方に分析の観点を頂きながら仮説を出していきたいと思います
  • 次回は対象国を増やし、Pythonのトレンドの傾きの変化に着目して分析を続けてみます