機器學習中數據的方差分析

2022-01-05 Python之王
方差分析的概述

檢驗多個總體均值是否相等,通過分析察數據的誤差判斷各總體均值是否相等

下圖,所有的樣本都在一個相似的正態分布區間

下圖,所有的樣本都是正態分布,但不在同一分布區間

實例:

為了對幾個行業的服務消費者協會在四個行業分別抽取了不同的企業作為樣本。最近一年中消費者對總共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,之間並無交互

機器學習就是用算法解析數據,不斷學習,對世界中發生的事做出判斷和預測的一項技術。生活中很多機器學習的書籍只注重算法理論方法,並沒有注重算法的落地。本書是初學者非常期待的入門書,書中有很多的示例可以幫助初學者快速上手。


相關焦點

  • 機器學習與數據分析常用術語-基礎篇(一)
    前言 之前在給公司的程式設計師培訓機器學習專題實戰的時候,發現他們聽的認真,也非常想學,但是每當問他們有哪裡不懂的時候,他們總是回答不出哪裡不懂,識懂非懂的狀態,後來我總結了一下原因,1.機器學習領域跟程序開發的區別非常大,機器學習屬於一個交叉學科,即需要數學也需要計算機學,難度相對與單學科要大些,2.機器學習領域有很多專業詞彙與術語
  • Python數據科學:方差分析
    描述性統計分析,描述性分析就是從總體數據中提煉變量的主要信息,即統計量。描述性分析的難點在於對業務的了解和對數據的尋找。統計推斷和統計建模,建立解釋變量與被解釋變量之間可解釋的、穩定的、最好是具有因果關係的表達式。
  • 機器學習中的統計學——協方差矩陣
    在之前的幾篇文章中曾講述過主成分分析的數學模型、幾何意義和推導過程(PS:點擊即可閱讀),這裡面就要涉及到協方差矩陣的計算,本文將針對協方差矩陣做一個詳細的介紹
  • 常用數據分析方法:方差分析及實現!
    方差分析是一種常用的數據分析方法,其目的是通過數據分析找出對該事物有顯著影響的因素、各因素之間的交互作用及顯著影響因素的最佳水平等。本文介紹了方差分析的基礎概念,詳細講解了單因素方差分析、雙因素方差分析的原理,並且給出了它們的python實踐代碼。
  • 機器學習數據分析極簡思路及sklearn算法實踐小試
    機器學習數據分析極簡思路機器學習擁有龐大的知識體系,這裡對機器學習的數據分析的整個思路和流程作最最簡單的歸納。
  • python數據分析中的相關性和協方差
    相關性和協方差相關性和協方差是兩個重要的統計量,pandas計算這兩個量的函數分別是corr( )和cov( )。這兩個量的計算通常涉及兩個Series對象。另外一種情況是,計算單個DataFrame對象的相關性和協方差,返回兩個新DataFrame對象形式的矩陣。用corrwith( )方法可以計算DataFrame對象的列或行與Series對象或其他DataFrame對象元素兩兩之間的相關性。
  • 方差分析的數據處理和作圖
    (點這裡),而前者運用的是T檢驗,之前我們講到單尾T(點這裡)和雙尾T(點這裡)的作圖,但是T檢驗知識針對兩列數據的均值比較,那如果數據有多列則如何是好?那麼,就要用到今天講到的方差分析。單因素方差分析One-Way ANOVA:t檢驗適用於兩列數據的均值比較。單因素方差分析適用於兩列或更多列數據的均值比較。但對於兩列數據的均值比較,單因素方差分析=等方差假設的雙尾t檢驗。
  • 數據分析應用(眾數中位數方差)
    這裡的內容在中考試題中有大概10分左右的題目內容下面我就來總結一下這裡的知識點及其一些題目的應用:1.理解平均數的意義,能計算中位數、眾數、加權平均數,了解它們是數據集中趨勢的描述2.體會刻畫數據離散程度的意義,會計算簡單數據的方差。3. 能解釋統計結果,根據結果作出簡單的判斷和預測,並能進行交流。這些概念要在腦中有個意識。
  • 「spss數據分析系列」方差分析
    上一課我們講的是t檢驗,t檢驗是用於2個類別的均值對比,如果是3分類以及以上的分類的均值對比,則採用方差分析。t檢驗是用的t分布來檢驗時候接受假設,方差分析則用的F分布,如下圖。方差分析的適用條件:1、個樣本的獨立性(指每個單元格內的數據相互獨立):這樣才能保證數據變異的可加性。2、正態性:單元格內的所有總體都是從一個正太總體來面抽出來,這個時候一般由於單元格數量比較少,所以沒法直接分析和觀察,這時候一般採用殘差分析來看。
  • 無監督機器學習算法:主成分分析
    之前我們曾經講過,無監督學習是一種不使用標記數據(無目標變量)的機器學習。因此,算法的任務是在數據本身中尋找模式。無監督機器學習算法的兩種主要類型分別是使用主成分分析的降維算法和聚類算法(包括K-Means和層次聚類算法)。下面將依次介紹這些內容。
  • 機器學習數據降維方法:PCA主成分分析
    PCA在機器學習中很常用,是一種無參數的數據降維方法。PCA的推導PCA通過線性變換將原始數據變換為一組各維度線性無關的表示,可用於提取數據的主要特徵分量,常用於高維數據的降維。我們知道PCA是一種數據降維的方法,在降低維度的過程中,我們當然想要保留更多的特徵,PCA就是經過數學推導,保留最多特徵同時降維的方法。
  • 方差分析(一): 方差分析的基本原理
    >「朝陽35處」可查看「說人話的大數據」系列合輯方差分析可以用來判斷幾組觀察到的數據或者處理的結果是否存在顯著差異。本文介紹的方差分析(Analysis of Variance,簡稱ANOVA)就是用於檢驗兩組或者兩組以上樣本的均值是否具備顯著性差異的一種數理統計方法。在實際應用中,常常需要判斷幾組觀察到的數據或者處理的結果是否存在顯著差異。
  • SPSS: 方差成分分析/方差分量分析
    通過方差成分分析可考察各層次因素的變異大小,提供可能減少數據變異的方法。〖例10-14〗現測量了4個家庭18個個體的高度及性別,其分析不同家庭、性別間身高的變異情況,數據見表10-14。○Restricted maximum likelihood(限定最大似然法,REML),對於大量的平衡數據,採用簡化的方差分析估計,此方法可對固定效應進行調整,其標準誤比最大似然法小,並考慮自由度。本例選擇此項。☆Random-Effect Priors(先驗隨機效應),只能用於MINQUE(最小正態二乘無偏估計)。
  • 重複測量數據的方差分析在SPSS中的應用——【杏花開醫學統計】
    關 注 重複測量數據的方差分析 在SPSS中的應用 關鍵詞:spss、重複測量方差 導 讀 在醫學研究中,很多實驗都涉及到重複測量的數據資料
  • 差異性分析中不可不知的方差分析
    而研究過程中,往往是兩組以上的數據進行差異性比較,比如大學四個年級的心理健康素質的差異性,某個省不同縣市收入水平的差異性等等,這些只能求助方差分析啦。方差分析,簡稱ANOVA,又稱「變異數分析」或「F檢驗」,是主要用於兩個及兩個以上樣本均數差別的顯著性檢驗。從定義上我們可以知道獨立樣本T檢驗其實是方差分析的一種特例。
  • 【如何寫論文系列之 SPSS數據分析】單因素方差分析
    研究中需要檢驗某一因素(三個及三個以上水平)的多個水平是否對某個定量數據產生影響時,可以使用單因素方差分析。自變量:定類數據,且類別為三個及三個以上(即包含多個水平的一個因素)因變量:定量數據單因素方差分析的應用條件每一種統計方法都有其適用的條件,當研究數據需要滿足以下條件時,才能進行單因素方差分析。
  • 方差分析(二): ANOVA過程單因素方差分析
    >「朝陽35處」可查看「說人話的大數據」系列合輯在方差分析中,最簡單的情形為單因素。在SAS中進行單因素方差分析可以使用ANOVA過程和GLM過程,本文先對ANOVA過程進行方差分析進行介紹,下面一篇將文章介紹SLM過程進行方差分析。在方差分析中,最簡單的情形為單因素,熟練掌握單因素的方差分析對理解、解決多因素方差問題很有幫助。在SAS中,方差分析可以通過PROC TTEST、PROC ANOVA與PROC GLM實現。
  • 方差分析
    我們的最終目的其實就是為了比較各組的平均客單價,但是在比較均值之前,我們需要先證明下各組之間的結果不同是因為策略的原因還是隨機挑選的原因,我們把這個過程叫做方差分析。2.三個假設:方差分析有三個假設:1.每組樣本數據對應的總體應該服從正態分布;2.每組樣本數據對應的總體方差要相等,方差相等又叫方差齊性;3.每組之間的值是相互獨立的,就是A、B、C組的值不會相互影響。
  • 乾貨|方差分析(ANOVA)系列之單因子方差分析
    ANOVA在六西格瑪的A階段中多用於篩選潛在的關鍵少數「 Xs」;在I階段的及Doe(試驗設計)中也會用到。該方法在六西格中也是較為普遍使用的工具之一。     方差分析的類別      主要有單因子方差分析(Minitab軟體路徑:統計>方差分析>單因子方差)、平衡方差分析(Minitab軟體路徑:統計>方差分析>平衡方差分析)及一般線性模型(Minitab軟體路徑:統計>方差分析>一般線性模型)等類別。
  • 方差分析中深層次統計學問題
    2、關於方差分析兩兩比較方法的選擇     進行方差分析時,如果多組間比較認為總的有統計學差異,通常還可進一步做組間多重比較。 多重比較的方法比較多,這裡主要介紹sas軟體中常用的方法,主要有Tukey法、Scheffe法、Bonferroni法、Dunnett法等。