1.选语文成绩总分是120的群体,对比是否有恋爱经历的两类学生之间语文成绩的差异。生成一个格式友好的表格(hint: modelsummary::datasummary_balance()),并做必要标注;用ggstatsplot中的相关function做图直观表示二者的差异;对表与图呈现的结果进行解读。
library (tidyverse)
library (rio)
library (sjmisc)
library (here) # 仅是quarto文档中需要使用here()命令打开、保存文件
library (showtext) # mac电脑调整字体,wins可不用
showtext_auto () # mac电脑调整字体,wins可不用
std <- import (here ("files/data/cepsw2studentCN.dta" ))
std1 <- std %>%
filter (w2upchn== 120 ) %>%
select (语文成绩= w2chn,w2d05) %>%
mutate (w2d05= to_label (w2d05))
library (modelsummary)
std1 %>%
datasummary_balance (~ w2d05,data = .,dinm_statistic = "p.value" ,
title = "表1. 恋爱组与非恋家组语文成绩T检验结果表" ,
notes = "数据来源:CEPS 2014-2015数据." )
表1. 恋爱组与非恋家组语文成绩T检验结果表
Mean
Std. Dev.
Mean
Std. Dev.
Diff. in Means
p
语文成绩
76.1
22.5
81.0
20.4
4.9
0.0
数据来源:CEPS 2014-2015数据.
library (ggstatsplot)
std1 %>% ggbetweenstats (x= w2d05,y= 语文成绩,
xlab= "恋爱与否" ,ylab= "语文成绩" ,
title = "学生语文成绩与恋爱与否之间的关系图" ,
caption = "数据来源:CEPS 2014-2015数据." )
2.请分析学生近视情况与学习认知能力标准分之间的关系,使用flextable对生成的表格作必要调整,并用ggstatsplot中的相关function做图直观表示二者之间的差异。对表与图呈现的结果进行解读。
std2 <- std %>%
select (w2c09,w2cog3pl) %>%
mutate (w2c09= to_label (w2c09)) %>%
drop_na ()
library (rstatix)
library (flextable)
std2 %>% anova_test (w2cog3pl ~ w2c09,detailed = TRUE ) %>%
# select(-ges) %>%
flextable () %>%
set_header_labels (Effect= "近视情况" ,SSn= "组间平方和" ,SSd= "组内平方和" ,
DFn= "组间自由度" ,DFd= "组内自由度" ,F= "F值" ,
p= "p值" ) %>%
colformat_double (j= c (2 ,3 ,6 ,7 )) %>%
set_caption ("表2.方差分析表" ) %>%
add_footer_lines ("数据来源:CEPS 2014-2015数据." )
w2c09
354.2
6,204.2
2
9,643
275.3
0.0
*
0.054
数据来源:CEPS 2014-2015数据.
std2 %>%
ggbetweenstats (x= w2c09,y= w2cog3pl,
xlab= "近视情况" ,ylab= "认知能力得分" ,
title = "学生认知能力与抑郁指数之间的关系图" ,
caption = "数据来源:CEPS 2014-2015数据." )
3.请分析个体胖瘦与恋爱经历之间是否有关系,做一分析表(hint: gt_summary::tbl_cross()),并用ggstatsplot中的相关function做图,对表与图中反映出的结果进行解读。
std3 <- std %>%
select (w2c03,w2d05) %>%
drop_na () %>%
mutate (w2c03= to_label (w2c03),
w2d05= to_label (w2d05))
library (gtsummary)
std3 %>% tbl_cross (w2c03,w2d05,percent = "row" ) %>%
add_p () %>%
modify_caption (
"表3. 学生胖瘦情况与恋爱经历之间的卡方检验表"
)
表3. 学生胖瘦情况与恋爱经历之间的卡方检验表
谈过或者正在谈
没谈过
你觉得自己身材胖瘦如何
0.003
很瘦
64 (15%)
366 (85%)
430 (100%)
有点瘦
224 (12%)
1,630 (88%)
1,854 (100%)
不胖不瘦
504 (13%)
3,322 (87%)
3,826 (100%)
有点胖
341 (11%)
2,842 (89%)
3,183 (100%)
很胖
46 (9.4%)
441 (91%)
487 (100%)
Total
1,179 (12%)
8,601 (88%)
9,780 (100%)
std3 %>% ggbarstats (y= w2c03,x= w2d05,
xlab= "胖瘦情况" ,
title = "图3.学生胖瘦情况与恋爱经历之间的卡方检验图" ,
caption= "数据来源:CEPS 2014-2015数据." )
4.取样本中上海的学生,计算学生认知能力标准分与学生抑郁指数(取c25题各项目得分的均值)之关的相关系数。用ggstatsplot中的相关function做一散点图,对上述分析结果进行解读。
std4 <- std %>%
select (w2cog3pl,w2c2501: w2c2510) %>%
drop_na () %>%
rowwise () %>%
mutate (m= mean (w2c2501: w2c2510))
cor (std4$ w2cog3pl,std4$ m)
std4 %>% ggscatterstats (
x = w2cog3pl,
y = m,
xlab = "认知能力得分" , ## label for the x-axis
ylab = "抑郁指数" , ## label for the y-axis
point.label.args = list (alpha = 0.7 , size = 4 , color = "grey50" ),
xfill = "#CC79A7" , ## fill for marginals on the x-axis
yfill = "#009E73" , ## fill for marginals on the y-axis
title = "学生认知能力与抑郁指数之间的关系图" ,
caption = "数据来源:CEPS 2014-2015数据."
)