我用R软件做灰色预测,但是预测的结果不好,下面是程序,哪位大神能帮我修正一下?万分感谢~~#编写应用于R软件的GM(1,1)模型
x0=c(6.76,5.68,5.57,5.50,5.24,5.28,5.17,4.93,4.73,4.59,4.42)
#x0为输入序列,t为预测个数
x1<-cumsum(x0) #一次累加生成序列1-AG0序列
n<-length(x0)
x2=c(0,0,0,0,0,0,0,0,0,0)
for(i in 1:n-1)
{ #生成x1的紧邻均值生成序列
x2[i]<-(x1[i]+x1[i+1])/2}#得序列b,即为x1的紧邻均值生成序列
D<-numeric(length(x0)-1)
D[]<-1
B<-cbind(x2,D)
BT<-t(B)#做转置
M<-solve(BT%*%B)
YN<-x0[2:length(x0)]
alpha=c(0,0)
alpha<-M%*%BT%*%YN
#模型的最小二乘估计参数列满足alpha尖
a<-alpha[1]
u<-alpha[2]
cat("GM(1,1)参数估计值:",'\n',"发展系数-a=",a,"??","灰色作用量u=",u,'\n','\n') #利用最小二乘法求得参数估计值a,u
y<-numeric(length(c(1:15)))
y[1]<-x1[1]
for(w in 1:14){y[w+1]<-(x0[1]-u/a)*exp(-a*w)+u/a}
#将a,u的估计值代入时间响应序列函数计算x1拟合序列y
cat("x(1)的模拟值:",'\n',y,'\n')
xy<-numeric(length(y))
xy[1]<-y[1]
for(m in 2:15){xy[m]=y[m]-y[m-1]}#运用后减运算还原得模型输入序列x0预测序列
cat("x(0)的模拟值:",'\n',xy,'\n')