偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Python數(shù)據(jù)科學(xué):方差分析

大數(shù)據(jù) 數(shù)據(jù)分析
本次介紹:方差分析:一個多分類分類變量與一個連續(xù)變量間的關(guān)系。其中分類個數(shù)大于兩個,分類變量也可以有多個。當(dāng)分類變量為多個時,對分類個數(shù)不做要求,即可以為二分分類變量。

之前已經(jīng)介紹的變量分析:

  • ①相關(guān)分析:一個連續(xù)變量與一個連續(xù)變量間的關(guān)系。
  • ②雙樣本t檢驗:一個二分分類變量與一個連續(xù)變量間的關(guān)系。

本次介紹:

  • 方差分析:一個多分類分類變量與一個連續(xù)變量間的關(guān)系。

其中分類個數(shù)大于兩個,分類變量也可以有多個。

當(dāng)分類變量為多個時,對分類個數(shù)不做要求,即可以為二分分類變量。

一、數(shù)理統(tǒng)計技術(shù)

數(shù)理統(tǒng)計分為頻率和貝葉斯兩大學(xué)派。

描述性統(tǒng)計分析,描述性分析就是從總體數(shù)據(jù)中提煉變量的主要信息,即統(tǒng)計量。

描述性分析的難點在于對業(yè)務(wù)的了解和對數(shù)據(jù)的尋找。

統(tǒng)計推斷和統(tǒng)計建模,建立解釋變量與被解釋變量之間可解釋的、穩(wěn)定的、最好是具有因果關(guān)系的表達(dá)式。

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

現(xiàn)階段,我學(xué)習(xí)的就是統(tǒng)計推斷與建模的知識...

二、方差分析

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

探索多于兩個分類的分類變量與連續(xù)變量的關(guān)系。

比如說「淺談數(shù)據(jù)分析崗」中薪水與教育程度之間的關(guān)系,教育程度為一個多分類的分類變量。

01 單因素方差分析

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

  • ①變量服從正態(tài)分布(薪水符合)。
  • ②觀測之間獨立(教育程度符合)。
  • ③需驗證組間的方差是否相同,即方差齊性檢驗。

組間誤差與組內(nèi)誤差、組間變異與組內(nèi)變異、組間均方與組內(nèi)均方都是方差分析中的衡量標(biāo)準(zhǔn)。

如果組間均方明顯大于組內(nèi)均方,則說明教育程度對薪水的影響顯著。

那么需要大多少才能確定結(jié)論呢?

這里組間均方與組內(nèi)均方的比值是服從F分布,下面貼出F分布曲線圖。

Python數(shù)據(jù)科學(xué):方差分析

其中橫坐標(biāo)為F值,即組間均方與組內(nèi)均方的比值。

當(dāng)F值越大時,即組間均方越大、組內(nèi)均方越小,說明組間的變異大。

并且對應(yīng)的P值也越小(縱軸),便可以拒絕原假設(shè)(原假設(shè)為無差異)。

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

Python數(shù)據(jù)科學(xué):方差分析

這里我們只是直觀的看出薪水隨學(xué)歷的增長而增長,并沒有實實在在的東西。

接下來就用數(shù)字來說話!!!

