用R包nnet怎么预测未来的数据?
如下数据,我想预测2013年的total值怎么做呢?现在能做到的是根据2003-2012年的历史数据通过神经网络训练出
这十年的新的total值,
#代码如下:
#原始数据:
date total renkou renjunyongshui gongyeliyonglv guangaixishu
1 2003 18.57 458.03 497.8 21 0.49
2 2004 18.30 457.28 510.6 29 0.48
3 2005 18.08 454.40 498.5 36 0.49
4 2006 19.56 450.52 500.4 43 0.53
5 2007 20.16 446.98 522.4 54 0.52
6 2008 20.79 445.56 560.8 69 0.54
7 2009 20.82 444.65 593.7 75 0.56
8 2010 21.12 439.39 597.1 81 0.57
9 2011 20.75 438.61 718.2 71 0.56
10 2012 21.26 440.69 629.6 76 0.59
setwd("C:/Users/MS/Desktop/Rtest")#更变工作目录
library(foreign)#加载foreign包读取.csv文件
library(nnet)#加载nnet包
data=read.csv("data_yuce.csv",header=T)#读入历史数据,如上
norm.data=scale(data[,c(2:6)])
nn=nnet(total~.,norm.data,size=10,decay=0.01,maxit=1000,linout=T,trace=F)
norm.preds <- predict(nn,norm.data)#对用total(总用水量)进行预测
nmse2 <- mean((norm.preds-scale(norm.data[,2]))^2)/mean((mean( scale(norm.data[,2]))- scale(norm.data[,2]))^2)
nmse2#计算出相对误差
preds=norm.preds*sd(data[,2])+mean(data[,2])#还原标准化的数据
preds
(preds-data[,2])/data[,2]*100#计算出误差


雷达卡




京公网安备 11010802022788号







