web-dev-qa-db-ja.com

Rでの母標準偏差の計算

10を超えるサンプルを使用して、Rの母標準偏差を計算する方法を探しています。計算方法を見つけるために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
4
eyeOfTheStorm

母標準偏差の準備ができた関数を備えたパッケージを探すのにかなりの時間を費やしました。結果は次のとおりです。

1)_radiant.data::sdpop_は優れた関数である必要があります( ドキュメント を参照)

2)_multicon::popsd_もうまく機能しますが、 ドキュメント をチェックして、2番目の引数が何であるかを理解してください

3)_muStat::stdev_と_unbiased=FALSE_が正しく機能しません。 githubページでは、2012年に誰かがそれをsd(x)*(1-1/length(x))ではなくsd(x)*sqrt(1-1/length(x))に設定したようです。

4)_rfml::sd.pop_はml.data.frameなしでは機能しません(MarkLogicサーバー)

これがお役に立てば幸いです。

1
bik_92