代碼如下,需要清洗數(shù)據(jù)。

  1. from scipy import stats 
  2. import pandas as pd 
  3. import pymysql 
  4. # 獲取數(shù)據(jù)庫數(shù)據(jù) 
  5. conn = pymysql.connect(host='localhost'user='root'password='774110919', port=3306, db='lagou_job', charset='utf8mb4'
  6. cursor = conn.cursor() 
  7. sql = "select * from job" 
  8. df = pd.read_sql(sql, conn) 
  9. # 清洗數(shù)據(jù),生成薪水列 
  10. dom = [] 
  11. for i in df['job_salary']: 
  12.     i = ((float(i.split('-')[0].replace('k''').replace('K''')) + float(i.split('-')[1].replace('k''').replace('K'''))) / 2) * 1000 
  13.     dom.append(i) 
  14. df['salary'] = dom 
  15. # 去除無效列 
  16. data = df[df.job_education != '不限'
  17. # 生成不同教育程度的薪水列表 
  18. edu = [] 
  19. for i in ['大專''本科''碩士']: 
  20.     edu.append(data[data['job_education'] == i]['salary']) 
  21. # 單因素方差分析 
  22. print(stats.f_oneway(*edu)) 
  23. # 得到的結(jié)果 
  24. F_onewayResult(statistic=15.558365658927576, pvalue=3.0547055604132536e-07) 

得出結(jié)果,F(xiàn)值為15.5,P值接近于0,所以拒絕原假設(shè),即教育程度會顯著影響薪水。

02 多因素方差分析

多因素方差分析檢驗多個分類變量與一個連續(xù)變量的關(guān)系。

除了考慮分類變量對連續(xù)變量的影響,還需要考慮分類變量間的交互效應(yīng)。

這里由于我的數(shù)據(jù)滿足不了本次操作,所以選擇書中的數(shù)據(jù)。

即探討信用卡消費與性別、教育程度的關(guān)系。

首先考慮無交互效應(yīng),代碼如下。

  1. import statsmodels.formula.api as smf 
  2. import statsmodels.api as sm 
  3. import pandas as pd 
  4. # 讀取數(shù)據(jù),skipinitialspace:忽略分隔符后的空白,dropna:對缺失的數(shù)據(jù)進(jìn)行刪除 
  5. df = pd.read_csv('creditcard_exp.csv', skipinitialspace=True
  6. df = df.dropna(how='any'
  7. # smf:最小二乘法,構(gòu)建線性回歸模型, 
  8. ana = smf.ols('avg_exp ~ C(edu_class) + C(gender)', data=df).fit() 
  9. # anova_lm:多因素方差分析 
  10. print(sm.stats.anova_lm(ana)) 

輸出結(jié)果。

Python數(shù)據(jù)科學(xué):方差分析

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

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

接下來考慮有交互效應(yīng),代碼如下。

  1. # 消除pandas輸出省略號情況 
  2. pd.set_option('display.max_columns', 5) 
  3. # smf:最小二乘法,構(gòu)建線性回歸模型 
  4. anal = smf.ols('avg_exp ~ C(edu_class) + C(gender) + C(edu_class)*C(gender)', data=df).fit() 
  5. # anova_lm:多因素方差分析 
  6. print(sm.stats.anova_lm(anal)) 

輸出結(jié)果。

Python數(shù)據(jù)科學(xué):方差分析

這里可以看出,考慮交互效應(yīng)后,與教育程度及性別對應(yīng)的F值和P值都發(fā)生了微小的改變。

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

上面這個結(jié)論是書中所說的,那么顯著性水平取的是0.1嗎???

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

下面是帶交互項的多元方差分析的回歸系數(shù),表格中所有數(shù)據(jù)都是以男性及研究生學(xué)歷作為基準(zhǔn)去比對。

  1. # 生成數(shù)據(jù)總覽 
  2. print(anal.summary()) 

輸出結(jié)果。

Python數(shù)據(jù)科學(xué):方差分析

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

原假設(shè)為無差異,拒絕原假設(shè)。

那么這里的顯著性水平取的也是0.1嗎???

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

第三種缺失,沒有參數(shù)估計。

三、總結(jié)

這里總結(jié)一下各個檢驗的原假設(shè)。

  • 單樣本t檢驗原假設(shè):總體均值與假設(shè)的檢驗值不存在顯著差異(無差異)。
  • 雙樣本t檢驗原假設(shè):兩個樣本均值(二分變量下的均值)不存在顯著差異(無差異)。
  • 方差分析原假設(shè):多個樣本均值(多分變量下的均值)不存在顯著差異(無差異)。

說明原假設(shè)都是假設(shè)變量關(guān)系無顯著差異。

責(zé)任編輯:未麗燕 來源: 法納斯特
相關(guān)推薦

2020-07-01 17:05:05

Python方差分析代碼

2022-11-14 10:36:55

數(shù)據(jù)科學(xué)數(shù)據(jù)分析

2023-01-10 14:59:09

2023-11-24 08:47:36

ScipyPython

2019-09-30 09:10:11

Python編程語言數(shù)據(jù)科學(xué)

2023-01-28 10:09:00

Pandas數(shù)據(jù)分析Python

2023-10-09 08:22:18

驅(qū)動科學(xué)數(shù)據(jù)分析因素

2019-08-12 10:32:30

大數(shù)據(jù)數(shù)據(jù)科學(xué)云計算

2020-09-09 11:23:22

數(shù)據(jù)科學(xué)與分析

2018-11-06 20:30:23

Python開源工具機器學(xué)習(xí)

2019-01-17 11:37:40

數(shù)據(jù)科學(xué)正則化LASSO回歸

2019-05-07 19:12:28

機器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)Python

2023-10-10 12:34:06

SQL分析職業(yè)

2023-03-20 13:39:00

數(shù)據(jù)分析開源

2017-03-07 10:37:05

非數(shù)據(jù)數(shù)據(jù)分析

2022-11-02 14:45:24

Python數(shù)據(jù)分析工具

2018-04-16 11:11:56

2020-05-27 11:16:49

數(shù)據(jù)科學(xué)機器學(xué)習(xí)Python

2015-10-08 10:09:42

2020-10-28 13:56:07

數(shù)據(jù)科學(xué)編碼數(shù)據(jù)分析
點贊
收藏

51CTO技術(shù)棧公眾號