#ゼミ合宿 2022
#データは別途配布
install.packages("tidyverse")
library(tidyverse)
install.packages("summarytools")
library(summarytools)
#データの読み込み
library(haven)
d1 <- read_sav("19ogi.sav")
View(d1)
###################################################################################
#d1の変数が多くて見にくい場合は使いそうな変数を選定したデータd1_selectを作る
d1_select <-
d1 %>%
select("sex",
"age",
"q4b",#男は外で働き、女は家庭を守るべきだ
"q12a",#生活態度に厳しかった
"q18",#親の離婚経験
"q19")#世帯収入
###################################################################################
#データの確認
#88,99,888,999などは欠損値の意味。空欄や.の場合もある。空欄や.の場合はとくに指定しなくてよい。
d1_select %>%
descr(stats = c("mean", "sd", "min", "max", "n.valid"), transpose = TRUE, headings = FALSE)
#88,99,888,999の複数が欠損値の場合があるので、ひとつひとつ確認?
table(d1_select_missing$sex)
table(d1_select_missing$age)
table(d1_select_missing$q4b)
table(d1_select_missing$q12a)
table(d1_select_missing$q18)
table(d1_select_missing$q19)
d1_select_missing <-
d1_select %>%
mutate(sex=na_if(sex,99),#ageは99が欠損値なのでNAへ
age=na_if(age,99),
q4b=na_if(q4b,99),
q12a=na_if(q12a,99),
q18=na_if(q18,99),
q19=na_if(q19,99))
#きちんと欠損値処理ができているか必ず確認
d1_select_missing %>%
descr(stats = c("mean", "sd", "min", "max", "n.valid"), transpose = TRUE, headings = FALSE)
###################################################################################
#d1_selectから、分析用の変数を作る(反転、リコード、欠損値処理)
d1_select_missing_variable <-
d1_select_missing %>%
mutate(male=case_when(sex==1~1, #男性1、女性0 case_whenでダミー変数を作る場合
sex==2~0))%>%
mutate(q18d = -1*q18+2) %>% #親離婚ダミー、欠損値がなければ計算でもOK
mutate(q18d = as.factor(q18d)) %>% #必要に応じて、因子型as.factorに
mutate(q4br = -1*q4b+5, #反転
q12ar = -1*q12a+5) %>% #反転
mutate(inc=case_when(q19==1 ~ 100,#世帯年収リコード
q19==2 ~ 200,
q19==3 ~ 300,
q19==4 ~ 400,
q19==5 ~ 500,
q19==6 ~ 600,
q19==7 ~ 700,
q19==8 ~ 925,
q19==9 ~ 1100,
q19==10 ~1300))
#きちんとできているか必ず確認(下記は連続変数のみなので、因子型に変換したものは除かれる)
d1_select_missing_variable %>%
descr(stats = c("mean", "sd", "min", "max", "n.valid"), transpose = TRUE, headings = FALSE)
###################################################################################
#使う変数のみにする(重回帰分析やロジスティック回帰分析をしていくなかで、修正する)
d2 <-
d1_select_missing_variable %>%
select("age",
"male",
"inc",
"q4br",
"q12ar",
"q18d")
#そのデータから、NAのないデータにする
d3<-na.omit(d2)
d3 %>%
descr(stats = c("mean", "sd", "min", "max", "n.valid"), transpose = TRUE, headings = FALSE)
###################################################################################
#2変数間の関連…従属変数と、注目する独立変数
#連続変数と連続変数の関係をみる。散布図。この例では、q4brの選択肢が4つしかないので、散布図としては不十分
d3 %>%
ggplot(aes(x = inc, y = q4br)) +
geom_point()
#クロス表
ctable(d3$male,d3$q4br, chisq=TRUE)
###################################################################################
#重回帰分析の例
model1<-lm(q4br~age+male+inc,data=d3)
model2<-lm(q4br~age+male+inc+q12ar,data=d3)
model3<-lm(q4br~age+male+inc+q12ar+q18d,data=d3)
install.packages("texreg")
library(texreg)
screenreg(list(model1,model2,model3),digits=3)
###################################################################################