wanghonghong2 发表于 2014-3-26 21:53:03

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

统计预测与决策是统计学中重要的一门课,而在当下,用R来实现该学科的各种方法也变得重要了。以下是几个简单的方法:

##一次移动平均法ama<-function(data,n){
    if(n<1){return(FALSE)
    }else{
    forc=rep(NA,length(data)+1)
for(i in n:length(data)+1){
    a=i-n;b=i-1;
    forc<-mean(data);
    }
    }
      return(forc)
   }##一次指数平滑法es<-function(data,a){
forc=rep(NA,length(data)+1)
forc=data
for(i in 2:length(data)+1){
   forc=a*data+(1-a)*forc
   }
      return(forc)
}
x=c(97,95,95,92,95,95,98,97,99,95,95,96,97,98,94,95)
es(x,0.1)
es(x,0.3)
es(x,0.9)##线性二次移动平均法ltma<-function(data,n,T){
s1=rep(NA,length(data))
s2=rep(NA,length(data))
a=rep(NA,length(data))
b=rep(NA,length(data)+T)
proc=rep(NA,length(data))
for(i in n:length(data)){
   j=i-n+1;
   s1=mean(data)
      }
for(p in (2*n-1):length(data)){
   q=p-n+1
   s2=mean(s1)
   }
a=2*s1-s2 ;
b=2*(s1-s2)/(n-1) ;
for(m in (2*n-1):(length(data)+T-1)){
proc=a+b*T;
}
   return(proc)
}

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

deideal 发表于 2014-3-27 22:43:02

感觉没有充分发挥R语言向量语言的特征!

wanghonghong2 发表于 2014-3-28 11:13:41

deideal 发表于 2014-3-27 22:43
感觉没有充分发挥R语言向量语言的特征!

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

Master 发表于 2014-5-20 22:28:37

非常感谢分享

x21824182 发表于 2014-8-2 11:19:28

线性二次移动平均法 中传入的n 和T代表什么

kailugaji 发表于 2016-9-6 16:16:50

谢谢分享,希望有帮助

kailugaji 发表于 2016-9-6 16:17:21

谢谢分享,希望有帮助

bytang 发表于 2017-2-9 08:54:13

非常感谢分享
页: [1]
查看完整版本: 通过R代码实现统计预测与决策方法应用案例