1468 1

[问答] 话图检测自己model 如何把子做的model的图加到原来的数据上对比? [推广有奖]

  • 0关注
  • 0粉丝

小学生

14%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
46 点
帖子
4
精华
0
在线时间
2 小时
注册时间
2014-7-29
最后登录
2014-8-3

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

大家好,我在做一个英美之间汇率的模型,是一个单串数据,如(da是我的数据)
>da<-read.table(file.choose(),header=T)
> head(da)
End_Date USD_GBP
1 07/01/2007 0.5122
2 14/01/2007 0.5152
3 21/01/2007 0.5083
4 28/01/2007 0.5073
5 04/02/2007 0.5094
6 11/02/2007 0.5097

我有391个数据,我想用前381个数据当做原始数据用我的model来fit剩下的10个数据,对比一下看看我的model和我本来的数据差别是不是大,这样就能检测我的model是不是合理。
我做了一个这样的代码,用的是SETAR(4)的model有两个regime.Threshold value是-0.4266.我做前几步都没什么问题,就是到最后话图的时候有问题,请看下面红色字

y <- data.frame(time = seq(as.Date('2007-01-07'), by = 'weeks', length = 392))
#produce a vector that can show the dates of the exchange rates.#
ex<-da[,2]
lex<-log(ex)
par(mfrow=c(2,1))
plot(y,ex,xlab="year",ylab="exchange_rate",type='l')
plot(y,lex,xlab="year",ylab="log_exchange_rate",type='l')

hist(lex)
par(mfrow = c(3, 2))
autopairs(lex, lag = 1, type = "regression")
autopairs(lex, lag = 2, type = "regression")
autopairs(lex, lag = 3, type = "regression")
autopairs(lex, lag = 4, type = "regression")
autopairs(lex, lag = 5, type = "regression")
autopairs(lex, lag = 6, type = "regression")
mod.ar <- linear(lex, m = 4)
mod.ar
mod.setar <- setar(x, m = 4, mL = 4, mH = 4, thDelay = 1)
mod.setar

mod <- list()
mod[["linear"]] <- linear(lex, m = 4)
mod[["setar"]] <- setar(lex, m = 4, thDelay = 1)
mod[["lstar"]] <- lstar(lex, m = 4, thDelay = 1)
mod[["nnetTs"]] <- nnetTs(lex, m = 4, size = 3)
mod[["aar"]] <- aar(lex, m = 4)
sapply(mod, AIC) #compare AIC of SETAR, LSTAR, linear, NNETTS and AAR model#
sapply(mod, MAPE) #compare mean absolute percentage error#
plot(mod[["setar"]])

set.seed(10)
mod.test <- list()
lex.train <- window(lex, end = 380)
lex.test <- window(lex, start = 381)
mod.test[["linear"]] <- linear(lex.train, m = 4)
mod.test[["setar"]] <- setar(lex.train, m = 4, thDelay = 1)
mod.test[["lstar"]] <- lstar(lex.train, m = 4, thDelay = 1, trace = FALSE,control = list(maxit = 1e+05))
mod.test[["nnet"]] <- nnetTs(lex.train, m = 4, size = 3, control = list(maxit = 1e+05))


frc.test <- lapply(mod.test,predict, n.ahead = 10)

plot(lex.test, ylim = range(lex))

for (i in 1:length(frc.test))lines(frc.test[], lty = i +1, col = i + 1)

legend(381,-0.5 , lty =1:(length(frc.test) + 1), col = 1:(length(frc.test) +1), legend =c("observed", names(frc.test)))

我总共有391个数据。这一部分我就是想画一个以前381个数据为原data做一个10步的预测,用这个model预测出来的data+10步预测的data来对比我的这个data事最好的。我这里想画SETAR,LSTAR,LINEAR,NEET这几个model,看图说话来证明我fit的model是最合适的。
在网上看我这最后一步是能画出一个这几个model加上原data在一起的图的,就像我这个链接第20页的那个图http://cran.r-project.org/web/packages/tsDyn/vignettes/tsDyn.pdf但是这里我只能画出几个prediction类似的点

我不太明白。

求高人指点!!!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:model mode del ODE Mod 汇率 检测 如何 模型

沙发
Aharach 发表于 2014-8-3 01:56:42 |只看作者 |坛友微信交流群
最好还是能把你得到的图贴出来,大家好知道哪里有问题。

从字面意思上猜,你得到的全是点,而你想要的是线?

那么试试 lines 里面加 type="l".

或者试试ggplot2 package

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 18:01