一个正态分布的判别图函数如下
- # by fantuanxiaot
- norm.test<-function(Data,alpha=0.05,pic=TRUE) {
- test<-shapiro.test(Data)
- # 结果
- result<-list()
- result$pvalue<-test$p.value
- if (result$pvalue>alpha) {
- result$disp<-'Success:数据服从正态分布'} else if (result$pvalue<alpha) {
- result$disp<-'Fail:数据不服从正态分布'
- }
- if (pic==TRUE) {
- par(mfrow=c(2,1),family='serif')
- qqnorm(Data,main='数据的正态检测QQ图',col='blue',pch=21,bg='green')
- qqline(Data,col='red',lwd=2)
- # 另一个图
- d.Data<-dnorm(sort(Data),mean(Data),sd(Data))
- hist(Data,freq=FALSE,main='密度曲线图',ylim=c(0,max(d.Data)),sub='红线是正态分布密度曲线\n蓝线是数据的核密度曲线',xlab='')
- lines(density(Data),col='blue',lwd=2)
- lines(sort(Data),d.Data,col='red',lwd=2)
- return(result)
- } else if (pic==FALSE) {
- return(result)
- }
- }
使用方法
第一个,参数输入数据,
第二个,参数输入显著程度诸如0.01 0.1 0.05之类,
第三个,参数输入是否作图(TRUE 或者 FALSE)
检测:norm.test(runif(100)) (由于P值过小所以不服从正态分布)
$ pvalue
[1] 0.0003754445
$ disp
[1] "Fail:数据不服从正态分布"
检测:norm.test(rnorm(100)) (由于P值大所以服从正态分布)
$ pvalue
[1] 0.6416908
$ disp
[1] "Success:数据服从正态分布"
其他调用形式
您还可以输入
norm.test(runif(100),0.01,FALSE)
norm.test(runif(100),0.1,FALSE)norm.test(runif(100),0.1,TRUE)
来使用函数


雷达卡





京公网安备 11010802022788号







