python 檢驗方差齊性 - CSDN

2021-01-12 CSDN技術社區

之前已經介紹的變量分析:

①相關分析:一個連續變量與一個連續變量間的關係。

②雙樣本t檢驗:一個二分分類變量與一個連續變量間的關係。

本次介紹:

方差分析:一個多分類分類變量與一個連續變量間的關係。

其中分類個數大於兩個,分類變量也可以有多個。

當分類變量為多個時,對分類個數不做要求,即可以為二分分類變量。

/ 01 / 數理統計技術

數理統計分為頻率和貝葉斯兩大學派。

描述性統計分析,描述性分析就是從總體數據中提煉變量的主要信息,即統計量。

描述性分析的難點在於對業務的了解和對數據的尋找。

統計推斷和統計建模,建立解釋變量與被解釋變量之間可解釋的、穩定的、最好是具有因果關係的表達式。

在模型運用時,將解釋變量(自變量)帶入表達式中,用於預測被解釋變量(因變量)的值。

現階段,我學習的就是統計推斷與建模的知識...

/ 02 / 方差分析

方差分析用於檢驗多個樣本的均值是否有顯著差異。

探索多於兩個分類的分類變量與連續變量的關係。

比如說「淺談數據分析崗」中薪水與教育程度之間的關係,教育程度為一個多分類的分類變量。

01 單因素方差分析

單因素方差分析的前提條件:

①變量服從正態分布(薪水符合)。

②觀測之間獨立(教育程度符合)。

③需驗證組間的方差是否相同,即方差齊性檢驗。

組間誤差與組內誤差、組間變異與組內變異、組間均方與組內均方都是方差分析中的衡量標準。

如果組間均方明顯大於組內均方,則說明教育程度對薪水的影響顯著。

那麼需要大多少才能確定結論呢?

這裡組間均方與組內均方的比值是服從F分布,下面貼出F分布曲線圖。

其中橫坐標為F值,即組間均方與組內均方的比值。

當F值越大時,即組間均方越大、組內均方越小,說明組間的變異大。

並且對應的P值也越小(縱軸),便可以拒絕原假設(原假設為無差異)。

下面以「淺談數據分析崗」中薪水與教育程度為例。

這裡我們只是直觀的看出薪水隨學歷的增長而增長,並沒有實實在在的東西。

接下來就用數字來說話!!!

代碼如下,需要清洗數據。

from scipy import stats

import pandas as pd

import pymysql

# 獲取資料庫數據

conn = pymysql.connect(host='localhost', user='root', password='774110919', port=3306, db='lagou_job', charset='utf8mb4')

cursor = conn.cursor()

sql = "select * from job"

df = pd.read_sql(sql, conn)

# 清洗數據,生成薪水列

dom = []

for i in df['job_salary']:

i = ((float(i.split('-')[0].replace('k', '').replace('K', '')) + float(i.split('-')[1].replace('k', '').replace('K', ''))) / 2) * 1000

dom.append(i)

df['salary'] = dom

# 去除無效列

data = df[df.job_education != '不限']

# 生成不同教育程度的薪水列表

edu = []

for i in ['大專', '本科', '碩士']:

edu.append(data[data['job_education'] == i]['salary'])

# 單因素方差分析

print(stats.f_oneway(*edu))

# 得到的結果

F_onewayResult(statistic=15.558365658927576, pvalue=3.0547055604132536e-07)

得出結果,F值為15.5,P值接近於0,所以拒絕原假設,即教育程度會顯著影響薪水。

02 多因素方差分析

多因素方差分析檢驗多個分類變量與一個連續變量的關係。

除了考慮分類變量對連續變量的影響,還需要考慮分類變量間的交互效應。

這裡由於我的數據滿足不了本次操作,所以選擇書中的數據。

即探討信用卡消費與性別、教育程度的關係。

首先考慮無交互效應,代碼如下。

import statsmodels.formula.api as smf

import statsmodels.api as sm

import pandas as pd

# 讀取數據,skipinitialspace:忽略分隔符後的空白,dropna:對缺失的數據進行刪除

df = pd.read_csv('creditcard_exp.csv', skipinitialspace=True)

df = df.dropna(how='any')

# smf:最小二乘法,構建線性回歸模型,

ana = smf.ols('avg_exp ~ C(edu_class) + C(gender)', data=df).fit()

# anova_lm:多因素方差分析

print(sm.stats.anova_lm(ana))

輸出結果。

可以看到教育程度的F值為31.57,P值趨近於0,拒絕原假設,即教育程度與平均支出有顯著差異。

性別的F值為0.48,P值為0.48,無法拒絕原假設,即性別與平均支出無顯著差異。

接下來考慮有交互效應,代碼如下。

# 消除pandas輸出省略號情況

pd.set_option('display.max_columns', 5)

# smf:最小二乘法,構建線性回歸模型

anal = smf.ols('avg_exp ~ C(edu_class) + C(gender) + C(edu_class)*C(gender)', data=df).fit()

# anova_lm:多因素方差分析

print(sm.stats.anova_lm(anal))

