检测数据是否符合正态分布(R语言)

norm.test<- function(input.data,alpha=0.05,pic=TRUE){
    if(pic==TRUE){#画图形
           dev.new()
           par(mfrow=c(2,1))
           qqnorm(input.data,main="qq图")
           qqline(input.data)
           hist(input.data,frep=F,main="直方图和密度估计曲线")
           lines(density(input.data),col="blue") #密度估计曲线
           x<- c(round(min(input.data)):round(max(input.data)))
           lines(x,dnorm(x,mean(input.data),sd(input.data)),col="red") #正态分布曲线
    }
    sol<- shapiro.test(input.data)
    if(sol$p.value>alpha){
        print(paste("success:服从正态分布,p.value=",sol$p.value,">",alpha))    
    }else{
         print(paste("error:不服从正态分布,p.value=",sol$p.value,"<=",alpha))
    }
    sol
}

 

posted @ 2015-02-06 17:34  apple飘98  阅读(10541)  评论(0编辑  收藏  举报