集中趨勢是指一組數據向某一中心值靠攏或集中的程度。主要包括平均值、眾數、中位數和分位數。
先普及一下幾個概念:
(1)總體
在數理統計中,我們把研究對象的全體元素構成的集合稱為總體(或母體),而把組成總體的每個元素稱為個體。如果總體包含有限個個體,則稱為有限總體(或具體總體)。如果總體包含無限個個體,則稱為無限總體(或抽象總體)。
(2)樣本
把從總體X中隨機抽檢(或觀察)n個個體的試驗,稱為隨機抽樣,簡稱抽樣,n稱為容量。
(3)樣本均值
設X1, X2, ..., Xn是總體X中的一個樣本,則統計量
(4)一組數據中出現次數最多的觀測值叫做眾數,用M0表示。眾數測度數據的集中性趨勢,一般在數據量較大的情況下,眾數比較有意義。
(5)中位數
中位數簡單講就是數據排序位于中間位置的值,記為Me,即統計量
中位數描述數據中心位置,對于對稱分布的數據,均值接近中位數;偏態分布式指頻數分布不對稱,集中位置偏向一側,數據的均值則與中位數不同。它的顯著特點在于不受異常值的影響,具有穩健性。
(6)分位數
統計量
稱為樣本的p分位數。常用的有五分位數,由次序樣本的前0%,25%, 75%, 100%位置的5個數構成。
下面探討在R語言中,如何實現。
(1)樣本均值
在R中,mean()函數用于計算樣本的均值,其使用格式為:
mean(x, trim=0, na.rm = FALSE, ...)
其中,參數x為計算對象,可以是向量、矩陣、數組或數據框;trim用于設置計算均值前去掉兩端數據的百分比,即計算結尾均值,取值在0~0.5之間;na.rm為邏輯值,指示是否允許有缺失值(NA)的情況,默認為FALSE(不允許);...為附加參數,
樣本均值舉例如下:
某班級20名學生的英語成績為88,78,67,69,62,100,73,45,70,60,93,97,84,82,81,73,68,76,77,92。計算其均值
x<-c(88,78,67,69,62,100,73,45,70,60,93,97,84,82,81,73,68,76,77,92)
mean(x)
結果是76.75
如計算結尾,則:
mean(x,trim=0.05)
則結果是:77.22
(2)計算眾數
在R中,沒有給出直接計算眾數的函數,自己可以編寫函數,或使用下面的語句獲取眾數。
tmp<-table(x) #計算出x中每個值出現的次數
index<-which.max(tmp) #找出最多次數的索引
tmp[index] #輸出對應的數據及次數
本例的結果形式如下:
73
2
但此方法只能適用于求一個眾數的情況。如果想找出具有多個眾數(即有多個數據的頻率相同且為最大者)的情況,可以使用下面的語句:
tmp<-table(x)
tmp.max<-max(tmp)
which(tmp==tmp.max)
若果令向量x的值為:12, 14, 16, 12, 15, 12, 15, 15;則會輸出如下結果:
12 15
1 3
(3)計算中位數
在R中,使用median()函數計算一組數據的中位數。其形式如下:
median(x, na.rm = FALSE, ...)
各參數的含義與求均值函數mean()相同。
接均值的例子:
median(x)
結果為:76.5
由均值(76.75)和中位數(76.5)可知,均值稍大于中位數,可以初步判斷,所給樣本數據呈右偏分布。
(4)計算分位數
R中使用quantile()計算分位數,其形式如下:
quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE, names = TRUE, type = 7, ...)
其中,參數x為數據對象;probs給出相應的百分位數;na.rm表示是否允許包含缺失值;names為邏輯值,指示是否為結果給出命名屬性;type為分為數的算法,取值1~9,默認為7。
接均值的例子計算
quantile(x)
quantile(x,names=FALSE) #去掉各值的名字
fivenum(x) #使用次函數可以直接計算出五個數
summary(x) #使用該函數可以計算出五數及均值
結果形式如下:
從結果中可以看出:quantile()函數默認可以直接計算出五個數:最小值、25%的四分位數、中位數、75%的四分位數和最大值。
新聞熱點
疑難解答