python 比例之差z假設檢驗_假設檢驗在數據分析中的應用

  • 前言

  • Z檢驗

  • T檢驗

    • 獨立樣本t檢驗

    • 配對樣本t檢驗

    • 單樣本t檢驗

前言

在這篇文章中,我不會具體去推導檢驗統計量和相應拒絕域的得出,這對于大部分非統計學專業的人士來說是晦澀的,我只想通過一個案例告訴大部分初學者假設檢驗怎么在數據挖掘中使用。

%matplotlib?inline
import?matplotlib.pyplot?as?plt
import?pandas?as?pd
import?numpy?as?np
import?seaborn?as?sns
from?scipy?import?stats
from?statsmodels.stats?import?weightstats?as?mstats

df_exams?=?pd.read_csv('./StudentsPerformance.csv')
df_exams.head()
a74c33f61e73752b956079db664e098a.png
df_exams.rename(columns={'race/ethnicity':'ethnicity'},inplace=True)
df_exams.rename(columns={'parental?level?of?education':'parents_education'},inplace=True)
df_exams.rename(columns={'test?preparation?course':'test_prep_course'},inplace=True)
df_exams.rename(columns={'math?score':'math_score'},inplace=True)
df_exams.rename(columns={'reading?score':'reading_score'},inplace=True)
df_exams.rename(columns={'writing?score':'writing_score'},inplace=True)

查看前5行的信息

df_exams.head()
dcc073934c4e23bb565edbb6b7a3b9cd.png

接下來查看類別型數據是否均勻,數值型數據是否服從正態分布。

df_exams['ethnicity'].value_counts()
group C    319
group D 262
group B 190
group E 140
group A 89
Name: ethnicity, dtype: int64

以宗族信息這一列為例,可以看出C的占比較重,group A 只有89例。這也就說明當選擇從每個group抽取80個樣本是不合適的,因為這對A來說每次抽取,樣本信息幾乎沒有發生什么變化。

exams?=?['math_score','reading_score','writing_score']
for?exam?in?exams:
????y?=?df_exams[exam]
????plt.figure(1);?plt.title('Normal')
????sns.distplot(y,?kde=False,?fit=stats.norm)

????plt.figure(2);?plt.title('Johnson?SU')
????sns.distplot(y,?kde=False,?fit=stats.johnsonsu)

????fig?=?plt.figure()
????res?=?stats.probplot(df_exams[exam],?plot=plt)
????plt.show()
b12f8889158299ab460f7bc13612f584.png
d5725cf29bec023ee3ef9bd10f2f60da.png

646f3d76333a6815d1e2472cc8384a94.png7787ac085f82873dee511b867939394f.png

e494af45c6c5ebbb5e3c54bd05ae26a8.pngea3f339578a8169d1301b16487fb1f18.png

1ea510eca2600af08a7b182162ca80b0.png55d13475a29c8d9f007ad95d2a3d8c7a.pngfdef43b419b1d450dd163b85ceb9b521.png

這些圖片說明數據并不是完全服從正態分布,密度函數的尾部與正態分布有些偏離,但大體還是可以認為近似服從正態分布的,如果數據不服從正態分布,Z檢驗和T檢驗將是無法使用的。到目前為止請注意,我們用的都是全部的數據喲,而假設檢驗的思想是用樣本的信息來推斷總體的信息,所以接下來我們要從總體中取出樣本。

#?從總體中隨機抽取一定比例的樣本
df_exams?=?df_exams.sample(frac=1)

假設檢驗被用來以科學嚴謹的方式檢驗一個關于數據的理論,這樣我們就不會僅僅依賴于偶然性或主觀假設。接下來我們要進行的是兩個正態總體均值的檢驗,以學生分數為例,就是去檢驗兩個不同的group的分數是否有明顯的不同 。當建立一個假設檢驗時,有一個原假設和一個備擇假設。還必須設置顯著性水平,通常為5%(Scipy,statsmodel)。假設檢驗可以分為單尾或雙尾。單尾的情況,例如,“A組得分>B組”。雙尾的情況例如“A組的得分與B組不同”。簡單介紹了這些 接下來,我們從a組和B組各抽取50名學生作為樣本,然后計算該數據樣本的Z分數。

