查看原文
其他

R语言和医学统计学系列(1):t检验

阿越就是我 医学和生信笔记 2023-02-25


前言

本期开始将推送使用R语言进行医学统计学的相关内容。

使用R语言进行统计学是我学习R语言最开始的初衷,没想到从此一发不可收拾,打开了新世界的大门。这个系列也是我最开始学习R语言时的笔记。希望对大家有帮助。

主要是用R语言复现课本中的例子。我使用的课本是孙振球主编的《医学统计学》第4版,封面如下:

课本封面

我的研究生课程并没有把整本书的全部学完,只学习了其中的一部分,因此本系列也是只针对其中学过的部分进行复现。另外对于统计描述部分也不在这里探讨。

t检验

t检验主要适用于1组或2组的均数的比较,要求数据符合正态性和方差齐性。关于t检验的本质问题本文不做过多探讨,只是学习如何用R语言实现t检验!

在R中进行t检验非常简单,就是t.test()函数,不管是单样本、两样本都是这一个函数。使用R语言进行统计学比SPSS好的一点是,当你需要使用某种检验时,直接打出这个检验的名字一般就会跳出来相关的函数,而我在学习使用SPSS进行各种统计检验时,可能更多的是关注如何点点点(鼠标点击菜单),不利于记住哪种情况使用什么方法。

单样本t检验

使用课本例3-5的数据。

首先是读取数据,可以自己录入,也可以使用课本光盘里的数据,我这里直接使用了光盘里的数据。

# 使用foreign包读取SPSS数据

library(foreign)

df <- read.spss('E:/各科资料/医学统计学/研究生课程/3总体均数的估计与假设检验18-9研/例03-05.sav',to.data.frame = T)

head(df)
数据基本格式

数据一共两列,第1列是编号,第二列是血红蛋白值,一共有36行。

进行单样本t检验,并与140进行比较:

st <- t.test(df$hb,mu=140,alternative = 'two.sided'# 双侧检验

st


 One Sample t-test

data:  df$hb
t = -2.1367, df = 35, p-value = 0.03969
alternative hypothesis: true mean is not equal to 140
95 percent confidence interval:
 122.1238 139.5428
sample estimates:
mean of x 
 130.8333 

结果显示t=-2.1367,自由度df=35,p=0.03969,和课本一致。

配对样本t检验

使用课本例3-6的数据。

首先是读取数据。

library(foreign)

df <- read.spss('D:/各科资料/医学统计学/研究生课程/3总体均数的估计与假设检验18-9研/例03-06.sav',to.data.frame = T)

head(df)
数据情况

数据一共3列10行,第1列是样本编号,第2列和第3列是要比较的值。

进行配对样本t检验:

pt <- t.test(df$x1,df$x2,paired = T,var.equal = T# 配对样本t检验

pt

    Paired t-test

data:  df$x1 and df$x2
t = 7.926, df = 9, p-value = 2.384e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 0.1946542 0.3501458
sample estimates:
mean of the differences 
                 0.2724 

结果显示t=7.926,自由度df=9,p<0.001,结果和课本一致。

两样本t检验

使用课本例3-7的数据。

首先是读取数据。

library(foreign)

df <- read.spss('E:/各科资料/医学统计学/研究生课程/3总体均数的估计与假设检验18-9研/例03-07.sav',to.data.frame = T)

df$group <- c(rep('阿卡波糖',20),rep('拜糖平',20))

head(df)
数据情况

一共有3列40行,第1列是编号,第2列是血糖值,第3列是组别(阿卡波糖组和拜糖平组,每组20个人)。

进行两样本t检验:

tt <- t.test(x ~ group, data = df, paired = F, var.equal = T# 可以看到与配对样本t检验的写法稍有不同,其实都可以,主要是看数据结构

tt

   Two Sample t-test

data:  x by group
t = -0.64187, df = 38, p-value = 0.5248
alternative hypothesis: true difference in means between group 阿卡波糖 and group 拜糖平 is not equal to 0
95 percent confidence interval:
 -2.326179  1.206179
sample estimates:
mean in group 阿卡波糖   mean in group 拜糖平 
                 2.065                  2.625 

结果显示t=-0.64187,自由度df=38,p=0.5248,结果和课本一致。

以上就是使用R语言进行t检验的例子,希望对大家有帮助,如果有任何问题欢迎评论区留言或直接与我联系。

欢迎关注我的公众号:医学和生信笔记

医学和生信笔记 公众号主要分享:1.医学小知识、肛肠科小知识;2.R语言和Python相关的数据分析、可视化、机器学习等;3.生物信息学学习资料和自己的学习笔记!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存