1 专案工作环境设置

#呈现code 与output
knitr::opts_chunk$set(echo = TRUE) 
#设定当前工作目录(请选择一个你自己的工作目录)
setwd("/Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514")
#(或菜單點選)session->set working directory->choose directory
#显示目前工作目录
getwd()
## [1] "/Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514"
#设定系統中文文字編碼 (mac/win)
Sys.setlocale(category = "LC_ALL", locale = "en_US.UTF-8") #美式英文
## [1] "en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/zh_CN.UTF-8"
Sys.setlocale(category = "LC_ALL", locale = "Zh_TW.UTF-8") #繁体中文
## [1] "Zh_TW.UTF-8/Zh_TW.UTF-8/Zh_TW.UTF-8/C/Zh_TW.UTF-8/zh_CN.UTF-8"
Sys.setlocale(category = "LC_ALL", locale = "zh_CN.UTF-8") #简体中文
## [1] "zh_CN.UTF-8/zh_CN.UTF-8/zh_CN.UTF-8/C/zh_CN.UTF-8/zh_CN.UTF-8"
#查看目前的系统编码
Sys.getlocale() #zh_CN.UTF-8/
## [1] "zh_CN.UTF-8/zh_CN.UTF-8/zh_CN.UTF-8/C/zh_CN.UTF-8/zh_CN.UTF-8"
#载入showtext套件
library(showtext) 
## 载入需要的程辑包:sysfonts
## 载入需要的程辑包:showtextdb
#使绘图物件中的中文文字能正确呈现
showtext_auto(enable = TRUE)

2 读取spss数据档

#调用"sjlabelled" 套件
library(sjlabelled)
#将SPSS数据汇入到R
TCS2015sc<- read_spss("TCS2015sc.sav")
## Converting atomic to factors. Please wait...
#察看数据档中的变量名称
names(TCS2015sc)
##   [1] "ID"         "strata"     "A1"         "A2.year"    "A2.age"    
##   [6] "age_strata" "A7"         "A8"         "B1a"        "B1b"       
##  [11] "B2"         "C1a"        "C1b.1"      "C1b.2"      "C3"        
##  [16] "C4a"        "C4b.1"      "C4b.2"      "D1a"        "D1b.1"     
##  [21] "D1b.2"      "E1"         "E2.1"       "E2.2"       "F6"        
##  [26] "F7.1"       "F7.2"       "G1.1.A"     "G1.1.B"     "G1.1.C"    
##  [31] "G2.1"       "G2.2"       "G2.3"       "G2.4"       "G2.5"      
##  [36] "G2.6"       "G2.7"       "G4.1"       "G4.2"       "G4.3.1"    
##  [41] "G4.3.2"     "G5.1"       "G5.2"       "G5.3"       "G5.4"      
##  [46] "H1"         "H2"         "H3"         "H4.1"       "H4.2"      
##  [51] "H4.3"       "H4.4"       "H4.5"       "I1"         "I3.1"      
##  [56] "I3.2"       "I3.3"       "I3.4"       "I3.5"       "I3.6"      
##  [61] "I3.7"       "I3.8"       "I3.9"       "I3.10"      "I3.11"     
##  [66] "I3.12"      "I3.13"      "I3.14"      "I3.88"      "J1.1"      
##  [71] "J1.2"       "J1.3"       "J1.4"       "J1.5"       "J2.1"      
##  [76] "J2.2"       "J2.3"       "J2.4"       "J2.5"       "S1.1"      
##  [81] "S1.2"       "S1.3"       "S1.4"       "S1.5"       "S1.6"      
##  [86] "S1.7"       "S1.8"       "S1.9"       "S1.10"      "V1.1"      
##  [91] "V1.2"       "V1.3"       "V1.4"       "V1.5"       "W3"        
##  [96] "weight1"    "W_Raking"   "V1.5.cat3"  "S1.9.cat3"  "V1.5.cat2" 
## [101] "sex"        "edu.cat5"

3 进行比较

3.1 变量值重新编码

library(sjmisc)
#V1.5->V1.5.cat3
frq(TCS2015sc$V1.5) #sjmisc套件下,次数分配的指令"frq"
## V1.5. 整体来说,你觉得目前的日子过得快不快乐? (x) <categorical> 
## # total N=2002 valid N=2002 mean=5.51 sd=15.02
## 
## Value |      Label |    N | Raw % | Valid % | Cum. %
## ----------------------------------------------------
##     1 | 非常不快樂 |   21 |  1.05 |    1.05 |   1.05
##     2 |     不快乐 |  232 | 11.59 |   11.59 |  12.64
##     3 |       快乐 | 1498 | 74.83 |   74.83 |  87.46
##     4 |   非常快乐 |  195 |  9.74 |    9.74 |  97.20
##    94 |   無法选择 |   56 |  2.80 |    2.80 | 100.00
##  <NA> |       <NA> |    0 |  0.00 |    <NA> |   <NA>
TCS2015sc$V1.5.cat3 <- rec(TCS2015sc$V1.5, 
                               rec =  "1,2=1; 3,4=2; 94=3",
                               var.label = "快乐三分类",
                               val.labels = c("不快乐","快乐", "无法选择"),
                               as.num = FALSE)
