自建了一个函数进行单因素方差分析,结果运行出错了-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 考研考博>>

考研

>>

自建了一个函数进行单因素方差分析,结果运行出错了

自建了一个函数进行单因素方差分析,结果运行出错了

发布:A蓝白红 | 分类:考研

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

经管之家新媒体交易平台

提供"微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯"等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

提供微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

aov.func<-function(data,alpha=0.05,plot.logic=T,p.adjust.mod="holm"){error<-FALSEdata[,1]<-as.factor(data[,1])group.levles<-as.numeric(levels(data[,1]))#分类变量的水平取值#检验不同水平下指 ...
扫码加入统计交流群


  1. aov.func <- function(data,alpha=0.05,plot.logic=T,p.adjust.mod="holm"){
  2. error <- FALSE
  3. data[,1]<- as.factor(data[,1])
  4. group.levles <- as.numeric(levels(data[,1])) #分类变量的水平取值
  5. #检验不同水平下指标的正态性
  6. for(i in group.levles){
  7. if(shapiro.test(data[which(data[,1]==i),2])$p.value<alpha){
  8. print(paste("ERROR:第",i,"组数据不服从正态分布"))
  9. error<-TRUE
  10. }
  11. }
  12. if(error){
  13. return()
  14. }else{
  15. print("符合正态性前提!")
  16. }
  17. #检验不同水平下指标的方差齐次
  18. if(bartlett.test(data[,2]~data[,1])$p.value<alpha){
  19. print("ERROR:不符合方差齐性前提")
  20. return()
  21. }else{
  22. print("符合方差齐性前提!")
  23. }

  24. #绘制箱线图
  25. if(plot.logic){
  26. boxplot(data[,2]~data[,1])
  27. }

  28. #方差分析
  29. sol <- aov(data[,2]~data[,1])
  30. p.value <- summary(sol)[[1]][,5][1]
  31. tab<-matrix(NA,nrow=3,ncol=5)
  32. dimnames(tab)<- list(c("分类变量","随机性误差","总和"),c("自由度","差异平方和","均方","统计量F","p-value"))
  33. tab[1:2,1]<-summary(sol)[[1]][,1];tab[3,1]<-sum(tab[1:2,1])#自由度
  34. tab[1:2,2]<-summary(sol)[[1]][,2];tab[3,2]<-sum(tab[1:2,2])#差异平方和
  35. tab[1:2,3]<-summary(sol)[[1]][,3];#均方
  36. tab[1:2,4]<-Summary(sol)[[1]][,4];#统计量F
  37. tab[1,5]<-p.value;
  38. print("======方差分析=====")
  39. print(tab)

  40. #多重T检验
  41. if(p.value<alpha){
  42. print(paste(p.value,"<",alpha,":各水平下的指标有明显差别!"))
  43. sol.t<-pairwise.t.test(data[,2],data[,1],p.adjust.method = p.adjust.mod)
  44. tab<sol.t[[3]]
  45. tab[which((sol.t[[3]]>alpha)==TRUE)]<-"无差别"
  46. tab[which((sol.t[[3]]>alpha)==FALSE)]<-"显著差别"
  47. print("========多重T检验========")
  48. print(tab)

  49. }else{
  50. print(paste(p.value,">",alpha,":各水平下的指标无明显差别!"))
  51. }
  52. return(sol)
  53. }

  54. #创建数据,实验之前所写函数
  55. kpi <- c(rnorm(20,80,5),rnorm(25,195,5),rnorm(23,256,5))
  56. group<-c(rep(1,20),rep(2,25),rep(3,23))
  57. data <- data.frame(group,kpi)
  58. aov.func(data)
复制代码结果最后一句aov.func(data)出现了如下错误
  1. Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘Summary’ for signature ‘"aov"’
复制代码不知道啥原因,望高手们赐教啊
「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-5907936-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。