楼主: 南冰
96440 299

急:R软件加载程序包tsDyn问题 [推广有奖]

21
epoh 发表于 2010-10-10 21:17:29
module(finmetrics)
ndx.ret2 = getReturns(ndx.dat[,"Close"])^2
ndx.rvol = sqrt(aggregate(ndx.ret2, FUN=sum, by="weeks",week.align=1))
ndx.lstar = STAR(log(ndx.rvol), p=2, d=1)
summary(ndx.lstar)

n=length(ndx.rvol)          #302
z=log10(ndx.rvol)[2:(n-1)]  #300
g=ndx.lstar$gamma
th=ndx.lstar$threshold
gfun <- function(y, g, th)      1 / (1 + exp(-g*(y-th)))  
G=gfun(z,g,th)
par(mfrow=c(2,1))
plot(G)

G.zt=as.vector(G)
zt=as.vector(z)
plot(G.zt,zt)
已有 1 人评分学术水平 热心指数 收起 理由
南冰 + 1 + 1 谢谢!

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

22
南冰 发表于 2010-10-11 10:46:52
请问前辈有没有三机制或者四机制的LSTAR或者ESTAR的教程和程序吗?有的话麻烦您发给我好吗?谢谢您了!谢谢您最近一直帮助我, 21# epoh
一直怀有一个梦想,希望在不久的将来能读个博士,做做学术搞搞研究,饱尝学术的艰辛

23
epoh 发表于 2010-10-11 11:57:14
抱歉!我没这方面资料.

24
epoh 发表于 2010-10-11 12:28:55
你的三机制,四机制,指的可是
multiple regime smooth transition autoregressive

25
南冰 发表于 2010-10-11 15:13:03
对,就是这方面的资料。 24# epoh
一直怀有一个梦想,希望在不久的将来能读个博士,做做学术搞搞研究,饱尝学术的艰辛

26
epoh 发表于 2010-10-11 19:27:33
multiple regime smooth transition autoregressive
可以应用package "tsDyn" function star()的引数noRegimes
  function star() can fit with automatic selection
  of the number of regimes based on LM tests.

数据lynx,ndx.rvol都不适合 Add regime
因为 Regime 3 is NOT accepted (p-Value = 0.8678928 )

在此我提供另一个数据svpdx.dat供练习:
The data consist of a time series of daily
  Pound/Dollar exchange rates
  from 01/10/81 to 28/6/85.

library(tsDyn)
svpdx=read.table("svpdx.dat")
mod1.star <- star(svpdx,noRegimes=3, m=2,d=1, control=list(maxit=3000))
mod1.star


Using default threshold variable: thDelay=0
Testing linearity...   p-Value =  0.01685132
The series is nonlinear. Incremental building procedure:
Building a 2 regime STAR.
Using default threshold variable: thDelay=0
Performing grid search for starting values...
Starting values fixed: gamma =  17 , th =  -0.8636345 ; SSE =  467.8267
Optimization algorithm converged
Optimized values fixed for regime 2  : gamma =  17.00000 , th =  -0.9237364

Testing for addition of regime 3.
  Estimating gradient matrix...
  Done. Computing the test statistic...
  Done. Regime 3 is needed (p-Value =  0.004081644 ).
Adding regime  3 .
Fixing good starting values for regime  3 ...
Reordering regimes...
Estimating parameters of regime 3 ...
Optimized values fixed for regime  3 : gamma =  156.3195 , th =  1.685289
Optimization algorithm converged
Optimized linear values:
0.7151267 0.5046379 -0.1193560
-0.7685278 -0.3892954 0.1769597
2.446755 -0.881913 -0.2143251
Ok.
Testing for addition of regime  4 .
  Estimating gradient matrix...
  Computing the test statistic...
Regime  4  is NOT accepted (p-Value =  0.1171196 ).

Finished building a MRSTAR with  3  regimes

> mod1.star
Non linear autoregressive model
Multiple regime STAR model

Regime  1 :
    Linear parameters: 0.7151267, 0.5046379, -0.119356
Regime  2 :
    Linear parameters: -0.7685278, -0.3892954, 0.1769597
    Non-linear parameters:
    22.7263412, -0.9325508
Regime  3 :
    Linear parameters: 2.4467549, -0.8819129, -0.2143251
    Non-linear parameters:
    156.3195267, 1.685289


