相關配對檢驗


其他類型假設檢驗如何實現?

配對相關樣本檢驗項目實戰:如何驗證統計學現象?

雙獨立樣本檢驗項目實戰:鍵盤布局A/B測試

(二)相關配對檢驗

斯特魯普效應

斯特魯普效應是當有與原有認知不同的情況出現時,人們的反應時間會較長。

實驗設計

通過網上的stroop實驗做測試人的反應時間(https://faculty.washington.edu/chudler/java/ready.html)。 

每名參與者得到兩組有顏色的文字,第一組數據是字體內容和字體顏色一致,第二組數據是字體內容和字體顏色不一致。

每名參與者對每組文字說出文字的顏色,並分別統計完成每組的時間。

此次實驗共記錄25組數據(樣本量),並匯總到Excel表格中。

一、描述統計分析

#導入包
import numpy as np 
import pandas as pd
import matplotlib.pyplot as plt

'''
路徑和文件名中不要用中文,不然會報錯
encoding用於指定文件的編碼,因為讀取的csv中有中文,所以指定文件編碼為中文編碼“GBK”
'''
data = pd.read_csv('斯特魯普效應.csv')
data.head()

 

觀察數據結果:“一致”列是(第一組數據)字體內容和字體顏色一致情況下,實驗者的反應時間(單位:秒)。

“不一致”列是(第二組數據)字體內容和字體顏色不一致情況下,實驗者的反應時間。
#獲取描述統計信息
data.describe()

 

'''
第一組數據:字體內容和字體顏色一致情況下,實驗者的反應時間
'''
#第一組數據均值
con1_mean = data['Congruent'].mean()
# 第一組數據標准差
con1_std = data['Incongruent'].std()

'''
第一組數據:字體內容和字體顏色一致情況下,實驗者的反應時間
'''
# 第二組數據均值
con2_mean = data['Incongruent'].mean()
# 第二組數據標准差
con2_std = data['Incongruent'].std()

#兩個樣本數據集對比
#畫板
fg = plt.figure(figsize = (20,10))
#畫紙
ax = fg.add_subplot(1,1,1)
#繪制柱狀圖
data.plot(kind = 'bar',ax = ax)
#顯示圖形
plt.show()

 

print('描述統計分析結果:')
print('第一組數據:字體內容和字體顏色一致情況下,實驗者的平均反應時間是:',con1_mean,'秒,標准差是',con1_std,'')
print('第二組數據:字體內容和字體顏色不一致情況下,實驗者的平均反應時間是:',con2_mean,'秒,標准差是',con2_std,'')
print('“不一致”情況下所用時間均大於“一致”情況,也就是當字體內容和字體驗證不一致時,實驗者的平均反應時間變長')

二、推論統計分析

 

進行假設檢驗

 

1.問題是什么?

自變量是指原因。因變量是指結果,也就是自變量發生變化導致改變的值就是因變量。

自變量:我們有兩組實驗數據,第一組是字體內容和顏色一致。第二組數據值是字體內容和顏色不一致。所以自變量是實驗數據的顏色和文字是否相同

因變量:實驗者的反應時間

所以,我們要考察的是自變量(字體內容和顏色是否相同)兩種情況下對因變量(反應時間)的影響。

 

零假設和備選假設

 

假設第一組“一致”的均值為 u1 ,第二組“不一致”的均值為 u2

零假設H0:人們的反應時間不會因為字體內容和字體顏色是否相同(u1 = u2 ,或者 u1-u2=0 )

備選假設H1:特魯普效應確實存在。根據特魯普效應的定義,顏色和文字不同的情況下,人們的完場測試的時間會變長( u1 < u2 )

 

檢驗類型

檢驗類型有很多種,因為該使用兩組數據是相關樣本,所以選擇相關配對檢驗。

相關配對檢驗只關注每對相關數據的差值,從而避免得到的結論受到參與人員間正常反應時間獨立性的影響。

在只關注差值集的情況下,樣本集處理后只有一組(差值集)。下面我們對樣本數據進行處理,從而得到差值集。

'''
獲取差值數據集,也就是“一致”這一列數據,對應減去“不一致”這一列的數據
'''
#差值數據集
data['差值'] =data['Congruent'] -data['Incongruent']
data.head()

抽樣分布類型

我們還要判斷抽樣分布是哪種?因為抽樣分布的類型,決定了后面計算p值的不同。

在我們這個案例中,樣本大小是25(小於30),屬於小樣本。那小樣本的抽樣分布是否滿足t分布呢?

因為t分布還要求數據集近似正態分布,所以下面圖片我們看下差值數據集的分布長什么樣。
"""設置字體,用於顯示中文"""
plt.rcParams['font.sans-serif']=['FangSong']
"""SimSun 宋體,Microsoft YaHei微軟雅黑 YouYuan幼圓 FangSong仿宋"""
plt.rcParams['font.size']=20
plt.rcParams['axes.unicode_minus']=False# 負號亂碼

'''
直方圖能夠粗略估計數據密度,如果想給數據一個更精確的擬合曲線(專業術語叫:核密度估計kernel density estimate (KDE)),
Seaborn 可以很方便的畫出直方圖和擬合曲線。
查看數據集分布官網教程地址:https://seaborn.pydata.org/tutorial/distributions.html

安裝繪圖包seaborn:
conda install seaborn
'''
#導入繪圖包
import seaborn as sns
#查看數據集分布
sns.distplot(data['差值'])
plt.title('差值數據集分布')
plt.show()

通過觀察上面差值數據集分布圖,數據集近似正態分布,所以滿足t分布的使用條件,我們可以使用相關樣本t檢驗。

檢驗方向

單尾檢驗(左尾,右尾),還是雙尾檢驗?

 

因為備選假設是:特魯普效應確實存在,根據Stroop Effect的定義,顏色和文字不同的情況下,人們的完場測試的時間會變長( u1 < u2 )。

所以我們使用單尾檢驗中的左尾檢驗,顯著水平為5%,t檢驗的自由度df=n-1=25-1=24

2.證據是什么?

在零假設成立前提下,得到樣本平均值的概率p是多少?

'''
用python統計包scipy自動計算
用scipy計算出的是:雙尾檢驗
單(1samp)樣本t檢驗(ttest_1samp):https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_1samp.html
相關(related)配對t檢驗(ttest_rel):https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_rel.html
雙獨立(independent)樣本t檢驗(ttest_ind):https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_ind.html
'''
#導入統計模塊(stats)
from scipy import stats

'''
ttest_rel:相關配對檢驗
返回的第1個值t是假設檢驗計算出的(t值),
第2個值p是雙尾檢驗的p值
'''
t,p_twoTail = stats.ttest_rel(data['Congruent'],data['Incongruent'])

print('t值=',t,'雙尾檢驗的p值=',p_twoTail) 
'''
因為scipy計算出的是雙尾檢驗的t值和p值,但是我們這里是左尾檢驗。
根據對稱性,雙尾的p值是對應單尾p值的2倍
'''
#單尾檢驗的p值
p_oneTail=p_twoTail/2
print('單尾檢驗的p值=',p_oneTail)

3.判斷標准是什么?

#顯著水平使用alpha=5%
alpha=0.05

4.做出結論

'''
因為scipy計算出的是雙尾檢驗的t值和p值,但是我們這里是左尾檢驗。
根據對稱性,雙尾的p值是對應單尾p值的2倍
左尾判斷條件:t < 0 and  p/2 < alpha
右尾判斷條件:t > 0 and  p/2 < alpha
'''
#單尾檢驗的p值
p_oneTail=p_twoTail/2
#顯著水平
a=0.05
#決策
if(t<0 and p_oneTail< a):
    print('拒絕零假設,有統計顯著')
    print('也就是接受備選假設:特魯普效應存在')
else:
    print('接受備選假設,沒有統計顯著,也就是特魯普效應不存在')

假設檢驗報告:

相關配對檢驗t(24)=-8.35,p=7.32e-09 (α=5%),左尾檢驗

統計上存在顯著差異,拒絕零假設,從而驗證斯特魯普效應存在。

5. 置信區間

'''
1)置信水平對應的t值(t_ci)
查t表格可以得到,95%的置信水平對應的t值=2.262
2)計算上下限
置信區間上限a=樣本平均值 - t_ci ×標准誤差
置信區間下限b=樣本平均值 - t_ci ×標准誤差
'''

'''
95%的置信水平,自由度是n-1對應的t值
查找t表格獲取,
也可以通過這個工具獲取:https://www.graphpad.com/quickcalcs/statratio1/(利用這個工具獲取t值,需要注意輸入的概率值是1-95%=0.05)
注意:課程中這里對應的下面t_ci值有誤,以下面的值為准
'''
t_ci=2.064
#差值數據集平均值
sample_mean=data['差值'].mean()
#使用scipy計算標准誤差
se=stats.sem(data['差值'])
#置信區間上限
a=sample_mean - t_ci * se
#置信區間下限
b=sample_mean + t_ci * se

 

print('兩個平均值差值的置信區間,95置信水平 CI=[%f,%f]' % (a,b))

6.效應量

'''
效應量:差異指標Cohen's d
'''
#差值數據集對應的總體平均值是0
pop_mean=0
#差值數據集的標准差
sample_std=data['差值'].std()
d=(sample_mean - pop_mean) / sample_std

print('d=',d)

三、數據分析報告總結

 

1、描述統計分析

第一組樣本數據:字體內容和字體顏色一致情況下,平均反應時間是: 13.89 秒,標准差是 3.47 秒

第二組樣本數據:字體內容和字體顏色不一致情況下,平均反應時間是: 22.62 秒,標准差是 5.09 秒

“不一致”情況下所用時間均大於“一致”情況,也就是當字體內容和字體驗證不一致時,實驗者的平均反應時間變長

2、推論統計分析

1)假設檢驗

相關配對檢驗t(24)=-8.35,p=7.32e-09 (α=5%),左尾檢驗

統計上存在顯著差異,拒絕零假設,從而驗證斯特魯普效應存在。

2)置信區間

兩個平均值差值的置信區間,95%置信水平 CI=[-8.80,-8.67]

3)效應量

d= - 1.67


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM