胡良平
(1.軍事科學(xué)院研究生院,北京 100850;2.世界中醫(yī)藥學(xué)會(huì)聯(lián)合會(huì)臨床科研統(tǒng)計(jì)學(xué)專業(yè)委員會(huì),北京 100029*通信作者:胡良平,E-mail:lphu812@sina.com)
測(cè)定“身高”“體重”“胸圍”“血脂”等指標(biāo)的數(shù)值所得到的資料,在統(tǒng)計(jì)學(xué)上都被稱為“計(jì)量資料”。它們有一個(gè)共同特點(diǎn):數(shù)值可以帶小數(shù)且有度量衡單位。嚴(yán)格地說(shuō),任何一個(gè)計(jì)量變量的取值可以充滿其取值區(qū)間,只是在實(shí)際中,滿足一定的精度要求就可以了。例如,當(dāng)研究者測(cè)量人的身高時(shí),若以“厘米”為單位,通常保留到小數(shù)點(diǎn)后一位即可,如:165.3厘米,其中的“0.3”是估計(jì)出來(lái)的,沒(méi)有必要寫成“165.324568厘米”。若是計(jì)算的“中間結(jié)果”,可以保留到小數(shù)點(diǎn)后第6位(目的是盡可能減少計(jì)算過(guò)程中的舍入誤差),但對(duì)于最終結(jié)果,一般只保留到測(cè)量工具能準(zhǔn)確測(cè)到的下一位。
將某實(shí)際問(wèn)題中的一個(gè)計(jì)量變量的全部取值由小到大排序,再將它們按相等的間隔劃分為若干組,然后,統(tǒng)計(jì)出各組中的數(shù)據(jù)個(gè)數(shù),即“頻數(shù)”。若用表格形式呈現(xiàn)此時(shí)的資料,它就被稱為“頻數(shù)分布表資料”。所謂“頻數(shù)分布”,就是“頻數(shù)”在各組段上是如何“分配”的;若用圖形形式呈現(xiàn)此時(shí)的資料,它就被稱為“頻數(shù)分布直方圖”。例如:圖1所顯示的直方圖就被稱為“正偏態(tài)分布的計(jì)量資料”。
圖1 30只老鼠腫瘤發(fā)展到特定尺寸所用時(shí)間(d)的頻數(shù)分布直方圖
由圖1可知:頻數(shù)最多的組位于橫坐標(biāo)軸上偏向“左邊”的位置,右邊出現(xiàn)了較長(zhǎng)的“尾巴”。若采用一個(gè)叫“偏度系數(shù)g1”的公式計(jì)算,得到的結(jié)果為“g1>0”,故稱具有這樣頻數(shù)分布的計(jì)量資料為“正偏態(tài)分布計(jì)量資料”。而圖2所顯示的直方圖被稱為“負(fù)偏態(tài)分布的計(jì)量資料”。
圖2 某地110名健康男性體重(kg)的頻數(shù)分布直方圖
由圖2可知:頻數(shù)最多的組位于橫坐標(biāo)軸上偏向“右邊”的位置,左邊出現(xiàn)了較長(zhǎng)的“尾巴”。若采用一個(gè)叫“偏度系數(shù)g1”的公式來(lái)計(jì)算,得到的結(jié)果為“g1<0”,故稱具有這樣頻數(shù)分布的計(jì)量資料為“負(fù)偏態(tài)分布計(jì)量資料”。
實(shí)際計(jì)量資料中,還有一些的頻數(shù)分布為“基本對(duì)稱”分布,即“頻數(shù)最多的組位于橫坐標(biāo)軸上基本居中的位置”。若采用一個(gè)叫“偏度系數(shù)g1”的公式來(lái)計(jì)算,得到的結(jié)果為“g1≈0”,故稱具有這樣頻數(shù)分布的計(jì)量資料為“對(duì)稱分布計(jì)量資料”,見(jiàn)圖3。
圖3 由101名正常成年男子血清總膽固醇數(shù)據(jù)繪制的頻數(shù)分布直方圖
若圖3中的光滑曲線可用公式(1)描述,則該“曲線”被稱為“正態(tài)分布曲線”。
(1)
滿足式(1)的曲線被稱為“一般正態(tài)分布曲線”,其“均值為μ、標(biāo)準(zhǔn)差為σ”;它是單峰分布的,高峰位于橫坐標(biāo)軸的正中位置;它的“偏度系數(shù)g1=0”,同時(shí),它的“峰度系數(shù)g2=0”。若“均值為0、標(biāo)準(zhǔn)差為1”,此時(shí)的正態(tài)分布就被稱為“標(biāo)準(zhǔn)正態(tài)分布”。
在經(jīng)典統(tǒng)計(jì)學(xué)中,無(wú)論是對(duì)計(jì)量資料進(jìn)行假設(shè)檢驗(yàn)(如Z檢驗(yàn)、t檢驗(yàn)、方差分析)、區(qū)間估計(jì),還是進(jìn)行簡(jiǎn)單線性回歸分析或多重線性回歸分析,首選的方法是“參數(shù)法”。而參數(shù)法的重要前提條件之一是來(lái)自結(jié)果變量的計(jì)量資料必須服從“正態(tài)分布”。例如,文獻(xiàn)[2]中專門用一章篇幅詳細(xì)介紹“正態(tài)分布的統(tǒng)計(jì)方法”。
通常,需要先對(duì)計(jì)量資料進(jìn)行正態(tài)性檢驗(yàn)。當(dāng)正態(tài)性檢驗(yàn)得出該組計(jì)量資料服從正態(tài)分布時(shí),可以采用相應(yīng)的“參數(shù)法”對(duì)計(jì)量資料進(jìn)行處理;反之,則要求采用“非參數(shù)法”處理計(jì)量資料。然而,在多因素或多自變量的情況下,常沒(méi)有合適的“非參數(shù)法”可運(yùn)用。有時(shí),人們習(xí)慣借助某種變量變換方法,希望經(jīng)變換后的計(jì)量資料滿足“正態(tài)分布”的要求,再對(duì)變換后的計(jì)量資料采取“參數(shù)法”處理。
事實(shí)上,并非所有計(jì)量資料通過(guò)某種變量變換方法變換后都能符合“正態(tài)分布”要求。若能將服從偏態(tài)分布的計(jì)量資料變換為“對(duì)稱分布”的計(jì)量資料,也就很接近“參數(shù)法”的要求了。文獻(xiàn)[2]中給出了“為對(duì)稱性而變換”的方法。
1.4.1 對(duì)數(shù)變換
當(dāng)計(jì)量資料x呈正偏態(tài)分布時(shí),對(duì)其進(jìn)行對(duì)數(shù)變換可使其偏態(tài)狀況有所減弱;有時(shí),取對(duì)數(shù)變換后,計(jì)量資料就接近正態(tài)分布了。用y表示變換后的計(jì)量資料,見(jiàn)式(2)和式(3):
y= ln(x),x>0
(2)
y= ln(x+C), 部分x<0或x=0
(3)
在式(3)中,取C>max|x|,這里的x為負(fù)值,“max”為取“最大值”之意,應(yīng)確保所有的“C+x”一定大于0。
1.4.2 平方根變換
當(dāng)一組計(jì)量資料x的算術(shù)平均值近似等于其方差(若將此時(shí)的計(jì)量資料近似視為“計(jì)數(shù)資料”,則這樣的計(jì)數(shù)資料被認(rèn)為近似服從Poisson分布的計(jì)數(shù)資料[3])時(shí),對(duì)其進(jìn)行平方根變換可使其偏態(tài)狀況有所減弱;有時(shí),取平方根變換后,計(jì)量資料就接近正態(tài)分布了。用y表示變換后的計(jì)量資料,見(jiàn)式(4)和式(5):
(4)
(5)
在式(5)中,取C≥max|x|,這里的x為負(fù)值,“max”為取“最大值”之意,應(yīng)確保所有的“C+x”一定大于或等于0。
1.4.3 倒數(shù)變換
當(dāng)計(jì)量資料x呈負(fù)偏態(tài)分布時(shí),對(duì)其進(jìn)行倒數(shù)變換可使其偏態(tài)狀況減弱;有時(shí),取倒數(shù)變換后,計(jì)量資料就接近正態(tài)分布了。用y表示變換后的計(jì)量資料,見(jiàn)式(6)和式(7):
y= 1/x,x>0
(6)
y= 1/(C+x), 部分x<0或x=0
(7)
在式(7)中,取C>max|x|,這里的x為負(fù)值,“max”為取“最大值”之意,應(yīng)確保所有的“C+x”一定大于0。
1.4.4 Box-Cox變換(包含“冪變換”與“對(duì)數(shù)變換”)[4]
當(dāng)計(jì)量資料x呈偏態(tài)分布(包括正偏與負(fù)偏兩種情形)時(shí),對(duì)其進(jìn)行Box-Cox變換可使其偏態(tài)狀況減弱;有時(shí),經(jīng)此變換后,計(jì)量資料就接近正態(tài)分布了。用y表示變換后的計(jì)量資料,見(jiàn)式(8)和式(9):
(8)
y=ln(x), λ=0
(9)
Box-Cox變換的一般形式見(jiàn)下面的式(10)與式(11):
(10)
(11)
在式(10)與式(11)中,取C>max|x|,這里的x為負(fù)值或0,“max”為取“最大值”之意,應(yīng)確保所有的“C+x”一定大于0;g通常取值為1。
1.4.5 變量變換的效果
值得注意的是:對(duì)一組計(jì)量資料或計(jì)數(shù)資料做任何變換,都不可能絕對(duì)保證一定能使其呈“對(duì)稱分布”或“正態(tài)分布”。通常,經(jīng)過(guò)合適的變量變換后,會(huì)使變換后的資料較原始資料具有更好的“對(duì)稱性”。有時(shí),可能需要相繼采取多種變量變換方法。若目的是為了使變換后的資料接近“正態(tài)分布”,則必須對(duì)變換后的資料進(jìn)行嚴(yán)格的正態(tài)性檢驗(yàn)。只有通過(guò)了正態(tài)性檢驗(yàn)(最好,正態(tài)性檢驗(yàn)的結(jié)果為P>0.2;通常,P>0.1即可;但至少也應(yīng)滿足P>0.05)的資料,才適合選用相應(yīng)的參數(shù)統(tǒng)計(jì)分析方法(如t檢驗(yàn)、方差分析、簡(jiǎn)單線性回歸分析或多重線性回歸分析,在回歸分析中,應(yīng)特別強(qiáng)調(diào):因變量應(yīng)近似服從正態(tài)分布;然而,在統(tǒng)計(jì)理論上,假定“模型的誤差項(xiàng)服從正態(tài)分布”)。
以下基于SAS中的“TRANSREG過(guò)程”[4]并采用“Box-Cox變換”將偏態(tài)分布計(jì)量資料變換為近似呈正態(tài)分布的計(jì)量資料。
2.1.1問(wèn)題與數(shù)據(jù)結(jié)構(gòu)
【例1】給30只老鼠注射給定的腫瘤接種物,腫瘤發(fā)展到特定尺寸所用的時(shí)間(d)如下:
1.7、3.7、5.0、5.1、5.3、5.9、6.0、6.0、7.4、8.0、8.3、8.3、8.3、9.1、9.6、11.3、12.1、12.3、13.1、13.4、14.0、15.9、16.1、16.7、17.0、21.0、22.7、30.0
2.1.2 所需的SAS程序
利用下面的SAS程序創(chuàng)建SAS數(shù)據(jù)集并進(jìn)行Box-Cox變換:
/*以下的SAS數(shù)據(jù)步程序用于創(chuàng)建SAS數(shù)據(jù)集a1*/
data a1;
inputy@@;
z=0;
cards;
1.7 3.7 5.0 5.1 5.3 5.9 6.0 6.0 7.4 8.0
8.3 8.3 8.3 9.1 9.6 11.3 12.1 12.3 13.1
13.4 14.0 15.9 16.1 16.7 17.0 21.0 22.7 30.0
;
run;
/*以下程序繪制a1的頻數(shù)分布直方圖并進(jìn)行正態(tài)性檢驗(yàn)*/
proc univariate data=a1 normal;
vary;
histogramy;
run;
/*以下程序?qū)1進(jìn)行Box-Cox變換,求出合適的lambda值*/
/*經(jīng)過(guò)Box-Cox變換后的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)集aaa中*/
ods graphics on;
proc transreg details data=a1 maxiter=0 nozerocon
stant plots=(transformation(dependent) obp);
model BoxCox(y/ convenient lambda=-10 to 10 by 0.01)=identity(z);
output out=aaa approximations;
run;
/*以下程序繪制aaa的頻數(shù)分布直方圖并進(jìn)行正態(tài)性檢驗(yàn)*/
proc univariate data=aaa normal;
varty;
histogramty/normal;
run;
2.1.3 輸出結(jié)果及解釋
2.1.3.1 反映原始數(shù)據(jù)分布狀況的結(jié)果
本例中原始數(shù)據(jù)的頻數(shù)直方圖見(jiàn)前面的圖1(呈正偏態(tài)分布),此處從略。對(duì)原始數(shù)據(jù)進(jìn)行正態(tài)性檢驗(yàn)的結(jié)果為:W=0.925501、P=0.0475,說(shuō)明原始數(shù)據(jù)不服從正態(tài)分布。
偏度系數(shù)與峰度系數(shù)分別為g1=1.097與g2=1.415,表明原始數(shù)據(jù)具有正偏態(tài)(偏度系數(shù)明顯大于0)和尖翹峰(峰度系數(shù)明顯大于0)分布。
2.1.3.2 對(duì)原始數(shù)據(jù)作Box-Cox變換的結(jié)果
求得公式(8)中的參數(shù)λ為“0.29”,對(duì)經(jīng)Box-Cox變換后的數(shù)據(jù)作正態(tài)性檢驗(yàn),得到:W=0.971648、P=0.6254,說(shuō)明經(jīng)Box-Cox變換后的數(shù)據(jù)服從正態(tài)分布。繪制經(jīng)Box-Cox變換后數(shù)據(jù)的頻數(shù)直方圖,見(jiàn)圖4。
圖4 經(jīng)Box-Cox變換后的30只老鼠腫瘤發(fā)展到特定尺寸所用時(shí)間(d)的頻數(shù)分布直方圖
2.2.1 問(wèn)題與數(shù)據(jù)結(jié)構(gòu)
【例2】某研究者收集到某地110名健康成年男性的體重(kg)數(shù)據(jù)如下:
43.5、70.0、45.0、45.0、46.5、69.5、58.0、68.0、66.5、70.1、67.0、66.5、68.0、59.0、66.0、68.0、69.8、68.8、67.0、55.5、51.5、52.5、61.0、58.0、47.5、53.0、53.0、54.0、59.0、54.0、46.0、54.0、55.0、57.0、52.0、52.0、50.0、54.0、62.5、54.5、65.0、61.5、60.5、60.0、68.5、67.0、70.0、67.0、75.0、70.5、64.5、68.0、72.0、63.0、63.5、64.0、65.0、74.5、72.5、67.5、72.0、69.0、61.5、69.0、60.0、40.0、71.2、74.0、71.0、69.5、69.0、61.0、70.3、68.5、64.5、70.5、73.0、65.0、67.5、71.0、79.0、80.0、72.5、79.0、75.2、81.0、82.0、75.0、73.0、77.0、80.0、81.5、42.0、77.0、75.3、81.0、83.0、74.5、80.0、75.5、80.0、77.0、75.0、61.0、79.0、81.5、78.0、73.5、81.9、85.0
試呈現(xiàn)原始數(shù)據(jù)的分布情況,并對(duì)其進(jìn)行變量變換,使其接近正態(tài)分布。
2.2.2 所需要的SAS程序
利用下面的SAS程序創(chuàng)建SAS數(shù)據(jù)集并進(jìn)行Box-Cox變換:
/*以下的SAS數(shù)據(jù)步程序用于創(chuàng)建SAS數(shù)據(jù)集a1*/
/*在原始數(shù)據(jù)中增加一個(gè)新變量z,它是原始數(shù)據(jù)*/
/*取倒數(shù)變換后再乘以1000得到的結(jié)果*/
data a1;
inputy@@;
z=(1/y)*1000;
cards;
43.5 70.0 45.0 45.0 46.5 69.5 58.0 68.0 66.5 70.1 67.0 66.5 68.0 59.0 66.0 68.0 69.8 68.8 67.0 55.5 51.5 52.5 61.0 58.0 47.5 53.0 53.0 54.0 59.0 54.0 46.0 54.0 55.0 57.0 52.0 52.0 50.0 54.0 62.5 54.5 65.0 61.5 60.5 60.0 68.5 67.0 70.0 67.0 75.0 70.5 64.5 68.0 72.0 63.0 63.5 64.0 65.0 74.5 72.5 67.5 72.0 69.0 61.5 69.0 60.0 40.0 71.2 74.0 71.0 69.5 69.0 61.0 70.3 68.5 64.5 70.5 73.0 65.0 67.5 71.0 79.0 80.0 72.5 79.0 75.2 81.0 82.0 75.0 73.0 77.0 80.0 81.5 42.0 77.0 75.3 81.0 83.0 74.5 80.0 75.5 80.0 77.0 75.0 61.0 79.0 81.5 78.0 73.5 81.9 85.0
;
run;
/*以下程序繪制a1中原始數(shù)據(jù)y和倒數(shù)變換后z的頻數(shù)分布直方圖并進(jìn)行正態(tài)性檢驗(yàn)*/
proc univariate data=a1 normal;
varyz;
histogramyz;
run;
/*以下程序在數(shù)據(jù)集a1中增添w=0的一列,形成數(shù)據(jù)集a2*/
data a2;
set a1;
w=0;
run;
/*以下程序?qū)2進(jìn)行Box-Cox變換,求出合適的lambda值*/
/*經(jīng)過(guò)Box-Cox變換后的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)集aaa中*/
ods graphics on;
proc transreg details data=a2 maxiter=0 nozerocon
stant plots=(transformation(dependent) obp);
model BoxCox(z/ convenient lambda=-10 to 10 by 0.05)=identity(w);
output out=aaa approximations;
run;
/*以下程序繪制aaa的頻數(shù)分布直方圖并進(jìn)行正態(tài)性檢驗(yàn)*/
proc univariate data=aaa normal;
var tz;
histogram tz/normal;
run;
2.2.3 輸出結(jié)果及解釋
2.2.3.1 反映原始數(shù)據(jù)分布狀況的結(jié)果
本例中的原始數(shù)據(jù)y的頻數(shù)直方圖見(jiàn)前面的圖2(呈負(fù)偏態(tài)分布),此處從略。對(duì)原始數(shù)據(jù)y進(jìn)行正態(tài)性檢驗(yàn)的結(jié)果為:W=0.967065、P=0.0080,說(shuō)明原始數(shù)據(jù)y不服從正態(tài)分布。
偏度系數(shù)與峰度系數(shù)分別為g1=-0.495,g2=-0.385,表明原始數(shù)據(jù)具有負(fù)偏態(tài)(偏度系數(shù)明顯小于0)和平闊峰(峰度系數(shù)明顯小于0)分布。
本例中的原始數(shù)據(jù)經(jīng)倒數(shù)變換后的數(shù)據(jù)z的頻數(shù)分布直方圖見(jiàn)圖5(呈正偏態(tài)分布)。
圖5 本例數(shù)據(jù)經(jīng)倒數(shù)變換后的數(shù)據(jù)z的頻數(shù)分布直方圖
對(duì)經(jīng)倒數(shù)變換后的數(shù)據(jù)z進(jìn)行正態(tài)性檢驗(yàn)的結(jié)果為:W=0.892042、P<0.0001,說(shuō)明經(jīng)倒數(shù)變換后的數(shù)據(jù)z不服從正態(tài)分布。
偏度系數(shù)與峰度系數(shù)分別為g1=1.237,g2=1.242,表明經(jīng)倒數(shù)變換后的數(shù)據(jù)z具有正偏態(tài)(偏度系數(shù)明顯大于0)和尖翹峰(峰度系數(shù)明顯大于0)分布。
2.2.3.2對(duì)經(jīng)倒數(shù)變換后的數(shù)據(jù)z作Box-Cox變換的結(jié)果
求得公式(8)中的參數(shù)λ為“-2.2”,對(duì)經(jīng)Box-Cox變換后的數(shù)據(jù)作正態(tài)性檢驗(yàn),得到:W=0.980521、P=0.1079,說(shuō)明經(jīng)Box-Cox變換后的數(shù)據(jù)服從正態(tài)分布。
繪制經(jīng)Box-Cox變換后的數(shù)據(jù)的頻數(shù)分布直方圖,見(jiàn)圖6。
圖6 經(jīng)Box-Cox變換后的某地110名健康男性體重(kg)的頻數(shù)分布直方圖