數據分析中數據趨勢的判斷
在面對一組數據時,我們可以通過一些簡單的指標來知道數據的趨勢,這裡的趨勢主要有兩種:集中趨勢和離中趨勢。
1 集中趨勢
在統計學上,集中趨勢是指一組數據向某一中心值靠攏的程度,它反映了一組數據中心點的位置所在,根據定義,集中趨勢測度通常就是尋找數據水平的代表值或者中心值。在數據量巨大的時候,需要一些確切的指標來表明其整體狀態。比較常見的就是平均數、分位數和眾數。
1.1 平均數
平均數是描述定量數據的集中趨勢,主要適用於定量數據。考慮最簡單的算術平均數,定義如下:
一個數列的平均數等於它們的和除以它們所含數據的個數,記為 ,計算公式為:
R語言中的計算方法如下:
> a <- c(1,2,3,4,5,1,58,10)n> mean(a)n[1] 10.5n> n
a 數列含有8個數,總和為84,平均為10.5,採用mean()函數。
1.2 分位數
分位數是根據處在數列中點的位置來進行取值,比如一組數據按大小順序排列後,處在數列中點位置的數值稱為中位數,中位數將數據從中間一個點平均分成兩部分,與中位數相對應的還有四分位數、十分位數和百分位數。它們分別是用3個點、9個點和99個點將數據四等分、十等分和一百等分。這裡我們著重討論四分位數。
從分位數的定義可以看出,以中位數為例,在計算之前首先需要將數據進行排序,然後根據數組的總個數和分位序數再從原數組當中讀取具體的分位數數值。
實數 按大小順序(升序、降序都可以)排列為 ,則實數數列x={ }的中位數 為
odd number為奇數,even number為偶數。
R語言中分位數的計算方法如下:
quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE,n names = TRUE, type = 7, ...)n#特別的,對於中位數有median()函數,直接求取中位數n> median(x)n[1] 2.5n> n
其中quantile()可以計算分位數,x為需要計算分位數的數組,probs參數可以給出(0,1)之間的分為間隔,比如0,0.25,0.5,0.75,1,0.5對應中位數,0.25則對應第一四分位數,0.75對應第三四分位數。下面舉quantile()函數的例子:
> x<-c(1,2,3,4)n> quantile(x)n 0% 25% 50% 75% 100% n1.00 1.75 2.50 3.25 4.00 n> quantile(x,probs=(0.5))n50% n2.5 n> quantile(x,probs=(0.2))n20% n1.6 n> n
1.3 眾數
眾數是指一組數據中出現次數最多的變數,主要適用於分類數據。
主要特點是不受極值影響,但對於一組數據,眾數可能並不唯一,有可能有多個眾數,也有可能沒有眾數。
比較遺憾的是R中沒有直接的內置函數來計算眾數,不過可以根據定義簡單地寫一個,以下的代碼參考自
# Create the function.ngetmode <- function(v) {n uniqv <- unique(v)n uniqv[which.max(tabulate(match(v, uniqv)))]n}nn# Create the vector with numbers.nv <- c(2,1,2,3,1,2,3,4,1,5,5,3,2,3)nn# Calculate the mode using the user function.nresult <- getmode(v)nprint(result)n[1] 2nn# Create the vector with characters.ncharv <- c("baidu.com","tmall.com","yiibai.com","qq.com","yiibai.com")nn# Calculate the mode using the user function.nresult <- getmode(charv)nprint(result)n
2 離中趨勢
對一組數據總體特徵的描述除了集中趨勢,還需要了解數據組的分布偏離中心的程度,用以說明集中趨勢測度值對所概括的數據的代表性大小。因此,在運用集中趨勢測度值反映數據集中趨勢的同時,還需要觀察數據的離中程度,即離中趨勢。這裡主要介紹標準差和標準分。
2.1 標準差
標準差(SD),數學符號 σ(sigma),在概率統計中最常使用作為測量一組數值的離散程度之用。標準差是一組數值自平均值分散開來的程度的一種測量觀念。一個較大的標準差,代表大部分的數值和其平均值之間差異較大;一個較小的標準差,代表這些數值較接近平均值。
標準差定義:為方差開算術平方根,反映組內個體間的離散程度;標準差與期望值之比為標準離差率。測量到分布程度的結果。
標準差的計算公式如下:
在R中可以sd()函數來計算標準差,舉例如下:
> A <- c(12,23,34,44,59,70,98)n> An[1] 12 23 34 44 59 70 98n> sd(A)n[1] 29.54013n> n
2.2 標準分
我們定義數組 他們的平均值為μ,標準差為σ,那麼我們可以求出 的標準分
z1 = (x1-μ)/σ (標準差不為0)
Z值的量代表著原始分數和母體平均值之間的距離,是以標準差為單位計算。在原始分數低於平均值時Z則為負數,反之則為正數。
在R中可以用scale()函數來計算標準分,
推薦閱讀: