熱線電話:13121318867

登錄
首頁數據分析教程數據分析師教程《統計學極簡入門》第6節 方差分析
數據分析師教程《統計學極簡入門》第6節 方差分析
2024-10-09
收藏

6. 方差分析

單因素多水平方差分析

例6.1 不同裝配方式對生產的過濾系統數量的差異性檢驗

某城市過濾水系統生產公司,有A、B、C3種方式進行過濾水系統的裝配,該公司為了研究三種裝配方式生產的過濾系統數量是否有差異,從全體裝配工人中抽取了15名工人,然后隨機地指派一種裝配方式,這樣每個裝配方式就有5個工人。在指派裝配方法和培訓工作都完成后,一周內對每名工人的裝配過濾系統數量進行統計如下:

方法A 方法B 方法C
58 58 48
64 69 57
55 71 59
66 64 47
67 68 49

請根據數據判斷3種裝配方式有無差異

分析過程:由于目標是判斷3種裝配方式有無差異,多樣本的檢驗用方差分析

于是我們有了原假設和備擇假設

:均值不全相等

import pandas as pd
import numpy as np
from scipy import stats

# 數據
A = [58,64,55,66,67]
B = [58,69,71,64,68]
C = [48,57,59,47,49]

data = [A, B, C]
方差的齊性檢驗
w, p = stats.levene(*data)
if p < 0.05:
    print('方差齊性假設不成立')
 
 
# 成立之后, 就可以進行單因素方差分析
f_value, p_value = stats.f_oneway(*data)
# 輸出結果
print("F_value:", f_value)
print("p_value:", p_value)
F_value: 9.176470588235295
p_value: 0.0038184120755124806

結論 選擇顯著性水平 0.05 的話,p = 0.0038 < 0.05,故拒絕原假設。支持三種裝配方式裝配數量均值不全相等的備則假設。

例6.2 不同優惠金額對購買轉化率的差異性檢驗

某公司營銷中心為了提升銷量,針對某產品設計了3種不同金額的優惠,想測試三種優惠方式對于用戶的購買轉化率是否有顯著影響,先收集到了三種不同方式在6個月內的轉化率數據

請根據數據判斷3種不同優惠金額的轉化率有無差異

優惠A 優惠B 優惠C
0.043 0.05 0.048
0.047 0.048 0.05
0.051 0.045 0.047
0.049 0.055 0.056
0.045 0.048 0.054
0.0469 0.0491 0.0509

分析過程:由于目標是判斷3種不同金額的優惠券對于轉化率有無差異,多樣本的檢驗用方差分析

于是我們有了原假設和備擇假設

:認為這幾組之間的購買率不一樣

P < 0.05 拒絕原假設,傾向于支持不同優惠金額購買率不一樣的備擇假設。認為不同優惠金額會對購買率產生影響 P > 0.05 無法拒絕原假設。認為不同優惠金額不會對購買率產生影響

import pandas as pd
import numpy as np
from scipy import stats

A = [0.043 , 0.047 , 0.051 , 0.049 , 0.045 , 0.0469]
B = [0.05  , 0.048 , 0.045 , 0.055 , 0.048 , 0.0491]
C = [0.048 , 0.05  , 0.047 , 0.056 , 0.054 , 0.0509]
data = [A, B, C]
方差的齊性檢驗
w, p = stats.levene(*data)
if p < 0.05:
    print('方差齊性假設不成立')
 
 
# 成立之后, 就可以進行單因素方差分析
f_value, p_value = stats.f_oneway(*data)
# 輸出結果
print("F_value:", f_value)
print("p_value:", p_value)

# F_value: 2.332956563862427
# p_value: 0.13116820340181937

結論 選擇顯著性水平 0.05 的話,p = 0.1311 > 0.05,故無法拒絕原假設。認為不同優惠金額不會對購買率產生影響

雙因素方差分析

1.雙因素方差分析(等重復實驗)

這里的等重復實驗,意思就是針對每個組合做大于等于兩次的實驗,比如下方例子中表里A1和B1的組合里面有2個數字,即說明做了兩次實驗,如果是3個數字則說明3次實驗,依次類推。

例6.3 不同燃料種類和推進器的火箭射程差異性檢驗

火箭的射程與燃料的種類和推進器的型號有關,現對四種不同的燃料與三種不同型號的推進器進行試驗,每種組合各發射火箭兩次,測得火箭的射程如表(以海里計)(設顯著性水平為0.05)

燃料 B1 B2 B3
A1 58.2 , 52.6 56.2 , 41.2 65.3 , 60.8
A2 49.1 , 42.8 54.1 , 50.5 51.6 , 48.4
A3 60.1 , 58.3 70.9 , 73.2 39.2 , 40.7
A4 75.8 , 71.5 58.2 , 51.0 48.7 , 41.0
import numpy as np
import pandas as pd 

