檢驗多個總體均值是否相等,通過分析察數據的誤差判斷各總體均值是否相等
下圖,所有的樣本都在一個相似的正態分布區間
下圖,所有的樣本都是正態分布,但不在同一分布區間
實例:
為了對幾個行業的服務消費者協會在四個行業分別抽取了不同的企業作為樣本。最近一年中消費者對總共23家企業投訴的次數如下表
要做的事:
分析四個行業之間的服務質量是否有顯著差異,也就是要判斷「行業」對「投訴次數」是否有顯著影響
如果它們的均值相等,就意味著「行業」對投訴次數是沒有影響的,即它們之間的服務質量沒有顯著差異:如果均值不全相等,則意味著「行業」對投訴次數是有影響的,它們之間的服務質量有顯著差異
相關概念:
因素或因子( factor):所要檢驗的對象,要分析行業對投訴次數是否有影響,行業是要檢驗的因素或因子
水平或處理( treatment:因素的不同表現,即每個自變量的不同取值稱為因素的水平
觀察值:在每個因素水平下得到的樣本值,每個行業被投訴的次數就是觀察值
試驗:這裡只涉及一個因素,因此稱為單因素四水平的試驗
總體:因素的每一個水平可以看作是一個總體,比如零售業、旅遊業、航空公司、家電製造業可以看作是四個總體
樣本數據:被投訴次數可以看作是從這四個總體中抽取的樣本數據
散點圖觀察
不同行業被投訴的次數是有明顯差異的
即使是在同一個行業,不同企業被投訴的次數也明顯不同
家電製造也被投訴的次數較高,航空公司被投訴的次數較低
行業與被投訴次數之間有一定的關係
但是
僅從散點圖上觀察還不能提供充分的證據證明不同行業被投訴的次數之間有顯著差異
這種差異也可能是由於抽樣的隨機性所造成的
需要有更準確的方法來檢驗這種差異是否顯著,也就是進行方差分析
之所以叫方差分析,因為雖然我們感興趣的是均值,但在判斷均值之間是否有差異時則需要藉助於方差
基本思想: 隨機誤差:因素的同一水平(總體)下,樣本各觀察值之間的差異
比如,同一行業下不同企業被投訴次數是不同的
這種差異可以看成是隨機因素的影響,稱為隨機誤差
系統誤差: 組內方差:因素的同一水平(同一個總體)下樣本數據的方差
比如,零售業被投訴次數的方差
組內方差只包含隨機誤差
組間方差:因素的不同水平(不同總體)下各樣本之間的方差
比如,四個行業被投訴次數之間的方差
組間方差既包括隨機誤差,也包括系統誤差
方差的比較:若不同行業對投訴次數沒有影響,則組間誤差中只包含隨機誤差,沒有系統誤差。這時,組間誤差與組內誤差經過平均後的數值就應該很接近,它們的比值就會接近1
,若不同行業對投訴次數有影響,在組間誤差中除了包含隨機誤差外,還會包含有系統誤差,這時組間誤差平均後的數值就會大於組內誤差平均後的數值,它們之間的比值就會大於1
這個比值大到某種程度時,就可以說不同水平之間存在著顯著差異,也就是自變量對因變量有影響
判斷行業對投訴次數是否有顯著影響,實際上也就是檢驗被投訴次數的差異主要是由於什麼原因所引起的。如果這種差異主要是系統誤差,說明不同行業對投訴次數有顯著影響
方差分析計算方法方差分析的前提:每個總體都應服從正態分布
各個總體的方差必須相同
各組觀察數據是從具有相同方差的總體中抽取的
比如,四個行業被投訴次數的方差都相等
觀察值是獨立
在上述假定條件下,判斷行業對投訴次數是否有顯著影響,實際上也就是檢驗具有同方差的四個正態總體的均值是否相等
原假設成立,即H0:μ1=μ2=μ3=μ4
四個行業被投訴次數的均值都相等意味著每個樣本都來自均值為μ、方差為σ^2的同一正態總體
備擇假設成立,即H1:μ1=μ2=μ3=μ4不完全相等
至少有一個總體的均值是不同的,四個樣本分別來自均值不同的四個正態總體
模型中有一個自變量(因素)和一個觀測變量其實就是關幹在一個影響因素的不同水平下,觀測變量均值差異的顯著性檢驗。
提出假設
HO: μ1= μ2=...=μk,自變量對因變量沒有顯著影響
即H1:μ1μ2...u4不完全相等,自變量對因變量有顯著影響
拒絕原假設,只表明至少有兩個總體的均值不相等,並不意味著所有的均值都不相等
檢驗的統計量水平的均值
全部觀察值的總均值
誤差平方和
均方(MS)
水平的均值:
定從第i個總體中抽取一個容量為ni的簡單隨機樣本,第ⅰ個總體的樣本均值為該樣本的全部觀察值總和除以觀察值的個數
式中:ni為第i個總體的樣本觀察值個數xij為第i個總體的第j個觀察值
全部觀察值的總均值:
全部觀察值的總和除以觀察值的總個數
式中:n=n1+n2+...+nk
總誤差平方和SST
全部觀察值與總平均值的離差平方和,反映全部觀察值的離散狀況
水平項平方和SSA
各組平均值與總平均值的離差平方和,反映各總體的樣本均值之間的差異程度,又稱組間平方和,該平方和既包括隨機誤差,也包括系統誤差
誤差項平方和SSE
每個水平或組的各樣本數據與其組平均值的離差平方和,反映每個樣本各觀察值的離散狀況,又稱組內平方和,該平方和反映的是隨機誤差的大小
平方和之間的關係
總離差平方和(SST、誤差項離差平方和(SSE)、水平項離差平方和(SSA)之間的關係
SST反映全部數據總的誤差程度;SSE反映隨機誤差的大小;SSA反映隨機誤差和系統誤差的大小
如果原假設成立,則表明沒有系統誤差,組間平方和SSA除以自由度後的均方與組內平方和SSE和除以自由度後的均方差異就不會太大;如果組間均方顯著地大於組內均方,說明各水平(總體)之間的差異不僅有隨機誤差,還有系統誤差,判斷因素的水平是否對其觀察值有影響,實際上就是比較組間方差與組內方差之間差異的大小
均方MS
各誤差平方和的大小與觀察值的多少有關,為消除觀察值多少對誤差平方和大小的影響,需要將其平均,這就是均方,也稱為方差,計算方法是用誤差平方和除以相應的自由度
各自自由度
F統計量
將MSA(組間方差,SSA的均方,記為MSA)和MSE(組內方差,SSE的均方,記為MSE)進行對比,即得到所需要的檢驗統計量F
F分布
根據給定的顯著性水平,在F分布表中查找與第一自由度df1=k-1、第二自由度df2=n-k相應的臨界值
若F>Fα,則拒絕原假設H0,表明均值之間的差異是顯著的,所檢驗的因素對觀察值有顯著影響
若F<Fα,則不拒絕原假設H0,不能認為所檢驗的因素對觀察值有顯著影響
方差分析表:
方差分析中的多重比較兩組比較實例:
在評價某藥物耐受性及安全性的期臨床試驗中,對符合納入標準的30名健康自願者隨機分為3組每組10名,各組注射劑量分別為0.5U、1U、2U,觀察48小時部分凝血活酶時間(s)試問不同劑量的部分凝血活酶時間有無不同?
提出假設:H0:μ1=μ2=μ3;H1:μ1,p2,μ3不全相同,顯著水平a=0.05
F0.05(2,26)=2.52, F>F0.05(2,26), P<0.05拒絕H0。三種不同劑量48小時部分凝血活酶時間不全相同。
多重比較通過對總體均值之間的配對比較來進一步檢驗到底哪些均值之間存在差異
可採用 Fisher提出的最小顯著差異方法,簡寫為LSD
LSD方法是對檢驗兩個總體均值是否相等的t檢驗方法的總體方差估計而得到的
LSD方法
對k組中的兩組的平均數進行比較,當兩組樣本容量分別為ni,nj都為時,有
則認為μ1與μ2有顯著差異,否則認為它們之間沒有顯著差異
實例:顏色對銷售額的影響
依據上面結果可得出影響效果
多因素方差分析無交互效應的多因素方差分析
有交互效應的多因素方差分析
主效應與交互效應
雙因素方差分析的類型
無交互效應的雙因素方差分析模型
離差平方和的分解
有交互效應的雙因素方差分析模型
離差平方和的分解
雙因素方差分析的步驟
提出假設
要說明因素A有無顯著影響,就是檢驗如下假設:
Ho:因素A不同水平下觀測變量的總體均值無顯著差異。
H1:因素A不同水平下觀測變量的總體均值存在顯著差異。要說明因素B有無顯著影響,就是檢驗如下假設Ho:因素B不同水平下觀測變量的總體均值無顯著差異
H1:因素B不同水平下觀測變量的總體均值存在顯著差異。在有交互效應的雙因素方差中,要說明兩個因素的交互效應是否顯著,還要檢驗第三組零假設和備擇假設
Ho:因素A和因素B的交互效應對觀測變量的總體均值無顯著差異。
H1:因素A和因素B的交互效應對觀測變量的總體均值存在顯著差異。構造統計量
在原假設成立的情況下,三個統計量分別服從自由度為(r-1,rs(m-1))、(s-1,rs(m-1))、(r-1)(s-1)rs(m-1)的F分布
利用原假設和樣本數據分別計算3個F統計量的值和其對應的p值對比p值和α,結合原假設作出推斷。若p<a,則拒絕關於這個因素的原假設,得出此因素不同水平下觀測變量各總體均值存在顯著差異的結論。
實例:
有四個品牌的彩電在五個地區銷售,為分析彩電的品牌(品牌因素)和銷售地區(地區因素)對銷售量是否有影響,對每個品牌在各地區的銷售量取得以下數據。試分品牌和銷售地區對彩電的銷售量是否有顯著影響?(q=0.05)
提出假設對行因素提出的假設為:HO: μ1=μ2=...=μi=...=μk(μi為第個水平的均值)H1:μi(i=1,2,…,k)不全相等
對列因素提出的假設為:
HO: H1=μ1=μ2=...=μj=...=μr(mj為第j個水平的均值)H1:μj(j=1,2,...,r)不全相等
計算各平方和
計算均方
誤差平方和除以相應的自由度
計算檢驗統計量(F)
計算檢驗統計量(F)
檢驗列因素的統計量
FA=18.10777>Fα=34903,拒絕原假設H0,說明彩電的品牌對銷售量有顯著影響
FB=2.100846<Fα=32592,接受原假設H0,說明銷售地區對彩電的銷售量沒有顯著影響
Python方差分析實例單因素方差分析from scipy.stats import f_oneway
a = [10,9,9,8,8,7,7,8,8,9] # 3個城市每個城市10個人評價
b = [10,8,9,8,7,7,7,8,9,9]
c = [9,9,8,8,8,7,6,9,8,9]
f,p = f_oneway(a,b,c)
print(f) # 統計量
print(p) # 概率值不能認為所檢驗的因素對觀測值有顯著影響
多因素方差分析from scipy import stats
import pandas as pd
import numpy as np
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
environmental = [5,5,5,5,5,4,4,4,4,4,3,3,3,3,3,2,2,2,2,2,1,1,1,1,1]
ingredients = [5,4,3,2,1,5,4,3,2,1,5,4,3,2,1,5,4,3,2,1,5,4,3,2,1]
score = [5,5,4,3,2,5,4,4,3,2,4,4,3,3,2,4,3,2,2,2,3,3,3,2,1]
data = {'E':environmental, 'I':ingredients, 'S':score}
df = pd.DataFrame(data)
df.head()符號意義:
(~)隔離因變量和自變量(左邊因變量,右邊自變量)
(+)分隔各個自變量
(:)表示兩個自變量交互影響formula = 'S~E+I+E:I' #指定公式
model = ols(formula, df).fit()
results = anova_lm(model)
print(results)P值很小,拒絕原假設,F值越大。
表示該因素對結果影響越大,分別是E和I
E:I行的P值表示交互情況,小於0.05,之間並無交互
機器學習就是用算法解析數據,不斷學習,對世界中發生的事做出判斷和預測的一項技術。生活中很多機器學習的書籍只注重算法理論方法,並沒有注重算法的落地。本書是初學者非常期待的入門書,書中有很多的示例可以幫助初學者快速上手。