My Notes

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

グッドマン・クラスカルのガンマをR(R言語)で

Rコード

# 『統計クイックリファレンス』p.147~148
# グッドマン・クラスカルのガンマ


BMIのデータ例 <- data.frame(BMI = c("通常", "肥満"),
                        通常血圧 = c(25, 10),
                        前高血圧 = c(15, 10),
                        高血圧 = c(5, 25))

BMIのデータ例


# ガンマを計算するためのセル指定
cell <- c(noquote(letters[1:6]))
cell


mt1 <- matrix(cell, nrow = 2, ncol = 3, byrow = TRUE)
mt1


# 合致対(P)
# P = a(e + f) + bf
P <- 25*(10 + 25) + 15*(25)
P


# 不一致対(Q)
# Q = c(d + e) + bd
Q <- 5*(10 + 10) + 15*(10)
Q


# グッドマン・クラスカルのガンマの計算式
# γ = (P - Q) / (P + Q)
g <- (P - Q) / (P + Q)
g
round(g, 2)


x <- c(BMIのデータ例$通常血圧, BMIのデータ例$前高血圧, BMIのデータ例$高血圧)
mt2 <- matrix(x, nrow = 2, ncol = 3)
mt2


# R パッケージの関数でグッドマン・クラスカルのガンマ
library("vcdExtra")
GKgamma(mt2)


##############################################
#### 注意事項 ####
#
# 以下のパッケージをインストールして、使用しようとすると、
# Error :  オブジェクト ‘f_eval’ は 'namespace:lazyeval' によってエクスポートされていません
# となり、以降、どんなパッケージも実行不能となるかもしれない。
# 筆者は、lazyevalをインストールすることによって解決した。
#
# 環境によるが、
# 当ブログを読んだ方で、PResidualsを入れようと思った方は、
# 上記注意事項がある。(つまり、自己責任で)。
#
###############################################
###############################################
library("PResiduals")
GKGamma(mt2)

R Console

> # 『統計クイックリファレンス』p.147~148
> # グッドマン・クラスカルのガンマ
> 
> 
> BMIのデータ例 <- data.frame(BMI = c("通常", "肥満"),
+                         通常血圧 = c(25, 10),
+                         前高血圧 = c(15, 10),
+                         高血圧 = c(5, 25))
> 
> BMIのデータ例
   BMI 通常血圧 前高血圧 高血圧
1 通常       25       15      5
2 肥満       10       10     25
> 
> 
> # ガンマを計算するためのセル指定
> cell <- c(noquote(letters[1:6]))
> cell
[1] a b c d e f
> 
> 
> mt1 <- matrix(cell, nrow = 2, ncol = 3, byrow = TRUE)
> mt1
     [,1] [,2] [,3]
[1,] "a"  "b"  "c" 
[2,] "d"  "e"  "f" 
> 
> 
> # 合致対(P)
> # P = a(e + f) + bf
> P <- 25*(10 + 25) + 15*(25)
> P
[1] 1250
> 
> 
> # 不一致対(Q)
> # Q = c(d + e) + bd
> Q <- 5*(10 + 10) + 15*(10)
> Q
[1] 250
> 
> 
> # グッドマン・クラスカルのガンマの計算式
> # γ = (P - Q) / (P + Q)
> g <- (P - Q) / (P + Q)
> g
[1] 0.6666667
> round(g, 2)
[1] 0.67
> 
> 
> x <- c(BMIのデータ例$通常血圧, BMIのデータ例$前高血圧, BMIのデータ例$高血圧)
> mt2 <- matrix(x, nrow = 2, ncol = 3)
> mt2
     [,1] [,2] [,3]
[1,]   25   15    5
[2,]   10   10   25
> 
> 
> # R パッケージの関数でグッドマン・クラスカルのガンマ
> library("vcdExtra")
> GKgamma(mt2)
gamma        : 0.667 
std. error   : 0.107 
CI           : 0.458 0.876 
> 
> 
> ##############################################
> #### 注意事項 ####
> #
> # 以下のパッケージをインストールして、使用しようとすると、
> # Error :  オブジェクト ‘f_eval’ は 'namespace:lazyeval' によってエクスポートされていません
> # となり、以降、どんなパッケージも実行不能となるかもしれない。
> # 筆者は、lazyevalをインストールすることによって解決した。
> #
> # 環境によるが、
> # 当ブログを読んだ方で、PResidualsを入れようと思った方は、
> # 上記注意事項がある。(つまり、自己責任で)。
> #
> ###############################################
> ###############################################
> library("PResiduals")
> GKGamma(mt2)
$scon
[1] 1250

$sdis
[1] 250

$gamma
[1] 0.6666667

参考文献

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

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