?

z分數可以回答這樣一個問題:“一個給定數距離平均數多少個標準差?”,在平均數之上的分數會得到一個正的標準分數,在平均數之下的分數會得到一個負的標準分數。z分數是一種可以看出某分數在分布中相對位置的方法。

?
group_a_sample?=?df_exams[df_exams['ethnicity']?==?'group?A']
group_a_sample?=?group_a_sample[:50]

#?繪制QQ圖,檢驗正態性
fig?=?plt.figure()
res?=?stats.probplot(group_a_sample['math_score'],?plot=plt)
plt.show()

group_b_sample?=?df_exams[df_exams['ethnicity']?==?'group?B']
group_b_sample?=?group_b_sample[:50]

fig?=?plt.figure()
res?=?stats.probplot(group_b_sample['math_score'],?plot=plt)
plt.show()

print(stats.zscore(group_a_sample['math_score']))
print(stats.zscore(group_b_sample['math_score']))
b0264f436d4f685ee9c91fa14a137176.png
8b8c5824acc2b495bd3f1a48422a7253.png
[ 0.47126865  0.05544337  2.06526555  0.26335601  0.33266022 -0.01386084
0.26335601 -0.77620719 0.05544337 0.54057286 -1.67716196 -0.01386084
-0.91481561 2.68900347 -1.19203247 1.37222342 -0.70690297 -0.56829455
0.7484855 -0.56829455 -0.70690297 -0.49899034 0.26335601 1.09500657
0.67918129 -1.60785775 0.33266022 0.47126865 -0.2910777 -0.36038191
0.67918129 -0.8455114 -1.8850746 -0.42968612 0.7484855 -1.46924932
-0.98411983 1.09500657 -0.98411983 0.47126865 -0.15246927 1.7880487
-0.2910777 0.1940518 -0.15246927 -0.56829455 0.12474758 2.48109083
-0.22177348 -1.39994511]
[-0.68278212 -2.57240054 -0.05290932 -1.69057861 0.26202709 -0.17888388
-0.24187116 0.57696349 -0.7457694 -0.17888388 0.70293805 0.82891261
0.45098893 -0.36784572 0.82891261 0.07306525 -0.93473124 -0.430833
0.26202709 -0.99771852 1.33281086 -0.87174396 1.5217727 1.89969638
1.08086173 -0.80875668 0.57696349 0.13605253 -0.99771852 0.63995077
0.51397621 -1.43862949 2.08865822 -0.36784572 1.64774726 -2.50941326
-0.55680756 -0.36784572 -0.05290932 1.14384902 -1.50161677 0.32501437
0.07306525 0.13605253 0.13605253 0.95488717 1.08086173 -0.61979484
0.19903981 -0.30485844]

Z檢驗

下面的代碼是z測試的一個示例。測試是看A組樣本的“數學平均得分”是否小于總體平均值。

A組學生的平均“數學成績”與總體平均值相同。

A組學生的平均“數學成績”小于總體平均值。

首先介紹一下statsmodels 包中的 ztest 函數的一般用法如下:

0ea707dcc4081df8d6cc37a43526af9a.png
#?計算總體均值和樣本均值
population_mean?=?df_exams['math_score'].mean()
sample_group_a_mean?=?group_a_sample['math_score'].mean()
print(population_mean,sample_group_a_mean)

#?這是單樣本檢驗
zstats,?pvalue?=?mstats.ztest(group_a_sample['math_score'],x2=None,value=population_mean,alternative='smaller')
print(pvalue)
66.089 61.2
0.008850880637695917

可以看出P值非常的小,小于5%,則在顯著性水平為5%的條件下,我們要拒絕原假設

T檢驗

