找回密码
 立即注册
查看: 9372|回复: 9

通过R代码实现统计预测与决策方法应用案例

[复制链接]
发表于 2014-3-26 21:53:03 | 显示全部楼层 |阅读模式
统计预测与决策是统计学中重要的一门课,而在当下,用R来实现该学科的各种方法也变得重要了。以下是几个简单的方法:

##一次移动平均法
  1. ama<-function(data,n){
  2.     if(n<1){return(FALSE)
  3.     }else{
  4.     forc=rep(NA,length(data)+1)
  5. for(i in n:length(data)+1){
  6.     a=i-n;b=i-1;
  7.     forc[i]<-mean(data[a:b]);
  8.     }
  9.     }
  10.       return(forc)
  11.    }
复制代码
##一次指数平滑法
  1. es<-function(data,a){
  2. forc=rep(NA,length(data)+1)
  3. forc[2]=data[1]
  4.   for(i in 2:length(data)+1){
  5.      forc[i]=a*data[i-1]+(1-a)*forc[i-1]
  6.      }
  7.       return(forc)
  8. }
  9. x=c(97,95,95,92,95,95,98,97,99,95,95,96,97,98,94,95)
  10. es(x,0.1)
  11. es(x,0.3)
  12. es(x,0.9)
复制代码
##线性二次移动平均法
  1. ltma<-function(data,n,T){
  2. s1=rep(NA,length(data))
  3. s2=rep(NA,length(data))
  4. a=rep(NA,length(data))
  5. b=rep(NA,length(data)+T)
  6. proc=rep(NA,length(data))
  7. for(i in n:length(data)){
  8.      j=i-n+1;
  9.      s1[i]=mean(data[j:i])
  10.       }
  11. for(p in (2*n-1):length(data)){
  12.      q=p-n+1
  13.      s2[p]=mean(s1[q:p])
  14.      }
  15. a=2*s1-s2 ;
  16. b=2*(s1-s2)/(n-1) ;
  17. for(m in (2*n-1):(length(data)+T-1)){
  18. proc[m+T]=a[m]+b[m]*T;
  19. }
  20.      return(proc)
  21. }

  22. x<-c(125,135,195,197.5,186,175,155,190,220,219,226,198,260,245)
  23. ltma(x,3,1)
复制代码
##评价指标MSE平均误差平方
  1. mse<-function(x,y){
  2.      e=NA;
  3.      e=x-y
  4.      mse=mean(e^2,na.rm=TRUE)
  5.      return(mse)
  6. }
  7. x=c(3,10,10)
  8. y=c(NA,20,20)
  9. mse(x,y)
复制代码
回复

使用道具 举报

发表于 2014-3-27 22:43:02 | 显示全部楼层
感觉没有充分发挥R语言向量语言的特征!
回复

使用道具 举报

 楼主| 发表于 2014-3-28 11:13:41 | 显示全部楼层
deideal 发表于 2014-3-27 22:43
感觉没有充分发挥R语言向量语言的特征!

楼主刚刚开始学习R,不太很懂。请问如果要进一步优化的话,该怎么做呢?
回复

使用道具 举报

发表于 2014-5-20 22:28:37 | 显示全部楼层
非常感谢分享
回复

使用道具 举报

发表于 2014-8-2 11:19:28 | 显示全部楼层
线性二次移动平均法 中传入的n 和T代表什么
回复

使用道具 举报

发表于 2016-9-6 16:16:50 | 显示全部楼层
谢谢分享,希望有帮助
回复

使用道具 举报

发表于 2016-9-6 16:17:21 | 显示全部楼层
谢谢分享,希望有帮助
回复

使用道具 举报

发表于 2017-2-9 08:54:13 | 显示全部楼层
非常感谢分享
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-22 02:53 , Processed in 0.022795 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表