数据用的还是之前的股票数据
library(e1071)
x<-read.table("gu.txt",header=T)x[,1]<-1:4695 #将第一列的时间数据换成1:length的向量
#建立模型
m <- svm(x[1:4600,5]~ .,x[1:4600,-5], cost = 1000, gamma = 0.0001)
#预测
p<-predict(m,x[4601:4695,-5])
#取实际值
r<-x[4601:4695,5]
#计算相对误差
s<-0
for(i in 1:95)
{
if(abs(p[i]-r[i])<0.15)
s<-s+1
}
s
#输出结果s为86,说明90%以上的预测结果与实际值的误差都在0.15之内,取0.15计算相对误差,用mean算得实际值的均值为11.9,所以相对误差为1.26%
#计算趋势预测准确率
aa<-0
bb<-0
for(i in 1:94)
{
aa[i]<-r[i+1]-r[i]
bb[i]<-p[i+1]-p[i]
}
ss<-0
for(j in 1:94)
{
if(aa[j]*bb[j]>=0)
{
ss<-ss+1
}
}
ss
ss为80,所以趋势准确率为85.1%