平均值的标准误差用于衡量数据的分散程度,本文介绍两种方法计算平均值的标准误差。
平均值标准误差定义
平均值标准误差 = s / √n
- s: 样本标准差
- n: 样本数量
std.error()
plotrix
包提供了该方法,使用之前需要按照加载包:
library(plotrix)
# 示例数据集
data <- c(3, 4, 4, 5, 7, 8, 12, 14, 14, 15, 17, 19, 22, 24, 24, 24, 25, 28, 28, 29)
# 计算平均值的标准误差
std.error(data)
# 2.001447
计算结果为:2.001447
自定义函数实现
我们定义函数实现同样功能。
std_error <- function(x) sd(x) / sqrt(length(x))
# 示例数据集
data <- c(3, 4, 4, 5, 7, 8, 12, 14, 14, 15, 17, 19, 22, 24, 24, 24, 25, 28, 28, 29)
# 计算平均值的标准误差
std_error(data)
# 2.001447
两种方法的计算结果一致。
平均值的标准误差说明
平均值的标准误差用于衡量数据值偏离算术平均值的程度。下面两种情况值得注意:
- 平均值的标准误差越大,则数据偏离平均值越大。
为了好理解,我们修改上面的数据集,增加一个较大的数值。
#define dataset
data <- c(3, 4, 4, 5, 7, 8, 12, 14, 14, 15, 17, 19, 22, 24, 24, 24, 25, 28, 28, 150)
mean(data)
# 16.3
#calculate standard error of the mean
std.error(data)
6.978265
我们注意到 平均值的标准误差从2.001447 增加到 6.978265。这表示当前数据值相较之前更偏离平均值。
- 当样本数量增加时,平均值的标准误差会减小
下面通过示例进行说明:
#define first dataset and find SEM
data1 <- c(1, 2, 3, 4, 5)
std.error(data1)
0.7071068
#define second dataset and find SEM
data2 <- c(1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
std.error(data2)
0.4714045
第二个数据集简单重复第一个数据集两次。这样均值不变,但数据集长度增大一倍,我们看到标准误差也随之减小。