理学療法士がまとめたノート

統計学備忘録 since2016

Rを使って統計学を勉強するブログです

ダミー変数の作成 makedummies

下のようなカテゴリカルデータをダミー変数に変更します

treat    outcome
NO  NO
NO  YES
YES NO
NO  YES
YES YES
YES YES
NO  YES
YES NO
NO  NO
NO  YES
NO  NO
NO  NO
YES YES
YES YES
YES NO
YES NO
NO  NO
NO  NO
YES YES
NO  NO
YES NO
YES NO
YES YES
NO  YES
NO  YES
YES YES
NO  NO
NO  NO
YES NO
NO  NO
NO  YES
NO  NO
NO  YES
YES NO
NO  YES

サンプルデータをコピーしてRにペーストします

s_data <- read.table("clipboard", header=T )

makedummiesをインストールします

install.packages("makedummies")
library(makedummies)

一瞬でダミー変数に代わります

d_data <- makedummies(s_data, basal_level = TRUE)

  treat NA. outcome NA..1
1      1   0       0     1
2      1   0       1     0
3      0   1       1     0
4      1   0       0     1
5      0   1       0     1
6      1   0       1     0
7      1   0       1     0
8      0   1       1     0
9      1   0       1     0

treat YESを1にしたい場合=2列目を使用
treat YESを0にしたい場合=1列目を使用
outcome YESを1にしたい場合=4列目を使用
outcome YESを0にしたい場合=3列目を使用

#treat YESを1にしたい場合=2列目   vs   outcome YESを0にしたい場合=3列目
d_data2 <- xtabs(~d_data[,2]+d_data[,3])

           d_data[, 3]
d_data[, 2]  0  1
          0  9 11
          1  7  8

name <- list(treat=c("NO","YES"),outcome=c("YES","NO"))
dimnames(d_data2)<-name
d_data2

     outcome
treat YES NO
  NO    9 11
  YES   7  8

パッケージEpiで分割表の解析を一瞬で!

install.packages("Epi")
library(Epi) 
twoby2(d_data2)

2 by 2 table analysis: 
------------------------------------------------------ 
Outcome   : YES 
Comparing : NO vs. YES 

    YES NO    P(YES) 95% conf. interval
NO    9 11    0.4500    0.2532   0.6638
YES   7  8    0.4667    0.2409   0.7070

                                    95% conf. interval
             Relative Risk:  0.9643    0.4664   1.9935
         Sample Odds Ratio:  0.9351    0.2440   3.5836
Conditional MLE Odds Ratio:  0.9369    0.2004   4.3980
    Probability difference: -0.0167   -0.3178   0.2850

             Exact P-value: 1 
        Asymptotic P-value: 0.922 
------------------------------------------------------

makedummiesの詳しい解説は、
github.com