web広告のデータを用いて重回帰分析を行う手順

以下は、仮想のWeb広告データを作成し、それを用いて重回帰分析を行う方法です。Google Colabでの実装を想定しています。


1. 必要なライブラリのインポート

まず、Google Colabで以下のコードを実行して必要なライブラリをインストールします。

# ライブラリのインポート
import pandas as pd
import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt

2. 仮想データを作成

Web広告の仮想データには、以下の要素を含めます:

  • 広告費用(広告A, 広告B, 広告C)
  • クリック数
  • コンバージョン率
  • 売上(目的変数)
# 仮想データの作成
np.random.seed(42) # 再現性のため

data = {
"Ad_A": np.random.randint(100, 500, 100), # 広告Aの費用
"Ad_B": np.random.randint(200, 700, 100), # 広告Bの費用
"Ad_C": np.random.randint(150, 600, 100), # 広告Cの費用
"Clicks": np.random.randint(1000, 5000, 100), # クリック数
"Conversion_Rate": np.random.uniform(0.01, 0.1, 100), # コンバージョン率
}

# 売上(目的変数)を広告費用、クリック数、コンバージョン率の組み合わせで生成
data["Sales"] = (
3 * data["Ad_A"] + 2 * data["Ad_B"] + 1.5 * data["Ad_C"]
+ 5 * data["Clicks"] * data["Conversion_Rate"]
+ np.random.normal(0, 50, 100) # ノイズを追加
)

# データフレームに変換
df = pd.DataFrame(data)
print(df.head())

3. 重回帰分析の実行

重回帰分析を実行して、各広告費用やクリック数が売上に与える影響を確認します。

# 説明変数(Ad_A, Ad_B, Ad_C, Clicks, Conversion_Rate)と目的変数(Sales)
X = df[["Ad_A", "Ad_B", "Ad_C", "Clicks", "Conversion_Rate"]]
y = df["Sales"]

# 定数項を追加
X = sm.add_constant(X)

# 重回帰モデルの作成とフィッティング
model = sm.OLS(y, X).fit()

# 結果を出力
print(model.summary())

4. 結果の解釈

model.summary() の出力には以下が含まれます:

  • R-squared(決定係数): モデル全体の説明力。
  • 各変数の係数(coef): 各要因が売上に与える影響の大きさ。
  • p値: 各変数が統計的に有意かどうか。

5. データ可視化

分析結果を可視化して、広告費用やクリック数が売上にどのように影響しているかを確認します。

pythonコピーする編集する# 広告費用と売上の関係を可視化
plt.figure(figsize=(12, 6))
plt.scatter(df["Ad_A"], df["Sales"], alpha=0.5, label="Ad_A")
plt.scatter(df["Ad_B"], df["Sales"], alpha=0.5, label="Ad_B")
plt.scatter(df["Ad_C"], df["Sales"], alpha=0.5, label="Ad_C")
plt.xlabel("広告費用")
plt.ylabel("売上")
plt.title("広告費用と売上の関係")
plt.legend()
plt.grid()
plt.show()

6. 応用アイデア

  • クリック数やコンバージョン率を変動させ、売上予測をシミュレーション。
  • 広告費用の最適配分を計算してROI(投資利益率)を最大化する分析を追加。

これらをベースにさらに深掘り分析を行えば、広告戦略の改善に繋がる具体的な示唆を得られるでしょう。

上部へスクロール