在T檢驗中,假設樣本為正態分布,且總體參數未知。有3種情況:

  • 獨立樣本t檢驗,比較兩個樣本所代表的兩個總體均值是否存在顯著差異。除了要求樣本來自正態分布,還要求兩個樣本的總體方差相等(ttest_ind)

  • 配對樣本t檢驗,配對樣本主要是同一實驗前后效果的比較,或者同一樣品用兩種方法檢驗結果的比較。可以把配對樣本的差作為變量(ttest_rel)

  • 單樣本t檢驗,單樣本t檢驗是樣本均值與總體均值的比較問題。其中總體服從正態分布,總體的方差未知,從正態總體中抽樣得到n個個體組成抽樣樣本,計算抽樣樣本均值和標準差,判斷總體均值與抽樣樣本均值是否相同。(ttest_1samp)

下面是這3個假設檢驗的例子。注意:樣本的隨機性導致他們可能通過也可能不通過假設,所以可能你得到的結論和我不同。

獨立樣本t檢驗

讓我們來看看A組和B組在“數學成績”功能上的得分是否不同。

=樣本組A的平均“數學成績”與樣本組B相同。

=樣本組A的平均“數學成績”與樣本組B不同。

在5%顯著性水平下測試。這是一個雙尾檢驗。

#?當不確定兩總體方差是否相等時,應先利用levene檢驗,檢驗兩總體是否具有方差齊性。
print(stats.levene(group_a_sample['math_score'],group_b_sample['math_score']))
print(group_a_sample['math_score'].var(),group_b_sample['math_score'].var())

tscore,pvalue?=?stats.ttest_ind(group_a_sample['math_score'],group_b_sample['math_score'],equal_var=False)
print(pvalue)

print(group_a_sample['math_score'].mean(),group_b_sample['math_score'].mean())
LeveneResult(statistic=0.3789408560110682, pvalue=0.5395976230546553)
212.44897959183675 257.1983673469388
0.39114162148079246
61.2 63.84

P值小于5%,則在顯著性水平為5%的條件下,我們應拒絕原假設,認為兩組成績不相同。

配對樣本t檢驗

接下來看看A組在“數學成績”和“閱讀成績”上的得分是否不同。

=樣本組A的平均“數學成績”與“閱讀成績”相同。

=樣本組A的平均“數學成績”與“閱讀成績”不同。

在5%顯著性水平下測試。使用ttest_rel,這是一個雙尾檢驗。

tscore,pvalue?=?stats.ttest_rel(group_a_sample['math_score'],group_a_sample['reading_score'])
print(pvalue)

print(group_a_sample['math_score'].mean(),group_a_sample['reading_score'].mean())
0.025329567098176128
61.2 64.26

P值小于5%,則在顯著性水平為5%的條件下,我們應拒絕原假設,認為兩個科目的成績不相同。

單樣本t檢驗

讓我們看看A組樣本的平均“數學分數”是否與總體平均值相同。

=樣本組A的平均“數學成績”與總體“數學成績”平均值相同。

=樣本組A的平均“數學成績”與總體“數學成績”平均數不同。

在5%顯著性水平下測試。這是一個雙尾測試。

tscore,pvalue?=?stats.ttest_1samp(group_a_sample['math_score'],df_exams['math_score'].mean())
print(pvalue)

print(group_a_sample['math_score'].mean(),df_exams['math_score'].mean())
0.02167469754070706
61.2 66.089

P值小于5%,則在顯著性水平為5%的條件下,我們應拒絕原假設。

后期文章將會涉及其他類型的檢驗,方差分析,一元回歸分析等,我將盡量減少不必要的數學推導公式,把最通俗易懂的內容呈現給大家。

由于微信平臺算法改版,公號內容將不再以時間排序展示,如果大家想第一時間看到我們的推送,強烈建議星標我們和給我們多點點【在看】。星標具體步驟為:

(1)點擊頁面最上方“小詹學Python”,進入公眾號主頁。

(2)點擊右上角的小點點,在彈出頁面點擊“設為星標”,就可以啦。

感謝支持,比心。

4736819dcfe8a7b95dd3aa9b10222290.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271539.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271539.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271539.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

