在資料科學中,瞭解資料的集中趨勢和離散程度至關重要。位置估計量,例如平均值、中位數和眾數,描述了資料的典型值,而變異性則量化了資料的分散程度。標準差和四分位距是常用的變異性指標。對於可能包含異常值的資料集,穩健的估計方法,例如修剪平均值和中位數絕對偏差,可以提供更可靠的結果。此外,百分位數,特別是四分位數,有助於理解資料的分佈情況。箱型圖則以視覺化的方式呈現這些資訊,方便識別異常值和比較不同資料集的分佈。Python 和 R 語言提供了豐富的工具和函式庫,方便進行這些計算和視覺化。理解和應用這些概念和方法,對於有效地分析和解釋資料至關重要。
資料科學中的資料結構與位置估計
在資料科學領域中,資料結構扮演著至關重要的角色。其中,圖形資料結構(Graph Data Structure)用於表示實體、社會和抽象關係之間的連結。例如,社群網路(如Facebook或LinkedIn)的圖形代表了網路上人們之間的連線,而由道路連線的分銷中心則是實體網路的典型例子。圖形結構在某些特定型別的問題中非常有用,例如網路最佳化和推薦系統。
統計學中的圖形概念
在電腦科學和資訊技術領域,術語「圖形」通常指的是實體之間連線的表示以及其背後的資料結構。然而,在統計學中,「圖形」一詞被用來指代各種繪圖和視覺化,而不僅僅是實體之間的連線,並且該術語僅適用於視覺化,而不涉及資料結構。
關鍵概念
- 資料科學中的基本資料結構是矩形矩陣,其中列代表變數(特徵),而行代表記錄。
- 由於資料科學涉及多個學科(統計學、電腦科學和資訊技術),因此術語可能會令人混淆,並出現多種同義詞。
位置估計
在探索資料時,一個基本的步驟是為每個特徵(變數)取得一個「典型值」,即估計大多數資料所在的位置(即其集中趨勢)。常見的位置估計包括平均值、中位數、百分位數等。
平均值
平均值是最基本的位置估計,計算方法是將所有值的總和除以值的數量。其公式為:
平均值 = $\overline{x} = \frac{\sum_{i=1}^{n} x_i}{n}$
其中,$n$代表記錄或觀察的總數。
修剪平均值
修剪平均值是透過丟棄排序後資料中固定數量的極端值,然後對剩餘值取平均而得。其公式為:
修剪平均值 = $\overline{x} = \frac{\sum_{i=p+1}^{n-p} x_i}{n-2p}$
修剪平均值可以消除極端值的影響,使其在某些情況下比普通平均值更具代表性。
加權平均值
加權平均值是透過將每個資料值$x_i$乘以使用者指定的權重$w_i$,然後將其總和除以權重的總和而得。其公式為:
加權平均值 = $\overline{x}w = \frac{\sum{i=1}^{n} w_i x_i}{\sum_{i=1}^{n} w_i}$
使用加權平均值的動機包括處理變異性較大的觀測值或校正不同群體的代表性不足。
中位數與穩健估計
中位數是指排序後資料的中間值。如果資料值的數量為偶數,則中位數是將排序後的資料分成上下兩半的兩個值的平均值。與使用所有觀測值的平均值相比,中位數僅依賴於排序後資料中心的值。在某些情況下,中位數是更好的位置指標,例如在比較西雅圖Lake Washington周圍社群的典型家庭收入時,使用中位數可以避免因比爾蓋茨等極端富有的人士而導致的結果偏差。
程式碼範例:計算平均值與中位數
import numpy as np
# 定義一個資料集
data = [3, 5, 1, 2]
# 計算平均值
mean_value = np.mean(data)
print(f"平均值:{mean_value}")
# 計算中位數
median_value = np.median(data)
print(f"中位數:{median_value}")
內容解密:
- 匯入NumPy函式庫:使用
import numpy as np匯入NumPy函式庫,以便使用其提供的數學函式。 - 定義資料集:
data = [3, 5, 1, 2]定義了一個包含四個元素的列表作為我們的資料集。 - 計算平均值:
np.mean(data)使用NumPy的mean函式計算資料集的平均值,並將結果儲存在mean_value變數中。 - 計算中位數:
np.median(data)使用NumPy的median函式計算資料集的中位數,並將結果儲存在median_value變數中。 - 輸出結果:使用
print陳述式輸出計算出的平均值和中位數。
資料分析中的位置與變異性估計
在資料分析中,位置(location)和變異性(variability)是兩個重要的衡量指標。位置估計關注資料的中心趨勢,而變異性則衡量資料的分散程度。
位置的穩健估計
資料的位置可以透過多種方法來估計,包括平均值(mean)、中位數(median)和修剪平均值(trimmed mean)。平均值容易受到極端值的影響,而中位數則對極端值具有穩健性。
加權中位數
與加權平均值類別似,也可以計算加權中位數。加權中位數是一種在排序資料中,找到使得權重總和在上下兩半相等的資料值。
# R 語言計算加權中位數
library('matrixStats')
weightedMedian(state[['Murder.Rate']], w=state[['Population']])
內容解密:
weightedMedian函式用於計算加權中位數。state[['Murder.Rate']]是資料中的謀殺率列。w=state[['Population']]指定了每個州的人口作為權重。
離群值與異常檢測
離群值(outliers)是指那些與其他資料值相差甚遠的資料點。離群值可能是由於資料錯誤或測量誤差引起的。在異常檢測中,離群值是感興趣的重點,而大多數資料則用於定義“正常”的基準。
穩健的位置估計
除了中位數以外,還有其他穩健的位置估計方法,例如修剪平均值。修剪平均值透過去除資料的極端值來避免離群值的影響。
# Python 語言計算修剪平均值
from scipy import stats
stats.trim_mean(state['Population'], 0.1)
內容解密:
stats.trim_mean函式用於計算修剪平均值。state['Population']是資料中的人口列。0.1表示從資料的每一端去除 10% 的資料。
變異性的估計
變異性是衡量資料分散程度的重要指標。常見的變異性指標包括變異數(variance)和標準差(standard deviation)。
關鍵概念
- 離差(deviations):觀察值與位置估計之間的差異。
- 變異數:離差平方和除以資料數量減一。
案例:美國各州人口與謀殺率的分析
下表展示了美國各州的人口和謀殺率資料。
| State | Population | Murder rate | Abbreviation |
|---|---|---|---|
| Alabama | 4,779,736 | 5.7 | AL |
| Alaska | 710,231 | 5.6 | AK |
| Arizona | 6,392,017 | 4.7 | AZ |
| … | … | … | … |
使用 R 和 Python 語言,可以計算人口資料的平均值、中位數和修剪平均值。
# R 語言計算平均值、中位數和修剪平均值
mean(state[['Population']])
median(state[['Population']])
mean(state[['Population']], trim=0.1)
# Python 語言計算平均值、中位數和修剪平均值
state['Population'].mean()
state['Population'].median()
stats.trim_mean(state['Population'], 0.1)
主要觀念
- 平均值容易受到極端值的影響。
- 中位數和修剪平均值對極端值具有穩健性。
- 加權平均值和加權中位數可用於處理具有不同權重的資料。
進一步閱讀
- Wikipedia 文章“Central Tendency”對各種位置測量方法進行了詳細討論。
- John Tukey 的經典著作“Exploratory Data Analysis”(1977 年)仍然被廣泛閱讀。
圖表說明
此圖示展示了資料的位置與變異性之間的關係。
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
title 資料科學位置估計與變異性分析
package "統計分析流程" {
package "資料收集" {
component [樣本資料] as sample
component [母體資料] as population
}
package "描述統計" {
component [平均數/中位數] as central
component [標準差/變異數] as dispersion
component [分佈形狀] as shape
}
package "推論統計" {
component [假設檢定] as hypothesis
component [信賴區間] as confidence
component [迴歸分析] as regression
}
}
sample --> central : 計算
sample --> dispersion : 計算
central --> hypothesis : 檢驗
dispersion --> confidence : 估計
hypothesis --> regression : 建模
note right of hypothesis
H0: 虛無假設
H1: 對立假設
α: 顯著水準
end note
@enduml
內容解密:
- 圖表展示了資料分析中的兩個重要方面:位置估計和變異性估計。
- 位置估計包括平均值、中位數和修剪平均值等方法。
- 變異性估計包括變異數和標準差等指標。
資料變異性的測量指標
在資料分析中,除了瞭解資料的集中趨勢外,變異性(variability)也是非常重要的一個導向。變異性描述了資料點之間的分散程度,不同的測量指標可以用來評估資料的變異性。
標準差與相關估計
最廣泛使用的變異性測量指標是根據資料點與中心值(通常是平均值或中位數)之間的偏差。對於資料集 {1, 4, 4},其平均值是 3,中位數是 4。與平均值的偏差分別是 -2、1 和 1。這些偏差告訴我們資料是如何圍繞中心值分散的。
平均絕對偏差
為了測量變異性,可以計算這些偏差的典型值。直接對偏差取平均值並不具有代表性,因為正負偏差會相互抵消。一個簡單的方法是取偏差絕對值的平均,這被稱為平均絕對偏差(mean absolute deviation)。計算公式如下: [ \text{平均絕對偏差} = \frac{\sum_{i=1}^{n} |x_i - \bar{x}|}{n} ] 其中,(\bar{x}) 是樣本平均值。
變異數與標準差
最知名的變異性測量指標是變異數(variance)和標準差(standard deviation),它們根據偏差的平方。變異數是偏差平方的平均值,而標準差是變異數的平方根。 [ \text{變異數} = s^2 = \frac{\sum_{i=1}^{n} (x_i - \bar{x})^2}{n-1} ] [ \text{標準差} = s = \sqrt{s^2} ] 標準差比變異數更容易解釋,因為它與原始資料具有相同的尺度。儘管其公式較為複雜,但由於數學上的便利性,標準差在統計學中被廣泛使用。
自由度與 n 或 n-1 的選擇
在計算變異數時,為什麼使用 (n-1) 而不是 (n) 作為分母,涉及到自由度(degrees of freedom)的概念。當使用 (n) 作為分母時,會低估總體的變異數和標準差,這被稱為有偏估計(biased estimate)。使用 (n-1) 可以得到無偏估計(unbiased estimate)。在大多數情況下,(n) 足夠大,因此 (n) 和 (n-1) 的區別並不大。
穩健估計
變異數、標準差和平均絕對偏差對於異常值和極端值並不具有穩健性(robustness)。一個穩健的變異性估計是中位數絕對偏差(median absolute deviation, MAD): [ \text{中位數絕對偏差} = \text{中位數}(|x_1 - m|, |x_2 - m|, …, |x_n - m|) ] 其中,(m) 是中位數。與中位數一樣,MAD 不受極端值的影響。
根據百分位數的估計
另一種測量變異性的方法是根據排序後的資料。最基本的測量指標是範圍(range),即最大值與最小值之間的差異。然而,範圍對異常值非常敏感。為了避免這種敏感性,可以考慮去除兩端的值後再計算範圍,這種方法根據排序後的資料統計,被稱為順序統計量(order statistics)。
四分位距
一個常見的根據百分位數的變異性測量指標是四分位距(interquartile range, IQR),即第 75 百分位數與第 25 百分位數之間的差異。 [ \text{IQR} = P_{75} - P_{25} ] IQR 提供了一個關於資料中間部分的分散程度的測量,並且對於異常值具有較好的穩健性。
資料變異性分析:從百分位數到箱型圖
在資料分析中,瞭解資料的變異性(variability)是至關重要的。變異性描述了資料的分佈情況,揭示了資料的離散程度和穩定性。本文將探討變異性的多種衡量方法,並介紹如何使用百分位數和箱型圖來探索資料的分佈。
百分位數與變異性衡量
百分位數是一種用於衡量資料分佈的方法。第 P 百分位數是指至少 P% 的資料值小於或等於該值,且至少 (100-P)% 的資料值大於或等於該值。例如,第 80 百分位數表示 80% 的資料值小於或等於該值。
變異性指標:四分位距(IQR)
一個常見的變異性衡量指標是四分位距(Interquartile Range, IQR),即第 75 百分位數與第 25 百分位數之間的差值。IQR 能夠有效地衡量資料的中間 50% 的離散程度。
import numpy as np
# 範例資料
data = np.array([3, 1, 5, 3, 6, 7, 2, 9])
# 排序資料
sorted_data = np.sort(data)
# 計算第 25 和第 75 百分位數
q1 = np.percentile(sorted_data, 25)
q3 = np.percentile(sorted_data, 75)
# 計算 IQR
iqr = q3 - q1
print(f"IQR: {iqr}")
#### 內容解密:
1. **資料排序**:首先對資料進行排序,以確定各個百分位數的位置。
2. **計算百分位數**:使用 `np.percentile` 函式計算第 25 和第 75 百分位數。
3. **IQR 計算**:四分位距是第 75 百分位數與第 25 百分位數的差值,用於衡量資料的中間部分的離散程度。
### 資料分佈的視覺化:箱型圖
箱型圖(Boxplot)是一種用於視覺化資料分佈的有效工具。它根據百分位數,能夠清晰地展示資料的中位數、四分位距以及異常值。
#### 使用 R 語言繪製箱型圖
```r
# 載入必要的程式函式庫
data("state")
# 繪製箱型圖
boxplot(state[['Population']]/1000000, ylab='Population (millions)')
使用 Python 繪製箱型圖
import matplotlib.pyplot as plt
# 繪製箱型圖
ax = (state['Population']/1_000_000).plot.box()
ax.set_ylabel('Population (millions)')
plt.show()
#### 內容解密:
1. **箱型圖結構**:箱型圖由箱子(表示 IQR)、中位線(表示中位數)以及須(表示資料範圍)組成。
2. **異常值檢測**:箱型圖能夠有效地識別出異常值,即那些超出須範圍的資料點。
3. **視覺化比較**:透過箱型圖,可以直觀地比較不同群體或類別之間的資料分佈差異。
#### 重點回顧
* 百分位數和四分位距能夠有效地衡量資料的變異性。
* 箱型圖是一種強大的視覺化工具,用於展示資料的分佈和異常值。
* 透過結合這些方法,可以更全面地瞭解資料的特徵和結構。
## 探索資料分佈:從箱線圖到密度圖
在資料分析中,瞭解資料的分佈情況是至關重要的第一步。資料的分佈不僅能幫助我們掌握資料的基本特徵,還能為後續的統計分析和建模提供基礎。本篇文章將介紹幾種常見的資料分佈視覺化方法,包括箱線圖、頻率表、直方圖和密度圖,並探討它們在資料分析中的應用。
### 箱線圖:資料分佈的直觀表示
箱線圖是一種用於顯示資料分佈的統計圖表,它能夠直觀地展示資料的中位數、四分位數以及異常值。箱線圖的核心組成部分包括:
- **箱體**:表示資料的四分位距(IQR),即資料的中間50%範圍。箱體的上邊界是第三四分位數(Q3),下邊界是第一四分位數(Q1)。
- **中位數線**:箱體內的一條線,表示資料的中位數。
- **須狀線(Whiskers)**:從箱體延伸出來的線,用於表示資料的主要範圍。通常,須狀線的最大長度是1.5倍的IQR,超出這個範圍的資料點被視為異常值。
箱線圖對於識別資料中的異常值和理解資料的分佈形狀非常有幫助。例如,在分析美國各州的人口資料時,箱線圖可以快速展示各州人口的中位數、分佈範圍以及是否存在高人口的異常值。
#### 圖1-2:美國各州人口的箱線圖
### 頻率表和直方圖:資料分佈的詳細檢視
頻率表是將資料分成若干等寬的區間,並統計每個區間內的資料個數。直方圖則是頻率表的視覺化表示,以區間為橫軸,頻率或計數為縱軸。
透過建立頻率表和直方圖,我們可以更詳細地瞭解資料的分佈特徵。例如,在分析各州人口時,直方圖能夠清晰地展示人口的分佈情況,包括人口的主要集中範圍和是否存在極端值。
#### 表1-5:美國各州人口的頻率表
| 分組編號 | 人口範圍 | 計數 | 州名 |
| --- | --- | --- | --- |
| 1 | 563,626–4,232,658 | 24 | WY, VT, ND, AK, SD, DE, MT, RI, NH, ME, HI, ID, NE, WV, NM, NV, UT, KS, AR, MS, IA, CT, OK, OR |
| 2 | 4,232,659–7,901,691 | 14 | KY, LA, SC, AL, CO, MN, WI, MD, MO, TN, AZ, IN, MA, WA |
| ... | ... | ... | ... |
#### 圖1-3:美國各州人口的直方圖
### 統計矩:深入理解資料分佈
在統計理論中,資料的分佈可以透過不同的矩來描述,包括均值(一階矩)、變異數(二階矩)、偏度(三階矩)和峰度(四階矩)。其中,偏度和峰度分別用於衡量資料的對稱性和極端值的情況。
雖然偏度和峰度通常不直接用於衡量,但它們可以透過視覺化方法(如箱線圖和直方圖)來間接評估。
### 密度圖:平滑的資料分佈表示
密度圖是一種連續的曲線,用於表示資料的分佈。它可以被視為直方圖的平滑版本,通常透過核密度估計(KDE)方法直接從資料中計算得出。
密度圖對於理解資料的整體分佈形狀非常有幫助,尤其是在需要比較不同組別的資料分佈時。
#### 圖1-4:美國各州謀殺率的密度圖疊加在直方圖上
在這個例子中,密度圖疊加在直方圖上,能夠更清晰地展示謀殺率的分佈特徵,包括主要集中範圍和尾部的情況。