pettitt检验r语言_使用R语言进行Mann-Kendall趋势检验

本文介绍了如何使用R语言进行Mann-Kendall趋势检验,这是一种非参数检验,适用于数据可能有缺失且不限定特定分布的情况。通过实战示例,展示了安装和使用‘trend’包,对模拟数据进行分析,得出患者体温随治疗时间下降的趋势,并通过可视化确认结果。
摘要由CSDN通过智能技术生成

19dc7a7bff2942d44b9f26ff33f86c84.png

背景

有时候我们需要对一组数据进行趋势检验,比如患者服药后随着时间的推移患者某指标是否有上升或者下降趋势,又或者我们观测了某个城市近十年来的温度后想要探究该城市气温的变化趋势。

下面我主要给大家介绍下如何非常简单便捷地使用R语言对数据进行Mann-Kendall趋势检验。

Mann-Kendall趋势检验(下称MK检验)是一种非参数检验,它不需要数据服从特定的分布(例如高斯分布等等),允许数据有缺失,是一种非常常用且实用的趋势检验方法。

R语言实战

下面我们使用一组模拟数据来进行实战。

下面的文件记录了某肺炎患者接受治疗过程中口腔温度随治疗天数的变化,试使用MK检验说明该患者的温度随时间是呈下降还是上升趋势。

bf5187ba8b7fc4b8f380da77f10e48a8.png
第一列表示时间。第二列表示温度。

步骤

Step1

首先,如果想要使用MK检验我们需要先安装“trend”包。

install.packages("trend")

安装成功后,我们直接加载该包。

library("trend")

Step2

加载数据,本文的数据存储在当前目录下的test.txt文件中,所以使用read.table命令进行读取。

data <- read.table("./test.txt", sep="t", header=TRUE, row.names="day")

Step3

使用mk.test()进行趋势检验。

mk.test(data$temperature, continuity = TRUE)

结果解读

b1ce6a13b8f3a8c8a559b86d68b5e003.png
检验的结果

我们主要关注z值以及p值。

z值小于0,表明呈下降趋势,相反z值大于0,表明呈上升趋势。本例中,z小于0。

p<0.01,我们拒绝零假设,表明数据存在明显的趋势变化。

综合来看,接受治疗后,患者的体温呈现明显的下降趋势。

可视化查看

最后,我们可视化数据,直观的感受下数据的变化。

par(mfrow=c(2,1))
plot(data$temperature, type="l", lwd="3", col="steelblue", ylim=c(34,40), xlab="day", ylab="temperature")

5bf7c11b74f1d56ea4d53b4a73df4430.png
患者体温随日期的变化

完整代码

### 安装trend包,只需安装一次
install.packages("trend")
### 使用前先加载下
library("trend")
### 加载数据
data <- read.table("./test.txt", sep="t", header=TRUE, row.names="day")
### MK检验
mk.test(data$temperature, continuity = TRUE)
### 可视化
par(mfrow=c(2,1))
plot(data$temperature, type="l", lwd="3",
	col="steelblue", ylim=c(34,40), xlab="day", ylab="temperature")

写在最后

如果对MK检验详细的原理感兴趣的同学可以直接翻阅对应的统计学书本。

R语言中使用 ?mk.test可直接查看MK检验的文档。​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值