svpdx.dat
svpdx.rar (8.77 KB) 本附件包括:
  • svpdx.dat

Smooth Transition Autoregressive Models
Smooth Transition Autoregressive Models.pdf (657.91 KB)


已有 3 人评分学术水平 热心指数 信用等级 收起 理由
flyboy + 2 + 2 + 2 观点有启发
southmm + 1 + 1 + 1 好的意见建议
南冰 + 1 + 1 好人啊

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

27
南冰 发表于 2010-10-11 20:46:08
谢谢您啊! 26# epoh
一直怀有一个梦想,希望在不久的将来能读个博士,做做学术搞搞研究,饱尝学术的艰辛

28
南冰 发表于 2010-10-15 00:03:39
您好!麻烦您帮我看一下下面的程序,我在R中估计LSTAR模型时,估计的很顺利,但是我想查看中间过程中产生的多有变量结果老是错误:
> sum.s<-summary(ndx.lstar)
错误于summary.lstar(ndx.lstar) : dims [product 48]与对象长度[0]不匹配
> summary(ndx.lstar)
错误于summary.lstar(ndx.lstar) : dims [product 48]与对象长度[0]不匹配
请问您一下这是什么原因呢?希望您给予指导,期待您的回复,谢谢了!



> getwd()
[1] "d:/我的文档"
> svpdx <- read.table("data.txt", header = TRUE);
> svpdx
    cpi  rpi          m2
1   3.4  2.9  0.26524514
2   6.4  5.4  0.31278198
3  14.7 13.2  0.37310154
4  24.1 21.7  0.34529154
5  17.1 14.8  0.29467111
6   8.3  6.1 -0.03867458
7   2.8  0.8  0.34668927
8  -0.8 -2.6  0.17245702
9  -1.4 -3.0  0.14411363
10  0.4 -1.5 -0.31433668
11  0.7 -0.8  0.87572994
12 -0.8 -1.3  0.16337324
13  1.2 -0.1  0.19679602
14  3.9  2.8  0.18161695
15  1.8  0.8  0.14387323
16  1.5  1.0  0.18886459
17  4.8  3.8  0.15787746
18  5.9  5.9  0.18875571
19 -0.7 -1.2  0.18736354
> x <- svpdx$cpi
> x
[1]  3.4  6.4 14.7 24.1 17.1  8.3  2.8 -0.8 -1.4  0.4  0.7 -0.8  1.2  3.9  1.8  1.5  4.8  5.9 -0.7
> y<-svpdx$rpi
> y
[1]  2.9  5.4 13.2 21.7 14.8  6.1  0.8 -2.6 -3.0 -1.5 -0.8 -1.3 -0.1  2.8  0.8  1.0  3.8  5.9 -1.2
> z<-svpdx$m2
> z
[1]  0.26524514  0.31278198  0.37310154  0.34529154  0.29467111 -0.03867458  0.34668927  0.17245702  0.14411363
[10] -0.31433668  0.87572994  0.16337324  0.19679602  0.18161695  0.14387323  0.18886459  0.15787746  0.18875571
[19]  0.18736354
> library(tsDyn)
> ndx.lstar <- lstar(x, m=3,d=1, thVar=z,control=list(maxit=3000));
Using maximum autoregressive order for low regime: mL = 3
Using maximum autoregressive order for high regime: mH = 3
Using only first 16 elements of thVar
Performing grid search for starting values...
Starting values fixed: gamma =  40 , th =  0.3291658 ; SSE =  118.9413
Optimization algorithm converged
Optimized values fixed for regime 2  : gamma =  48.01837 , th =  0.3223614
> rdx.lstar <- lstar(y, m=3,d=1, thVar=z,control=list(maxit=3000));
Using maximum autoregressive order for low regime: mL = 3
Using maximum autoregressive order for high regime: mH = 3
Using only first 16 elements of thVar
Performing grid search for starting values...
Starting values fixed: gamma =  40 , th =  0.352213 ; SSE =  119.8971
Optimization algorithm converged
Optimized values fixed for regime 2  : gamma =  45.87497 , th =  0.3458736
> ndx.lstar
Non linear autoregressive model
LSTAR model
Coefficients:
Low regime:
    phi1.0     phi1.1     phi1.2     phi1.3
-0.2840885  1.9360245 -1.4690397  0.4925477
High regime:
    phi2.0     phi2.1     phi2.2     phi2.3
