- 积分
- 763
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-12-18
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 zhouyuanshen 于 2014-5-27 16:57 编辑
我按照魏凤英老师书上介绍做了M-K分析,但是我的结果好像不好解释,麻烦各位帮我支支招。
左边是原始数据序列,右边是M-K分析结果。
我的分析结果显示,UF和UB大部分时间都在置信区间外,而且大很多,这正常吗?
魏老师说UK或者UB大于0有上升趋势,但是我的数据大部分时间都是一个大于0,一个小于0,这又怎么解释呢?
UF和UB的交点大部分都在置信区间外,是不是说明我的数据序列可能就不存在突变点?
从我的M-K分析结果中,能看出来哪个时期变化显著吗?哪个时期变化平缓吗?
谢谢啦
R代码如下:- Mann_Kendall <- function(timeserial,start){
- Mann_Kendall_sub <- function(timeserial){
- r <- c()
- s <- c()
- U <- c()
-
- for(i in 2:length(timeserial))
- {r[i] <- 0
-
- for(j in 1:i)
- {
- if(timeserial[i]>timeserial[j]){r[i]=r[i]+1}
- }
-
-
- s[i] <- 0
- for (ii in 2:i){
- s[i] <- s[i]+r[ii]
- }
-
-
- U[i] <- 0
- U[i] <- (s[i]- (i*(i-1)/4))/sqrt(i*(i-1)*(2*i+5)/72)
-
- }
-
- r[1] <- 0
- s[1] <- 0
- U[1] <- 0
-
- LST <- list(r = r, s = s, U = U)
-
- return (LST)
- }
- timeserial_rev <- rev(timeserial)
-
- y1 <- Mann_Kendall_sub(timeserial)
- y2 <- Mann_Kendall_sub(timeserial_rev)
-
- y2$U <- -(rev(y2$U))
-
- LST <- list(UF=y1,UB=y2)
- return(LST)
- }
- #这里是你要修改的地方
- setwd("d:/")
- od <- read.table("1.txt", header=T)
- Variable <- c("Jan","Feb","Mar","Apr","May","Jun")
- #修改上面三段代码
- startyear <- as.numeric(od[1,1])
- years <- od$Year
- tiff("filename.tif", width=14.6, height=16, units="cm", res=300, family = 'serif')
- par(mfrow=c(6,2),oma=c(3,0,0,0), mar=c(0,2,0,0),cex=0.7)
- for(i in 1:length(Variable)){
-
- name <- paste("od$",Variable[i], sep="")
- value <- eval(parse(text=name))
-
- plot(value,type="l", ylab=Variable[i], cex.axis=0.6,xaxt="n",mgp=c(1,0.1,0),tck=-0.02)
- if(i==length(Variable)){
- axis(side=1, at=years, tck=-0.04, hadj=0.4, labels=years,mgp=c(1,0.4,0), cex.axis=1) # add x-axis to the last figure
- axis(side=1, at=1:length(od$Year), tck=-0.01, hadj=0.4, labels=NA, cex.axis=1) # add month labels to the x-axis
- mtext("年份",side=1,line=1.5)
- }
-
-
- d<-Mann_Kendall(value,startyear)
- yUF <- as.data.frame(d$UF[3])$U
- yUB <- as.data.frame(d$UB[3])$U
-
- plot(x=c(1:length(od$Year)),y=yUF, type="l", ylim=c(min(yUF,yUB,-1.96),max(yUF,yUB,1.96)),lwd=1, lty=5, ylab="", cex=0.5,xaxt="n",mgp=c(1,0.1,0),tck=-0.02)
- points(x=c(1:length(od$Year)),y=yUB,type="l",lty=3,col=6,lwd=1)
- abline(h=1.969,lty=4,lwd=0.5)
- abline(h=-1.96,lty=4,lwd=0.5)
- abline(h=0,col="gray",lwd=0.5)
- }
- axis(side=1, at=years, tck=-0.04, hadj=0.4, labels=years,mgp=c(1,0.4,0), cex.axis=1) # add x-axis to the last figure
- axis(side=1, at=1:length(od$Year), tck=-0.01, hadj=0.4, labels=NA, cex.axis=1) # add month labels to the x-axis
- mtext("年份",side=1,line=1.5)
- dev.off()
复制代码
|
-
气象因子变化趋势
|