frq(TCS2015sc$V1.5.cat3) 
## 快乐三分类 (x) <categorical> 
## # total N=2002 valid N=2002 mean=1.90 sd=0.38
## 
## Value |    Label |    N | Raw % | Valid % | Cum. %
## --------------------------------------------------
##     1 |   不快乐 |  253 | 12.64 |   12.64 |  12.64
##     2 |     快乐 | 1693 | 84.57 |   84.57 |  97.20
##     3 | 无法选择 |   56 |  2.80 |    2.80 | 100.00
##  <NA> |     <NA> |    0 |  0.00 |    <NA> |   <NA>
attributes(TCS2015sc$V1.5.cat3)
## $levels
## [1] "1" "2" "3"
## 
## $class
## [1] "factor"
## 
## $labels
##   不快乐     快乐 无法选择 
##        1        2        3 
## 
## $label
## [1] "快乐三分类"
##V1.5->V1.5.cat2
library(sjmisc)
TCS2015sc$V1.5.cat2 <- rec(TCS2015sc$V1.5, 
                 rec ="4=1;else=0",
                 var.label = "快乐二分类",
                 val.labels = c("其他","非常快乐"),
                 as.num = FALSE)
frq(TCS2015sc$V1.5.cat2) 
## 快乐二分类 (x) <categorical> 
## # total N=2002 valid N=2002 mean=0.10 sd=0.30
## 
## Value |    Label |    N | Raw % | Valid % | Cum. %
## --------------------------------------------------
##     0 |     其他 | 1807 | 90.26 |   90.26 |  90.26
##     1 | 非常快乐 |  195 |  9.74 |    9.74 | 100.00
##  <NA> |     <NA> |    0 |  0.00 |    <NA> |   <NA>
attributes(TCS2015sc$V1.5.cat2)
## $levels
## [1] "0" "1"
## 
## $class
## [1] "factor"
## 
## $labels
##     其他 非常快乐 
##        0        1 
## 
## $label
## [1] "快乐二分类"
#S1.9->S1.9.cat3
library(sjmisc)
frq(TCS2015sc$S1.9)
## S1.9. 有人说:“因为有网路,一般人在政治上可以有更大的影响力”,请问你同不同意这种说法? (x) <categorical> 
## # total N=2002 valid N=2002 mean=3.57 sd=0.82
## 
## Value |          Label |    N | Raw % | Valid % | Cum. %
## --------------------------------------------------------
##     1 |     非常不同意 |   21 |  1.05 |    1.05 |   1.05
##     2 |         不同意 |  247 | 12.34 |   12.34 |  13.39
##     3 | 無所謂同不同意 |  421 | 21.03 |   21.03 |  34.42
##     4 |           同意 | 1196 | 59.74 |   59.74 |  94.16
##     5 |       非常同意 |  117 |  5.84 |    5.84 | 100.00
##  <NA> |           <NA> |    0 |  0.00 |    <NA> |   <NA>
TCS2015sc$S1.9.cat3 <- rec(TCS2015sc$S1.9, 
                          rec =  "1,2=1;3=2; 4,5=3",
                          var.label =
                            "因为有网路,一般人在政治上可以有更大的影响力",
                          val.labels = c("不同意", "无所谓", "同意"),
                          as.num = FALSE)
frq(TCS2015sc$S1.9.cat3)
## 因为有网路,一般人在政治上可以有更大的影响力 (x) <categorical> 
## # total N=2002 valid N=2002 mean=2.52 sd=0.72
## 
## Value |  Label |    N | Raw % | Valid % | Cum. %
## ------------------------------------------------
##     1 | 不同意 |  268 | 13.39 |   13.39 |  13.39
##     2 | 无所谓 |  421 | 21.03 |   21.03 |  34.42
##     3 |   同意 | 1313 | 65.58 |   65.58 | 100.00
##  <NA> |   <NA> |    0 |  0.00 |    <NA> |   <NA>
attributes(TCS2015sc$S1.9.cat3)
## $levels
## [1] "1" "2" "3"
## 
## $class
## [1] "factor"
## 
## $labels
## 不同意 无所谓   同意 
##      1      2      3 
## 
## $label
## [1] "因为有网路,一般人在政治上可以有更大的影响力"
#A1->sex
TCS2015sc$sex <- rec(TCS2015sc$A1, 
                            rec = "1=1; 2=2",
                            var.label = "性别",
                            val.labels=c("男", "女"),
                            as.num=F) 
frq(TCS2015sc$sex)
## 性别 (x) <categorical> 
## # total N=2002 valid N=2002 mean=1.54 sd=0.50
## 
## Value | Label |    N | Raw % | Valid % | Cum. %
## -----------------------------------------------
##     1 |    男 |  928 | 46.35 |   46.35 |  46.35
##     2 |    女 | 1074 | 53.65 |   53.65 | 100.00
##  <NA> |  <NA> |    0 |  0.00 |    <NA> |   <NA>
attributes(TCS2015sc$sex)
## $levels
## [1] "1" "2"
## 
## $class
## [1] "factor"
## 
## $labels
## 男 女 
##  1  2 
## 
## $label
## [1] "性别"
#A8->edu.cat5
TCS2015sc$edu.cat5 <- rec(TCS2015sc$A8,  #使用rec函数重新编码
                      rec =  "1:3=1; 4:5=2; 6:9=3; 10:15=4; 16:21=5",
                      var.label = "受教育程度五分类",
                      val.labels = c("小学及以下","初中","高中职", "专科",
                                      "本科及以上"),
                      as.num = FALSE #设定为类别变量
                      )
