楼主: bertf
7198 34

[问答] 请问R能做ESTAR模型吗? [分享]

  • 1关注
  • 2粉丝

讲师

14%

还不是VIP/贵宾

-

威望
0
论坛币
1258 个
通用积分
4.0000
学术水平
1 点
热心指数
3 点
信用等级
2 点
经验
12571 点
帖子
213
精华
0
在线时间
393 小时
注册时间
2008-2-21
最后登录
2019-11-28

bertf 发表于 2012-12-21 09:25:53 |显示全部楼层
rt
我装了tsDyn程序包,简单看了一下里面好像只有LSTAR模型的命令,请问高手用R能否处理ESTAR模型,请高人解惑。
关键词:star模型 ESTAR AR模型 STAR Est 模型 程序

本帖被以下文库推荐

stata SPSS
epoh 发表于 2012-12-27 21:13:44 |显示全部楼层
答复你的留言
当初我改编的estar,系根据tsDyn_0.7-40
现在已是tsDyn_0.9-2
楼主可以在tsDyn_0.9-2基础上,
参考lstar.R,自行修改
回复

使用道具 举报

bertf 发表于 2012-12-28 05:23:27 |显示全部楼层
epoh 发表于 2012-12-27 21:13
答复你的留言
当初我改编的estar,系根据tsDyn_0.7-40
现在已是tsDyn_0.9-2
谢谢回复,请问我怎么能看到程序包里的函数?怎么修改?
回复

使用道具 举报

epoh 发表于 2012-12-28 07:55:16 |显示全部楼层
bertf 发表于 2012-12-28 05:23
谢谢回复,请问我怎么能看到程序包里的函数?怎么修改?
你可以下载
Package source:  tsDyn_0.9-2.tar.gz  
  http://cran.r-project.org/web/packages/tsDyn/index.html
然后修改lstar.R 里的Transition function
#########
#Transition function
  #y: transition variable
  #g: smoothing parameter
  #c: threshold value
lstar
G <- function(y, g, th)  1/(1 + exp(-g*(y-th)))   

############
estar
G <- function(y, g, th)   1 - exp( - g*(y-th)^2)   
已有 5 人评分学术水平 热心指数 信用等级 收起 理由
日新少年 + 1 + 1 + 1 精彩帖子
Nicolle + 5 + 5 + 5 精彩帖子
kk22boy + 5 + 5 + 5 授人以渔,谢谢epoh兄!
ywh19860616 + 5 + 5 + 5 精彩帖子
zhangtao + 5 + 5 + 5 好的意见建议

总评分: 学术水平 + 21  热心指数 + 21  信用等级 + 21   查看全部评分

回复

使用道具 举报

bertf 发表于 2012-12-30 00:57:23 |显示全部楼层
epoh 发表于 2012-12-28 07:55
你可以下载
Package source:  tsDyn_0.9-2.tar.gz  
  http://cran.r-project.org/web/packages/tsDyn/ ...
高人,我看了一下好像不一样了,现在的lstar.R里面没有这么一段了,改成了“#Transition function G: moved to star.R”,然后我又找到star.R,里面只有这么一段:

#Logistic transition function
# z: variable
# gamma: smoothing parameter
# th: threshold value
G <- function(z, gamma, th) {
  if((length(th) > 1) && (length(gamma) > 1))
    t( apply( as.matrix(z) , 1, plogis, th, 1/gamma) )
  else
    plogis(z, th, 1/gamma)
}
我不懂是什么意思啊,请问怎么改?
回复

使用道具 举报

epoh 发表于 2012-12-30 14:11:04 |显示全部楼层
bertf 发表于 2012-12-30 00:57
高人,我看了一下好像不一样了,现在的lstar.R里面没有这么一段了,改成了“#Transition function G: mov ...
#Transition function G: moved to star.R 无妨
你只要加入
#lstar
#G <- function(y, g, th)  1/(1 + exp(-g*(y-th)))
#estar  
G <- function(y, g, th)   1 - exp( - g*(y-th)^2)   

