返回目錄
A
數據驅動投資分析:從基礎到量化交易 - 第 3 章
第三章:統計學在投資中的應用
發布於 2026-03-04 18:16
# 第三章:統計學在投資中的應用
> 本章將從**描述性統計**、**相關分析**、**假設檢定**三個維度,說明如何量化市場行為與風險;接著深入探討**風險指標**(波動率、VaR、CVaR、Sharpe / Sortino 等)與**報酬分布**的特徵,並提供實務範例與程式碼片段,方便讀者直接落地。
## 3.1 描述性統計
| 指標 | 定義 | 公式 | 代表意義 |
|------|------|------|-----------|
| 平均數(Mean) | 期望值 | \(\bar{x} = \frac{1}{n}\sum_{i=1}^{n}x_i\) | 觀測值的中心位置 |
| 標準差(Std) | 離散程度 | \(s = \sqrt{\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x})^2}\) | 風險大小 |
| 變異係數(CV) | 相對波動 | \(CV = \frac{s}{\bar{x}}\) | 跨資產風險比較 |
| 四分位數 | 分佈位置 | Q1, Q2, Q3 | 中位數與尾部厚度 |
### 實務示例:Python‑Pandas
python
import pandas as pd
import numpy as np
# 假設有 5 只股票每日收盤價
prices = pd.read_csv('prices.csv', index_col='Date', parse_dates=True)
returns = prices.pct_change().dropna()
# 描述性統計
summary = returns.describe().T
print(summary[['mean', 'std', 'skew', 'kurtosis']])
> **注意**:在多重時間尺度(日、週、月)下,平均與標準差會有不同的解釋,投資人需視交易頻率調整。
## 3.2 相關分析
### 相關係數類型
| 係數 | 範圍 | 典型用途 |
|------|------|-----------|
| Pearson | \([-1,1]\) | 線性關係 |
| Spearman | \([-1,1]\) | 排序關係 |
| Kendall | \([-1,1]\) | 排序關係(更穩健) |
### 相關矩陣示例
python
corr_matrix = returns.corr(method='pearson')
print(corr_matrix)
> **實務建議**:在構建投資組合時,過高的正相關會削弱多樣化效益;負相關則可作為風險對沖的基礎。
## 3.3 假設檢定
| 檢定 | 目的 | 典型假設 |
|------|------|-----------|
| 單樣本 t‑檢定 | 檢驗平均是否等於某值 | H0: \(\mu = \mu_0\) |
| 兩樣本 t‑檢定 | 比較兩群平均 | H0: \(\mu_1 = \mu_2\) |
| 方差分析(ANOVA) | 多組平均比較 | H0: 所有 \(\mu_i\) 相等 |
| 卡方檢定 | 觀測 vs 預期分佈 | H0: 觀測符合預期 |
### 例子:檢查股票是否超越市場平均
python
from scipy import stats
market_mean = returns['SPY'].mean()
stock_mean = returns['AAPL'].mean()
# 兩樣本 t‑檢定
t_stat, p_val = stats.ttest_ind(returns['AAPL'], returns['SPY'], equal_var=False)
print(f't‑stat: {t_stat:.3f}, p‑value: {p_val:.3f}')
> 若 **p‑value < 0.05**,則拒絕 H0,意味著 AAPL 的平均報酬顯著不同於市場平均。
## 3.4 風險指標
| 指標 | 公式 | 何時使用 |
|------|------|-----------|
| 波動率(Volatility) | \(\sigma\) | 長期風險度量 |
| 年化波動率 | \(\sigma_{ann} = \sigma_{daily}\sqrt{252}\) | 投資組合比較 |
| Value at Risk (VaR) | \(VaR_{\alpha} = -\mu + z_{\alpha}\sigma\) | 風險上限估計 |
| Conditional VaR (CVaR) | \(CVaR_{\alpha} = -\mu + \frac{1}{1-\alpha}\int_{0}^{\alpha} z_{u}\,du\) | 尾部風險 |
| Sharpe Ratio | \(\frac{\bar{r}_p - r_f}{\sigma_p}\) | 超額報酬對波動率 |
| Sortino Ratio | \(\frac{\bar{r}_p - r_f}{\sigma_{-}}\) | 只考慮負波動 |
### 1️⃣ 風險指標計算示例
python
# 風險自由利率
rf = 0.01
# 日報酬
p_daily = returns['SPY']
# 1. 年化波動率
vol_ann = p_daily.std() * np.sqrt(252)
# 2. 95% VaR (學生 t 分布)
alpha = 0.95
k = stats.t.ppf(alpha, df=len(p_daily)-1)
var_95 = -(p_daily.mean() - k*p_daily.std())
# 3. Sharpe Ratio
sharpe = (p_daily.mean() - rf/252) / p_daily.std()
print(f'年化波動率: {vol_ann:.2%}\n95% VaR: {var_95:.2%}\nSharpe: {sharpe:.2f}')
> **實務提醒**:VaR 與 CVaR 在尾部事件敏感度上存在差異,建議同時使用以獲得更完整風險畫面。
## 3.5 報酬分布
### 3.5.1 正態分布假設
傳統資產定價模型(如 CAPM、Black‑Scholes)往往假設報酬為正態分布。實際上,金融報酬常顯示:
- **厚尾**(高峰值)
- **偏斜**(左偏或右偏)
### 3.5.2 尾部風險(Tail Risk)
使用 **Extreme Value Theory (EVT)** 或 **Historical Simulation** 來評估極端損失。
### 3.5.3 重要性分析
| 參數 | 觀察指標 | 典型值 |
|------|----------|--------|
| 尾部指數 | \(\xi\) | >0 表示厚尾 |
| 峰度 | \(\gamma\) | >3 表示高峰 |
#### Python 範例:使用 EVT
python
from scipy.stats import genpareto
# 取 5% 左側分位點作為閾值
threshold = np.percentile(p_daily, 5)
# 過閾值的超過量
excess = p_daily[p_daily < threshold] - threshold
# 擬合 GPD
c, loc, scale = genpareto.fit(excess, floc=0)
print(f'EVT 參數: shape={c:.3f}, scale={scale:.4f}')
> **實務建議**:在建模時,若報酬分布偏離正態,需採用更靈活的分布(如 t‑分布、混合分布)以降低模型風險。
## 小結
- **描述性統計** 為投資分析的基石,能快速了解資料特徵。
- **相關分析** 是多樣化與風險對沖的關鍵工具。
- **假設檢定** 提供了科學驗證投資信號的方法。
- **風險指標** (波動率、VaR、CVaR、Sharpe/Sortino) 使投資決策具備可度量的風險基準。
- **報酬分布** 需正視非正態性,並採用尾部風險模型以提升風險管理精準度。
> **後續預告**:第四章將帶您進入機器學習模型構建,從監督式與非監督式方法出發,學習如何在高頻資料中提煉「信號」並將其量化為可執行策略。