データ分析の基本を理解した皆さん、次はその一歩先へ進んでみましょう!本記事では、Pythonを活用してデータをより深く掘り下げ、予測モデリングや高度な応用手法に挑戦していきます。ビジネスの意思決定に役立つ未来予測や、データに基づく洞察を得るためのステップを、実践的なコード例と共にわかりやすく解説します。あなたの分析スキルをさらに高め、データから新たな価値を引き出すためのガイドです。
前回の記事:Pythonで始めるデータ分析の基本:収集・クリーニングから可視化までの手順ガイド
今回扱うデータは、私のXのデータを使って分析をしていきます。CSVファイルはこちらから取得してください
Pythonって何?

Pythonとは、汎用性が高く、使いやすいプログラミング言語の一つです。1990年代にオランダのプログラマー、グイド・ヴァンロッサムによって開発され、現在では世界中の開発者やデータサイエンティストに広く使用されています。
Pythonは、以下の特徴があるため初心者にも人気です。
- 読みやすい構文: Pythonのコードは、まるで英語の文章のように直感的で読みやすい構文が特徴です。これにより、プログラムが複雑であっても理解しやすく、学びやすい言語です。
- 幅広い用途: Pythonは、データ分析、機械学習、Web開発、自動化、ゲーム開発、科学計算など、さまざまな分野で活用されています。特にデータ分析や人工知能(AI)分野ではその力を発揮しています。
- 豊富なライブラリとフレームワーク: Pythonには、数多くのライブラリ(拡張機能)があり、データ分析では「pandas」「NumPy」、機械学習では「scikit-learn」「TensorFlow」などが有名です。これらのライブラリを活用することで、複雑な作業も効率的に行うことができます。
- 大規模なコミュニティ: 世界中の開発者がPythonを使用しているため、学習資料やフォーラム、サポートが豊富です。何か困った時でも、コミュニティの力を借りて解決することが容易です。
Pythonはプログラミング初心者だけでなく、経験者にも愛されている言語で、今後も需要が高まると予想されています。
Pythonを始める準備
データ分析って何?

データ分析とは、大量のデータを収集し、そのデータを整理・解析することで、有用な情報やパターン、傾向を見つけ出す作業のことです。これにより、企業や組織が意思決定を行うための根拠を得たり、ビジネスの改善点を見つけたりします。
例えば、売上データを分析することで、どの商品がよく売れているのか、どの地域で人気があるのかがわかり、それに基づいて今後の販売戦略を立てることができます。
データ分析のプロセスには以下のステップがあります:
- データ収集: 必要なデータを集める。
- データ整形: データを使いやすい形に整理する。
- データ解析: 統計やアルゴリズムを使って、データから重要な情報を引き出す。
- 結論を導く: 結果を基に、改善策や新しい戦略を考える。
データ分析にはExcelやPythonなどのツールを使い、ビジュアライゼーション(グラフ化)を通じて結果をわかりやすく伝えることが一般的です。
関連記事
データ分析の手法

データ分析にはさまざまな方法があり、目的に応じて適切な手法を選択できます。ここでは、基本的な分析方法に加え、さらに進んだデータ分析手法をいくつか紹介します。
1. 時系列分析
データに時間的な要素(例えば、日付や時間)が含まれている場合、時系列分析を用いることで、データの傾向や季節性、周期性を見つけることができます。
- トレンドの確認: 時間の経過による変動を視覚化し、データの上昇や下降傾向を確認します。
- 移動平均: 短期的な変動を平滑化して、長期的な傾向を把握します。
1 2 3 4 5 6 |
# インプレッション数の移動平均 data['移動平均'] = data['インプレッション数'].rolling(window=3).mean() sns.lineplot(x='日付', y='移動平均', data=data) plt.title("インプレッション数の移動平均") plt.xticks(rotation=45) plt.show() |

2. 分類と回帰(機械学習)
回帰分析は、数値の予測を行う手法で、例えば、投稿のインプレッション数に基づいて、いいね数を予測することができます。
分類分析では、データをグループに分けて、どのグループに属するかを予測することが可能です。たとえば、ある投稿がフォロワーを増やすかどうかを予測することができます。
- 線形回帰: 数値データの間の関係をモデル化し、未来のデータを予測します。
- ロジスティック回帰: データを2つのカテゴリに分類する手法です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
from sklearn.linear_model import LinearRegression # インプレッション数に基づくいいね数の予測(簡単な回帰分析) X = data[['インプレッション数']] y = data['いいね'] model = LinearRegression() model.fit(X, y) y_pred = model.predict(X) # 実際のデータと予測値を比較 plt.scatter(data['インプレッション数'], data['いいね'], label='Actual') plt.plot(data['インプレッション数'], y_pred, color='red', label='Predicted') plt.xlabel('インプレッション数') plt.ylabel('いいね') plt.title('インプレッション数といいねの関係 (回帰分析)') plt.legend() plt.show() |

3. クラスター分析
クラスター分析は、データを似た特徴を持つグループに分けるために使います。これにより、投稿のタイプやユーザーの行動パターンを分類できます。
- 例として、エンゲージメントやインプレッション数に基づいて、投稿をグループに分けます。
1 2 3 4 5 6 7 8 9 10 11 12 |
from sklearn.cluster import KMeans # いいねとインプレッション数に基づいて投稿をクラスター分け X = data[['インプレッション数', 'いいね']] kmeans = KMeans(n_clusters=3) kmeans.fit(X) data['クラスター'] = kmeans.labels_ # クラスターの可視化 sns.scatterplot(x='インプレッション数', y='いいね', hue='クラスター', data=data, palette='viridis') plt.title('インプレッション数といいねのクラスター分析') plt.show() |

4. 相関分析
変数同士の関連性を確認するための分析です。相関係数を使って、2つの変数がどれだけ強く関係しているかを測定します。
- 正の相関: 一方の変数が増えると、もう一方も増える。
- 負の相関: 一方の変数が増えると、もう一方は減る。
1 2 3 4 5 |
# 相関行列の確認 correlation_matrix = data.corr() sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm') plt.title("変数間の相関") plt.show() |

5. A/Bテスト
2つの異なるグループ間でパフォーマンスの違いをテストし、どちらが効果的かを評価します。SNS投稿で異なるスタイルや内容の投稿を行い、どちらがより効果的かを比較できます。
- 仮説検定: 2つの異なる手法や条件が本当に違いを生んでいるかを統計的に検証します。
1 2 3 4 5 6 7 8 |
# 仮の例: 2つの異なるインプレッション数の分布をt検定で比較 from scipy import stats group_a = data[data['ポスト'] == 1]['インプレッション数'] group_b = data[data['ポスト'] == 2]['インプレッション数'] t_stat, p_value = stats.ttest_ind(group_a, group_b) print(f"T-statistic: {t_stat}, P-value: {p_value}") |
1 2 3 |
T-statistic: nan, P-value: nan SmallSampleWarning: One or more sample arguments is too small; all returned values will be NaN. See documentation for sample size requirements. t_stat, p_value = stats.ttest_ind(group_a, group_b) |
6. 多変量解析
複数の変数を同時に分析し、相互の影響を理解する手法です。これにより、複数の要因が結果にどのように影響を与えるかを把握できます。
- 主成分分析(PCA): データの次元を減らし、最も重要な特徴を特定します。
1 2 3 4 5 6 7 8 |
from sklearn.decomposition import PCA # データを標準化して主成分分析 from sklearn.preprocessing import StandardScaler X = StandardScaler().fit_transform(data[['インプレッション数', 'エンゲージメント', 'いいね']]) pca = PCA(n_components=2) principalComponents = pca.fit_transform(X) print(pca.explained_variance_ratio_) # 主成分の寄与率 |
1 |
[0.62122242 0.30787821] |
データの詳細な分析

