ごろごろノート

種々雑多に関心の向いたテーマについてつづる実験ノートです

【R】 オッズ比と95%信頼区間を出力する

作業効率アップのためにサンプルスクリプトここから引用した。

 

データフレーム:data1

目的変数:Y
説明変数:X1, X2

 

res<-glm(data1$Y~.,data=data1,family=binomial)
res1<-summary(res)
res1
coe<-res1$coefficient
coe
OR<-exp(coe[,1])
ORlow<-exp(coe[,1]-1.96*coe[,2])
ORhigh<-exp(coe[,1]+1.96*coe[,2])
res2<-cbind(coe,OR,ORlow,ORhigh)
res2

 

出力される値は

P値=Pr(>|z|)
オッズ比=OR
95%CI=ORlowーORhigh
となる

【SPSS】WIDE形式からLONG形式への再構成スクリプト

GET
FILE='~.sav'.
DATASET NAME データセット1 WINDOW=FRONT.
VARSTOCASES
/MAKE B_W FROM B_W1 B_W2
/MAKE KOU_TOTAL FROM KOU_TOTAL1 KOU_TOTAL2
/MAKE ENBD FROM ENBD1 ENBD2
/MAKE VEG_E FROM VEG_E1 VEG_E2
/MAKE FRT_E FROM FRT_E1 FRT_E2
/MAKE NABD_E FROM NABD_E1 NABD_E2
/INDEX=term "調査回"(2)
/KEEP=ID SCHLNO GROUP HSEX HAGE 
/NULL=KEEP.

【R】WIDE形式をLONG形式に変換する 

WIDE形式のデータフレームをLONG形式に変換する

パネルデータ分析を行うときLONG形式のデータフレームが必要になる。

一般的に作成されるデータフレームはWIDE形式なので、これらをLONG形式に変換する必要がある。

ここではそのやり方について実験してみる。

引用元はこちら

#WIDE形式のデータフレームの作成
olddata_wide <- read.table(header=TRUE, text='
subject sex control cond1 cond2
1 M 7.9 12.3 10.7
2 F 6.3 10.6 11.1
3 F 9.5 13.1 13.8
4 M 11.5 13.4 12.9
')

#列名subjectを確実にfactor型にする
olddata_wide$subject <- factor(olddata_wide$subject)

#データフレームの確認
olddata_wide
#> subject sex control cond1 cond2
#> 1 1 M 7.9 12.3 10.7
#> 2 2 F 6.3 10.6 11.1
#> 3 3 F 9.5 13.1 13.8
#> 4 4 M 11.5 13.4 12.9

#tidyrの読み込み
library(tidyr)

# The arguments to gather():
# - data: Data object
# - key: Name of new key column (made from names of data columns)
# - value: Name of new value column
# - ...: Names of source columns that contain values
# - factor_key: Treat the new key column as a factor (instead of character vector)
data_long <- gather(olddata_wide, condition, measurement, control:cond2, factor_key=TRUE)

#データフレームの確認
data_long
# subject sex condition measurement
#1 1 M control 7.9
#2 2 F control 6.3
#3 3 F control 9.5
#4 4 M control 11.5
#5 1 M cond1 12.3
#6 2 F cond1 10.6
#7 3 F cond1 13.1
#8 4 M cond1 13.4
#9 1 M cond2 10.7
#10 2 F cond2 11.1