# 讀入資料檔並將變數名稱字串轉為變數標籤
library(readr)
x1351 <- read_csv("x1351.csv")
## Warning: Duplicated column names deduplicated: '(非必填。如果有其它想法,歡迎
## 填寫在下方框框裡噢!)' => '(非必填。如果有其它想法,歡迎填寫在下方框框裡噢!)
## _1' [19], '(非必填。如果有其它想法,歡迎填寫在下方框框裡噢!)' => '(非必填。
## 如果有其它想法,歡迎填寫在下方框框裡噢!)_2' [25], '(非必填。如果有其它想法,
## 歡迎填寫在下方框框裡噢!)' => '(非必填。如果有其它想法,歡迎填寫在下方框框裡
## 噢!)_3' [32], '(非必填。如果有其它想法,歡迎填寫在下方框框裡噢!)' => '(非
## 必填。如果有其它想法,歡迎填寫在下方框框裡噢!)_4' [39]
##
## -- Column specification --------------------------------------------------------
## cols(
## .default = col_double(),
## Residence = col_character(),
## Job = col_character(),
## `(非必填。如果有其它想法,歡迎填寫在下方框框裡噢!)` = col_character(),
## `(非必填。如果有其它想法,歡迎填寫在下方框框裡噢!)_1` = col_character(),
## `(非必填。如果有其它想法,歡迎填寫在下方框框裡噢!)_2` = col_character(),
## `(非必填。如果有其它想法,歡迎填寫在下方框框裡噢!)_3` = col_character(),
## `(非必填。如果有其它想法,歡迎填寫在下方框框裡噢!)_4` = col_character()
## )
## i Use `spec()` for the full column specifications.
View(x1351)
nrow(x1351)
## [1] 1043
ncol(x1351)
## [1] 41
# 取出變數名稱當作變數標籤
varlabels <- colnames(x1351)
# 拿掉標籤之後的變數名稱重新命名為V1, V2, ...至v41
colnames(x1351)[1:41] <- paste("v", 1:41, sep="")
# 為變數名稱裝上標籤
sjlabelled::set_label(x1351) <- varlabels
# 批次處理無效值
x1351 <- sjmisc::set_na(x1351, na= "NA")
varlabels #列出每個變數的標籤
## [1] "Gender"
## [2] "Born year"
## [3] "EDU"
## [4] "Curloc"
## [5] "Residence"
## [6] "Job"
## [7] "對於這件事的對錯,「有沒有人在情感上受到傷害」,與你的判斷有多相關?"
## [8] "那麼,「有沒有人受到差別待遇」與你判斷此事的對錯,有多相關呢?"
## [9] "他「在行為上有沒有展現愛國心」,與你判斷這件事的對錯,有多相關?"
## [10] "那對於這件事的對錯,他「有沒有不尊重權威」,與你的判斷有多相關?"
## [11] "那麼,就他「有沒有做出不聖潔、或違反善良風俗的事」呢?對你的判斷有多相關?"
## [12] "(非必填。如果有其它想法,歡迎填寫在下方框框裡噢!)"
## [13] "對於這件事的對錯,他「數學能力好不好」,與你的判斷有多相關?"
## [14] "那他「有沒有展現過關懷弱勢、或關懷受到傷害的人」與你判斷此事的對錯,有多相關呢?"
## [15] "那麼,就他「做的事有沒有展現公平公正」呢?"
## [16] "他「有沒有背叛他的團隊或組織」,與你判斷這件事的對錯,有多相關?"
## [17] "那對於這件事的對錯,他「言行有沒有遵循社會的傳統價值」,與你的判斷有多相關?"
## [18] "那麼,就他「有沒有做令人看了渾身不舒服、甚至是作嘔的事」呢?對你的判斷有多相關?"
## [19] "(非必填。如果有其它想法,歡迎填寫在下方框框裡噢!)_1"
## [20] "對於這件事的對錯,他「有沒有做令人覺得殘忍的事」,與你的判斷有多相關?"
## [21] "那麼,他「言行有沒有展現忠誠」與你判斷此事的對錯,有多相關呢?"
## [22] "他「有沒有做出破壞秩序、甚至造成混亂的事」,與你判斷這件事的對錯,有多相關?"
## [23] "那對於這件事的對錯,他「在言行上,有沒有遵循神/佛/上帝的教誨」,與你的判斷有多相關?"
## [24] "他的「權利有沒有被侵犯、甚至被剝奪」,與你判斷他的對錯,有多相關?"
## [25] "(非必填。如果有其它想法,歡迎填寫在下方框框裡噢!)_2"
## [26] "「對受害者展現同情,是最重要的美德。」"
## [27] "「政府制定法律時,最重要的原則是保證每個人都受到公平對待。」"
## [28] "「我對自己國家的歷史感到驕傲。」"
## [29] "「儘管沒有傷害到別人,也不該做出令人作嘔的事。」"
## [30] "「為善勝於作惡。」"
## [31] "「傷害毫無抵抗能力的動物,是件極為糟糕的事。」"
## [32] "(非必填。如果有其它想法,歡迎填寫在下方框框裡噢!)_3"
## [33] "「這個社會最應該要求的,就是正義。」"
## [34] "「對於自己的家人,就算他們做錯了什麼,也要對他們展現忠誠。」"
## [35] "「男人與女人,有各自不同的社會職責要扮演。」"
## [36] "「如果一個人的行為不符合常規,我會覺得那個行為是不對的。」"
## [37] "「殺人無論如何都是不對的。」"
## [38] "「有錢人家的孩子繼承很多錢,而貧困的孩子繼承不到任何東西,是很不道德的。」"
## [39] "(非必填。如果有其它想法,歡迎填寫在下方框框裡噢!)_4"
## [40] "「團隊合作比展現自我更重要。」"
## [41] "「如果我是個軍人,即使心裡不太同意長官的命令,我也會照辦。因為服從是我的義務。」"
library(sjmisc)
library(sjPlot)
## #refugeeswelcome
names(x1351)
## [1] "v1" "v2" "v3" "v4" "v5" "v6" "v7" "v8" "v9" "v10" "v11" "v12"
## [13] "v13" "v14" "v15" "v16" "v17" "v18" "v19" "v20" "v21" "v22" "v23" "v24"
## [25] "v25" "v26" "v27" "v28" "v29" "v30" "v31" "v32" "v33" "v34" "v35" "v36"
## [37] "v37" "v38" "v39" "v40" "v41"
## 依變數:「關懷原則是衡量行為對錯的重要因素」
# (v7)想像有一個大型社會案件,對於這件事的對錯,「有沒有人在情感上受到傷害」,對你的判斷有多相關?
# (01)毫不相關 (02)不太相關 (03)只有一點相關 (04)一定程度相關 (05)特別相關 (06)絕對相關
table(x1351$v7)
##
## 1 2 3 4 5 6
## 57 142 251 517 46 30
x1351$v7r <- rec(x1351$v7, rec = "1:3=0; 4:6=1", as.num = F)
frq(x1351$v7)
##
## 對於這件事的對錯,「有沒有人在情感上受到傷害」,與你的判斷有多相關? (x) <numeric>
## # total N=1043 valid N=1043 mean=3.42 sd=1.05
##
## Value | N | Raw % | Valid % | Cum. %
## --------------------------------------
## 1 | 57 | 5.47 | 5.47 | 5.47
## 2 | 142 | 13.61 | 13.61 | 19.08
## 3 | 251 | 24.07 | 24.07 | 43.14
## 4 | 517 | 49.57 | 49.57 | 92.71
## 5 | 46 | 4.41 | 4.41 | 97.12
## 6 | 30 | 2.88 | 2.88 | 100.00
## <NA> | 0 | 0.00 | <NA> | <NA>
frq(x1351$v7r)
##
## 對於這件事的對錯,「有沒有人在情感上受到傷害」,與你的判斷有多相關? (x) <categorical>
## # total N=1043 valid N=1043 mean=0.57 sd=0.50
##
## Value | N | Raw % | Valid % | Cum. %
## --------------------------------------
## 0 | 450 | 43.14 | 43.14 | 43.14
## 1 | 593 | 56.86 | 56.86 | 100.00
## <NA> | 0 | 0.00 | <NA> | <NA>
plot_frq(x1351$v7r)
## 資料說明
## 自變數
# 假設一:「關懷弱勢的人」
# (v14)那他「有沒有展現過關懷弱勢、或關懷受到傷害的人」與你判斷此事的對錯,有多相關呢?
# (01)毫不相關 (02)不太相關 (03)只有一點相關 (04)一定程度相關 (05)特別相關 (06)絕對相關
table(x1351$v14)
##
## 1 2 3 4 5 6
## 96 205 303 353 62 24
x1351$v14r <- rec(x1351$v14, rec = "1:3=0; 4:6=1", as.num = F)
frq(x1351$v14r)
##
## 那他「有沒有展現過關懷弱勢、或關懷受到傷害的人」與你判斷此事的對錯,有多相關呢? (x) <categorical>
## # total N=1043 valid N=1043 mean=0.42 sd=0.49
##
## Value | N | Raw % | Valid % | Cum. %
## --------------------------------------
## 0 | 604 | 57.91 | 57.91 | 57.91
## 1 | 439 | 42.09 | 42.09 | 100.00
## <NA> | 0 | 0.00 | <NA> | <NA>
plot_frq(x1351$v14r)
# 假設二:「做出殘忍的行為」
# (v20)對於這件的對錯,他「有沒有做令人覺得殘忍的事」,與你的判斷有多相關?
# (01)毫不相關 (02)不太相關 (03)只有一點相關 (04)一定程度相關 (05)特別相關 (06)絕對相關
table(x1351$v20)
##
## 1 2 3 4 5 6
## 30 60 153 388 228 184
x1351$v20r <- rec(x1351$v20, rec = "1:3=0; 4:6=1", as.num = F)
frq(x1351$v20r)
##
## 對於這件事的對錯,他「有沒有做令人覺得殘忍的事」,與你的判斷有多相關? (x) <categorical>
## # total N=1043 valid N=1043 mean=0.77 sd=0.42
##
## Value | N | Raw % | Valid % | Cum. %
## --------------------------------------
## 0 | 243 | 23.30 | 23.30 | 23.30
## 1 | 800 | 76.70 | 76.70 | 100.00
## <NA> | 0 | 0.00 | <NA> | <NA>
plot_frq(x1351$v20r)
## 控制變數
# (v26)接下來的這些話,請你拉拉看,同意或不同意的程度。「對受害者展現同情,是最重要的美德。」
# (01)非常不同意 (02)算是不同意 (03)稍微偏向不同意 (04)稍微偏向同意 (05)算是同意 (06)非常同意
table(x1351$v26)
##
## 0 1 2 3 4 5
## 53 118 213 408 191 60
x1351$v26r <- rec(x1351$v26, rec = "1:3=0; 4:6=1", as.num = F)
frq(x1351$v26r)
##
## 「對受害者展現同情,是最重要的美德。」 (x) <categorical>
## # total N=1043 valid N=990 mean=0.25 sd=0.44
##
## Value | N | Raw % | Valid % | Cum. %
## --------------------------------------
## 0 | 739 | 70.85 | 74.65 | 74.65
## 1 | 251 | 24.07 | 25.35 | 100.00
## <NA> | 53 | 5.08 | <NA> | <NA>
plot_frq(x1351$v26r)
# (v31)接下來的這些話,請你拉拉看,同意或不同意的程度。「傷害毫無抵抗能力的動物,是件極為糟糕的事。」
# (01)非常不同意 (02)算是不同意 (03)稍微偏向不同意 (04)稍微偏向同意 (05)算是同意 (06)非常同意
table(x1351$v31)
##
## 0 1 2 3 4 5
## 5 13 57 163 260 545
x1351$v31r <- rec(x1351$v31, rec = "1:3=0; 4:6=1", as.num = F)
frq(x1351$v31r)
##
## 「傷害毫無抵抗能力的動物,是件極為糟糕的事。」 (x) <categorical>
## # total N=1043 valid N=1038 mean=0.78 sd=0.42
##
## Value | N | Raw % | Valid % | Cum. %
## --------------------------------------
## 0 | 233 | 22.34 | 22.45 | 22.45
## 1 | 805 | 77.18 | 77.55 | 100.00
## <NA> | 5 | 0.48 | <NA> | <NA>
plot_frq(x1351$v31r)
# (v37)接下來的這些話,請你拉拉看,同意或不同意的程度。「殺人無論如何都是不對的。」
# (01)非常不同意 (02)算是不同意 (03)稍微偏向不同意 (04)稍微偏向同意 (05)算是同意 (06)非常同意
table(x1351$v37)
##
## 0 1 2 3 4 5
## 24 38 114 216 293 358
x1351$v37r <- rec(x1351$v37, rec = "1:3=0; 4:6=1", as.num = F)
frq(x1351$v37r)
##
## 「殺人無論如何都是不對的。」 (x) <categorical>
## # total N=1043 valid N=1019 mean=0.64 sd=0.48
##
## Value | N | Raw % | Valid % | Cum. %
## --------------------------------------
## 0 | 368 | 35.28 | 36.11 | 36.11
## 1 | 651 | 62.42 | 63.89 | 100.00
## <NA> | 24 | 2.30 | <NA> | <NA>
plot_frq(x1351$v37r)
names(x1351)
## [1] "v1" "v2" "v3" "v4" "v5" "v6" "v7" "v8" "v9" "v10"
## [11] "v11" "v12" "v13" "v14" "v15" "v16" "v17" "v18" "v19" "v20"
## [21] "v21" "v22" "v23" "v24" "v25" "v26" "v27" "v28" "v29" "v30"
## [31] "v31" "v32" "v33" "v34" "v35" "v36" "v37" "v38" "v39" "v40"
## [41] "v41" "v7r" "v14r" "v20r" "v26r" "v31r" "v37r"
save(x1351, file = "x1351.rda")
rm(list = ls())
## 確認式分析,二元勝算對數模型
library(car)
## Loading required package: carData
## Registered S3 methods overwritten by 'car':
## method from
## influence.merMod lme4
## cooks.distance.influence.merMod lme4
## dfbeta.influence.merMod lme4
## dfbetas.influence.merMod lme4
load("x1351.rda")
## 模型一:包含所有解釋變數的原始模型
mod.1 <- glm(v7r ~ v14r+v20r+v26r+v31r+v37r,
data=x1351,
family=binomial)
summary(mod.1)
##
## Call:
## glm(formula = v7r ~ v14r + v20r + v26r + v31r + v37r, family = binomial,
## data = x1351)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.8347 -1.1006 0.6412 0.9146 1.8296
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.457658 0.200591 -7.267 3.68e-13 ***
## v14r1 0.822249 0.152089 5.406 6.43e-08 ***
## v20r1 1.669181 0.190450 8.764 < 2e-16 ***
## v26r1 0.374913 0.177243 2.115 0.0344 *
## v31r1 -0.008404 0.191736 -0.044 0.9650
## v37r1 0.077226 0.157355 0.491 0.6236
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1323.8 on 970 degrees of freedom
## Residual deviance: 1141.7 on 965 degrees of freedom
## (72 observations deleted due to missingness)
## AIC: 1153.7
##
## Number of Fisher Scoring iterations: 4
vif(mod.1)
## v14r v20r v26r v31r v37r
## 1.071746 1.121400 1.082604 1.205829 1.113229
summary(mod.1)
##
## Call:
## glm(formula = v7r ~ v14r + v20r + v26r + v31r + v37r, family = binomial,
## data = x1351)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.8347 -1.1006 0.6412 0.9146 1.8296
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.457658 0.200591 -7.267 3.68e-13 ***
## v14r1 0.822249 0.152089 5.406 6.43e-08 ***
## v20r1 1.669181 0.190450 8.764 < 2e-16 ***
## v26r1 0.374913 0.177243 2.115 0.0344 *
## v31r1 -0.008404 0.191736 -0.044 0.9650
## v37r1 0.077226 0.157355 0.491 0.6236
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1323.8 on 970 degrees of freedom
## Residual deviance: 1141.7 on 965 degrees of freedom
## (72 observations deleted due to missingness)
## AIC: 1153.7
##
## Number of Fisher Scoring iterations: 4
load("X1351.rda")
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:car':
##
## recode
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(FactoMineR)
library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
x1351MCA <- select(x1351, v7r, v14r, v20r, v26r, v31r, v37r)
x1351MCA.nona <- na.omit(x1351MCA)
nrow(x1351MCA.nona)
## [1] 971
names(x1351MCA.nona)
## [1] "v7r" "v14r" "v20r" "v26r" "v31r" "v37r"
res <- MCA(x1351MCA.nona, ncp = 5, graph = F)
fviz_screeplot(res, ncp=10)
# 變數類別關係圖
plot(res, axes=c(1, 2), new.plot=TRUE,
col.var="red", col.ind="black", col.ind.sup="black",
col.quali.sup="darkgreen", col.quanti.sup="blue",
label=c("var"), cex=0.8,
selectMod = "cos2",
invisible=c("ind", "quali.sup"),
autoLab = "yes",
title="")
## 用卡方檢定來確認變數之間的相關性
library(sjPlot)
tab_xtab(x1351$v14r, x1351$v7r, encoding = "UTF-8",
show.row.prc = TRUE, # 顯示列百分比
show.col.prc = TRUE, # 顯示欄百分比
show.na=FALSE,
show.legend = FALSE,
show.exp = FALSE,
show.cell.prc = FALSE,
tdcol.col = "green",
tdcol.row = "brown")
|
|
撠 |
Total | |
|---|---|---|---|
| 0 | 1 | ||
| 0 |
334 55.3 % 74.2 % |
270 44.7 % 45.5 % |
604 100 % 57.9 % |
| 1 |
116 26.4 % 25.8 % |
323 73.6 % 54.5 % |
439 100 % 42.1 % |
| Total |
450 43.1 % 100 % |
593 56.9 % 100 % |
1043 100 % 100 % |
χ2=85.233 · df=1 · φ=0.288 · p=0.000 |
tab_xtab(x1351$v20r, x1351$v7r, encoding = "UTF-8",
show.row.prc = TRUE, # 顯示列百分比
show.col.prc = TRUE, # 顯示欄百分比
show.na=FALSE,
show.legend = FALSE,
show.exp = FALSE,
show.cell.prc = FALSE,
tdcol.col = "green",
tdcol.row = "brown")
|
撠 |
撠 |
Total | |
|---|---|---|---|
| 0 | 1 | ||
| 0 |
186 76.5 % 41.3 % |
57 23.5 % 9.6 % |
243 100 % 23.3 % |
| 1 |
264 33 % 58.7 % |
536 67 % 90.4 % |
800 100 % 76.7 % |
| Total |
450 43.1 % 100 % |
593 56.9 % 100 % |
1043 100 % 100 % |
χ2=142.294 · df=1 · φ=0.372 · p=0.000 |
tab_xtab(x1351$v26r, x1351$v7r, encoding = "UTF-8",
show.row.prc = TRUE, # 顯示列百分比
show.col.prc = TRUE, # 顯示欄百分比
show.na=FALSE,
show.legend = FALSE,
show.exp = FALSE,
show.cell.prc = FALSE,
tdcol.col = "green",
tdcol.row = "brown")
|
|
撠 |
Total | |
|---|---|---|---|
| 0 | 1 | ||
| 0 |
347 47 % 82.4 % |
392 53 % 68.9 % |
739 100 % 74.6 % |
| 1 |
74 29.5 % 17.6 % |
177 70.5 % 31.1 % |
251 100 % 25.4 % |
| Total |
421 42.5 % 100 % |
569 57.5 % 100 % |
990 100 % 100 % |
χ2=22.695 · df=1 · φ=0.154 · p=0.000 |
tab_xtab(x1351$v31r, x1351$v7r, encoding = "UTF-8",
show.row.prc = TRUE, # 顯示列百分比
show.col.prc = TRUE, # 顯示欄百分比
show.na=FALSE,
show.legend = FALSE,
show.exp = FALSE,
show.cell.prc = FALSE,
tdcol.col = "green",
tdcol.row = "brown")
|
|
撠 |
Total | |
|---|---|---|---|
| 0 | 1 | ||
| 0 |
127 54.5 % 28.5 % |
106 45.5 % 17.9 % |
233 100 % 22.4 % |
| 1 |
318 39.5 % 71.5 % |
487 60.5 % 82.1 % |
805 100 % 77.6 % |
| Total |
445 42.9 % 100 % |
593 57.1 % 100 % |
1038 100 % 100 % |
χ2=16.001 · df=1 · φ=0.126 · p=0.000 |
tab_xtab(x1351$v37r, x1351$v7r, encoding = "UTF-8",
show.row.prc = TRUE, # 顯示列百分比
show.col.prc = TRUE, # 顯示欄百分比
show.na=FALSE,
show.legend = FALSE,
show.exp = FALSE,
show.cell.prc = FALSE,
tdcol.col = "green",
tdcol.row = "brown")
|
|
撠 |
Total | |
|---|---|---|---|
| 0 | 1 | ||
| 0 |
178 48.4 % 40.5 % |
190 51.6 % 32.8 % |
368 100 % 36.1 % |
| 1 |
261 40.1 % 59.5 % |
390 59.9 % 67.2 % |
651 100 % 63.9 % |
| Total |
439 43.1 % 100 % |
580 56.9 % 100 % |
1019 100 % 100 % |
χ2=6.236 · df=1 · φ=0.080 · p=0.013 |
將2個自變數與3個控制變數,與依變數進行卡方檢定,檢測其相關性。變數v14「有沒有展現過關懷弱勢、或關懷受到傷害的人」與以關懷準則來衡量對錯的相關性強, p值顯示兩者相關。變數v20「有沒有做令人覺得殘忍的事」與以關懷準則衡量對錯的相關性更強,p值也顯示兩者具相關。變數v26對「受害者展現同情是最重要的美德」與依變數的相關性較弱、p值顯示兩者相關。v31「傷害毫無抵抗力的動物事件糟糕的事」與依變數相關性較弱,p值顯示兩者呈相關。變數v37「殺人無論如何是不對」與依變數的相關性較弱,p值也顯示兩者相關。
library(ggplot2)
load("x1351.rda")
ggplot(data=x1351, aes(x=factor(v7r),
fill=factor(v14r)))+
geom_bar(width = .6, position = position_dodge())
ggplot(data=x1351, aes(x=factor(v7r),
fill=factor(v20r)))+
geom_bar(width = .6, position = position_dodge())
ggplot(data=x1351, aes(x=factor(v7r),
fill=factor(v26r)))+
geom_bar(width = .6, position = position_dodge())
ggplot(data=x1351, aes(x=factor(v7r),
fill=factor(v31r)))+
geom_bar(width = .6, position = position_dodge())
ggplot(data=x1351, aes(x=factor(v7r),
fill=factor(v37r)))+
geom_bar(width = .6, position = position_dodge())