frq(TCS2015sc$edu.cat5)
## 受教育程度五分类 (x) <categorical> 
## # total N=2002 valid N=2002 mean=3.38 sd=1.43
## 
## Value |      Label |   N | Raw % | Valid % | Cum. %
## ---------------------------------------------------
##     1 | 小学及以下 | 303 | 15.13 |   15.13 |  15.13
##     2 |       初中 | 234 | 11.69 |   11.69 |  26.82
##     3 |     高中职 | 540 | 26.97 |   26.97 |  53.80
##     4 |       专科 | 256 | 12.79 |   12.79 |  66.58
##     5 | 本科及以上 | 669 | 33.42 |   33.42 | 100.00
##  <NA> |       <NA> |   0 |  0.00 |    <NA> |   <NA>
attributes(TCS2015sc$edu.cat5)
## $levels
## [1] "1" "2" "3" "4" "5"
## 
## $class
## [1] "factor"
## 
## $labels
## 小学及以下       初中     高中职       专科 本科及以上 
##          1          2          3          4          5 
## 
## $label
## [1] "受教育程度五分类"

3.2 百分比交叉比较(依:类别; 自:类别)

3.2.1 方法一:RCPA3::crosstabC (呈现百分比交叉表与条形图)

library(ggrepel)
## 载入需要的程辑包:ggplot2
## 
## 载入程辑包:'ggplot2'
## The following object is masked from 'package:sjlabelled':
## 
##     as_label
library(RCPA3)
#printC=T (html Table)
#要安装更新"XQuartz" 套件(Mac)+安装"ggrepel"套件
#"ggrepel"套件:使图中的图表与文字图例不要互相重叠
#原始未加权

crosstabC(dv=TCS2015sc$S1.9.cat3, iv=TCS2015sc$edu.cat5, #dv依变量; #iv自变量
          dvlabs = c("不同意", "无所谓", "同意"),#dvlabs依变量标签
          ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
                     #ivlabs自变量标签
          digits = 1, #digits=1 一位小数
          plot = TRUE, #plot = TRUE呈現条形圖
          plot.response="all", #呈現dv變量所有的values
          compact = T, #只呈現百分比,不呈現頻次(count)
          printC=T) #呈現html表格
## ===========================================================================
##                          Cross-Tabulation Analysis
## ===========================================================================
## 
## 
## Table: Cross-Tabulation of TCS2015sc$S1.9.cat3 and TCS2015sc$edu.cat5
## 
##             小学及以下    初中   高中职    专科   本科及以上   Totals
## ---------  -----------  ------  -------  ------  -----------  -------
## % 不同意           8.9    13.2     17.4    14.1         12.0     13.4
## % 无所谓          52.5    26.1     15.4    14.1         12.3     21.0
## % 同意            38.6    60.7     67.2    71.9         75.8     65.6
## Count            303.0   234.0    540.0   256.0        669.0   2002.0
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

#加权
crosstabC(dv=TCS2015sc$S1.9.cat3, iv=TCS2015sc$edu.cat5,w=TCS2015sc$weight1,
          dvlabs = c("不同意", "无所谓", "同意"),
          ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
          digits = 1,
          plot = TRUE,
          plot.response="all",
          compact = T,
          printC=T)
## ===========================================================================
##                          Cross-Tabulation Analysis
## ===========================================================================
## 
## 
## Table: Cross-Tabulation of TCS2015sc$S1.9.cat3 and TCS2015sc$edu.cat5, weighted by TCS2015sc$weight1
## 
##             小学及以下    初中   高中职    专科   本科及以上   Totals
## ---------  -----------  ------  -------  ------  -----------  -------
## % 不同意           8.2    13.3     17.6    13.6         12.5     13.4
## % 无所谓          53.9    25.7     15.4    15.2         12.5     21.0
## % 同意            37.8    61.0     66.9    71.3         75.0     65.5
## Count            291.1   219.0    525.8   246.9        719.1   2002.0
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

3.2.2 方法二:sjPlot::tab_xtab

3.2.2.0.1 呈现百分比:表
#原始未加权
library(sjPlot)#调用sjPlot套件
## Install package "strengejacke" from GitHub (`devtools::install_github("strengejacke/strengejacke")`) to load all sj-packages at once!
tab_xtab(TCS2015sc$S1.9.cat3, TCS2015sc$edu.cat5,
         #row左邊S1.9.cat3    #col上面edu.cat5
         show.col.prc = TRUE,#show col %
         show.summary = FALSE) 
因为有网路,一般人在政治上可以有更大的影响力 受教育程度五分类 Total
小学及以下 初中 高中职 专科 本科及以上
不同意 27
8.9 %
31
13.2 %
94
17.4 %
36
14.1 %
80
12 %
268
13.4 %
无所谓 159
52.5 %
61
26.1 %
83
15.4 %
36
14.1 %
82
12.3 %
421
21 %
同意 117
38.6 %
142
60.7 %
363
67.2 %
184
71.9 %
507
75.8 %
1313
65.6 %
Total 303
100 %
234
100 %
540
100 %
256
100 %
669
100 %
2002
100 %
#加权
library(sjPlot)#调用sjPlot套件
tab_xtab(TCS2015sc$S1.9.cat3, TCS2015sc$edu.cat5,weight.by = TCS2015sc$weight1,
         #row左邊S1.9.cat3    #col上面edu.cat5
         show.col.prc = TRUE,#show col %
        show.summary = FALSE) 
因为有网路,一般人在政治上可以有更大的影响力 受教育程度五分类 Total
小学及以下 初中 高中职 专科 本科及以上
不同意 24
8.2 %
29
13.2 %
93
17.7 %
34
13.8 %
90
12.5 %
270
13.5 %
无所谓 157
54 %
56
25.6 %
81
15.4 %
37
15 %
90
12.5 %
421
21 %
同意 110
37.8 %
134
61.2 %
352
66.9 %
176
71.3 %
540
75 %
1312
65.5 %
Total 291
100 %
219
100 %
526
100 %
247
100 %
720
100 %
2003
100 %

