My Notes

統計学とかR(R言語)とかPython3の覚え書きとか走り書きとか。 座右の銘にしたい: All work and no play makes Jack a dull boy.

スピアマンの順位相関係数をR(R言語)で

Rコード

# スピアマンの順位相関係数

十人の新生児の体重と胎盤重量の順位 <- data.frame(赤ちゃん = noquote(LETTERS[1:10]),
                                        新生児の体重の順位 = c(9, 3, 5, 2, 6,
                                                            4, 1, 7, 10, 8),
                                        胎盤重量の順位 = c(10, 3, 8, 4, 6,
                                                        2, 1, 7, 9, 5))

十人の新生児の体重と胎盤重量の順位


# スピアマンのローの式
# rs <- 1 - (6*sigma(ai - bi)^2) / (n*(n^2 - 1))


# 数式通りにコードを書くため、変数a, b, nに付値(代入)
a <- 十人の新生児の体重と胎盤重量の順位$新生児の体重の順位
a


b <- 十人の新生児の体重と胎盤重量の順位$胎盤重量の順位
b


n <- 十人の新生児の体重と胎盤重量の順位$赤ちゃん
n


# スピアマンの順位係数 手計算
rs <- 1 - (6*sum((a - b)^2)) / (length(n)*(length(n)^2 - 1))
rs


# R(R言語)で用意されている関数を使用
cor(a, b, method = "spearman")

R Console

> # スピアマンの順位相関係数
> 
> 十人の新生児の体重と胎盤重量の順位 <- data.frame(赤ちゃん = noquote(LETTERS[1:10]),
+                                         新生児の体重の順位 = c(9, 3, 5, 2, 6,
+                                                             4, 1, 7, 10, 8),
+                                         胎盤重量の順位 = c(10, 3, 8, 4, 6,
+                                                         2, 1, 7, 9, 5))
> 
> 十人の新生児の体重と胎盤重量の順位
   赤ちゃん 新生児の体重の順位 胎盤重量の順位
1         A                  9             10
2         B                  3              3
3         C                  5              8
4         D                  2              4
5         E                  6              6
6         F                  4              2
7         G                  1              1
8         H                  7              7
9         I                 10              9
10        J                  8              5
> 
> 
> # スピアマンのローの式
> # rs <- 1 - (6*sigma(ai - bi)^2) / (n*(n^2 - 1))
> 
> 
> # 数式通りにコードを書くため、変数a, b, nに付値(代入)
> a <- 十人の新生児の体重と胎盤重量の順位$新生児の体重の順位
> a
 [1]  9  3  5  2  6  4  1  7 10  8
> 
> 
> b <- 十人の新生児の体重と胎盤重量の順位$胎盤重量の順位
> b
 [1] 10  3  8  4  6  2  1  7  9  5
> 
> 
> n <- 十人の新生児の体重と胎盤重量の順位$赤ちゃん
> n
 [1] A B C D E F G H I J
> 
> 
> # スピアマンの順位係数 手計算
> rs <- 1 - (6*sum((a - b)^2)) / (length(n)*(length(n)^2 - 1))
> rs
[1] 0.830303
> 
> 
> # R(R言語)で用意されている関数を使用
> cor(a, b, method = "spearman")
[1] 0.830303

参考文献

すぐわかる統計解析

すぐわかる統計解析

統計クイックリファレンス 第2版

統計クイックリファレンス 第2版