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