輸出結果。

這裡可以看出,考慮交互效應後,與教育程度及性別對應的F值和P值都發生了微小的改變。

其中教育程度和性別的交互項對平均支出的影響也是顯著的,F值為2.22,P值為0.09。

上面這個結論是書中所說的,那麼顯著性水平取的是0.1嗎???

這算是我理解不了的一部分。

下面是帶交互項的多元方差分析的回歸係數,表格中所有數據都是以男性及研究生學歷作為基準去比對。

# 生成數據總覽

print(anal.summary())

輸出結果。

可以看出第一種教育程度的女性較男性研究生,信用卡消費的影響較顯著,P值為0.05。

原假設為無差異,拒絕原假設。

那麼這裡的顯著性水平取的也是0.1嗎???

第二種教育程度的女性較男性研究生,信用卡消費的影響顯著,P值為0.001。

第三種缺失,沒有參數估計。

/ 03 / 總結

這裡總結一下各個檢驗的原假設。

單樣本t檢驗原假設:總體均值與假設的檢驗值不存在顯著差異(無差異)。

雙樣本t檢驗原假設:兩個樣本均值(二分變量下的均值)不存在顯著差異(無差異)。

方差分析原假設:多個樣本均值(多分變量下的均值)不存在顯著差異(無差異)。

說明原假設都是假設變量關係無顯著差異。

文末點個讚,比心!!!

