大師兄的數(shù)據(jù)分析學(xué)習(xí)筆記(四):探索性數(shù)據(jù)分析(三)
大師兄的數(shù)據(jù)分析學(xué)習(xí)筆記(六):探索性數(shù)據(jù)分析(五)
四、多因子與復(fù)合分析
- 探索性數(shù)據(jù)分析铃将,最重要的作用是吧數(shù)據(jù)的全貌進(jìn)行展現(xiàn),讓數(shù)據(jù)分析者能根據(jù)數(shù)據(jù)取進(jìn)行決策。
- 每個(gè)屬性的數(shù)據(jù),除了自己本身所具有的的性質(zhì)外承边,屬性與屬性之間脓鹃,或者屬性與已知成熟的規(guī)律之間也可能會(huì)有聯(lián)系。
- 多因子與復(fù)合分析闺骚,指的就是屬性與屬性之間常見(jiàn)的聯(lián)系與分析方法。
1. 假設(shè)檢驗(yàn)
- 假設(shè)檢驗(yàn)就是根據(jù)一定的假設(shè)條件妆档,從樣本推斷總體或者推斷樣本與樣本之間關(guān)系的一種方法僻爽。
- 具體過(guò)程:
第一步:建立原假設(shè)
(包含等號(hào)),
的反命題為
贾惦,也叫備擇假設(shè)胸梆。
第二步:選擇檢驗(yàn)統(tǒng)計(jì)量,檢驗(yàn)統(tǒng)計(jì)量是根據(jù)數(shù)值的均值纤虽、方差等性質(zhì)構(gòu)造的一個(gè)轉(zhuǎn)換函數(shù)乳绕,目的是讓這個(gè)數(shù)據(jù)符合一個(gè)已知分布。
第三步: 根據(jù)顯著水平(一般為0.05逼纸,)洋措,確定拒絕域,也就是說(shuō)要求數(shù)據(jù)有95%的可能與某分布一致杰刽。
第四步: 計(jì)算p值或者樣本統(tǒng)計(jì)值菠发,作出判斷王滤。
>>>from astropy.modeling import models,fitting
>>>import numpy as np
>>>import matplotlib.pyplot as plt
>>>def func(x,miu,sigma):
>>> return 1./np.sqrt(2*np.pi)/sigma*np.exp(-(x-miu)**2/2/sigma**2)
>>># 生成正態(tài)分布
>>>x = np.linspace(0, 1, 100)
>>>y = func(x, 0.5, 0.2)
>>>y += np.random.normal(0., 0.02, x.shape)
>>>plt.plot(x, y)
>>>plt.xlabel('x')
>>>plt.ylabel('y')
>>>plt.show()
>>># 使用astropy進(jìn)行擬合
>>>g_init = models.Gaussian1D(amplitude=1., mean=0, stddev=1.)
>>>fit_g = fitting.LevMarLSQFitter()
>>>g = fit_g(g_init, x, y)
>>>print(g.mean.value, g.stddev.value)
0.4998641574199107 0.19898961723032316
2. 卡方檢驗(yàn)
- 卡方檢驗(yàn)就是統(tǒng)計(jì)樣本的實(shí)際觀測(cè)值與理論推斷值之間的偏離程度,實(shí)際觀測(cè)值與理論推斷值之間的偏離程度就決定卡方值的大小滓鸠,如果卡方值越大雁乡,二者偏差程度越大;反之糜俗,二者偏差越絮馍浴;若兩個(gè)值完全相等時(shí)悠抹,卡方值就為0珠月,表明理論值完全符合。
- 第一步:提出原假設(shè):
:總體
的分布函數(shù)為
.
如果總體分布為離散型楔敌,則假設(shè)具體為
:總體X的分布律為
- 第二步:將總體
的取值范圍分成k個(gè)互不相交的小區(qū)間
,如可取
沥邻,其中
可取
危虱,
可取
,區(qū)間的劃分視具體情況而定唐全,但要使每個(gè)小區(qū)間所含的樣本值個(gè)數(shù)不小于5埃跷,而區(qū)間個(gè)數(shù)
不要太大也不要太小。
- 第三步:把落入第
個(gè)小區(qū)間的
的樣本值的個(gè)數(shù)記作fi邮利,成為組頻數(shù)(真實(shí)值)弥雹,所有組頻數(shù)之和
等于樣本容量
。
- 第四步:當(dāng)
為真時(shí)延届,根據(jù)所假設(shè)的總體理論分布剪勿,可算出總體
的值落入第
個(gè)小區(qū)間
的概率
,于是方庭,
就是落入第
個(gè)小區(qū)間
的樣本值的理論頻數(shù)(理論值)厕吉。
- 第五步:當(dāng)
為真時(shí)酱固,
次試驗(yàn)中樣本值落入第
個(gè)小區(qū)間
的頻率
與概率
應(yīng)很接近,當(dāng)
不真時(shí)头朱,則
與pi相差很大运悲。基于這種思想项钮,皮爾遜引進(jìn)如下檢驗(yàn)統(tǒng)計(jì)量
班眯,在0假設(shè)成立的情況下服從自由度為
的卡方分布。
- 案例:假設(shè)新冠重癥烁巫、輕癥與是否打疫苗的統(tǒng)計(jì)表如下:
- | 已打疫苗 | 未打疫苗 | 合計(jì) |
---|---|---|---|
輕癥 | 90(75) | 60(75) | 150 |
重癥 | 10(25) | 40(25) | 50 |
合計(jì) | 100 | 100 | 200 |
>>>import scipy.stats as ss
>>>res = ss.chi2_contingency([[90,60],[10,40]])
>>>print(f'stat:{res[0]}')
>>>print(f'p:{res[1]}')
>>>print(f'dof:{res[2]}')
>>>print(f'expected:{res[3]}')
stat:22.426666666666666
p:2.183216533714857e-06
dof:1
expected:[[75. 75.]
[25. 25.]]
- 卡方值為22署隘,超過(guò)p值0.05對(duì)應(yīng)的3.841,證明輕癥和已打疫苗有關(guān)聯(lián)。
3. 方差檢驗(yàn)
- 由于用到了F分布程拭,所以方差檢驗(yàn)也叫作F檢驗(yàn)定踱,用于兩個(gè)及兩個(gè)以上樣本均數(shù)差別的顯著性檢驗(yàn)。
- 方差檢驗(yàn)的基本原理是認(rèn)為不同處理組的均數(shù)間的差別基本來(lái)源有兩個(gè):
(1) 實(shí)驗(yàn)條件恃鞋,即不同的處理造成的差異崖媚,稱為組間差異。用變量在各組的均值與總均值之偏差平方和的總和表示恤浪,記作SSb畅哑,組間自由度dfb。
(2) 隨機(jī)誤差水由,如測(cè)量誤差造成的差異或個(gè)體間的差異荠呐,稱為組內(nèi)差異,用變量在各組的均值與該組內(nèi)變量值之偏差平方和的總和表示砂客, 記作SSw泥张,組內(nèi)自由度dfw。
總偏差平方和 SSt = SSb + SSw鞠值。
- 組內(nèi)SSw媚创、組間SSb除以各自的自由度(組內(nèi)dfw =n-m,組間dfb=m-1彤恶,其中n為樣本總數(shù)钞钙,m為組數(shù)),得到其均方MSw和MSb声离,一種情況是處理沒(méi)有作用芒炼,即各組樣本均來(lái)自同一總體,MSb/MSw≈1术徊。
- 另一種情況是處理確實(shí)有作用本刽,組間均方是由于誤差與不同處理共同導(dǎo)致的結(jié)果,即各樣本來(lái)自不同總體。那么盅安,MSb>>MSw(遠(yuǎn)遠(yuǎn)大于)唤锉。
- MSb/MSw比值構(gòu)成F分布。用F值與其臨界值比較别瞭,推斷各樣本是否來(lái)自相同的總體 窿祥。
- 假設(shè)工廠有以下3組,共15人蝙寨,年齡分布如下:
甲組 | 已租 | 丙組 |
---|---|---|
36 | 28 | 30 |
50 | 44 | 27 |
30 | 29 | 42 |
33 | 36 | 45 |
41 | 23 | 45 |
>>>import scipy.stats as ss
>>>data1 = [36,50,30,33,41]
>>>data2 = [28,44,29,36,23]
>>>data3 = [30,27,42,45,45]
>>>res = ss.f_oneway(data1,data2,data3)
>>>print(f"statistic:{res[0]}")
>>>print(f"pvalue:{res[1]}")
statistic:0.8593981253083374
pvalue:0.44791070261692767
- P值>0.05,所以可以接受原假設(shè)晒衩。