データの詳細な分析と仮説検証です。データの可視化を通じて、傾向や関係性を確認したら、具体的な仮説を立てて検証していきます。ここでは、仮説を基にして、より深い洞察を得るための手法を紹介します。
エンゲージメント率の計算
エンゲージメント率は、投稿がどれだけ効果的に反応を得ているかを示す指標です。エンゲージメント率は以下のように計算できます。
1 2 3 |
# エンゲージメント率の計算 (エンゲージメント数 / インプレッション数) data['エンゲージメント率'] = data['エンゲージメント'] / data['インプレッション数'] print(data[['日付', 'インプレッション数', 'エンゲージメント', 'エンゲージメント率']]) |
出力
1 2 3 4 5 6 7 8 |
日付 インプレッション数 エンゲージメント エンゲージメント率 0 2024-09-28 503 45 0.089463 1 2024-09-29 4284 76 0.017740 2 2024-09-30 1077 52 0.048282 3 2024-10-01 723 52 0.071923 4 2024-10-02 535 60 0.112150 5 2024-10-03 679 71 0.104566 6 2024-10-04 649 50 0.077042 |
フォロワー増加に影響を与えた要因の分析
新しいフォロー
の増加と、他の変数(例: インプレッション数、エンゲージメント、いいねなど)の関係を分析して、どの要因がフォロワー増加に影響を与えているかを調べます。
1 2 3 4 5 6 7 8 |
# 新しいフォローと他の変数との相関を確認 correlation = data[['インプレッション数', 'いいね', 'エンゲージメント', '新しいフォロー']].corr() print(correlation) # 相関ヒートマップで視覚的に確認 sns.heatmap(correlation, annot=True, cmap='coolwarm') plt.title("新しいフォローと他の変数の相関") plt.show() |
出力
1 2 3 4 5 |
インプレッション数 いいね エンゲージメント 新しいフォロー インプレッション数 1.000000 0.081832 0.678616 0.866066 いいね 0.081832 1.000000 0.467528 -0.110663 エンゲージメント 0.678616 0.467528 1.000000 0.759071 新しいフォロー 0.866066 -0.110663 0.759071 1.000000 |

重要な投稿の特定
特定の指標(例: エンゲージメント率、新しいフォロー数など)に基づいて、特に成功した投稿を見つけ、それに共通する要因を分析します。
1 2 3 |
# エンゲージメント率が高い投稿のフィルタリング high_engagement_posts = data[data['エンゲージメント率'] > data['エンゲージメント率'].mean()] print(high_engagement_posts[['日付', 'エンゲージメント率', 'インプレッション数', '新しいフォロー']]) |
出力
1 2 3 4 5 |
日付 エンゲージメント率 インプレッション数 新しいフォロー 0 2024-09-28 0.089463 503 1 4 2024-10-02 0.112150 535 1 5 2024-10-03 0.104566 679 2 6 2024-10-04 0.077042 649 1 |
時系列データの分析
日付
に基づいて、時間の経過に伴う変化を分析します。例えば、インプレッション数
やいいね
の時間的トレンドを視覚化することで、成長パターンや投稿のパフォーマンスを把握できます。
1 2 3 4 5 6 |
# インプレッション数の時間的推移を折れ線グラフで表示 plt.figure(figsize=(10,6)) sns.lineplot(x='日付', y='インプレッション数', data=data) plt.title("インプレッション数の時間的推移") plt.xticks(rotation=45) plt.show() |
出力

仮説検証

インプレッション数が多いほど新しいフォロワーが増えるのか?
インプレッション数と新しいフォロワーの関係を検証するために、まずデータの可視化を行い、その後ピアソンの相関係数を使って関係性を確認します。再度、実行を試みます。
データの可視化
インプレッション数と新しいフォロワーの関係を散布図で可視化します。
1 2 3 4 5 6 7 8 |
import seaborn as sns import matplotlib.pyplot as plt sns.scatterplot(x='インプレッション数', y='新しいフォロー', data=data) plt.title('インプレッション数と新しいフォロワーの関係') plt.xlabel('インプレッション数') plt.ylabel('新しいフォロー数') plt.show() |
出力

相関関係の計算
ピアソン相関係数を使って、インプレッション数と新しいフォロワー数の相関を計算します。
科学技術計算向けのPythonライブラリであり、ピアソンの相関係数を計算するための関数 pearsonr
を提供しています。
scipy
をインストール
1 |
pip install scipy |
コード入力
1 2 3 4 5 6 7 |
from scipy.stats import pearsonr # ピアソンの相関係数とp値を計算 correlation_coefficient, p_value = pearsonr(data['インプレッション数'], data['新しいフォロー']) print(f"相関係数: {correlation_coefficient}") print(f"P値: {p_value}") |
出力
1 2 |
相関係数: 0.8660662947570054 P値: 0.011716135513736962 |
結果の解釈

相関係数: 0.866
相関係数が0.866という結果は、非常に強い正の相関を示しています。これは、インプレッション数が増えるほど新しいフォロワーも増えるという強い関係があることを意味します。
P値: 0.0117
P値が0.0117という結果は、統計的に有意であることを示しています。P値が0.05未満であるため、この相関は偶然ではなく、意味のある関係があると判断できます。
今後のプロセス

- 新たな仮説の立案:
- 他の要因(例: エンゲージメント率、いいね、リポスト)がフォロワー増加にどう影響しているか。
- 特定の投稿やトピックがフォロワー増加にどう貢献しているか。
- データの収集と分析:
- 新たな仮説を検証するために、引き続きデータを収集し、分析を行います。
- 例えば、特定のキャンペーン期間中のデータや、投稿の形式による違いを分析できます。
- フィードバックループの確立:
- 分析結果に基づき、実際に施策を実行し、その効果を再度データとして収集します。結果がどう変わるかを確認し、改善を続けます。
- 新たな知見の発見:
- 複数の仮説を検証することで、どの要因が効果的か、どの要因が効果が薄いかを徐々に理解し、次の施策につなげます。
まとめ
今回の記事では、データ分析の基本を理解した皆さんに向けて、さらに一歩先に進んだデータ分析手法をPythonで実践する方法をご紹介しました。時系列分析、回帰分析、クラスター分析、A/Bテストなど、さまざまなデータ分析の手法を活用して、Xのデータをより深く理解し、未来の予測やビジネス戦略に役立てるための具体的な方法を示しました。
また、インプレッション数とフォロワー数の強い相関を確認し、データに基づく施策の重要性についても触れました。今後は、さらなる仮説の立案と検証を繰り返しながら、データから新たな知見を発見していくことが重要です。この記事を通じて、データ分析の手法とその応用に関する理解が深まり、皆さんの分析スキル向上に貢献できれば幸いです。
次回の記事では、さらに高度なデータ解析や機械学習の活用法についても触れていく予定です。引き続きPythonを活用したデータ分析に挑戦し、データから得られるインサイトをビジネスや日常に活かしていきましょう!
Pythonってどんな物?
プログラミングってどんな物?という方はこちらの記事を参考にしてみてください!!
関連記事
また、プログラミングに興味はあるけどどうやって勉強していいのかわからないという方はプログラミングを視覚的に理解できる講座を作っていますのでこちらを参考にしてみてください!
Udemyというプラットホームを使用して作成した講座です。
初心者向けに作った講座となっております。以下から講座の確認ができるので見てみてください

プログラミング学習を進めているけれど、まだ副収入につなげられていない…そんなあなたへ!今こそ、学んだスキルを活かして副業に挑戦する絶好のチャンスです。プログラミングだけでなく、自分のスキルや商品をネットで販売する『ネットショップ』を開設してみませんか?
ネットショップを持つことで、自分の知識やスキルをより多くの人に届け、副収入を得ることが可能です。学んできたプログラミングを活かして、ショップのカスタマイズや運営も自由自在に行えますし、もし商品作成が難しい場合でも、デジタル商品やサービス提供など、いろんな選択肢があります。
このステップで一歩踏み出せば、今学んでいることが副収入に直結し、自分の時間をより有効に使うことができるはずです!一緒にネットショップを開設し、副業の第一歩を踏み出しましょう!
タイトルテキスト