楼主: fantuanxiaot
4511 3

[R] 基于R语言的正态分布判别(Shapiro-Wilk判别法)[by fantuanxiaot] [推广有奖]

已卖:1597份资源

大师

9%

还不是VIP/贵宾

-

威望
7
论坛币
-234454 个
通用积分
240.2236
学术水平
3783 点
热心指数
3819 点
信用等级
3454 点
经验
150360 点
帖子
7597
精华
32
在线时间
1329 小时
注册时间
2013-2-4
最后登录
2025-3-23

初级学术勋章 初级热心勋章 中级热心勋章 中级学术勋章 初级信用勋章 中级信用勋章 高级热心勋章 高级学术勋章 特级学术勋章 特级热心勋章 高级信用勋章 特级信用勋章

楼主
fantuanxiaot 发表于 2015-3-5 14:00:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

一个正态分布的判别图函数如下



  1. #  by  fantuanxiaot
  2. norm.test<-function(Data,alpha=0.05,pic=TRUE) {
  3. test<-shapiro.test(Data)
  4. # 结果
  5. result<-list()
  6. result$pvalue<-test$p.value
  7. if (result$pvalue>alpha) {
  8. result$disp<-'Success:数据服从正态分布'} else if (result$pvalue<alpha) {
  9. result$disp<-'Fail:数据不服从正态分布'
  10. }
  11. if (pic==TRUE) {
  12. par(mfrow=c(2,1),family='serif')
  13. qqnorm(Data,main='数据的正态检测QQ图',col='blue',pch=21,bg='green')
  14. qqline(Data,col='red',lwd=2)
  15. # 另一个图
  16. d.Data<-dnorm(sort(Data),mean(Data),sd(Data))
  17. hist(Data,freq=FALSE,main='密度曲线图',ylim=c(0,max(d.Data)),sub='红线是正态分布密度曲线\n蓝线是数据的核密度曲线',xlab='')
  18. lines(density(Data),col='blue',lwd=2)
  19. lines(sort(Data),d.Data,col='red',lwd=2)
  20. return(result)
  21. } else if (pic==FALSE) {
  22. return(result)
  23. }
  24. }
复制代码



      使用方法



      第一个,参数输入数据,
      第二个,参数输入显著程度诸如0.01 0.1 0.05之类,
      第三个,参数输入是否作图(TRUE 或者 FALSE)




检测:norm.test(runif(100))  (由于P值过小所以不服从正态分布)




$ pvalue
[1] 0.0003754445
$ disp
[1] "Fail:数据不服从正态分布"


1.jpg


检测:norm.test(rnorm(100))  (由于P值大所以服从正态分布)



$ pvalue
[1] 0.6416908
$ disp
[1] "Success:数据服从正态分布"


2.jpg



其他调用形式




您还可以输入

norm.test(runif(100),0.01,FALSE)

norm.test(runif(100),0.1,FALSE)
norm.test(runif(100),0.1,TRUE)
来使用函数


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:fantuanxiaot shapiro 正态分布判别 正态分布 wilk 正态分布判别 Shapiro-Wilk判别法 fantuanxiaot

已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
niuniuyiwan + 60 + 60 + 5 + 5 + 5 精彩帖子
xddlovejiao1314 + 100 + 20 + 3 + 5 + 2 精彩帖子
我的素质低 + 20 + 20 精彩帖子

总评分: 经验 + 180  论坛币 + 100  学术水平 + 8  热心指数 + 10  信用等级 + 7   查看全部评分

本帖被以下文库推荐

沙发
williamshell 发表于 2015-6-7 17:43:40
请问是把上述代码完全复制,然后source?
我这样操作出现
Error in source("normal_distribution_test.R") :
  normal_distribution_test.R:8:88: unexpected '}'
7: if (result$pvalue>alpha) {
8: resultdisp<-'Success:数据服从正态分布'} else if (resultdisp<-'Success:数据服从正态分布'}
                                                                                          ^
这是什么原因?

藤椅
421073390 在职认证  发表于 2015-6-10 12:46:55
williamshell 发表于 2015-6-7 17:43
请问是把上述代码完全复制,然后source?
我这样操作出现
Error in source("normal_distribution_test.R" ...
我帮你艾特他

板凳
niuniuyiwan 在职认证  发表于 2015-10-31 13:17:54
好帖,感谢分享!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-31 12:26