假設檢驗之斯特魯普效應檢驗
斯特魯普效應簡單來說就是當出現與原先認知不同的情況時,人們反應的時間會較長
實驗簡單描述:
每位參與者得到兩組帶有顏色的文字。第一組,文字內容和顏色相同;第二組,文字內容和顏色不相同。每位參與者讀出文字內容的顏色,並統計完成每組的時間。
斯特魯普效應測試地址:斯特魯普效應
一、描述統計分析
#導入包import numpy as np import pandas as pdimport matplotlib.pyplot as plt#encoding用於指定文件的編碼,因為讀取的csv中有中文,所以指定文件編碼為中文編碼「GBK」#導入數據data = pd.read_csv(E:\testdata\data.csv, encoding=GBK) data.head()#獲取描述統計信息data.describe()
#數據可視化#繪製反應時間的對比情況#創建畫板fig=plt.figure(figsize=(20,10))#創建畫紙ax=fig.add_subplot(1,1,1)#繪製柱形圖full.plot(kind=bar,ax=ax)plt.title(一致和不一致的反應時間對比情況,fontsize=20)plt.xlabel(實驗組,fontsize=12)plt.ylabel(時間(單位:秒))plt.show()
描述性統計結果分析:
第一組實驗:字體和顏色一致情況下,
實驗者的平均反應時間: 13.926875 秒 ,標準差是: 3.54021942715
第二組實驗:字體和顏色不一致情況下,
實驗者的平均反應時間: 22.35075 秒 ,標準差是: 5.0102177272
從上圖可以看出,「不一致」情況下所用的時間均大於「一致」情況,即字體內容和顏色不一致時,實驗者的平均反應時間變長二、推論統計分析
問題:字體內容和顏色是否一致
用假設檢驗的方法進行驗證:
自變數和因變數:
自變數:測試數據的顏色和文字內容是否一致
因變數:完成每組實驗所需時間
原假設:人們反應時間不受文字內容和顏色是否一致的影響,即con_mean=incon_mean
備選假設:文字內容和顏色不一致情況下,完成實驗的時間會變長,即con_mean<incon_mean
檢驗類型,由於使用的樣本數據是相關樣本,所以選擇檢驗是相關配對檢驗;為了避免得到的結論受到參與人員正常反應時間獨立性影響,所以需要用每一行第一組數據-每一行第二組數據計算差值。
#獲取差值full[差值]=full[一致]-full[不一致]full.head()#觀察樣本的分布狀態#導入包import seaborn as sns#查看數據集分布sns.distplot(full[差值])plt.title(數據集分布狀態)plt.show()
個人分析:
由於本次實驗的兩組數據都是有一個人產生的,所以可選擇相關配對檢驗。
通過觀察上圖數據集的分布圖,可以得出數據集近似正態分布,而樣本數據n<30,故滿足t分布的使用條件,因此可使用相關配對樣本t檢驗;由於備選假設中:字體內容和顏色不一致情況下,人們反應時間會變長,即con_mean<incon_mean,所以可選擇單尾檢驗中的左尾檢驗,顯著水平為5%,t檢驗自由度23
利用python中的統計模塊計算P值
#導入統計模塊(stats)from scipy import statst,p_twoTail=stats.ttest_rel(full[一致],full[不一致])print(假設檢驗計算出的t值=,t,,雙尾檢驗的p值=,p_twoTail)#計算單尾檢驗的p值p_oneTail=p_twoTail/2print(單尾檢驗的p=,p_oneTail)
常用計算樣本均值p的計算公式:
標準誤差:
計算t值:
根據df,和t值,查詢p值。
#判斷標準選擇,顯著水平alpha=0.05alpha=0.05#得出結論if (t<0 and p_oneTail<alpha): print(拒絕原假設,有統計顯著) print(即接受備選假設,斯特魯普效應存在)else: print(接受原假設,沒有統計顯著,即斯特魯普效應不存在)
假設檢驗報告:
相關配對檢驗t(23)=-8.0886,p=1.77e-08(alpha=0.05),左尾檢驗
統計上存在顯著差異,拒絕零假設,從而驗證斯特魯普效應存在。
求置信區間
#求置信水平置信水平對應t值t_ci, 通過置信水平和df查得上下限計算:上限a=樣本均值-t_ci*標準誤差下限b=樣本均值+t_ci*標準誤差#查表得t_ci=2.069#差值數據集平均值sample_mean=full[差值].mean()#使用scipy計算標準誤差se=stats.sem(full[差值])#置信區間上,下限a=sample_mean-t_ci*seb=sample_mean+t_ci*seprint(兩個平均值差值的置信區間,95置信水平 CI=[%f,%f] % (a,b))
輸出:兩個平均值差值的置信區間,95置信水平 CI=[-10.578633,-6.269117]
求效應量
差異指標Cohens d
#差值數據集對應的總體平均值是0pop_mean=0#差值數據集的標準差sample_std=full[差值].std()#差異度指標(用於對比平均值)d=(sample_mean-pop_mean)/sample_stdprint(d=,d)
d= -1.65108078053
報告總結:
1、描述統計分析
第一組樣本數據:字體內容和字體顏色一致情況下,
平均反應時間是: 13.926875 秒,標準差是 3.54021942715秒
第二組樣本數據:字體內容和字體顏色不一致情況下,
平均反應時間是: 22.35075秒,標準差是 5.0102177272秒
文字內容和顏色「不一致」情況下所用時間均大於「一致」情況,即當字體內容和顏色「不一致「時,完成時間的時間會變長
2、推論統計分析
(1)假設檢驗
相關配對檢驗t(23)=-8.09,p=1.77e-08 (α=5%),左尾檢驗
拒絕原假設,統計上存在顯著差異,從而驗證斯特魯普效應存在。
(2)置信區間
兩個平均值差值的置信區間,95%置信水平 CI=[-10.58,-6.27]
(3)效應量
d=-1.65108078053
個人收穫
1.首先熟悉假設檢驗的一般步驟,以及步驟中的一些值的計算,而且也把統計學中的知識在實例上運用了一遍。
2.在這個過程中,學習到了另一種繪圖包seaborn中的一種繪製直方圖和更精確的擬合曲線的方法,我認為seaborn是對matplotlib的一種補充
3.熟悉了如何利用python中統計包scipy的統計模塊stats計算t,p_oneTail,p_twoTail
推薦閱讀:
TAG:假設檢驗 |