Rを使用してデータの母分散を計算するにはどうすればよいですか?
Popvarと呼ばれるパッケージがあると読みましたが、バージョン0.99.892があり、パッケージが見つかりません
ベースRのvar()
関数はサンプル分散を計算し、母分散はサンプル分散と_n / n - 1
_の係数で異なります。そのため、母集団の分散を計算する代替手段はvar(myVector) * (n - 1) / n
になります。ここで、nはベクトルの長さです。以下に例を示します。
_x <- 1:10
var(x) * 9 /10
[1] 8.25
_
母分散の定義から:
_sum((x - mean(x))^2) / 10
[1] 8.25
_
あなたはすでに素晴らしい答えを持っていますが、私はあなたがあなた自身の便利な機能を簡単に作ることができることを示したいです。母集団の分散/標準偏差関数がベースR
で利用できないことは驚くべきことです。 Excel
/Calc
およびその他のソフトウェアで利用可能です。そのような機能を持つことは難しくありません。 sdp
または_sd.p
_という名前にするか、sd(x, pop = TRUE)
で呼び出すことができます
以下に、型チェックを行わない母集団分散の基本バージョンを示します。
_ x <- 1:10
varp <- function(x) mean((x-mean(x))^2)
varp(x)
## [1] 8.25
_
スケールアップするには、速度が問題になる場合は、colSumsおよび/またはcolMeansを使用できます(参照: https://rdrr.io/r/base/colSums.html )
パッケージpopvar
の詳細については、こちらをご覧ください。 https://cran.r-project.org/web/packages/PopVar/index.html -を使用してインストールできますcommand install.packages("PopVar");
名前では大文字と小文字が区別されることに注意してください(大文字のP、大文字のV)。
次の関数を使用して、母集団の分散を計算できます。
pvar <- function(x) {
sum((x - mean(x))**2) / length(x)
}
ここで、x
は母集団のデータを保持する数値ベクトルです。例えば:
> x <- c(1, 3, 5, 7, 14)
> pvar(x)
[1] 20