楼主: 南冰
96439 299

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

31
南冰 发表于 2010-10-16 01:45:12
您好!我太菜了,问题不断!如果想估计下面(图片格式)这个模型,其中G(.)为logistic函数,在R中该如何编程序呢?谢谢您了啊!
30# epoh

未命名.jpg (12.77 KB)

未命名.jpg

未命名2.jpg (7.95 KB)

未命名2.jpg

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

32
epoh 发表于 2010-10-16 14:01:10
LSTAR model基本结构不变

G <- function(y, g, th)
1/(1 + exp(-g*(y-th)))


F <- function(phi1, phi2, g, th){


xxL %*% phi1 + (xxH %*% phi2) * G(z, g, th)}

只是数据有所改变
以你新的new model,log10(lynx),m=2,d=1 为例
       y(t-1)      dy(t-1)       dy(t)
  [1,] 2.506505  0.076752752  0.260650834
  [2,] 2.767156  0.260650834  0.172862289
  [3,] 2.940018  0.172862289  0.228773865
       ...........

log10(lynx),m=3,d=1
        y(t-1)      dy(t-2)     dy(t-1)       dy(t)
  [1,] 2.767156  0.076752752  0.260650834  0.172862289
  [2,] 2.940018  0.260650834  0.172862289  0.228773865
  [3,] 3.168792  0.172862289  0.228773865  0.281611066


lstar_newmodel.R
lstar_newmodel.rar (6.16 KB) 本附件包括:
  • lstar_newmodel.R


source("lstar_newmodel.R")
mod.lstar <- lstar(log10(lynx), m=2, d=1, control=list(maxit=3000))
mod.lstar
summary(mod.lstar)


mod1.lstar <- lstar(log10(lynx), m=3, d=1, control=list(maxit=3000))
mod1.lstar
summary(mod1.lstar)


LSTAR model
Coefficients:
Low regime:
    phi1.0     phi1.1     phi1.2     phi1.3
0.5389244 -0.1335123  0.1276239  0.2615295

High regime:
     phi2.0      phi2.1      phi2.2      phi2.3
0.83454679 -0.34393225  0.09368726  0.63782175

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

Value: 2.568
Residuals:
      Min        1Q    Median        3Q       Max
-0.577726 -0.116138  0.025577  0.140332  0.439914

Fit:
residuals variance = 0.03941,  AIC = -349, MAPE = 128.3%

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

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


#######cpi
data=read.table("data.txt", header = TRUE)
x <- data$cpi
y <- data$rpi
z <- data$m2
cpi.lstar <- lstar(x, m=3,d=1, thVar=z,control=list(maxit=3000))
cpi.lstar
summary(cpi.lstar)

LSTAR model
Coefficients:
Low regime:
     phi1.0      phi1.1      phi1.2      phi1.3
-0.28408868 -0.04046736 -0.49254774  0.97649199

High regime:
   phi2.0    phi2.1    phi2.2    phi2.3
4.397429 -1.083845  0.993229 -1.255000

Smoothing parameter: gamma = 48.02
Threshold
Variable: external
Value: 0.3224

Residuals:
     Min       1Q   Median       3Q      Max
-5.52572 -1.58668 -0.30896  1.65844  4.79960

Fit:
residuals variance = 6.057,  AIC = 54, MAPE = 168.2%

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

Threshold
Variable: external
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
jzbd + 1 + 1 + 1 高手,能拜你为师,就好了。
南冰 + 1 + 1 不知道怎么谢你了!

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

33
南冰 发表于 2010-10-16 21:47:43
您好!再向您请教个问题,我用cr=cpi.lstar$residuals调用了残差后,如果我想对残差进行独立性检验(Q统计量)、正态性检验(JB统计量)和ARCH检验(LM统计量,也可以是其他统计量),该如何编程呢?谢谢您了! 32# epoh
一直怀有一个梦想,希望在不久的将来能读个博士,做做学术搞搞研究,饱尝学术的艰辛

34
南冰 发表于 2010-11-4 20:13:45
前辈您好,转换变量是滞后变量时我可以用S-PLUS做出转换变量和转换函数的散点图,但是如果转换变量是外生变量时我只能用R估计模型,但是该如何调用转换函数的值呢?我试了 rff=rdx.lstar$transition.func> rff
NULL
可是不能调用,希望您能解答,谢谢您了! 21# epoh
一直怀有一个梦想,希望在不久的将来能读个博士,做做学术搞搞研究,饱尝学术的艰辛

35
zhangtao 发表于 2010-11-4 21:47:35
epoch是很好的老师,非常感谢

36
epoh 发表于 2010-11-4 22:12:46
source("lstar_newmodel.R")
data=read.table("data.txt", header = TRUE)
x <- data$cpi
y <- data$rpi
z <- data$m2
cpi.lstar <- lstar(x, m=2,d=1, thVar=z,control=list(maxit=3000))
cpi.lstar
names(cpi.lstar)
#[1] "str"      "coefficients"   "fitted.values"  "residuals"   "k"            
#[6] "model"    "model.specific"
g=cpi.lstar$coefficients[7]
th=cpi.lstar$coefficients[8]
gfun <- function(y, g, th)      1 / (1 + exp(-g*(y-th)))  
G=gfun(z,g,th)
par(mfrow=c(2,1))
plot(G,type = "l", col = "red")
plot(G,z)

