欢迎来到 R 语言精算统计!

在卷 A (Paper A) 中,你会学习分布与统计学背后的理论。而在卷 B (Paper B) 中,你将运用 R 语言将这些理论付诸实践。本章将集中讨论在每一次 CS1 考试中几乎都会用到的基本工具:计算汇总统计量(如平均数与方差),以及寻找各种分布的概率和分位数。

你可以把 R 想象成一个功能超级强大的科学计算器。与其翻阅《公式与表格手册》(俗称 Gold Book)来查找数值,你可以直接要求 R 在不到一秒的时间内给你精确的数值。我们开始吧!

1. 探索性数据分析:汇总统计量

在投入复杂的模型之前,精算师总是会先观察数据。这被称为探索性数据分析 (Exploratory Data Analysis, EDA)。我们想知道数据的“中心点”在哪里(位置测度)以及数据有多“分散”(离散测度)。

位置测度 (Measures of Location)

要找出一组数据 x 的平均值或中心值:

mean(x):计算算术平均数 \( \bar{x} = \frac{1}{n} \sum x_i \)。
median(x):找出数据排序后的中位数。

离散测度 (Measures of Spread)

要观察数据的波动程度:

var(x):计算样本方差 \( s^2 = \frac{1}{n-1} \sum (x_i - \bar{x})^2 \)。
sd(x):计算样本标准差 \( s = \sqrt{var(x)} \)。
range(x):给出最小值和最大值。
IQR(x):计算四分位距(第 75 百分位数与第 25 百分位数之差)。

一应俱全的命令

summary(x):这是考生的最爱!它能一次性提供最小值、第一四分位数、中位数、平均数、第三四分位数及最大值。这是快速获取数据“概览”的最快方法。

小贴士:如果你的数据中有缺失值(在 R 中标示为 NA),这些函数可能会返回 NA。要解决这个问题,请在括号内加入参数 na.rm = TRUE,例如:\( mean(x, na.rm = TRUE) \)。

重点笔记:使用 summary() 进行快速概览,当题目要求特定指标时,则使用 sd()var() 等特定函数。

2. “四大”分布前缀

在 CS1 中,你会处理许多不同的分布(如正态分布、泊松分布、二项分布等)。R 使用一套非常一致的命名系统。每个分布都有一个基本名称(例如:正态分布为 norm,泊松分布为 pois),并配以四种可能的前缀:

1. d (Density):用于离散型变量的概率质量函数 (PMF) \( P(X = x) \),或连续型变量的概率密度函数 (PDF) 值。
2. p (Probability):用于累积分布函数 (CDF) \( P(X \le x) \)。这是你寻找概率时的“必用”工具。
3. q (Quantile):用于逆累积分布函数 (Inverse CDF)。如果你已知概率并想找出对应的数值 \( x \),请使用 q
4. r (Random):用于从特定分布中生成随机样本。(注:我们将在下一章关于“模拟”的部分详细介绍)。

可视化理解差异:
如果你想求某一点左侧的面积,请使用 p
如果你想求左侧具有特定面积的那一点,请使用 q

3. R 语言中的常用分布

以下是 CS1 课程大纲中你需要掌握的分布及其在 R 中的名称:

离散型分布:
binom:二项分布 \( (n, p) \)
pois:泊松分布 \( (\lambda) \)
geom:几何分布 \( (p) \)
nbinom:负二项分布 \( (k, p) \)
hyper:超几何分布

连续型分布:
norm:正态分布 \( (\mu, \sigma) \)
exp:指数分布 \( (\lambda) \)
gamma:伽马分布 \( (\alpha, \lambda) \)
chisq:卡方分布 \( (\nu) \)
t:学生 t 分布 \( (\nu) \)
f:F 分布
beta:Beta 分布
unif:均匀分布

示例: 寻找标准正态分布 \( Z \sim N(0,1) \) 的第 95 百分位数:
\( qnorm(0.95, mean = 0, sd = 1) \)

示例: 已知 \( X \sim Poisson(5) \),求 \( P(X \le 3) \):
\( ppois(3, lambda = 5) \)

4. 关键考试陷阱(千万别在这里失分!)

“下尾”(Lower Tail)参数

在默认情况下,R 的 p-functions 计算的是 \( P(X \le x) \)(即下尾概率)。如果考试要求 \( P(X > x) \),你有两个选择:
1. 计算 \( 1 - p... \) (例如:\( 1 - pnorm(x, ...) \))
2. 在函数内加入参数 lower.tail = FALSE (例如:\( pnorm(x, ..., lower.tail = FALSE) \))。

离散 vs. 连续

别忘记!对于连续型分布(如正态分布),\( P(X < x) \) 与 \( P(X \le x) \) 是一样的。
但对于离散型分布(如二项分布 or 泊松分布),这点至关重要!R 的 p-functions 总是包含该数值:\( pbinom(k, ...) \) 代表 \( P(X \le k) \)。如果你需要计算 \( P(X < k) \),在 R 中你必须计算 \( P(X \le k-1) \)。

伽马分布 (Gamma Distribution) 参数

在卷 A 中,我们经常使用“率”参数 (rate parameter) \( \lambda \)。在 R 中,gamma 函数可以接受 ratescale。请记住 \( scale = 1 / rate \)。如果不确定,请随时在 R 控制台中输入 ?rgamma 来检查函数参数。

标准差 vs. 方差

在 R 的 norm 函数中,参数是 sd (\( \sigma \)),而不是方差 (\( \sigma^2 \))。如果题目说明 \( X \sim N(10, 25) \),你在 R 中必须输入 sd = 5

5. 分位数与百分位数

卷 B 的常见任务是寻找风险价值 (Value at Risk, VaR) 或特定的分位数。q-functions 正是为此而设计的。

情境: 某保险理赔分布服从对数正态分布 (Lognormal),其中 \( meanlog = 5 \) 且 \( sdlog = 2 \)。求理赔额的第 99 百分位数。
R 命令: \( qlnorm(0.99, meanlog = 5, sdlog = 2) \)

重点笔记: 如果题目给你一个概率(例如:“前 5%”或“0.90 置信度”),你很可能需要用到 q-function。如果题目给你一个数值(例如:“理赔额超过 1000 的概率是多少?”),你则需要用到 p-function

快速复习

汇总统计量: 使用 mean()var()sd()summary()
概率: 使用 p-name() 来计算 \( P(X \le x) \)。
分位数: 使用 q-name() 来寻找与概率相关联的数值。
上尾概率: 使用 lower.tail = FALSE 来计算 \( P(X > x) \)。
正态分布: 务必使用标准差 (\( \sigma \)),而非方差 (\( \sigma^2 \))。

如果你忘记了某个函数参数的精确顺序,别担心!你可以在 R 中输入问号后接函数名称(例如:?pbinom)来查看帮助文件,确认所需的输入内容。