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