HOWTO · R
R 中计算标准误差
学习如何使用 base R 公式和 plotrix 包的 std.error() 函数,在 R 中计算均值的标准误差。
本页内容
在 R 中计算均值的标准误差(SEM),可将样本标准差除以观测值数量的平方根。你可以直接使用 base R 完成计算,也可以使用 plotrix 包中的 std.error()。这两种方法都用于估计样本均值的不确定性;它们并不适用于计算所有统计量的标准误差。
什么是均值的标准误差?
在抽样模型下,均值的标准误差描述样本均值对总体均值的估计有多精确。它与标准差不同:标准差描述各个观测值的离散程度,而 SEM 描述与均值相关的不确定性。对于包含 n 个观测值、样本标准差为 s 的样本,计算公式为:
[ \mathrm{SEM} = \frac{s}{\sqrt{n}} ]
在 R 中,sd() 返回样本标准差,sqrt() 计算平方根,length() 统计向量中的值的数量。除数应为样本量的平方根,而不是样本量本身。此公式适用于这些值代表你想要估计其均值的观测值的情况。如果数据中包含缺失值,请在计算标准差和观测值数量之前,先统一决定如何处理这些缺失值。
使用 Base R 计算标准误差
Base R 已包含完成此计算所需的所有功能。此示例使用五个观测值,并根据同一个向量计算 SEM;你可以将 data 替换为自己的数值样本。
运行以下示例:
data <- c(5, 7, 8, 6, 9)
n <- length(data)
standard_error <- sd(data) / sqrt(n)
standard_error
[1] 0.7071068
对于这五个值,计算结果就是 SEM:sd(data) 提供 s,而 sqrt(n) 是观测值数量的平方根。如果向量中有缺失值,并且你打算忽略它们,请在公式的两部分中使用相同的完整观测值。例如,可以先用 na.omit(data) 创建一个已过滤的向量。
这段代码只计算 SEM。它不会生成置信区间,也不能证明样本具有代表性;这些结论取决于研究设计和数据所依据的假设。对于比例或回归系数等其他统计量,应使用相应的标准误差公式或方法,而不要直接套用这个针对均值的计算。
使用 plotrix 计算标准误差
plotrix 包提供了用于计算均值标准误差的 std.error()。如有需要,请在 R 环境中安装该包,然后使用 library(plotrix) 加载。运行此方法前必须确保已安装该包;仅使用 base R 无法调用 std.error()。
对于上文使用的同一个向量,可以调用 plotrix::std.error(data)。这里展示的是函数用法,并非单独验证过的运行结果。安装该包后,此函数可接收数值向量并返回其标准误差。使用相同的观测值,便能将此结果与 base R 公式的计算结果进行比较。如果分析中两种方法得出的值不同,请检查它们接收的值是否相同,以及处理缺失观测值的方式是否一致。
对于 data <- c(5, 7, 8, 6, 9),样本标准差约为 1.5811388,样本量为 5,因此公式得出的结果与 base R 示例相同:
显示的结果(未经单独运行验证):
0.7071068
如果你想查看或调整每个计算步骤,且不想添加额外依赖,请选择 base R 公式。如果分析中已使用该包,并且你更喜欢直接调用专用函数,请选择 plotrix::std.error()。无论使用哪种方法,都应确认输入包含了用于描述目标均值的观测值,并结合这些观测值的收集方式来解释 SEM。