Wilcoxon检验

knitr::opts_chunk$set(tidy = TRUE, 
                      warning = FALSE,
                      message = FALSE)

setwd("C:\\Users\\213yi\\Desktop\\非参数统计\\3-23")
library(ggthemes)
library(ggplot2)
library(rJava)
library(xlsx)
library(epade)
library(MASS)

第一题

head(immer)
year1=immer$Y1
year2=immer$Y2
df1<-data.frame(yield=year1,time=rep("1931",30))
df2<-data.frame(yield=year2,time=rep("1932",30))
df<-rbind(df1,df2)

可视化

#分布图
hist(immer$Y1,prob=TRUE,xlim = c(40,200),breaks=10,xlab="yield",ylab="密度",col="deepskyblue",main="")
hist(immer$Y2,prob=TRUE,breaks=10,xlab="",ylab="",col="red2",density=30,main="",add=TRUE)
legend("topright",legend=c("1931","1932"),ncol=1,inset=0.04,col=c("deepskyblue","red2"),density=c(200,50),fill=c("deepskyblue","red2"),cex=0.8) 
title("大麦产量直方图")
#boxplot
ggplot(df,aes(x=time,y=yield,fill=time))+geom_boxplot()+ggtitle("大麦产量箱线图")+
  scale_fill_manual(values=c("red","purple"))+xlab("")

两张图可以直观的看出1931年的大麦产量更高

分布检验

成对数据的t检验

delta=year2-year1
t.test(delta,mu=0,alternative = "two.sided")

t检验的p-value值=0.0024,因此拒绝原假设,两年的分布不同

精确的符号秩检验

binom.test(sum(delta>0),sum(delta!=0),0.5)

符号检验的p-value值=0.0014,因此拒绝原假设,两年的分布不同

Wilcoxon配对符号秩检验

wilcox.test(year1,year2,paired = T)

Wilcoxon符号秩检验的p-value值=0.0053,因此拒绝原假设,两年的分布不同

检验及分析

对t检验的条件进行检验,即正态性假设

shapiro.test(year1)
qqnorm(year1,main = "1931年产量QQ图")
qqline(year1)

p值=0.048,拒绝1931年是正态分布的假设

shapiro.test(year2)
qqnorm(year2,main = "1932年产量QQ图")
qqline(year2)

p值=0.70,接受1932年是正态分布的假设

对Wilcoxon检验进行判断

ggplot(df,aes(x=yield,fill=time))+ggtitle("大麦产量分布密度曲线")+
  geom_density(alpha = 0.3)

偏态分布,不对称,Wilcoxon条件不成立

  • 总结:本题应当使用符号检验更有效,最终结论为1931和1932大麦产量具有不同的总体分布

第二题

#数据预处理
competition1=c(91,46,108,99,110,105,191,57,34,81)
competition2=c(81,51,63,51,46,45,66,64,90,28)
df1<-data.frame(score=competition1,time=rep("比赛1",10))
df2<-data.frame(score=competition2,time=rep("比赛2",10))
df<-rbind(df1,df2)

可视化

hist(competition1,prob=TRUE,breaks =seq(0,200,10),xlab="score",ylab="密度",col="deepskyblue",main="")
hist(competition2,prob=TRUE,xlab="",ylab="",col="red2",density=30,main="",add=TRUE)
legend("topright",legend=c("比赛1","比赛2"),ncol=1,inset=0.04,col=c("deepskyblue","red2"),density=c(200,50),fill=c("deepskyblue","red2"),cex=0.8) 
title("得分情况直方图")

ggplot(df,aes(x=time,y=score,fill=time))+geom_boxplot()+ggtitle("得分情况箱线图")+
  scale_fill_manual(values=c("red","purple"))+xlab("")

两张图可以直观的看出比赛1的得分更高

分布检验

delta=competition2-competition1
binom.test(sum(delta>0),sum(delta!=0),0.5)
wilcox.test(competition1,competition2,paired = T)

1.符号检验的p-value值=0.34,因此接受原假设

2.Wilcoxon符号秩检验的p-value值=0.0839,因此接受原假设,两场比赛得分分布不同

检验与分析

对Wilcoxon检验进行判断,绘制密度图

ggplot(df,aes(x=score,fill=time))+ggtitle("比赛得分密度图")+
  geom_density(alpha = 0.3)

由于样本量太少,无法准确得到精确的结论:大致可看出为对称分布
-总结:两种检验方法在 𝛼 = 0.05水平下均接受原假设,认为两个联赛三分球得分次数无显著差异,具有相同的总体分布.
Wilcoxon符号秩检验的 p 值小于符号检验的p值,因为它采用了比符号检验更多的信息,所以Wilcoxon符号秩检验的结果更可靠

第3题

编写函数

name <- c("crim", "zn", "indus", "nox", "rm", "age", "dis", "tax", "ptratio", "black","lstat", "medv")
fun<-function(df){
  result=as.data.frame(matrix(nrow=12,ncol=2))
  colnames(result)[1] <- 'signal'
  colnames(result)[2] <- 'wilcoxon'
  row.names(result)<-name
  for (i in 1:length(df)){
    med=median(df[,i])
    sign<-binom.test(sum(df[,i]>med),sum(df[,i]!=med),0.5)
    wil<-wilcox.test(df[,i],mu=med)
    result[i,"signal"]<-sign$p.value
    result[i,"wilcoxon"]<-wil$p.value
  }
  return(result)
  #返回符号检验和 Wilcoxon 符号秩检验的 P-value
}
df=Boston[,-c(4,9)]
fun(df)#调用函数

分析与结论

for (i in 1:12) {
  hist(df[,i], main = name[i])
}
  • 符号秩检验采用了比符号检验更多的信息,p-value会小于符号检验
  • 但是,观察到的密度曲线可以看出所有的变量几乎都不是对称分布
  • 符号秩检验的前提假设是数据具有对称分布
  • 所以Wilcoxon 符号秩检验得到结果不可靠
  • 设条件更少的符号检验在本题的中位数检验中更加稳健
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值