3.2.2.1 呈现百分比:图

library(sjPlot)#调用sjPlot套件
library(ggplot2)
theme_set(theme_bw())#黑白主题

#原始未加权
plot_xtab(TCS2015sc$edu.cat5,  TCS2015sc$S1.9.cat3, #使用plot_xtab函数绘图
          #x軸自变量edu.cat5   #Y軸因变量S1.9.cat3
          geom.colors = "gs",# gray scale #黑白图
          type = "bar",  #呈现条形图 
          margin = "row") #呈现row% (自变量所在的%)

#加权
plot_xtab(TCS2015sc$edu.cat5,  TCS2015sc$S1.9.cat3, #使用plot_xtab函数绘图
          #x軸自变量edu.cat5   #Y軸因变量S1.9.cat3
          weight.by = TCS2015sc$weight1, #加权
          geom.colors = "gs",# gray scale #黑白图
          type = "bar",  #呈现条形图 
          margin = "row") #呈现row% (自变量所在的%),

3.3 平均数比较(依:连续;自:类别)

3.3.1 方法一:RCPA3::compmeansC

3.3.1.1 bar chart

#原始未加权
library(RCPA3)
#H4.5. 請你就下列媒体所报导的新闻的整体表现给一个分数-网路
compmeansC(dv=TCS2015sc$H4.5, iv=TCS2015sc$edu.cat5,
           ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
           plot="bar",
           printC=T)
## ===========================================================================
##                          Mean Comparison Analysis
## ===========================================================================
## 
## 
## Table: Mean Values of TCS2015sc$H4.5 by TCS2015sc$edu.cat5
## 
##                Mean      N   St. Dev.
## -----------  ------  -----  ---------
## 小学及以下    51.56     25      25.44
## 初中          57.10    103      21.93
## 高中职        59.29    434      17.47
## 专科          59.06    237      17.57
## 本科及以上    62.05    644      17.61
## Total         60.19   1443      18.14
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

#加权
compmeansC(dv=TCS2015sc$H4.5, iv=TCS2015sc$edu.cat5, w=TCS2015sc$weight1,
           ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
           plot="bar",
           printC=T)
## ===========================================================================
##                          Mean Comparison Analysis
## ===========================================================================
## 
## 
## Table: Mean Values of TCS2015sc$H4.5 by TCS2015sc$edu.cat5, Weighted by TCS2015sc$weight1
## 
##                Mean         N   St. Dev.
## -----------  ------  --------  ---------
## 小学及以下    50.02     21.82      26.28
## 初中          57.57     98.57      22.08
## 高中职        59.34    428.15      17.81
## 专科          59.16    226.86      17.58
## 本科及以上    62.02    694.51      17.50
## Total         60.32   1469.92      18.18
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

3.3.1.2 line chart

#原始未加权
compmeansC(dv=TCS2015sc$H4.5, iv=TCS2015sc$edu.cat5,
           ivlabs = c("小学及以下","初中","高中职",
                      "专科","本科及以上"),
           plot="line",
           printC=T)
## ===========================================================================
##                          Mean Comparison Analysis
## ===========================================================================
## 
## 
## Table: Mean Values of TCS2015sc$H4.5 by TCS2015sc$edu.cat5
## 
##                Mean      N   St. Dev.
## -----------  ------  -----  ---------
## 小学及以下    51.56     25      25.44
## 初中          57.10    103      21.93
## 高中职        59.29    434      17.47
## 专科          59.06    237      17.57
## 本科及以上    62.05    644      17.61
## Total         60.19   1443      18.14
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

#加权
compmeansC(dv=TCS2015sc$H4.5, iv=TCS2015sc$edu.cat5, w=TCS2015sc$weight1,
           ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
           plot="line",
           printC=T)
## ===========================================================================
##                          Mean Comparison Analysis
## ===========================================================================
## 
## 
## Table: Mean Values of TCS2015sc$H4.5 by TCS2015sc$edu.cat5, Weighted by TCS2015sc$weight1
## 
##                Mean         N   St. Dev.
## -----------  ------  --------  ---------
## 小学及以下    50.02     21.82      26.28
## 初中          57.57     98.57      22.08
## 高中职        59.34    428.15      17.81
## 专科          59.16    226.86      17.58
## 本科及以上    62.02    694.51      17.50
## Total         60.32   1469.92      18.18
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

3.3.2 方法二:sjstats::grpmean

#原始未加权
library(sjstats)
grpmean(TCS2015sc,H4.5, edu.cat5)
## 
## # Grouped Means for H4.5. 請你就下列媒体所报导的新闻的整体表现给一个分数-网路 by 受教育程度五分类
## 
## Category   |  Mean |    N |    SD |   SE |      p
## -------------------------------------------------
## 小学及以下 | 51.56 |   25 | 25.44 | 5.09 |  0.082
## 初中       | 57.10 |  103 | 21.93 | 2.16 |  0.661
## 高中职     | 59.29 |  434 | 17.47 | 0.84 |  0.295
## 专科       | 59.06 |  237 | 17.57 | 1.14 |  0.399
## 本科及以上 | 62.05 |  644 | 17.61 | 0.69 | < .001
## Total      | 60.19 | 1443 | 18.14 | 0.48 |       
## 
## Anova: R2=0.012; adj.R2=0.009; F=4.379; p=0.002
#加权
library(sjstats)
grpmean(TCS2015sc,H4.5, edu.cat5, weights = weight1, out="v")
Mean for H4.5. 請你就下列媒体所报导的新闻的整体表现给一个分数-网路 by 受教育程度五分类
term mean N std.dev std.error p.value
小学及以下 50.02 22 26.28 5.26 0.04
初中 57.57 99 22.08 2.18 0.97
高中职 59.34 428 17.81 0.85 0.23
专科 59.16 227 17.58 1.14 0.30
本科及以上 62.02 695 17.50 0.69 0.00
Total 60.32 1443 18.18 0.48 NA
Anova: R2=0.012; adj.R2=0.009; F=4.346; p=0.002

4 比较+控制变量

4.1 百分比交叉比较

#双类别变量交叉比较(加权)
library(RCPA3)
crosstabC(dv=TCS2015sc$S1.9.cat3, iv=TCS2015sc$edu.cat5,w=TCS2015sc$weight1,
          dvlabs = c("不同意", "无所谓", "同意"),
          ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
          digits = 1,
          plot = TRUE,
          plot.response="all", 
          compact = T,
          printC=T)
## ===========================================================================
##                          Cross-Tabulation Analysis
## ===========================================================================
## 
## 
## Table: Cross-Tabulation of TCS2015sc$S1.9.cat3 and TCS2015sc$edu.cat5, weighted by TCS2015sc$weight1
## 
##             小学及以下    初中   高中职    专科   本科及以上   Totals
## ---------  -----------  ------  -------  ------  -----------  -------
## % 不同意           8.2    13.3     17.6    13.6         12.5     13.4
## % 无所谓          53.9    25.7     15.4    15.2         12.5     21.0
## % 同意            37.8    61.0     66.9    71.3         75.0     65.5
## Count            291.1   219.0    525.8   246.9        719.1   2002.0
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

#本科以上不同意-小学以下不同意:12.5-8.2=4.3

4.2 百分比交叉比较+控制变量(nominal/ordinal)+ Cluster Bar Chart

#控制变量:sex:性别(male. female)
crosstabC(dv=TCS2015sc$S1.9.cat3, iv=TCS2015sc$edu.cat5,z=TCS2015sc$sex,
          w=TCS2015sc$weight1,
          dvlabs = c("不同意", "无所谓", "同意"),
          ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
          zlabs = c("男性","女性"),
          digits = 1,
          plot.response="不同意",
          plot = "bar",
          compact = T,
          printC=T)
## ===========================================================================
##                    Controlled Cross-Tabulation Analysis
## ===========================================================================
## 
## 
## Table: Cross-Tabulation of TCS2015sc$S1.9.cat3 and TCS2015sc$edu.cat5, controlling for TCS2015sc$sex, weighted by TCS2015sc$weight1
## 
##             男性: 小学及以下    初中   高中职    专科   本科及以上   女性: 小学及以下    初中   高中职    专科   本科及以上   | Totals
## ---------  -----------------  ------  -------  ------  -----------  -----------------  ------  -------  ------  -----------  ---------
## % 不同意                 5.6    14.3     16.3    13.6         11.8                9.8    12.2     18.9    13.6         13.3       13.4
## % 无所谓                51.0    25.9     15.6    14.2         12.9               55.6    25.4     15.2    16.1         12.0       21.0
## % 同意                  43.5    59.8     68.2    72.2         75.4               34.6    62.4     65.8    70.4         74.7       65.5
## Count                  105.7   115.9    253.8   122.7        390.4              185.4   103.2    272.0   124.2        328.8     2002.0
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

#"cluster bar chart":维持控制变量(X轴变量)不变,比较"自变量"对因变量的影响  
#原本的差距关系,本科以上不同意-小学以下不同意:12.5-8.2=4.3
#控制Z性別因素後,在「不同意」方面,
#男性:本科以上不同意-小学以下不同意=  11.8-5.6=6.2
#女性:本科以上不同意-小学以下不同意=  13.6-9.8=3.8
#原本的差距关系(4.3)并未明显减弱或消失,且维持相同影响方向
#结论1.排除教育程度*网路政治影响力的虚伪关系假设

4.3 百分比交叉比较+控制变量(nominal/ordinal)+ Multi Line Chart

crosstabC(dv=TCS2015sc$S1.9.cat3, iv=TCS2015sc$edu.cat5,z=TCS2015sc$sex,
          w=TCS2015sc$weight1,
          dvlabs = c("不同意", "无所谓", "同意"),
          ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
          zlabs = c("男性","女性"),
          digits = 1,
          plot = "line",
          plot.response="不同意",
          compact = T,
          printC=T)
## ===========================================================================
##                    Controlled Cross-Tabulation Analysis
## ===========================================================================
## 
## 
## Table: Cross-Tabulation of TCS2015sc$S1.9.cat3 and TCS2015sc$edu.cat5, controlling for TCS2015sc$sex, weighted by TCS2015sc$weight1
## 
##             男性: 小学及以下    初中   高中职    专科   本科及以上   女性: 小学及以下    初中   高中职    专科   本科及以上   | Totals
## ---------  -----------------  ------  -------  ------  -----------  -----------------  ------  -------  ------  -----------  ---------
## % 不同意                 5.6    14.3     16.3    13.6         11.8                9.8    12.2     18.9    13.6         13.3       13.4
## % 无所谓                51.0    25.9     15.6    14.2         12.9               55.6    25.4     15.2    16.1         12.0       21.0
## % 同意                  43.5    59.8     68.2    72.2         75.4               34.6    62.4     65.8    70.4         74.7       65.5
## Count                  105.7   115.9    253.8   122.7        390.4              185.4   103.2    272.0   124.2        328.8     2002.0
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