4.3974268 -2.3388445  2.2482280 -0.9932285
Smoothing parameter: gamma = 48.02
Threshold
Variable: external
Value: 0.3224
> rdx.lstar
Non linear autoregressive model
LSTAR model
Coefficients:
Low regime:
    phi1.0     phi1.1     phi1.2     phi1.3
-0.4204974  1.8394945 -1.4018456  0.4320727
High regime:
   phi2.0    phi2.1    phi2.2    phi2.3
3.939309 -3.911762  3.639241 -1.489407
Smoothing parameter: gamma = 45.87
Threshold
Variable: external
Value: 0.3459
> sum.s<-summary(ndx.lstar)
错误于summary.lstar(ndx.lstar) : dims [product 48]与对象长度[0]不匹配
> summary(ndx.lstar)
错误于summary.lstar(ndx.lstar) : dims [product 48]与对象长度[0]不匹配

26# epoh
一直怀有一个梦想,希望在不久的将来能读个博士,做做学术搞搞研究,饱尝学术的艰辛

29
epoh 发表于 2010-10-15 12:04:52
这不是数据的问题
因为package自带的数据lynx,也发生同样问题
library(tsDyn)
mod.lstar <- lstar(log10(lynx), m=2, d=1, control=list(maxit=3000))
summary(mod.lstar)
#dims [product 224] do not match the length of object [0]
这是因为source code lstar.R 中的function summary.lstar
sX <- object$mod$thVar
应该是sX <- object$model.specific$thVar
order.L <- object$mod$mL
应该是order.L <- object$model.specific$mL
....
....
我初步修改为lstar_new.R后可运行
但需再花点时间再检查.
source("lstar_new.R")
mod.lstar <- lstar(log10(lynx), m=2, d=1, control=list(maxit=3000))
mod.lstar
summary(mod.lstar)

#####
> summary(mod.lstar)
Non linear autoregressive model

LSTAR model
Coefficients:
Low regime:
    phi1.0     phi1.1     phi1.2
0.4055717  1.2378257 -0.3265076

High regime:
    phi2.0     phi2.1     phi2.2
0.8187712  0.3087342 -0.6418812

Smoothing parameter: gamma = 40

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

Value: 2.566

Residuals:
      Min        1Q    Median        3Q       Max
-0.596805 -0.133230  0.034821  0.139065  0.471333

Fit:
residuals variance = 0.04104,  AIC = -348, MAPE = 6.003%

Non-linearity test of full-order LSTAR model against full-order AR model
F = 8.529 ; p-value = 0.00036569

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

其实你也可以使用function star
因为star 也是使用Logistic transition function
底下两者结果相同
mod.star <- star(log10(lynx), m=2, d=1, control=list(maxit=3000))
mod.star
summary(mod.star)

mod.lstar <- lstar(log10(lynx), m=2, d=1, control=list(maxit=3000))
mod.lstar

但是summary(mod.star)无误

30
epoh 发表于 2010-10-15 22:19:08
我修改了source code并重新compile

1.移除原来的package "tsDyn"
2.From menus\Packages\install package(s) from local zip-files\tsDyn_0.7-40.zip


library(tsDyn)
mod.lstar <- lstar(log10(lynx), m=2, d=1, control=list(maxit=3000))
summary(mod.lstar)
#################
Non linear autoregressive model
LSTAR model
Coefficients:
Low regime:
    phi1.0     phi1.1     phi1.2
0.4055717  1.2378257 -0.3265076

High regime:
    phi2.0     phi2.1     phi2.2
0.8187712  0.3087342 -0.6418812

Smoothing parameter: gamma = 40
Threshold
Variable: Z(t) = + (1) X(t) + (0) X(t-1)

Value: 2.566
Residuals:
      Min        1Q    Median        3Q       Max
-0.596805 -0.133230  0.034821  0.139065  0.471333

Fit:
residuals variance = 0.04104,  AIC = -348, MAPE = 6.003%

Non-linearity test of full-order LSTAR model against full-order AR model
F = 8.529 ; p-value = 0.00036569

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



tsDyn_0.7-40.zip
tsDyn_0.7-40.zip (1.55 MB)

已有 1 人评分学术水平 热心指数 收起 理由
南冰 + 1 + 1 牛人,佩服!

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

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-16 15:25