楼主: 南冰
96448 299

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

121
epoh 发表于 2011-8-9 21:08:41
x=read.table("y.txt")
x=x[,1]
setar(x,m=2,d=2,steps=2,thDelay=0)
Non linear autoregressive model
SETAR model ( 2 regimes)
Coefficients:
Low regime:
     phiL.1      phiL.2     const L
0.08142965 -0.06675904  5.99903274
High regime:
     phiH.1      phiH.2     const H
0.03171358  0.08306024 -5.78033422
Threshold:
-Variable: Z(t) = + (1) X(t)+ (0)X(t-1)
-Value: 15.67
Proportion of points in low regime: 58.67%       High regime: 41.33%

122
chengzd2010 发表于 2011-8-9 21:48:52
真是太谢谢了epoh老师了,后续遇到问题再向老师请假啊,多谢指点啊

123
zhangtao 发表于 2011-8-13 09:39:15
epoh 发表于 2010-10-7 20:26
RSTAR package (Version 0.1-1)
搜不到,应该没发布.
利用R data lynx,在s-plus运行ESTAR MODEL
利用R data lynx,在s-plus运行ESTAR MODEL
可得结果如下:
#################in s-plus
> lynx.estar$parameters

本文来自: 人大经济论坛 S-Plus&R专版 版,详细出处参考: https://bbs.pinggu.org/forum.php? ... 1&from^^uid=11232

epoh老师,您好!
为什么我运行时提示以下错误:> lynx.estar$parameters
Problem: Object "lynx.estar" not found
Use traceback() to see the call stack
>
数学好就是要天天学

124
epoh 发表于 2011-8-13 20:57:42

zhangtao兄

这一段是s-plus code,请配合看

modeling financial time series with s-plus
CHAP 18 Nonlinear Time Series Models

#s-plus code
ESTAR.res = function(theta, g.scale, x, y, q)
{
k = ncol(x)
G = 1 - exp( - exp(theta[1])/g.scale * (q - theta[2])^2)
X = cbind(x * (1 - G), x * G)
m = crossprod(t(backsolve(chol(crossprod(X)), diag(2 * k))))
beta = m %*% t(X) %*% y
y - X %*% beta
}
data(lynx)
lynx.LHS = log10(lynx)[3:length(lynx)]
lynx.RHS = cbind(1, tslag(log10(lynx), 1:2, trim=T))
lynx.estar = nlregb(length(lynx)-2,
start=c(0,mean(lynx.RHS[,2])),
residuals=ESTAR.res,
lower=c(-Inf, min(lynx.RHS[,2])),
upper=c( Inf, max(lynx.RHS[,2])),
g.scale=var(lynx.RHS[,2]),
x=lynx.RHS, y=lynx.LHS, q=lynx.RHS[,2])
lynx.estar$parameters
exp(lynx.estar$parameters[1])/var(lynx.RHS[,2])

lynx.estar$parameters
#[1] -0.4641629 3.1881329
exp(lynx.estar$parameters[1])/var(lynx.RHS[,2])
#[1] 2.015791

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
zhangtao + 5 + 5 + 5 我很赞同

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

125
zhangtao 发表于 2011-8-15 10:01:24
+ y - X %*% beta,epoh老师,您好!以上这一句是什么意思?
为什么不是:+ y =X %*% beta?它和上一句beta = m %*% t(X) %*% y是什么关系?
nlregb这个函数如何知道它的调用方法?是splus中那个包中的函数?
另外,函数中theta没有赋值,为什么?
非常感谢!






