【发布时间】:2017-11-04 11:07:45
【问题描述】:
寻找一种方法来计算 R 中的总体标准偏差 - 使用超过 10 个样本。无法在R中提取C源代码来查找计算方法。
# Sample Standard Deviation
# Note: All the below match with 10 or less samples
n <- 10 # 10 or greater it shifts calculation
set.seed(1)
x <- rnorm(n, 10)
# Sample Standard Deviation
sd(x)
# [1] 0.780586
sqrt(sum((x - mean(x))^2)/(n - 1))
# [1] 0.780586
sqrt(sum(x^2 - 2*mean(x)*x + mean(x)^2)/(n - 1)) # # Would like the Population Standard Deviation equivalent using this.
# [1] 0.780586
sqrt( (n/(n-1)) * ( ( (sum(x^2)/(n)) ) - (sum(x)/n) ^2 ) )
# [1] 0.780586
现在,人口标准偏差需要匹配 sd(x) 和 100 个计数。
# Population Standard Deviation
n <- 100
set.seed(1)
x <- rnorm(x, 10)
sd(x)
# [1] 0.780586
sqrt(sum((x - mean(x))^2)/(n))
# [1] 0.2341758
sqrt(sum(x^2 - 2*mean(x)*x + mean(x)^2)/(n))
# [1] 0.2341758
# Got this to work above using (eventual goal, to fix the below):
# https://en.wikipedia.org/wiki/Algebraic_formula_for_the_variance
sqrt( (n/(n-1)) * ( ( (sum(x^2)/(n)) ) - (sum(x)/n) ^2 ) ) # Would like the Population Standard Deviation equivalent using this.
# [1] 3.064027
【问题讨论】:
标签: r statistics variance