作业4参考答案

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检验结果表
谈过或者正在谈 (N=496)
没谈过 (N=3381)
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数据.")

近视情况

组间平方和

组内平方和

组间自由度

组内自由度

F值

p值

p<.05

ges

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. 学生胖瘦情况与恋爱经历之间的卡方检验表
你有过谈恋爱的经历吗 Total p-value1
谈过或者正在谈 没谈过
你觉得自己身材胖瘦如何 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%)
1 Pearson's Chi-squared test
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)
[1] -0.12354
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数据."
)