# RIE TAKAMATSU 2020/5/26
# ロジスティック回帰分析
#getwd()で示されたフォルダに、w1.savを入れておく
getwd()
#####################################
install.packages("rms") #Logistic Regression Model
install.packages("gmodels") #Cross Table
install.packages("summarytools") #記述統計
install.packages("gplots")
install.packages("MASS")
install.packages("texreg")
install.packages("vcd")
install.packages("tidyverse")
####### load packages----
library(rms)
library(gmodels)
library(gplots)
library(MASS)
library(texreg)
library(vcd)
library(summarytools)
library(tidyverse)#tidyverse
#####################################
#配布データはw1。もとはworld value survey#6 2010, Japan
#読み込み
library(haven)
d1 <- read_sav("w1.sav")
View(d1)
#そのデータから、「使う変数のみで」NAのないデータにする
d2 <-
d1 %>%
select(V176,V177,V234,V239,V240,V242,V248)
head(d2)
#欠損値NAのあるケースを除く
d3<-na.omit(d2)
head(d3)
#名前がみにくいときは変えてしまうと楽
d4 <-
d3 %>%
mutate(nmoney = V176,
nnight = V177,
sup = V234,
sex = V240,
sincome = V239,
age = V242,
edu = V248 )
head(d4)
## 記述統計(1変数)-----
summary(d4) #すべて
#library(summarytools)
d4 %>%
descr(stats = c("mean", "sd", "min", "max", "n.valid"), transpose = TRUE, headings = FALSE)
#### 図で確認-----
##factor はカテゴリカル変数に対してつける sup 権限
plot(factor(d4$sup))
plot(factor(d4$sup) ~ factor(d4$sex))
#### クロス表 summarytoolsを使う場合----
ctable(d4$sex, d4$sup)
###二項ロジスティック回帰分析
table(d4$sup)#権限がない=2、権限がある=1
f1 <- lrm(sup ~ sex, d4) #走りますが
screenreg(f1)#女性は権限がない
#従属変数は、一般に「ある=1、ない=0」としておくほうが読みやすい
#従属変数をダミーに変えたい場合
#権限がない=0、権限がある=1
d4$sup0<-(-1)*d4$sup+2
table(d4$sup,d4$sup0)
#性別も女性ダミーに
d4$sexf<-d4$sex-1
ctable(d4$sexf, d4$sup0)
#二項ロジスティック回帰分析(修正後)
f1a <- lrm(sup0 ~ sexf,d4)
screenreg(f1a)
f1a
#オッズ比の出し方
coef(f1a) #係数
exp(coef(f1a)) #exp()
round(exp(coef(f1a)), 3) #小数点以下3桁に
#変数追加
f2 <- lrm(sup0 ~ sexf+sincome,d4)#世帯収入、ただし理論的な説明がしにくい
screenreg(f2)
#2つのモデルを表にできる
screenreg(list(f1a, f2), digits = 3, include.lr = FALSE)