getwd()
## [1] "C:/RRR"
load("C:/RRR/kgss/kgsslogistic_210304.RData")
library(mice)
##
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
##
## filter
## The following objects are masked from 'package:base':
##
## cbind, rbind
library(moonBook)
## Warning: package 'moonBook' was built under R version 4.0.4
##
## Attaching package: 'moonBook'
## The following object is masked from 'package:mice':
##
## densityplot
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(MASS)
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
library(ggplot2)
library(naniar)
library(ggeffects)
library(effects)
## Loading required package: carData
## lattice theme set by effectsTheme()
## See ?effectsTheme for details.
library(stargazer)
##
## Please cite as:
## Hlavac, Marek (2018). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## R package version 5.2.2. https://CRAN.R-project.org/package=stargazer
library(survival)
## Warning: package 'survival' was built under R version 4.0.4
library(broom)
library(descr)
descr::freq(KG4$SEXATT1_n)
## KG4$SEXATT1_n
## Frequency Percent
## 1_Not Wrong 646 25.44
## 2_Sometimes Wrong 827 32.57
## 3_Mostly Wrong 450 17.72
## 4_Totally Wrong 616 24.26
## Total 2539 100.00
descr::freq(KG4$SEXATT2_n)
## KG4$SEXATT2_n
## Frequency Percent
## 1_Not Wrong 75 2.954
## 2_Sometimes Wrong 176 6.932
## 3_Mostly Wrong 450 17.724
## 4_Totally Wrong 1838 72.391
## Total 2539 100.000
descr::freq(KG4$SEXATT3_n)
## KG4$SEXATT3_n
## Frequency Percent
## 1_Not Wrong 325 12.80
## 2_Sometimes Wrong 260 10.24
## 3_Mostly Wrong 355 13.98
## 4_Totally Wrong 1599 62.98
## Total 2539 100.00
| # Step 2. 순서형 로짓 분석 ## 혼전 성관계 |
r reg1 <- polr(SEXATT1_n ~ SEX_n + AGE_n + MARITAL_n + party_n1 + party_n2 + PARTYLR_n + EDUC_n + FAMILY_n2 + YEAR_n2*RELIG_n ,data = KG4, Hess = T) |
reg2 <- polr(SEXATT2_n ~ SEX_n + AGE_n + MARITAL_n + party_n1 + party_n2
+ PARTYLR_n + EDUC_n
+ FAMILY_n2 + YEAR_n2*RELIG_n
,data = KG4, Hess = T)
reg3 <- polr(SEXATT3_n ~ SEX_n + AGE_n + MARITAL_n + party_n1 + party_n2
+ PARTYLR_n + EDUC_n
+ FAMILY_n2 + YEAR_n2*RELIG_n
,data = KG4, Hess = T)
stargazer(reg1, reg2, reg3, type = "text")
##
## =====================================================
## Dependent variable:
## -----------------------------
## SEXATT1_n SEXATT2_n SEXATT3_n
## (1) (2) (3)
## -----------------------------------------------------
## SEX_nFemale 0.310*** 0.465*** -0.465***
## (0.080) (0.095) (0.092)
##
## AGE_n 0.041*** 0.007 0.023***
## (0.004) (0.004) (0.004)
##
## MARITAL_n기혼 -0.051 0.061 0.147
## (0.115) (0.133) (0.125)
##
## MARITAL_n사별, 이혼, 별거, 동거 -0.189 -0.227 -0.029
## (0.166) (0.196) (0.189)
##
## party_n1 0.266*** 0.124 0.516***
## (0.092) (0.112) (0.110)
##
## party_n2 0.035 0.083 0.118
## (0.097) (0.115) (0.107)
##
## PARTYLR_n 0.156*** 0.00001 0.141***
## (0.040) (0.048) (0.047)
##
## EDUC_n -0.083*** -0.109*** -0.038
## (0.031) (0.037) (0.037)
##
## FAMILY_n2 0.222*** 0.156*** 0.435***
## (0.040) (0.049) (0.048)
##
## YEAR_n2 -1.198*** 0.114 -0.843***
## (0.127) (0.144) (0.135)
##
## RELIG_n불교 -0.106 0.003 0.102
## (0.123) (0.151) (0.152)
##
## RELIG_n개신교 0.438*** 0.425*** 0.788***
## (0.121) (0.152) (0.156)
##
## RELIG_n천주교 0.358** 0.266 0.330
## (0.176) (0.228) (0.212)
##
## YEAR_n2:RELIG_n불교 0.361* -0.333 0.086
## (0.197) (0.230) (0.219)
##
## YEAR_n2:RELIG_n개신교 0.312 -0.261 0.433*
## (0.199) (0.244) (0.239)
##
## YEAR_n2:RELIG_n천주교 -0.300 -0.247 -0.120
## (0.268) (0.326) (0.290)
##
## -----------------------------------------------------
## Observations 2,539 2,539 2,539
## =====================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
여성은 혼전, 혼외 성관계에 대한 부정적 태도가 남성보다 강하지만, 동성간 성관계는 남성이 더 부정적이다.
혼외 성관계를 제외한 나머지 두 유형의 행위에 대해서 연령이 높을수록 부정적이다.
국힘당 계열 지지자들은 비지지자에 비해서 혼전, 동성간 성관계에 대해서 부정적이다.
정치적으로 보수적일수록 혼전, 동성간 성관계에 대해서 부정적이다.
교육수준이 높을수록 혼전, 혼외 성관계에 대해서 부정적이지 않다.
성역할규범이 강할수록 혼전, 혼외, 동성간 성관계에 대해서 부정적이다.
개신교는 세 행위 모두에 대해서 다른 종교에 비해서 부정적이다. 또한 천주교는 혼전 성관계에 대해서 부정적이다.
년도가 지남에 따라서 혼전, 동성간 성관계에 대한 부정적 태도는 줄어든다.
불교는 년도가 지나도 혼전 성관계에 대한 부정적 태도가 줄어드는 경향이 약하다.
개신교는 년도가 지나도 동성간 성관계에 대한 부정적 태도가 줄어드는 경향이 약하다.
ctable1 <- coef(summary(reg1))
p <- pnorm(abs(ctable1[, "t value"]), lower.tail = FALSE) * 2
ctable1 <- cbind(ctable1, "p_value_1" = p) # 오즈 + p value
ctable2 <- exp(cbind(OR_1 = coef(reg1), confint(reg1))) #오즈비 + 신뢰구간 표
## Waiting for profiling to be done...
ctable1 <- data.frame(ctable1) #data frame으로
ctable2 <- data.frame(ctable2) #data frame으로
ctable1 <- tibble::rownames_to_column(ctable1, "boxLabels") #row이름을 1열로 + 변수명 부여
ctable2 <- tibble::rownames_to_column(ctable2, "boxLabels") #row이름을 1열로 + 변수명 부여
ctable3 <- merge(ctable1, ctable2, by = "boxLabels")
ctable3$p <- factor(ifelse(ctable3$p_value_1 < 0.05, 1, 0)) #유의하면 1 아니면 0
# ctable이라는 결과표 data frame을 구성함
ggplot(ctable3, aes(x = OR_1, y = boxLabels, shape = p)) +
geom_vline(aes(xintercept = 1), size = .25, linetype = "dashed") +
geom_errorbarh(aes(xmax = X97.5.., xmin = X2.5..), size = .5
, height = .2, color = "gray50") +
geom_point(col = "orange", size = 3.0) +
scale_shape_manual(values=c(1, 16))+
theme_bw()+
theme(panel.grid.minor = element_blank()) +
ylab("") +
xlab("Odds ratio") +
ggtitle("") +
scale_x_continuous(breaks = 0.5*(1:24)) +
theme(legend.position = "none")
혼전 성관계 해석:
1순위: 년도가 지남에 따라서 부정적 태도는 약 1.7배 낮아진다
2순위: 개신교는 무교를 기준으로 볼때 약 1.5배 부정적이다 기타 등등…
ctable1 <- coef(summary(reg2))
p <- pnorm(abs(ctable1[, "t value"]), lower.tail = FALSE) * 2
ctable1 <- cbind(ctable1, "p_value_2" = p) # 오즈 + p value
ctable2 <- exp(cbind(OR_2 = coef(reg2), confint(reg2))) #오즈비 + 신뢰구간 표
## Waiting for profiling to be done...
ctable1 <- data.frame(ctable1) #data frame으로
ctable2 <- data.frame(ctable2) #data frame으로
ctable1 <- tibble::rownames_to_column(ctable1, "boxLabels") #row이름을 1열로 + 변수명 부여
ctable2 <- tibble::rownames_to_column(ctable2, "boxLabels") #row이름을 1열로 + 변수명 부여
ctable4 <- merge(ctable1, ctable2, by = "boxLabels")
ctable4$p <- factor(ifelse(ctable4$p_value_2 < 0.05, 1, 0)) #유의하면 1 아니면 0
# ctable이라는 결과표 data frame을 구성함
ggplot(ctable4, aes(x = OR_2, y = boxLabels, shape = p)) +
geom_vline(aes(xintercept = 1), size = .25, linetype = "dashed") +
geom_errorbarh(aes(xmax = X97.5.., xmin = X2.5..), size = .5
, height = .2, color = "gray50") +
geom_point(col = "orange", size = 3.0) +
scale_shape_manual(values=c(1, 16))+
theme_bw()+
theme(panel.grid.minor = element_blank()) +
ylab("") +
xlab("Odds ratio") +
ggtitle("") +
scale_x_continuous(breaks = 0.5*(1:24)) +
theme(legend.position = "none")
혼외 성관계 해석:
혼외 성관계의 경우 년도가 바뀌어도 대다수가 절대적으로 부정적이다.
따라서 혼전 성관계와 비교할 때 유의한 요인들의 수가 적다.
특히 흥미로운 것은 여성이 남성에 비해서 약 1.6배정도 더 혼외 성관계에 부정적이라는 점이다.
기타 등등…
ctable1 <- coef(summary(reg3))
p <- pnorm(abs(ctable1[, "t value"]), lower.tail = FALSE) * 2
ctable1 <- cbind(ctable1, "p_value_3" = p) # 오즈 + p value
ctable2 <- exp(cbind(OR_3 = coef(reg3), confint(reg3))) #오즈비 + 신뢰구간 표
## Waiting for profiling to be done...
ctable1 <- data.frame(ctable1) #data frame으로
ctable2 <- data.frame(ctable2) #data frame으로
ctable1 <- tibble::rownames_to_column(ctable1, "boxLabels") #row이름을 1열로 + 변수명 부여
ctable2 <- tibble::rownames_to_column(ctable2, "boxLabels") #row이름을 1열로 + 변수명 부여
ctable5 <- merge(ctable1, ctable2, by = "boxLabels")
ctable5$p <- factor(ifelse(ctable5$p_value_3 < 0.05, 1, 0)) #유의하면 1 아니면 0
# ctable이라는 결과표 data frame을 구성함
ggplot(ctable5, aes(x = OR_3, y = boxLabels, shape = p)) +
geom_vline(aes(xintercept = 1), size = .25, linetype = "dashed") +
geom_errorbarh(aes(xmax = X97.5.., xmin = X2.5..), size = .5
, height = .2, color = "gray50") +
geom_point(col = "orange", size = 3.0) +
scale_shape_manual(values=c(1, 16))+
theme_bw()+
theme(panel.grid.minor = element_blank()) +
ylab("") +
xlab("Odds ratio") +
ggtitle("") +
scale_x_continuous(breaks = 0.5*(1:24)) +
theme(legend.position = "none")
동성간 성관계 해석:
동성간 성관계에 대한 태도에서는 역시나 개신교의 효과가 크게 나타난다.
그럼에도 년도가 지남에 따라서 부정적 태도는 감소하고 있다.
앞선 두 행위와 달리 여성은 남성에 비해서 약 1.4배 우호적인 태도를 보인다. 기타 등등…
model1 <- ggpredict(reg1, terms = c("RELIG_n"))
ggplot(model1) +
aes(x = x, fill = x, weight = predicted) +
geom_bar(width = 0.5) +
geom_point(aes(y = predicted), size = 1.5)+
geom_errorbar(aes(ymin = conf.low, ymax = conf.high), col = 1, alpha = 0.5, width = 0.3)+
scale_fill_hue() +
theme_bw()+
labs(title = "혼전 성관계 부정적 태도"
, subtitle = ""
, x = "RELIGION"
, y = "Predicted"
, fill = "RELIGION") +
facet_grid(. ~ response.level)
model2 <- ggpredict(reg2, terms = c("RELIG_n"))
ggplot(model2) +
aes(x = x, fill = x, weight = predicted) +
geom_bar(width = 0.5) +
geom_point(aes(y = predicted), size = 1.5)+
geom_errorbar(aes(ymin = conf.low, ymax = conf.high), col = 1, alpha = 0.5, width = 0.3)+
scale_fill_hue() +
theme_bw()+
labs(title = "혼외 성관계 부정적 태도"
, subtitle = ""
, x = "RELIGION"
, y = "Predicted"
, fill = "RELIGION") +
facet_grid(. ~ response.level)
model3 <- ggpredict(reg3, terms = c("RELIG_n"))
ggplot(model3) +
aes(x = x, fill = x, weight = predicted) +
geom_bar(width = 0.5) +
geom_point(aes(y = predicted), size = 1.5)+
geom_errorbar(aes(ymin = conf.low, ymax = conf.high), col = 1, alpha = 0.5, width = 0.3)+
scale_fill_hue() +
theme_bw()+
labs(title = "동성간 성관계 부정적 태도"
, subtitle = ""
, x = "RELIGION"
, y = "Predicted"
, fill = "RELIGION") +
facet_grid(. ~ response.level)
model4 <- ggpredict(reg1, terms = c("YEAR_n2", "RELIG_n"))
ggplot(model4) +
aes(x = x, y = predicted, colour = group) +
geom_line(size = 1L) +
scale_color_hue() +
theme_bw()+
scale_x_continuous(breaks = c(0, 1), labels=c("08년", "18년"))+
labs(title = "혼전 성관계 부정적 태도 : 년도*종교"
, subtitle = ""
, x = "YEAR"
, y = "Probability"
, col = "Religion") +
facet_grid(. ~ response.level)
model5 <- ggpredict(reg2, terms = c("YEAR_n2", "RELIG_n"))
ggplot(model5) +
aes(x = x, y = predicted, colour = group) +
geom_line(size = 1L) +
scale_color_hue() +
theme_bw()+
scale_x_continuous(breaks = c(0, 1), labels=c("08년", "18년"))+
labs(title = "혼외 성관계 부정적 태도 - 년도*종교"
, subtitle = ""
, x = "YEAR"
, y = "Probability"
, col = "Religion") +
facet_grid(. ~ response.level)
model6 <- ggpredict(reg3, terms = c("YEAR_n2", "RELIG_n"))
ggplot(model6) +
aes(x = x, y = predicted, colour = group) +
geom_line(size = 1L) +
scale_color_hue() +
theme_bw()+
scale_x_continuous(breaks = c(0, 1), labels=c("08년", "18년"))+
labs(title = "동성 성관계 부정적 태도 - 년도*종교"
, subtitle = ""
, x = "YEAR"
, y = "Probability"
, col = "Religion") +
facet_grid(. ~ response.level)
# 동성 성관계 종교x년도
model7 <- ggpredict(reg3, terms = c("YEAR_n2", "RELIG_n"))
model7 %>% filter(response.level == c("4_Totally Wrong")) %>%
ggplot() +
aes(x = x, y = predicted, colour = group) +
geom_line(size = 1L) +
scale_color_hue() +
theme_bw()+
scale_x_continuous(breaks = c(0, 1), labels=c("08년", "18년"))+
labs(title = "동성 성관계 부정적 태도 - 년도*종교"
, subtitle = ""
, x = "YEAR"
, y = "Probability"
, col = "Religion") +
facet_grid(. ~ response.level)
한 눈에 보기에도 가장 두드러지는 것이 개신교인들의 동성애에 대한 태도 변화다. 물론 년도가 지남에 따라서 개신교인들 역시 부정적 태도가 줄어들고 있긴 하다. 하지만 그 정도가 다른 종교에 비해서 확연히 완만하다.
따라서 앞으로의 작업은 왜 개신교인들만 이렇게 변화가 느릴까?에 대한 답을 찾는 것이다.
사실 지금 작업중이긴 한데…그건 논문으로 써야해서!
아 키보드 좋다!