各类统计方法R语言实现(四)

白介素2的读书笔记,分享临床科研干货,一起见证时间的力量



不知不觉就到第四期了,小伙伴们是否跟着我们的推文一起练习了呢?当然,统计光靠跑代码是不够的,还需要结合理论知识一同学习,可以边复习理论,边跟着我们的代码一同实践哦。

今天介绍的内容主要是变量变换和非参数检验

变量变换

当数据不满足正态性或方差齐性假设时,可以通过变量变化加以改善,即将原始数据做某种函数转换,让各组方差齐同、偏态资料正态化。但在变量转换后,在结果解释上没有原始测量变量直观。

常见的变量转换有:对数变换、平方根变换、反正弦变换、倒数变换。

(1)对数变换适用于

①原始数据效应是相乘的(类似对数正态分布),如抗体滴定、农药残余、环境中的有害物质含量、某些疾病的潜伏期等;

②各样本标准差与均数成比例或变异系数是常数或接近某一常数的资料。

(2)平方根变换适用于

①服从Poisson分布的资料(小概率,给定时间内响应变量为事件发生数目,如某年某地某发病率低的疾病的发生数)

②轻度偏态分布。

(3)反正弦变换:适用于率或百分比资料。

(4)倒数变换:适用于两端波动较大的资料。

对数变换

##首先生成对数正态分布数据
set.seed(123)
seq<-rlnorm(n=50,meanlog = 10, sdlog =1)
hist(seq)

img

shapiro.test(seq)
## 
##  Shapiro-Wilk normality test
## 
## data:  seq
## W = 0.73146, p-value = 3.18e-08
#对数变换

seq2<-log2(seq+1)
hist(seq2)

img

shapiro.test(seq2)
## 
##  Shapiro-Wilk normality test
## 
## data:  seq2
## W = 0.98927, p-value = 0.9278

平方根变换

##首先生成poisson分布数据
set.seed(123)
seq<-rpois(n=50,lambda =4)
hist(seq)

img

shapiro.test(seq)
## 
##  Shapiro-Wilk normality test
## 
## data:  seq
## W = 0.94575, p-value = 0.02288
#平方根变换
seq2<-sqrt(seq)
hist(seq2)

img

shapiro.test(seq2)
## 
##  Shapiro-Wilk normality test
## 
## data:  seq2
## W = 0.96679, p-value = 0.1708

反正弦变换&倒数变换

##暂无数据,此处仅演示

norm2<-rnorm(100,mean = 100, sd = 2)
seq=(norm2-min(norm2))/(max(norm2)-min(norm2))

#反正弦变换
seq2<-asin(seq)

#率或百分比资料还常用平方根反正弦变换
seq3<-asin(sqrt(seq))

##倒数变换
seq4<-1/seq

非参数检验

data(mtcars)
head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
#计算描述统计分析

mtcars$cyl<-as.factor(mtcars$cyl)
mtcars$vs<-as.factor(mtcars$vs)
mtcars$am<-as.factor(mtcars$am)
mtcars$gear<-as.factor(mtcars$gear)
mtcars$carb<-as.factor(mtcars$carb)

#计算描述统计分析
summary(mtcars)
##       mpg        cyl         disp             hp             drat      
##  Min.   :10.40   4:11   Min.   : 71.1   Min.   : 52.0   Min.   :2.760  
##  1st Qu.:15.43   6: 7   1st Qu.:120.8   1st Qu.: 96.5   1st Qu.:3.080  
##  Median :19.20   8:14   Median :196.3   Median :123.0   Median :3.695  
##  Mean   :20.09          Mean   :230.7   Mean   :146.7   Mean   :3.597  
##  3rd Qu.:22.80          3rd Qu.:326.0   3rd Qu.:180.0   3rd Qu.:3.920  
##  Max.   :33.90          Max.   :472.0   Max.   :335.0   Max.   :4.930  
##        wt             qsec       vs     am     gear   carb  
##  Min.   :1.513   Min.   :14.50   0:18   0:19   3:15   1: 7  
##  1st Qu.:2.581   1st Qu.:16.89   1:14   1:13   4:12   2:10  
##  Median :3.325   Median :17.71                 5: 5   3: 3  
##  Mean   :3.217   Mean   :17.85                        4:10  
##  3rd Qu.:3.610   3rd Qu.:18.90                        6: 1  
##  Max.   :5.424   Max.   :22.90                        8: 1

Wilco秩和检验

适用于两组之间比较,不满足正态分布或方差齐性条件

##两独立样本Wilco秩和检验
wilcox.test(mpg~am,data = mtcars,correct = FALSE)
## Warning in wilcox.test.default(x = c(21.4, 18.7, 18.1, 14.3, 24.4, 22.8, :
## cannot compute exact p-value with ties
## 
##  Wilcoxon rank sum test
## 
## data:  mpg by am
## W = 42, p-value = 0.001753
## alternative hypothesis: true location shift is not equal to 0
boxplot(mpg~am,data = mtcars)

img

##配对样本Wilco秩和检验

set.seed(123)
length(mtcars$mpg)
## [1] 32
sam<-sample(1:length(mtcars$mpg),size = length(mtcars$mpg)/2)
mpg1<-mtcars$mpg[sam]
mpg2<-mtcars$mpg[-sam]

wilcox.test(mpg1,mpg2,correct = FALSE,paired = T)
## Warning in wilcox.test.default(mpg1, mpg2, correct = FALSE, paired = T): cannot
## compute exact p-value with ties
## 
##  Wilcoxon signed rank test
## 
## data:  mpg1 and mpg2
## V = 83.5, p-value = 0.4227
## alternative hypothesis: true location shift is not equal to 0

K-W检验

适用于多组之间比较,不满足正态分布或方差齐性条件

#K-W检验
kruskal.test(mpg~cyl,data = mtcars)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  mpg by cyl
## Kruskal-Wallis chi-squared = 25.746, df = 2, p-value = 2.566e-06
boxplot(mpg~cyl,data = mtcars)

img

好了,今天的R语言实现统计方法系列推文暂时告一段落,我们下次再见吧!小伙伴们如果有什么统计上的问题,或者如果想要学习什么方面的生物信息内容,可以在微信群或者知识星球提问,没准哪天的推文就是专门解答你的问题哦!

(0)

相关推荐

  • 今天跟着我把热图学个遍,囊括所有需求

    用于绘制交互式和静态热图的R包和功能很多,包括: heatmap()[R基本函数,统计数据包]:绘制一个简单的热图 heatmap.2()[ gplots R包]:与R base函数相比,绘制了增强的 ...

  • 【R分享|实战】科白君浅谈ggplot2包学习逻辑

    " 量变学习,过程深思,总结完善,突破创新."   --科白君 "R分享实战"专刊·第11篇   编辑 | 科白维尼   2671字 | 7分钟阅读 本期推文内 ...

  • prep, bake, juice三步说的真清楚

    Let's walk through what each of these functions does. First, let's define a recipe with a couple of ...

  • R包基础实操—tidyverse包

    核心软件包是ggplot2.dplyr.tidyr.readr.purrr.tibble.stringr和forcats,它们提供了建模.转换和可视化数据的功能. 其中,readr包用于读取数据,ti ...

  • 用R为数据分析插上翅膀

    " No one konws everything, and you don't have to."   --科白君 "R数据分析"专题·第1篇   编辑 |  ...

  • 各类统计方法R语言实现(八)

    [科研绘图点我][付费精品合集][SEER点我] 今天是各类统计方法R语言实现的第八期,我们主要介绍选择"最佳"回归模型与深层次分析. 选择"最佳"回归模型 当 ...

  • 各类统计方法R语言实现(七)

    今天是各类统计方法R语言实现的第七期,我们主要介绍多重共线性.异常观察值的分析和回归模型改进措施. 多重共线性 多重共线性是指线性回归模型中的解释变量之间由于存在强相关关系而使模型估计失真或难以估计准 ...

  • 各类统计方法R语言实现(六)

    今天是各类统计方法R语言实现的第六期,我们主要介绍多元线性回归.回归诊断. 多元线性回归 多元线性回归指的是用多个自变量预测一个因变量,且自变量与因变量之间为线性关系,在分析过程中要考虑交互项的问题. ...

  • 各类统计方法R语言实现(五)

    今天是各类统计方法R语言实现的第五期,我们主要介绍简单线性回归和多项式回归. 基础知识 什么是回归? 回归分析指用一个或多个自变量来预测因变量的方法. 简而言之,就是用已知的变量预测未知的变量,比如临 ...

  • 各类统计方法R语言实现(三)

    各位小伙伴们大家好,今天是我们的系列推文"各类统计方法R语言实现"第三篇,今天介绍的主要内容是方差分析. 方差分析适用用于两个及两个以上样本均数差别的显著性检验,其中两组之间的方差 ...

  • 各类统计方法R语言实现(二)​

    各位小伙伴们大家好,今天是我们的系列推文"各类统计方法R语言实现"第二篇,今天介绍的主要内容有:正态性检验.方差齐性检验.t检验.近似t检验. t检验亦称student t检验,是 ...

  • 各类统计方法R语言实现(一)

    无论是在临床研究还是在基础研究中,统计都是非常重要的一关,而在R语言中,可以轻松实现大多数统计方法.因此,今天小编将开启一个全新的系列推文:利用R语言实现各类常用统计方法,希望能对大家有所帮助.由于统 ...

  • 限制性立方样条图,一种美的不行的趋势性分析方法(附R语言详细教程)

    2021年4月专题:趋势性分析方法系列 1.最基本的趋势性检验方法 2.利用回归进行趋势性分析 3.限制性立方样条图,一种美的不行的趋势性分析方法 4.Loess回归,非线性趋势性分析,怎么能少了它呢 ...

  • R语言进行数据结构化转换:Box-Cox变换、“凸规则”变换方法

    原文链接:http://tecdat.cn/?p=22251 线性回归时若数据不服从正态分布,会给线性回归的最小二乘估计系数的结果带来误差,所以需要对数据进行结构化转换. 在讨论回归模型中的变换时,我 ...