rawMoments は sem で使う,平均値を引かないデータそのままの積和行列をサンプルサイズで割ったものを計算するものである。
> (d <- matrix(1:18, 6, 3))
[,1] [,2] [,3]
[1,] 1 7 13
[2,] 2 8 14
[3,] 3 9 15
[4,] 4 10 16
[5,] 5 11 17
[6,] 6 12 18
> (a1 <- rawMoments(d))
Raw Moments
[,1] [,2] [,3]
[1,] 15.16667 36.16667 57.16667
[2,] 36.16667 93.16667 150.16667
[3,] 57.16667 150.16667 243.16667
N = 6
> (a2 <- (t(d) %*% d)/nrow(d)) # 実際に行われている計算
[,1] [,2] [,3]
[1,] 15.16667 36.16667 57.16667
[2,] 36.16667 93.16667 150.16667
[3,] 57.16667 150.16667 243.16667
> a1 == a2 # 両者が等しいことを確認
[,1] [,2] [,3]
[1,] TRUE TRUE TRUE
[2,] TRUE TRUE TRUE
[3,] TRUE TRUE TRUE分散・共分散行列と平均値ベクトルとサンプルサイズ,または相関係数行列の場合には平均値ベクトルとサンプルサイズのほかに標準偏差ベクトルから rawMoments で得られるものを計算することができる。
使用法
rawMoments(object, ...) rawMoments(formula, data, subset, na.action, contrasts = NULL, ...) cov2raw(cov, mean, N, sd) print(x, ...)
引数
> rawMoments(~ Sepal.Length+Sepal.Width+Petal.Length+Petal.Width, data=iris) # モデル式で指定
Raw Moments
(Intercept) Sepal.Length Sepal.Width Petal.Length Petal.Width
(Intercept) 1.000000 5.843333 3.057333 3.758000 1.199333
Sepal.Length 5.843333 34.825667 17.822867 23.225067 7.520933
Sepal.Width 3.057333 17.822867 9.536000 11.162000 3.545933
Petal.Length 3.758000 23.225067 11.162000 17.218067 5.794067
Petal.Width 1.199333 7.520933 3.545933 5.794067 2.015533
N = 150
> rawMoments(iris[,1:4]) # 数値行列に変換できるもの(この場合はデータフレーム)として指定
Raw Moments
Sepal.Length Sepal.Width Petal.Length Petal.Width
Sepal.Length 34.825667 17.822867 23.225067 7.520933
Sepal.Width 17.822867 9.536000 11.162000 3.545933
Petal.Length 23.225067 11.162000 17.218067 5.794067
Petal.Width 7.520933 3.545933 5.794067 2.015533
N = 150
> rawMoments(~ Sepal.Length+Sepal.Width+Petal.Length+Petal.Width-1, data=iris) # 定数項を含めない
Raw Moments
Sepal.Length Sepal.Width Petal.Length Petal.Width
Sepal.Length 34.825667 17.822867 23.225067 7.520933
Sepal.Width 17.822867 9.536000 11.162000 3.545933
Petal.Length 23.225067 11.162000 17.218067 5.794067
Petal.Width 7.520933 3.545933 5.794067 2.015533
N = 150
rawMoments(~ Sepal.Length+Sepal.Width+Petal.Length+Petal.Width-1, data=iris, subset=iris$Species=="setosa")
Raw Moments
Sepal.Length Sepal.Width Petal.Length Petal.Width
Sepal.Length 25.1818 17.2578 7.3348 1.2416
Sepal.Width 17.2578 11.8920 5.0232 0.8524
Petal.Length 7.3348 5.0232 2.1670 0.3656
Petal.Width 1.2416 0.8524 0.3656 0.0714
N = 50
> iris2 <- iris[,1:4]
> cov2raw(cor(iris2), mean=colMeans(iris2), nrow(iris2), sd(iris2))
Raw Moments
(Intercept) Sepal.Length Sepal.Width Petal.Length Petal.Width
(Intercept) 1.000000 5.843333 3.057333 3.758000 1.199333
Sepal.Length 5.843333 34.825667 17.822867 23.225067 7.520933
Sepal.Width 3.057333 17.822867 9.536000 11.162000 3.545933
Petal.Length 3.758000 23.225067 11.162000 17.218067 5.794067
Petal.Width 1.199333 7.520933 3.545933 5.794067 2.015533
N = 150