> ESTAR.res = function(theta, g.scale, x, y, q)
+ {
+ k = ncol(x)
+ G = 1 - exp( - exp(theta[1])/g.scale * (q - theta[2])^2)
+ X = cbind(x * (1 - G), x * G)
+ m = crossprod(t(backsolve(chol(crossprod(X)), diag(2 * k))))
+ beta = m %*% t(X) %*% y
+ y - X %*% beta
+ }
> data(lynx)
> lynx.LHS = log10(lynx)[3:length(lynx)]
> lynx.RHS = cbind(1, tslag(log10(lynx), 1:2, trim=T))
> lynx.estar = nlregb(length(lynx)-2,
+ start=c(0,mean(lynx.RHS[,2])),
+ residuals=ESTAR.res,
+ lower=c(-Inf, min(lynx.RHS[,2])),
+ upper=c( Inf, max(lynx.RHS[,2])),
+ g.scale=var(lynx.RHS[,2]),
+ x=lynx.RHS, y=lynx.LHS, q=lynx.RHS[,2])
> lynx.estar$parameters
[1] -0.4641629  3.1881329
> exp(lynx.estar$parameters[1])/var(lynx.RHS[,2])
[1] 2.015791
>
> lynx.estar$parameters
[1] -0.4641629  3.1881329
> #[1] -0.4641629 3.1881329
> exp(lynx.estar$parameters[1])/var(lynx.RHS[,2])
[1] 2.015791
> #[1] 2.015791
>


数学好就是要天天学

126
epoh 发表于 2011-8-15 13:59:36

nlregb这个函数如何知道它的调用方法?

就跟R一样请键入:

?nlregb
Nonlinear Least Squares Subject to Box Constraints  
    Local minimizer for sums of squares of nonlinear functions
    subject to bound-constrained parameters.

nlregb(nres, start, residuals, jacobian = NULL, scale = NULL,  
       control = NULL, lower = -Inf, upper = Inf, ...)

residuals function 就是程序中定义的ESTAR.res()

whose sum of squares is to be minimized

##########
data(lynx)
lynx.LHS = log10(lynx)[3:length(lynx)]
lynx.RHS = cbind(1, tslag(log10(lynx), 1:2, trim=T))
g.scale=var(lynx.RHS[,2])  #[1] 0.3118682
x=lynx.RHS
y=lynx.LHS
q=lynx.RHS[,2]
k = ncol(x)

##为方便说明theta就先取初始值

##theta[1] : gamma
##theta[2] : threshold
theta=c(0,mean(lynx.RHS[,2]))
#exponential transition function
G = 1 - exp( - exp(theta[1])/g.scale * (q - theta[2])^2)
X = cbind(x * (1 - G), x * G)
m = crossprod(t(backsolve(chol(crossprod(X)), diag(2 * k))))

#beta就是回归方程系数

beta = m %*% t(X) %*% y
beta
#           [,1]
#[1,]  1.5137057
#[2,]  1.4795807
#[3,] -0.9927024
#[4,]  0.7488970
#[5,]  1.1184420
#[6,] -0.3844286

#y - X %*% beta 就是residuals

y - X %*% beta

##回归方程系数beta,也可如下求出

lm.fit(X,y)

Coefficients:
              lag1       lag2              lag1       lag2
1.513706 1.479581 -0.9927024 0.748897 1.118442 -0.3844286

127
南冰 发表于 2011-8-17 11:00:29
epoh 发表于 2011-8-13 20:57
zhangtao兄这一段是s-plus code,请配合看modeling financial time series with s-plus
CHAP 18 Nonlinear ...
epoh老师,好久不见了,最近还好吧?
一直怀有一个梦想,希望在不久的将来能读个博士,做做学术搞搞研究,饱尝学术的艰辛

128
雁茗轩 发表于 2011-9-1 16:27:21
epoh 发表于 2010-9-30 10:23
library(tsDyn)
x
前辈,您好!看到您和“南冰”的帖子回复,我深深敬佩您在STAR模型和R软件方面的造诣,我现在在看这方面的东西,有很多困惑就想请教您。您做过STAR模型中脉冲响应函数的R软件实现过程吗?

129
epoh 发表于 2011-9-1 18:51:34

你先看一下79楼

内有参考文献:

"Impulse response analysis in nonlinear multivariate models".pdf

Generalized Impulse Response Function

程序及图形.

130
kerrydu 发表于 2011-9-2 16:40:27
epoh 发表于 2010-10-1 08:54
package "tsDyn"
本身就有function lstar
可估Logistic STAR model
您好!我对Lstar里面的输入参数,有些不解。。。lstar(x,m,d=1,steps=d,series,mL,mH,mTh,thDelay

m,d,steps :embeddingdimension,timedelay,forecastingsteps 中embeddingdimension指的是什么?

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

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