二因子變異數分析 — Python實戰:不同廣告與人口變數(地區)如何最佳搭配?(附Python程式碼)

一、事前檢定

import scipy.stats as st
st.shapiro(alist)
st.shapiro(blist)
st.shapiro(clist)
st.shapiro(dlist)
st.shapiro(elist)
st.shapiro(flist)
ShapiroResult(statistic=0.9915865659713745,pvalue=0.6819638013839722)
ShapiroResult(statistic=0.9929247498512268,pvalue=0.805463969707489)
ShapiroResult(statistic=0.9802003502845764,pvalue=0.07433854043483734)
ShapiroResult(statistic=0.9931642413139343,pvalue=0.7976954579353333)
ShapiroResult(statistic=0.988785982131958,pvalue=0.4260871410369873)
ShapiroResult(statistic=0.9914966225624084,pvalue=0.718219518661499)
st.levene(alist, blist, clist, center='mean')
st.levene(dlist, elist, flist, center='mean')
LeveneResult(statistic=0.6891243668404422,pvalue=0.5026819827621525)
LeveneResult(statistic=0.25909843233185653,pvalue=0.7718920508101443)

二、多因子變異數檢定

import statsmodels.api as sm
from statsmodels.formula.api import ols
model = ols('消費金額 ~ C(廣告) + C(地區) + C(廣告):C(地區)', data=data).fit()
Results = sm.stats.anova_lm(model)
圖 1 要素交叉比較表
  1. 廣告對於平均消費金額的P值為0.0952486,雖沒有在廣義顯著範圍的0.05內,但放寬標準來看算趨近於標準附近,因此本篇文章會進一步後續分析。
  2. 「地區」對於平均消費金額的P值為0.871885,離廣義顯著範圍內的0.05差異極大,因此沒有顯著證據證明不同地區對於平均消費有影響。
  3. 「地區」及「廣告」之間的P值為0.183004,距離顯著範圍內的0.05距離頗大,因此無法證明地區跟廣告之間具有交互影響。(換句話說,該店商不太會依據地區不同投放不同廣告,不同地區投放的廣告很平均)

三、財務交叉比較表

var1 = data['廣告'].unique().tolist()
var2 = data['地區'].unique().tolist()
var1
var2
['廣告1', '廣告2', '廣告3']
['南部', '中部', '北部']
ad1_list = []
ad2_list = []
ad3_list = []
for i in var1:
for ii in var2:
if i == '廣告1':
ad1_list.append(data[data ['廣告'] == i][data ['地區'] == ii]['消費金額'].mean())
elif i == '廣告2':
ad2_list.append(data[data ['廣告'] == i][data ['地區'] == ii]['消費金額'].mean())
elif i == '廣告3':
ad3_list.append(data[data ['廣告'] == i][data ['地區'] == ii]['消費金額'].mean())
ad1_list
ad2_list
ad3_list
[17.26818181818182, 17.985434782608703, 16.07414634146341]
[15.5134, 14.253636363636366, 16.893243243243237]
[14.786896551724135, 16.198809523809526, 15.930816326530612]
cross_table = pd.DataFrame((ad1_list, ad2_list, ad3_list),             columns = var2, index = var1)
圖 2 地區X廣告-財務交叉比較表

四、資料視覺化

import plotly.offline as py
import plotly.graph_objects as go
fig = go.Figure()
# 廣告1分布圖
fig.add_trace(go.Scatter(
x= var2,
y= cross_table.iloc[0,:].tolist(),
mode="lines+markers",
textfont=dict(
family="sans serif",
size=16,
color="royalblue"),
line=dict(color='royalblue', width=2),
name = '廣告1'
))
# 廣告2分布圖
fig.add_trace(go.Scatter(
x= var2,
y= cross_table.iloc[1,:].tolist(),
mode="lines+markers",
textfont=dict(
family="sans serif",
size=16,
color="firebrick"),
line=dict(color='firebrick', width=2),
name = '廣告2'
))
# 廣告3分布圖
fig.add_trace(go.Scatter(
x= var2,
y= cross_table.iloc[2,:].tolist(),
mode="lines+markers",
textfont=dict(
family="sans serif",
size=16,
color="green"),
line=dict(color='green', width=2),
name = '廣告3'
))
fig.update_layout(
title={
'text': "<b>廣告效益分析</b>",
'y':0.95,
'x':0.5,
'xanchor': 'center',},
yaxis_title='平均消費金額',
xaxis={
'title': '地區',
'tickmode': 'linear'
},
width=1800,
height=960,
boxmode='group',
font=dict(
family="Courier New, monospace",
size=20,
color="lightslategrey"
)
)
# 另存html檔
py.plot(fig, filename='多因子變異數分析', auto_open=True)
# 另存png檔
fig.write_image("C:/Users/user/Desktop/多因子變異數分析.png")
圖 3 廣告效益交叉比較表
歡迎加入我們的Telegram獲取即時訊息!https://t.me/marketingdatascience
歡迎加入我們的Line@獲取即時訊息!https://line.me/R/ti/p/%40cde8265r

--

--

--

Marketing data science. 台灣第一個行銷資料科學(MDS)知識部落,本粉絲專頁在探討行銷資料科學之基礎概念、趨勢、新工具和實作,讓粉絲們瞭解資料科學的行銷運用,並開啟厚植數據分析能力之契機。粉絲專頁:https://www.facebook.com/MarketingDataScienceTMR

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
行銷資料科學

行銷資料科學

Marketing data science. 台灣第一個行銷資料科學(MDS)知識部落,本粉絲專頁在探討行銷資料科學之基礎概念、趨勢、新工具和實作,讓粉絲們瞭解資料科學的行銷運用,並開啟厚植數據分析能力之契機。粉絲專頁:https://www.facebook.com/MarketingDataScienceTMR

More from Medium

The truth about video games and violence

The Power of Propagation

Doing Research With DRA

Addressing minority-human rights concerns with insight