d = np.array([[58.2, 52.6, 56.2, 41.2, 65.3, 60.8],
    [49.1, 42.8, 54.1, 50.5, 51.6, 48.4],
    [60.1, 58.3, 70.9, 73.2, 39.2, 40.7],
    [75.8, 71.5, 58.2, 51.0, 48.7,41.4]
])
data = pd.DataFrame(d)
data.index=pd.Index(['A1','A2','A3','A4'],name='燃料')
data.columns=pd.Index(['B1','B1','B2','B2','B3','B3'],name='推進器')

pandas寬表轉長表
data = data.reset_index().melt(id_vars =['燃料'])
data = data.rename(columns={'value':'射程'})
data.sample(5)
燃料 推進器 射程
A2 B3 48.4
A3 B2 73.2
A3 B3 39.2
A4 B1 71.5
A2 B2 54.1
import statsmodels.api as sm
from statsmodels.formula.api import ols

# 進行雙因素方差分析
model = ols('射程~C(燃料) + C(推進器)+C(燃料):C(推進器)', data =data).fit()
# 打印方差分析表
anova_table = sm.stats.anova_lm(model, typ=2)
anova_table
sum_sq df F PR(>F)
C(燃料) 261.675 3 4.41739 0.025969
C(推進器) 370.981 2 9.3939 0.00350603
C(燃料):C(推進器) 1768.69 6 14.9288 6.15115e-05
Residual 236.95 12 nan nan

結論:

對燃料因素來說,其p = 0.0259 < 0.05 所以拒絕,認為燃料對射程影響顯著;

對推進器因素來說,其p = 0.0035 < 0.05,所以拒絕,認為推進器對射程影響顯著;

對燃料和推進器的交互因素來說,其p = 0.000062< 0.05,所以拒絕,認為交互因素其對射程影響顯著。

2.雙因素方差分析(無重復實驗)

在等重復實驗中,我們為了檢驗實驗中兩個因素的交互作用,針對每對組合至少要做2次以上實驗,才能夠將交互作用與誤差分離開來,在處理實際問題時候,如果我們一直不存在交互作用,或者交互作用對實驗指標影響極小,則可以不考慮交互作用,此時每對組合只做一次實驗,類似下方例子中的表中數據:

例6.4 不同時間、不同地點顆粒狀物含量差異性檢驗 無重復實驗

下面給出了在5個不同地點、不同時間空氣中的顆粒狀物(單位:mg/m°)含 量的數據記錄于表中,試在顯著性水平下檢驗不同時間、不同地點顆粒狀物含量有無顯著差異?(假設兩者沒有交互作用〉

因素B -地點
因素A - 時間
1995年10月 76 67 81 56 51
1996年01月 82 69 96 59 70
1996年05月 68 59 67 54 42
1996年08月 63 56 64 58 37
import numpy as np
import pandas as pd 

d = np.array([
    [76,67,81,56,51],
    [82,69,96,59,70],
    [68,59,67,54,42],
    [63,56,64,58,37]])
data = pd.DataFrame(d)
data.index=pd.Index(['1995年10月','1996年01月','1996年05月','1996年08月'],name='時間')
data.columns=pd.Index(['B1','B2','B3','B4','B5'],name='地點')
pandas寬表轉長表
data = data.reset_index().melt(id_vars =['時間'])
data = data.rename(columns={'value':'顆粒狀物含量'})
data.sample(5)

隨機查看5條轉化后的數據:

時間 地點 顆粒狀物含量
1996年05月 B4 54
1995年10月 B4 56
1996年05月 B3 67
1996年01月 B2 69
1996年01月 B3 96
import statsmodels.api as sm
from statsmodels.formula.api import ols

# 進行雙因素方差分析
model = ols('顆粒狀物含量~C(時間) + C(地點)', data =data).fit()
# 打印方差分析表
anova_table = sm.stats.anova_lm(model, typ=2)
anova_table
sum_sq df F PR(>F)
C(時間) 1182.95 3 10.7224 0.00103293
C(地點) 1947.5 4 13.2393 0.000234184
Residual 441.3 12 nan nan

結論:

對時間因素來說,其p = 0.001033 < 0.05 所以拒絕,認為時間對顆粒狀物含量影響顯著;

對地點因素來說,其p = 0.000234 < 0.05,所以拒絕,認為地點對顆粒狀物含量影響顯著;

致敬:數理統計的大半江山的創造者——費希爾
致敬:數理統計的大半江山的創造者——費希爾

下期將為大家帶來《統計學極簡入門》之相關分析

這里分享一個你一定用得到的小程序——CDA數據分析師考試小程序。 它是專為CDA數據分析認證考試報考打造的一款小程序??梢詭湍憧焖賵竺荚?、查成績、查證書、查積分,通過該小程序,考生可以享受更便捷的服務。 掃碼加入CDA小程序,與圈內考生一同學習、交流、進步!

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