R语言多个变量同时进行t检验或方差分析

本文首发于公众号:医学和生信笔记,完美观看体验请至公众号查看本文。

医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化。

简介

虽然说是同时进行t检验,但是这是一种通用的方法,当然也可以同时进行方差分析、正态性检验、方差齐性检验、秩和检验等等。

在spss中进行这些检验时,不管有多少列变量,只要都选中,就可以一次全部进行检验,在R语言里当然也可以!

主要是通过rstatix这个包完成,数据格式要求是长数据,或者说整洁数据。

实战

下面通过一个例子进行说明,可能有些不太适当,只是演示使用方法。

60个病人随机分为实验组和对照组,每组30人,记录患者的4项评分,现在需要对这4项评分同时进行正态性和方差齐性检验和t检验(可能不符合t检验的条件,这里只是演示方法)。

df <- read.csv("../000files/20210801.csv",header = T)

str(df)
## 'data.frame':	60 obs. of  5 variables:
##  $ 组别    : chr  "实验组" "实验组" "实验组" "实验组" ...
##  $ 排便困难: int  12 11 15 14 11 13 11 14 13 15 ...
##  $ 生活质量: int  87 94 95 85 101 91 84 89 84 92 ...
##  $ 粪便性状: int  2 3 2 2 3 3 3 3 3 3 ...
##  $ 排便时间: int  2 2 2 2 2 2 2 3 2 2 ...

df这样的数据不是整洁数据,首先变成整洁数据:

suppressMessages(library(tidyverse))

df_l <- df %>% 
  pivot_longer(cols = 2:5, names_to = "变量", values_to = "积分") %>% 
  dplyr::mutate_if(is.character, as.factor)

str(df_l)
## tibble [240 x 3] (S3: tbl_df/tbl/data.frame)
##  $ 组别: Factor w/ 2 levels "对照组","实验组": 2 2 2 2 2 2 2 2 2 2 ...
##  $ 变量: Factor w/ 4 levels "粪便性状","排便困难",..: 2 4 1 3 2 4 1 3 2 4 ...
##  $ 积分: int [1:240] 12 87 2 2 11 94 3 2 15 95 ...

同时进行正态性检验:

library(rstatix)
## 
## 载入程辑包:'rstatix'
## The following object is masked from 'package:stats':
## 
##     filter

df_l %>% group_by(变量,组别) %>% shapiro_test(积分)
## # A tibble: 8 x 5
##   组别   变量     variable statistic        p
##   <fct>  <fct>    <chr>        <dbl>    <dbl>
## 1 对照组 粪便性状 积分         0.452 1.73e- 9
## 2 实验组 粪便性状 积分         0.404 5.98e-10
## 3 对照组 排便困难 积分         0.871 1.78e- 3
## 4 实验组 排便困难 积分         0.915 1.95e- 2
## 5 对照组 排便时间 积分         0.577 3.91e- 8
## 6 实验组 排便时间 积分         0.597 6.64e- 8
## 7 对照组 生活质量 积分         0.974 6.47e- 1
## 8 实验组 生活质量 积分         0.962 3.46e- 1

方差齐性检验:

df_l %>% group_by(变量) %>% levene_test(积分 ~ 组别)
## # A tibble: 4 x 5
##   变量       df1   df2 statistic      p
##   <fct>    <int> <int>     <dbl>  <dbl>
## 1 粪便性状     1    58    0.127  0.723 
## 2 排便困难     1    58    0.226  0.636 
## 3 排便时间     1    58    0.0746 0.786 
## 4 生活质量     1    58    3.96   0.0514

t检验:

df_l %>% group_by(变量) %>% t_test(积分 ~ 组别)
## # A tibble: 4 x 9
##   变量     .y.   group1 group2    n1    n2 statistic    df     p
## * <fct>    <chr> <chr>  <chr>  <int> <int>     <dbl> <dbl> <dbl>
## 1 粪便性状 积分  对照组 实验组    30    30   -0.356   57.5 0.723
## 2 排便困难 积分  对照组 实验组    30    30    0.0890  57.4 0.929
## 3 排便时间 积分  对照组 实验组    30    30   -0.273   58.0 0.786
## 4 生活质量 积分  对照组 实验组    30    30   -0.101   52.4 0.92

非常方便,结果也是一目了然,再也不用羡慕SPSS的这一点了!

你又多了一个用R语言进行医学统计学的理由!

本文首发于公众号:医学和生信笔记,完美观看体验请至公众号查看本文。

医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化。

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多因子方差分析是用来检验不同因素对于某一变量的影响程度有无显著差异的方法。其中,spsst是一个常用的统计分析软件,可以用来进行多因子方差分析。 在spsst中进行多因子方差分析的步骤如下: 1. 打开spsst软件,并导入数据文件。 2. 选择“Analyze”菜单中的“General Linear Model”选项,然后选择“Univariate”(单变量)。 3. 在弹出的对话框中,将因变量(要被分析的变量)拖动到“Dependent Variable”(依赖变量)框中。将自变量(影响因素)拖动到“Fixed Factor(s)”(固定因素)框中。 4. 如果有交互作用(即两个或多个变量对因变量的影响不是独立的),则将这些自变量拖动到“Interactions”(交互作用)框中。 5. 点击“Options”按钮,选择“Descriptive Statistics”(描述统计)和“Tests of Between-Subjects Effects”(组间效应检验),然后点击“Continue”。 6. 点击“Plots”按钮,选择“Means Plot”(均值图)和“Interaction Plot”(交互作用图),然后点击“Continue”。 7. 点击“OK”按钮,开始进行分析。 在多因子方差分析中,主要需要关注的是“Tests of Between-Subjects Effects”(组间效应检验)部分的结果。这一部分会给出各个自变量对因变量的显著性检验结果。如果某个自变量对因变量有显著影响,则表明这个自变量与因变量之间存在显著的相关性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值