如果你对编程不熟,可考虑具有estar功能的
Ox packages STR2
STR2 :for estimation and testing of smooth-transition autoregressive models

  http://www.doornik.com/download/str2_doc/index.html
  http://www.doornik.com/download.html
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
日新少年 + 1 + 1 + 1 精彩帖子
ywh19860616 + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

回复

使用道具 举报

bertf 发表于 2012-12-30 20:01:30 |显示全部楼层
epoh 发表于 2012-12-30 14:11
#Transition function G: moved to star.R 无妨
你只要加入
#lstar
感谢!请问我怎么运行这个修改过的文件呢?
回复

使用道具 举报

epoh 发表于 2012-12-30 22:09:50 |显示全部楼层
bertf 发表于 2012-12-30 20:01
感谢!请问我怎么运行这个修改过的文件呢?
使用source()指令
source("xxx.R")
   http://127.0.0.1:19684/library/base/html/source.html
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
日新少年 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

回复

使用道具 举报

bertf 发表于 2013-1-5 21:51:24 |显示全部楼层
epoh 发表于 2012-12-30 22:09
使用source()指令
source("xxx.R")
   http://127.0.0.1:19684/library/base/html/source.html
高人,我又有问题请教了,我按照你说的改了之后,输入了source("lstar.R"),这时候lstar函数就是按照修改过的lstar.R运行的对吧?
然后我输入 mod<-lstar(Rex,m=2),Rex是我的一个时间序列数据,但是结果却是:
错误于lstar(Rex, m = 2) : 没有"nlar.struct"这个函数
请问这是怎么回事?我事先已经加载了tsDyn包了。
还有能不能跟我讲一下lstar函数那些参数都是什么意思?m是指线性部分的自回归阶数吗?那mL,mH和thDelay是什么?
回复

使用道具 举报

epoh 发表于 2013-1-6 19:06:47 |显示全部楼层
bertf 发表于 2013-1-5 21:51
高人,我又有问题请教了,我按照你说的改了之后,输入了source("lstar.R"),这时候lstar函数就是按照修改过 ...
package tsDyn的架构是class nlar, subclass lstar
所以如果你是要在此架构下修改为estar,
自然需要再source()许多相关的配套函数,
执行过程中,R会告诉你缺哪些函数,你就逐次补足
当然练功是要花时间的,补足了函数,就能运行.
####
source("estar_2013.R")
svpdx=read.table("svpdx.dat")
mod.estar <- estar(svpdx[,1], m=2, d=1, control=list(maxit=3000))
summary(mod.estar)
Non linear autoregressive model

ESTAR model
Coefficients:
Low regime:
     const1      phi1.1      phi1.2
0.03546773 -0.02258017 -0.26793628

High regime:
     const2      phi2.1      phi2.2
-0.09690616  0.12737871  0.36340519

Smoothing parameter: gamma = 3.671

Threshold
Variable: Z(t) = + (1) X(t) + (0) X(t-1)

Value: -1.176

Residuals:
       Min         1Q     Median         3Q        Max
-3.2464684 -0.3925689 -0.0041534  0.3903538  4.3073348

Fit:
residuals variance = 0.4921,  AIC = -654, MAPE = 121.8%

Coefficient(s):
        Estimate  Std. Error  t value  Pr(>|z|)   
const1  0.035468    0.602035   0.0589  0.953021   
phi1.1 -0.022580    0.539471  -0.0419  0.966613   
phi1.2 -0.267936    0.124214  -2.1571  0.031001 *  
const2 -0.096906    0.614211  -0.1578  0.874635   
phi2.1  0.127379    0.531843   0.2395  0.810714   
phi2.2  0.363405    0.132885   2.7347  0.006243 **
gamma   3.671356    1.848957   1.9856  0.047074 *  
th     -1.175598    0.136345  -8.6222 < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Non-linearity test of full-order ESTAR model against full-order AR model
F = 1.4697 ; p-value = 0.23052

Threshold
Variable: Z(t) = + (1) X(t) + (0) X(t-1)
   Logistic and exponential transition functions.jpeg

已有 2 人评分学术水平 热心指数 信用等级 收起 理由
日新少年 + 1 + 1 + 1 精彩帖子
zhangtao + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

回复

使用道具 举报

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

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

GMT+8, 2019-12-16 05:56