相關焦點

  • spss方差齊性檢驗 - CSDN
    單因素方差分析為檢驗某一個因子的不同水平是否對觀察變量有顯著差異。一、前提條件:1.正態性。2.獨立性。3.方差齊性。方差齊性為最重要的檢驗條件,若方差不齊時不能做方差分析。4.因變量為連續變量。5.自變量為分類變量。
  • batlett方差齊性檢驗 - CSDN
    傳送:隨機變量概率分布函數匯總-離散型分布+連續型分布            假設檢驗-KS檢驗            假設檢驗-W檢驗            假設檢驗-單樣本t檢驗            假設檢驗-兩服從正態分布的獨立總體均值檢驗
  • 平穩性檢驗結果分析專題及常見問題 - CSDN
    平穩性定義所謂時間序列的平穩性,是指時間序列的均值,方差以及協方差都是常數,與時間t無關。這樣的序列才可以作為我們基於歷史預測未來的基礎。滿足以上條件屬於嚴平穩,一般達到弱平穩都是可以接受的。平穩性是當前時間序列分析的前提條件,因為我們的建模過程基本都是以大數定理和中心極限定理為理論基礎(比如ARMA,ARIMA模型等),而大數定理和中心極限定理也是有前提條件的,那就是要求樣本同分布(等價於時間序列的平穩性)。如果這個條件不滿足,那麼我們的很多分析結果是不可靠的。白噪聲屬於平穩序列,因為它的均值為0,方差為常數,協方差為0。
  • 利用python做t檢驗
    T檢驗:使用前提:
  • python時間序列平穩性檢驗專題及常見問題 - CSDN
    在做時間序列分析時,我們經常要對時間序列進行平穩性檢驗,而我們常用的軟體是SPSS或SAS,但實際上python也可以用來做平穩性檢驗,而且效果也非常好,今天筆者就講解一下如何用python來做時間序列的平穩性檢驗。首先我們還是來簡單介紹一下平穩性檢驗的相關概念。圖1.
  • 什麼是f檢驗 - CSDN
    方差檢驗方差檢驗是多變量t檢驗的延續,對於超過兩個樣本的對比檢驗就無法直接使用獨立T檢驗了,這個時候就需要使用卡方檢驗。例子:冰淇凌老闆想知道三種口味的冰淇凌的銷售情況是否一樣,他有如下的數據巧克力味草莓味原味233234321233343344等等等F檢驗又叫方差齊性檢驗,目的是判斷兩個樣本的總體方差是否相等,計算雙總體樣本檢驗的前提條件。
  • t檢驗 方差分析 - CSDN
    配對樣本t檢驗:配對樣本t檢驗可視為單樣本t檢驗的擴展,其實質就是對差值進行單樣本t檢驗。2.T檢驗的使用前提正態性;(單樣本、獨立樣本、配對樣本T檢驗都需要,可以用K-S檢驗法,在SPSS中的「分析」–「非參數檢驗」—「單樣本」中;或者直接根據直方圖、P-P圖,Q-Q圖來觀察或根據偏度峰度法來分析)獨立性;(獨立樣本T檢驗要求)方差齊性;(獨立樣本T檢驗要求,使用Levene’s檢驗,兩樣本T檢驗中提供Levene’s檢驗,如需更詳細的檢驗結果可在
  • 方差檢驗專題及常見問題 - CSDN
    Excel雙樣本T檢驗之等方差檢驗1 聲明本文的數據來自網絡,部分代碼也有所參照,這裡做了注釋和延伸,旨在技術交流,如有冒犯之處請聯繫博主及時處理。
  • T檢驗、方差分析、卡方分析傻傻分不清?
    1、聯繫和區別T檢驗、方差分析、卡方檢驗都是差異分析的方法,比較不同組數據的均值差異
  • t檢驗 機器學習_機器學習 t 檢驗 - CSDN
    假設檢驗常見的假設檢驗有:T檢驗(Student’s t Test),F檢驗(方差齊性檢驗),卡方驗證等。無論任何假設檢驗,它們都遵循如下圖所示的流程:做兩個假設:一般如果假設對象是兩組樣本的話,都會假設這兩組樣本均值相等(T檢驗的假設),方差滿足齊次性(F檢驗的假設)等。而另一個假設其實就是兩組樣本均值不相等(T檢驗的假設),方差不滿足齊次性(F檢驗的假設)等,其實這兩個假設就是一對非此即彼的選項。這兩個假設在教科書上就叫做原假設H_0,和備擇假設H_1。
  • t檢驗的目的_單樣本t檢驗的目的 - CSDN
    它主要用於:均數差別的顯著性檢驗、分離各有關因素並估計其對總變異的作用、分析因素間的交互作用、方差齊性(Equality of Variances)檢驗等情況。也就是說,t檢驗須視乎方差齊性(Equality of Variances)結果。
  • 時間序列平穩性檢驗 - CSDN
    Python平穩性檢驗實戰重要性:10分 (1-10)。時間序列數據的平穩性對於我們採用什麼樣的分析方式、選擇什麼樣的模型有著至關重要的影響。我們想一下,假如一個時間序列的波動趨勢從來沒有穩定過,那麼它每個時期的波動對於之後一段時期的影響都是無法預測的,因為它隨時可能「變臉」。
  • r語言兩樣本檢驗 - CSDN
    構建t統計量:其中,s^2是合併方差:s1^2與s2^2是兩樣本方差。上述t統計量是建立在σ1^2 =σ2^2的基礎上,可以用F統計量F』來檢驗方差相等假設:當σ1^2 !testdata ## price xiaoqu ## 1 1100 A ## 2 1210 A ## 3 1150 A ## 4 1185 A ## 5 1250 A ## 6 1150 A然後,進行方差齊性檢驗:bartlett.test(formula = price
  • f檢驗的p值大於 - CSDN
    3,T檢驗和F檢驗的關係t檢驗過程,是對兩樣本均數(mean)差別的顯著性進行檢驗。惟t檢驗須知道兩個總體的方差(Variances)是否相等;t檢驗值的計算會因 方差是否相等而有所不同。也就是說,t檢驗須視乎方差齊性(Equality of Variances)結果。
  • f檢驗求p值 - CSDN
    3,T檢驗和F檢驗的關係t檢驗過程,是對兩樣本均數(mean)差別的顯著性進行檢驗。惟t檢驗須知道兩個總體的方差(Variances)是否相等;t檢驗值的計算會因 方差是否相等而有所不同。也就是說,t檢驗須視乎方差齊性(Equality of Variances)結果。
  • 回歸模型中f檢驗公式 - CSDN
    【不同樣本的方差大致相等】,線性回歸中,因為我們無法對【x1,y1】這對數據做方差齊性分析,因為x1隻對應一個y1,但是真實總體上,一個x1值可以對應無數個y1的值,只是總體誰也不知。實際操作中,我們只好看殘差分布圖,如果是隨機分布,那麼我們認為滿足方差齊性檢測。】
  • 回歸分析t檢驗公式_線性回歸t檢驗公式 - CSDN
    【不同樣本的方差大致相等】,線性回歸中,因為我們無法對【x1,y1】這對數據做方差齊性分析,因為x1隻對應一個y1,但是真實總體上,一個x1值可以對應無數個y1的值,只是總體誰也不知。實際操作中,我們只好看殘差分布圖,如果是隨機分布,那麼我們認為滿足方差齊性檢測。】
  • 方差分析時方差不齊次怎麼辦?
    各處理條件下樣本來自正態分布總體、樣本方差相同即方差齊次,這是方差分析兩個極其重要的前提條件。此處最容易遇到的問題是:不滿足正態性,或者方差不齊時怎麼辦?今天小兵給讀者夥伴們精選兩篇文章來解答這個問題。真的!單因素方差分析你用錯了!↑點擊上方文章標題,閱讀原文。
  • python卡方檢驗 - CSDN
    卡方檢驗可以用於判斷兩個類別變量的相關性是否顯著。在分類的應用場景中可以用卡方檢驗選擇特徵,特徵與目標變量的相關性越顯著說明特徵越重要,預測力越強。      一、先簡單介紹一下卡方檢驗的步驟。假設y為目標變量,取值為好和壞,x為特徵變量取值為高、中、低。
  • 常用數據分析方法:方差分析及實現!
    方差分析是一種常用的數據分析方法,其目的是通過數據分析找出對該事物有顯著影響的因素、各因素之間的交互作用及顯著影響因素的最佳水平等。本文介紹了方差分析的基礎概念,詳細講解了單因素方差分析、雙因素方差分析的原理,並且給出了它們的python實踐代碼。