#Multiple line chart:维持自变量(X轴变量)不变,比较不同"控制变量"组别对因变量的影响 
#比cluster bar图来的好,在作控制组比较时,建议使用Multiple line chart
#控制Z性别因素後,在「不同意」方面,
#小学及以下:男性-女性=5.6-9.8= -4.2 负
#初中:男性-女性=14.3-12.2= 2.1 正
#高中职:男性-女性=16.3-18.9= -2.6 负
#专科:男性-女性=13.6-13.6=0 
#大学及以上:男性-女性=11.8-13.3= -1.5 负
#就图形来看,在控制组(男生组的线和女生组)的线,并未呈平行
#代表有交互作用存在
#结论2教育程度*网路政治影响力,在"不同意"的意见方面,
#为因为「性别」的不同,而呈现一种交互调节关系(正负交错)
#(看multiple line chart)

crosstabC(dv=TCS2015sc$S1.9.cat3, iv=TCS2015sc$edu.cat5,z=TCS2015sc$sex,
          w=TCS2015sc$weight1,
          dvlabs = c("不同意", "无所谓", "同意"),
          ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
          zlabs = c("男性","女性"),
          digits = 1,
          plot = "line",
          plot.response="同意",
          compact = T,
          printC=T)
## ===========================================================================
##                    Controlled Cross-Tabulation Analysis
## ===========================================================================
## 
## 
## Table: Cross-Tabulation of TCS2015sc$S1.9.cat3 and TCS2015sc$edu.cat5, controlling for TCS2015sc$sex, weighted by TCS2015sc$weight1
## 
##             男性: 小学及以下    初中   高中职    专科   本科及以上   女性: 小学及以下    初中   高中职    专科   本科及以上   | Totals
## ---------  -----------------  ------  -------  ------  -----------  -----------------  ------  -------  ------  -----------  ---------
## % 不同意                 5.6    14.3     16.3    13.6         11.8                9.8    12.2     18.9    13.6         13.3       13.4
## % 无所谓                51.0    25.9     15.6    14.2         12.9               55.6    25.4     15.2    16.1         12.0       21.0
## % 同意                  43.5    59.8     68.2    72.2         75.4               34.6    62.4     65.8    70.4         74.7       65.5
## Count                  105.7   115.9    253.8   122.7        390.4              185.4   103.2    272.0   124.2        328.8     2002.0
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

#Multiple line chart:维持自变量(X轴变量)不变,比较不同"控制变量"组别对因变量的影响    
#控制Z性别因素後,在「同意」方面,
#小学及以下:男性-女性=43.5-34.6= 8.9 正
#初中:男性-女性=59.8-62.4= -2.6  负
#高中职:男性-女性=68.2-65.8= 2.4 正
#专科:男性-女性=72.2-70.4= 1.8正
#大学及以上:男性-女性=75.4=74.7= 0.7 正
#就图形来看,在控制组(男生组的线和女生组)的线,并未呈平行
#代表有交互作用存在
#结论2教育程度*网路政治影响力一种交互调节关系(正负交错)(看multiple line chart)

#Legend的调整修正
?legend #查看完整说明,位置,颜色,线条粗细,线条实虚线
?RCPA3:: lineType#Colors(), lineType(), plotChar()

4.4 百分比交叉比较+控制变量(nominal/ordinal)+ Mosaic Chart

crosstabC(dv=TCS2015sc$S1.9.cat3, iv=TCS2015sc$edu.cat5,z=TCS2015sc$sex,
          w=TCS2015sc$weight1,
          dvlabs = c("不同意", "无所谓", "同意"),
          ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
          zlabs = c("男性","女性"),
          digits = 1,
          plot = "mosaic",
          compact = T,
          printC=T)
## ===========================================================================
##                    Controlled Cross-Tabulation Analysis
## ===========================================================================
## 
## 
## Table: Cross-Tabulation of TCS2015sc$S1.9.cat3 and TCS2015sc$edu.cat5, controlling for TCS2015sc$sex, weighted by TCS2015sc$weight1
## 
##             男性: 小学及以下    初中   高中职    专科   本科及以上   女性: 小学及以下    初中   高中职    专科   本科及以上   | Totals
## ---------  -----------------  ------  -------  ------  -----------  -----------------  ------  -------  ------  -----------  ---------
## % 不同意                 5.6    14.3     16.3    13.6         11.8                9.8    12.2     18.9    13.6         13.3       13.4
## % 无所谓                51.0    25.9     15.6    14.2         12.9               55.6    25.4     15.2    16.1         12.0       21.0
## % 同意                  43.5    59.8     68.2    72.2         75.4               34.6    62.4     65.8    70.4         74.7       65.5
## Count                  105.7   115.9    253.8   122.7        390.4              185.4   103.2    272.0   124.2        328.8     2002.0
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

#Mosaic chart:维持自变量(X轴变量)不变,比较不同"控制变量"组别对因变量的影响    
#控制Z性别因素後,在「同意」方面,
#就图形来看,在控制组(男生组的线和女生组)的条形图曲线,并未呈平行
#代表有交互作用存在

4.5 百分比交叉比较+控制变量(interval)+Cluster Bar Chart

#将控制变量(数字变量),切割成等量样本数的n组
#"H4.5.请你就下列媒体所报导新闻的整体表现给一个分数-网络"(0~100)
library(RCPA3)
TCS2015sc$H4.5.cat3<-transformC(type="cut",  x=TCS2015sc$H4.5,
 groups=3, confirm=F)