#########Statistical Tests:
library(fGarch)
# Lagged Series:
    .tslagGarch = function (x, k = 1) {
        ans = NULL
        for (i in k) ans = cbind(ans, .tslag1Garch(x, i))
        indexes = (1:length(ans[, 1]))[!is.na(apply(ans, 1, sum))]
        ans = ans[indexes, ]
        if (length(k) == 1) ans = as.vector(ans)
        ans }
    .tslag1Garch = function (x, k) {
        c(rep(NA, times = k), x[1:(length(x) - k)]) }
    # Statistical Tests:
    cat("\n Residuals Tests:\n")
    r.s = cpi.lstar$residuals
    ans = NULL
    # Normality Tests:
    jbtest = jarqueberaTest(r.s)@test
    ans = rbind(ans, c(jbtest[1], jbtest[2]))
    if (length(r.s) < 5000) {
        swtest = shapiro.test(r.s)
        if (swtest[2] < 2.6e-16) swtest[2] = 0
        ans = rbind(ans, c(swtest[1], swtest[2]))
    } else {
        ans = rbind(ans, c(NA, NA))
    }
    # Ljung-Box Tests:
    box10 = Box.test(r.s, lag = 10, type = "Ljung-Box")
    box15 = Box.test(r.s, lag = 15, type = "Ljung-Box")
    box20 = Box.test(r.s, lag = 20, type = "Ljung-Box")
    ans = rbind(ans, c(box10[1], box10[3]))
    ans = rbind(ans, c(box15[1], box15[3]))
    ans = rbind(ans, c(box20[1], box20[3]))
    box10 = Box.test(r.s^2, lag = 10, type = "Ljung-Box")
    box15 = Box.test(r.s^2, lag = 15, type = "Ljung-Box")
    box20 = Box.test(r.s^2, lag = 20, type = "Ljung-Box")
    ans = rbind(ans, c(box10[1], box10[3]))
    ans = rbind(ans, c(box15[1], box15[3]))
    ans = rbind(ans, c(box20[1], box20[3]))
    # Ljung-Box Tests - tslag required
    lag.n = 12
    x.s = as.matrix(r.s)^2
    n = nrow(x.s)
    tmp.x = .tslagGarch(x.s[, 1], 1:lag.n)
    tmp.y = x.s[(lag.n + 1):n, 1]
    fit = lm(tmp.y ~ tmp.x)
    stat = (n-lag.n) * summary.lm(fit)$r.squared
    ans = rbind(ans, c(stat, p.value = 1 - pchisq(stat, lag.n)) )
    # Add Names:
    rownames(ans) = c(
        " Jarque-Bera Test   R    Chi^2 ",
        " Shapiro-Wilk Test  R    W     ",
        " Ljung-Box Test     R    Q(10) ",
        " Ljung-Box Test     R    Q(15) ",
        " Ljung-Box Test     R    Q(20) ",
        " Ljung-Box Test     R^2  Q(10) ",
        " Ljung-Box Test     R^2  Q(15) ",
        " Ljung-Box Test     R^2  Q(20) ",
        " LM Arch Test       R    TR^2  ")
    colnames(ans) = c("Statistic", "p-Value")
    print(ans)
                               Statistic p-Value  
Jarque-Bera Test   R     Chi^2  3.021414  0.2207539
Shapiro-Wilk Test  R     W       0.9368604 0.2828191
Ljung-Box Test      R     Q(10)  8.92331     0.5393969
Ljung-Box Test      R     Q(15)  20.06886  0.1693071
Ljung-Box Test      R     Q(20)  NA             NA      
Ljung-Box Test      R^2  Q(10)  2.390212  0.9923808
Ljung-Box Test      R^2  Q(15)  6.469093  0.970746
Ljung-Box Test      R^2  Q(20)  NA             NA      
LM Arch Test         R      TR^2   5               0.957979

37
南冰 发表于 2010-11-5 12:34:37
epoch是很好的老师,非常感谢!真的是很好的老师,就是不知道他现在在哪里高就。
本文来自: 人大经济论坛 S-Plus&R专版 版,详细出处参考:http://www.pinggu.org/bbs/viewthread.php?tid=923194&page=4&from^^uid=841068 35# zhangtao
一直怀有一个梦想,希望在不久的将来能读个博士,做做学术搞搞研究,饱尝学术的艰辛

38
南冰 发表于 2010-11-5 12:35:22
万分感谢,真想拜你为师! 36# epoh
一直怀有一个梦想,希望在不久的将来能读个博士,做做学术搞搞研究,饱尝学术的艰辛

39
jzbd 发表于 2010-11-7 23:29:48
好好学习一下。我也遇到上面的类似问题。郁闷。

40
flyflyflyfly 发表于 2010-11-11 04:22:26
你好,epoh。我想请问一下,当结果里出现variable:external 的时候,说明什么。这是我的Zt函数设置是t

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

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