中南民族大學計算機類有什么具體專業,中南民族大學計算機科學學院計算機科學與技術專業簡介...

計算機科學與技術專業計算機科學與技術專業1985年開始招收本科生。1989年開設計算機應用專業。1998年教育部進行專業調整,成立了計算機科學與技術專業。2012年,計算機科學與技術專業獲得校級品牌專業稱號。計算機科學與技術專業師資雄厚,結構…

Java實現字母的大小寫轉換

String result1 "JAVA";String result2 "springcloud";/*** toLowerCase()* 大寫轉小寫*/System.out.println(result1.toLowerCase());/*** 小寫轉大寫* toUpperCase()*/System.out.println(result2.toUpperCase()); 運行截圖如下:

iOS開發tableview二級聯動的細節實現中注意的細節總結

首先說網絡慢帶來的數據顯示問題 可以通過判斷請求參數是否一致來刷新tableview。 SJBCategaryModel * categaryModel self.categarys[CategarySelectRow]; NSMutableDictionary * params [NSMutableDictionary dictionary]; categaryModel.currentPage 1; params["a&q…

linux ctrlc 退出循環_linux按行讀取 (while read line與forloop)

在linux下一般用while read line與for循環按行讀取文件。這兩種方法有什么區別呢&#xff1f;現有如下test.txt文件&#xff1a;1while read linewhile read line; do echo $linedone < test.txt輸出結果與上圖一致。這里也可以寫為&#xff1a;cat test.txt | while read …

計算機系統基礎:計算機可靠性知識筆記

1、計算機可靠性介紹 計算機的硬件故障通常都是由于元器件失效造成的。元器件的可靠性分為三個階段&#xff1a;開始階段元器件處于不穩定階段失效率比較高、第二階段是正常工作階段&#xff0c;失效率最低、第三階段元器件開始老化&#xff0c;失效率就又開始提高。又稱為“浴…

python時間計算_python datetime庫使用和時間加減計算

datetime庫使用 一、操作當前時間 1.獲取當前時間 >>> importdatetime>>> printdatetime.datetime.now()2019-07-11 14:24:01.954000 時間格式化輸出&#xff1a; >>> print datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")2019-…

桌面計算機打開不了怎么辦,電腦桌面上的所有東西都打不開了 怎么處理

1、如果各分區下帶autorun.inf一類的隱藏文件&#xff0c;刪除后最好重新啟動電腦。2、在文件類型中重新設置打開方式(以XP為例)打開 我的電腦&#xff0d;&#xff0d;工具&#xff0d;&#xff0d;文件夾選項&#xff0d;&#xff0d;文件類型&#xff0c;找到“驅動器”或“…

原生js實現京東商城樓梯效果

這個可能有些兼容問題和小bug,新手寫的不完善 歡迎指出 <!DOCTYPE html> <html> <head><title></title><meta charset"utf-8" /><style type"text/css">*{margin: 0px;padding: 0px;list-style: none;}#header{…

IDEA云行項目提示Error: java: OutOfMemoryError

idea運行項目提示如下 解決方法: 調整一下Compiler下面的Compiler Process heap size 參數&#xff0c;默認的是700。如果2048還不能解決問題&#xff0c;試著將它調得更大一些吧&#xff0c; 修改為2048 修改后運行成功

常見的BIOS硬盤故障現象及急救措施

硬盤是電腦的數據倉庫&#xff0c;是最為重要的存儲設備&#xff0c;由BIOS直接管理。如果硬盤出現故障&#xff0c;一般情況下系統通常會顯示一些提示信息&#xff0c;說明問題所在。下面&#xff0c;將一些常見的硬盤故障信息向大家一一介紹。1 C&#xff1a;Drive Failure …

js var是什么類型_JS變量的執行環境和生命周期

溫故而知新&#xff0c;這些JS基礎知識你都知道嗎&#xff1f;今天和大家分享的是 JavaScript 中有關變量的知識&#xff0c;希望這篇文章能讓你對JS中的變量有新的認識.目錄&#xff1a;變量的執行環境&#xff08;執行上下文&#xff09;執行上下文的生命周期創建變量對象變量…

網絡中不能顯示全部計算機,win10家庭版局域網中計算機設備無法完全顯示的解決方法...

許多用戶都喜歡通過局域網來共享一些文件等&#xff0c;打開局域網就可以看到所有共享的計算機&#xff0c;然而有不少win10家庭版用戶卻發現局域網中只能看到幾臺計算機設備&#xff0c;無法完全顯示&#xff0c;該怎么辦呢&#xff0c;現在為大家講解一下win10家庭版局域網中…

java.lang.NoClassDefFoundError:org/apache/commons/io/Charsets (jsoup配合htmlunit 爬取異步加載的網頁遇到的)

最近用jsoup配合htmlunit 爬取異步加載的網頁運行代碼的時候,報錯java.lang.NoClassDefFoundError:org/apache/commons/io/Charsets 報錯截圖如下 解決措施: 1:common-fileupload 1.3.1的版本依賴的commons-io 2.2&#xff0c;而htmlunit的jar依賴的是common-io 2.4 htmlunit…

echarts 3d地球 背面光線太暗_新技術:多波長光源,同時3D打印多種光敏樹脂材料...

如今&#xff0c;光固化3D打印技術已經被廣泛的采用&#xff0c;在齒科、首飾、手辦等領域&#xff0c;然而如上圖一樣的常規光固化3D打印機&#xff0c;一次仍然只能打印一種材料。 △FDM技術類型的3D打印機可以通過增加噴頭數量來實現多色或者多種材料同時打印&#xff0c;圖…

2016-6-28 工作總結

今天是軟件工程課設開始的第一天。經過一早上聽老師的課程說明與用戶反饋的講解&#xff0c;我可以看得出老師對于這次課程設計的質量有著很高的期待與嚴格的要求&#xff0c;不再允許有渾水摸魚的現象發生&#xff0c;我想&#xff0c;從某種程度上來講&#xff0c;是一種好事…

計算機系統基礎:計算機性能評價知識筆記

1、計算機性能常用的性能評測方法 1.1 時鐘頻率 計算機的時鐘頻率可以反映出機器的運行速度。一般主頻越高&#xff0c;速度越快。 1.2 指令執行速度 加法指令執行速度是衡量計算機性能指標的重要指標之一。 1.3 等效指令速度法 隨著計算機指令系統發展&#xff0c;種類越來越多…

astc貼圖格式是什么意思_c4d配合AEe3d導入c4d模型貼圖及插件安裝所有流程

所有使用的軟件及插件&#xff0c;分享給大家&#xff0c;需要軟件或者插件的可以留言我&#xff0c;免費分享給大家&#xff0c;其實也可以網上下載到&#xff0c;就是有的版本和相應需要的插件不兼容和支持&#xff0c;。不少小伙伴用c4d做模型&#xff0c;做好后到底怎么玩&…

html5做文字顏色漸變代碼,神奇!js+CSS+DIV實現文字顏色漸變效果_javascript技巧

本文實例為大家分享了DIVCSSJS實現的文字顏色漸變效果&#xff0c;供大家參考&#xff0c;具體內容如下下面是 CSS 部分代碼&#xff1a;body{ font:12px/1.5 Microsoft Yahei;}h3{ padding:10px; margin:0; background-color:#999; color:#fff; font:16px/1.5 Microsoft Yahei…

前大燈是近光燈還是遠光燈_汽修案例:長安福特翼博前大燈間歇自動點亮

點擊↑汽修案例關注置頂&#xff0c;獲得正時大全一輛行駛里程約2300km的2017年長安福特翼博。客戶反映&#xff1a;該車在行駛過程中前大燈間歇出現自動點亮的故障現象。故障現象出現時大燈點亮與否不受大燈開關控制&#xff0c;如圖1所示。故障診斷&#xff1a;車輛來店報修時…

commons-httpclient 和 httpclient 區別

commons-httpclient 和 httpclient 區別 項目里的pom中&#xff0c;里面有這么兩個包依賴。 <dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.1</version> </depend…