#进行比较
crosstabC(dv=TCS2015sc$S1.9.cat3, iv=TCS2015sc$edu.cat5,z=TCS2015sc$H4.5.cat3,
          w=TCS2015sc$weight1,
          dvlabs = c("不同意", "无所谓", "同意"),
          ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
          #zlabs = c("低评价","中评价", "高评价"),
          main="网路可以提高一般人民的政治影响力:同意% by 教育程度,   
                控制变量:网路新闻评价分数三分类",
          xlab="教育程度",
          ylab="网路可以提高一般人民的政治影响力:同意%",
          legend.title = "网路新闻评价分数",
          digits = 1,
          plot = "bar",
          plot.response="同意",
          compact = T,
          printC=T)
## ===========================================================================
##                    Controlled Cross-Tabulation Analysis
## ===========================================================================
## 
## 
## Table: Cross-Tabulation of TCS2015sc$S1.9.cat3 and TCS2015sc$edu.cat5, controlling for TCS2015sc$H4.5.cat3, weighted by TCS2015sc$weight1
## 
##             [ 0, 51): 小学及以下   初中   高中职   专科   本科及以上   [51, 71): 小学及以下   初中   高中职    专科   本科及以上   [71,100]: 小学及以下   初中   高中职   专科   本科及以上   | Totals
## ---------  ---------------------  -----  -------  -----  -----------  ---------------------  -----  -------  ------  -----------  ---------------------  -----  -------  -----  -----------  ---------
## % 不同意                     0.0   10.9     21.1   17.8         14.6                   33.5   18.7     16.2    11.7         13.4                   34.7   10.6     13.0   14.2         10.5       14.6
## % 无所谓                    48.8    6.5     19.4   10.7         12.5                    9.5   14.7      6.0    16.3         11.3                    0.0   15.9     19.5   10.6         13.2       13.0
## % 同意                      51.2   82.6     59.5   71.5         72.9                   57.0   66.6     77.8    72.0         75.4                   65.3   73.4     67.5   75.2         76.3       72.4
## Count                        9.2   41.8    162.6   79.2        209.3                   10.2   34.4    173.2   102.5        290.3                    2.4   22.3     92.4   45.1        194.9     1469.9
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

#"cluster bar chart":维持控制变量(X轴变量)不变,比较"自变量"对因变量的影响    
#控制Z性别因素後,在「同意」方面,
#就图形来看,在控制组(低中高三组)的条形图曲线,并未呈平行
#代表有交互作用存在

4.6 百分比交叉比较+控制变量(interval)+Multi Line Chart

#将控制变量(数字变量),切割成等量样本数的n组
TCS2015sc$H4.5.cat3<-transformC(type="cut",  x=TCS2015sc$H4.5,
 groups=3, confirm=F)
#进行比较
crosstabC(dv=TCS2015sc$S1.9.cat3, iv=TCS2015sc$edu.cat5,z=TCS2015sc$H4.5.cat3,
          w=TCS2015sc$weight1,
          dvlabs = c("不同意", "无所谓", "同意"),
          ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
          #zlabs = c("低评价","中评价", "高评价"),
          main="网路可以提高一般人民的政治影响力:同意% by 教育程度,   
                控制变量:网路新闻评价分数",
          xlab="教育程度",
          ylab="网路可以提高一般人民的政治影响:同意%",
          legend.title = "网路新闻评价分数",
          digits = 1,
          plot = "line",
          plot.response="同意",
          compact = T,
          printC=T)
## ===========================================================================
##                    Controlled Cross-Tabulation Analysis
## ===========================================================================
## 
## 
## Table: Cross-Tabulation of TCS2015sc$S1.9.cat3 and TCS2015sc$edu.cat5, controlling for TCS2015sc$H4.5.cat3, weighted by TCS2015sc$weight1
## 
##             [ 0, 51): 小学及以下   初中   高中职   专科   本科及以上   [51, 71): 小学及以下   初中   高中职    专科   本科及以上   [71,100]: 小学及以下   初中   高中职   专科   本科及以上   | Totals
## ---------  ---------------------  -----  -------  -----  -----------  ---------------------  -----  -------  ------  -----------  ---------------------  -----  -------  -----  -----------  ---------
## % 不同意                     0.0   10.9     21.1   17.8         14.6                   33.5   18.7     16.2    11.7         13.4                   34.7   10.6     13.0   14.2         10.5       14.6
## % 无所谓                    48.8    6.5     19.4   10.7         12.5                    9.5   14.7      6.0    16.3         11.3                    0.0   15.9     19.5   10.6         13.2       13.0
## % 同意                      51.2   82.6     59.5   71.5         72.9                   57.0   66.6     77.8    72.0         75.4                   65.3   73.4     67.5   75.2         76.3       72.4
## Count                        9.2   41.8    162.6   79.2        209.3                   10.2   34.4    173.2   102.5        290.3                    2.4   22.3     92.4   45.1        194.9     1469.9
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

#Multiple line chart:维持自变量(X轴变量)不变,比较不同"控制变量"组别对因变量的影响    
#控制Z性别因素後,在「同意」方面,
#就图形来看,在控制组(低中高三组)的条形图曲线,并未呈平行,
#代表有交互作用存在

4.7 平均数比较

#加权
compmeansC(dv=TCS2015sc$H4.5, iv=TCS2015sc$edu.cat5, w=TCS2015sc$weight1,
           ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
            compact = T,
            printC=T)
## ===========================================================================
##                          Mean Comparison Analysis
## ===========================================================================
## 
## 
## Table: Mean Values of TCS2015sc$H4.5 by TCS2015sc$edu.cat5, Weighted by TCS2015sc$weight1
## 
##                Mean         N   St. Dev.
## -----------  ------  --------  ---------
## 小学及以下    50.02     21.82      26.28
## 初中          57.57     98.57      22.08
## 高中职        59.34    428.15      17.81
## 专科          59.16    226.86      17.58
## 本科及以上    62.02    694.51      17.50
## Total         60.32   1469.92      18.18
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

4.8 平均数比较+控制变量-nominal/ordinal(Cluster Bar Chart)

compmeansC(dv=TCS2015sc$H4.5, iv=TCS2015sc$edu.cat5, z=TCS2015sc$sex,
           w=TCS2015sc$weight1,
           ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
           zlabs = c("男", "女"),
           main="网路新闻报导评价平均分数 by 教育程度, 控制性别",
           xlab="性别",
           legend.title = "教育程度",
           ylab="网路新闻报导评价平均分数",
           plot="bar",
           compact = T,
           printC=T)
## ===========================================================================
##                     Controlled Mean Comparison Analysis
## ===========================================================================
## 
## 
## Table: Comparison of TCS2015sc$H4.5 Means by TCS2015sc$edu.cat5, Controlling for TCS2015sc$sex, Weighted by TCS2015sc$weight1
## 
##               男 Mean   女 Mean
## -----------  --------  --------
## 小学及以下      48.49     50.87
## 初中            56.93     58.30
## 高中职          57.72     60.87
## 专科            58.93     59.39
## 本科及以上      62.15     61.87
## Total           59.94     60.72
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

4.9 平均数比较+控制变量-nominal/ordinal(Point Chart)

compmeansC(dv=TCS2015sc$H4.5, iv=TCS2015sc$edu.cat5, z=TCS2015sc$sex,
           w=TCS2015sc$weight1,
           ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
           zlabs = c("男", "女"),
           main="网路新闻报导评价平均分数 by 教育程度, 控制性别",
           xlab="性别",
           ylab="网路新闻报导评价平均分数",
           legend.title = "教育程度",
           plot="points",
           compact = T,
           printC=T)
## ===========================================================================
##                     Controlled Mean Comparison Analysis
## ===========================================================================
## 
## 
## Table: Comparison of TCS2015sc$H4.5 Means by TCS2015sc$edu.cat5, Controlling for TCS2015sc$sex, Weighted by TCS2015sc$weight1
## 
##               男 Mean   女 Mean
## -----------  --------  --------
## 小学及以下      48.49     50.87
## 初中            56.93     58.30
## 高中职          57.72     60.87
## 专科            58.93     59.39
## 本科及以上      62.15     61.87
## Total           59.94     60.72
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

4.10 平均数比较+控制变量-nominal/ordinal(Multi Line Chart)

compmeansC(dv=TCS2015sc$H4.5, iv=TCS2015sc$edu.cat5, z=TCS2015sc$sex,
           w=TCS2015sc$weight1,
           ivlabs = c("小学及以下","初中","高中职", "专科","本科及以上"),
           zlabs = c("男", "女"),
           main="网路新闻报导评价平均分数 by 教育程度, 控制性别",
           xlab="教育程度",
           ylab="网路新闻报导评价平均分数",
           legend.title = "性别",
           plot="line",
           compact = T,
           printC=T)
## ===========================================================================
##                     Controlled Mean Comparison Analysis
## ===========================================================================
## 
## 
## Table: Comparison of TCS2015sc$H4.5 Means by TCS2015sc$edu.cat5, Controlling for TCS2015sc$sex, Weighted by TCS2015sc$weight1
## 
##               男 Mean   女 Mean
## -----------  --------  --------
## 小学及以下      48.49     50.87
## 初中            56.93     58.30
## 高中职          57.72     60.87
## 专科            58.93     59.39
## 本科及以上      62.15     61.87
## Total           59.94     60.72
## Table appended to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514
## Image file added to Table.Output. 51423.html in /Users/simonfair/Desktop/闽南师范大学/量化培训班/(6)20230514

#Multiple line chart:维持自变量(X轴变量)不变,比较不同"控制变量"组别对因变量的影响    
#控制Z性别因素後,在「评价分数」方面,
#就图形来看,在控制组(男生组的线和女生组)的线图,略呈平行
#代表增加解释作用(additive)的存在
#在同样的教育水平下,女性比男性有较高的评价分数

5 补充

虚伪关系/交互作用/增加解释的辨认步骤

虚伪关系/交互作用/增加解释的图形示例

交互作用的各种样态示例

rm(list = ls())

6 本章小结

此处将本章所使用到的R套件与函数摘录如下表,供学习者快速查阅。

套件 函数 说明
RCPA3 crosstabC(,plot=“bar”) 交叉分析百分比频次表+条形图   
      crosstabC(,plot=“line”) 交叉分析百分比频次表+线图    
       crosstabC(,plot=“mosaic”) 交叉分析百分比频次表+马赛克图  
compmeansC(,plot=“bar”) 各组平均数表+条形图       
compmeansC(,plot=“line”) 各组平均数表+线图        
compmeansC(,plot=“points”) 各组平均数表+散点图       
transformC(type=“cut”, x, groups=n) 将连续变量等量切割成n组
sjmisc attributes() 呈现变量的levels, class, labels, label
sjstats grpmean() 分组平均数           
sjPlot tab_xtab 交叉分析百分比频次表       
plot_xtab 交叉分析百分比条形图
ggplot2 theme_set(theme_bw()) 将图形底图设置为黑白底图

7 本讲参考文献

Pullock,Philip H. III, & Edwards, Barry C. (2022). An R companion to political analysis (3rd ed.). Thousand Oaks, CA: SAGE Publications & CQ Press. Ch4,Ch7.

Pullock,Philip H.III, & Edwards, Barry C. (2020).The essentials of politicl analysis (6th ed.). Thousand Oaks, CA: SAGE Publications & CQ Press. Ch5, PP.134-166.