R код, Поиск общих переменных перехода для пороговых авторегрессионных процессов

Ниже приведен код для поиска оптимальной "пороговой переменной" с учетом AR(pmax). Переменный коэффициент AR является обобщением TAR в том смысле, что он обеспечивает более сложную плавную динамику. Pmax контролирует AR(pmax). P - максимальная задержка первого компонента. Q - максимальная задержка второго компонента. R - максимальная мощность второго компонента.

A [i,j,k] является переменной в функциональном коэффициенте ==> X(t)=F0(a[i,j,k])+ F1(a[i,j,k])*X(t-1)+..+ Fm(a[i,j,k])*X(tm) вместо классического AR(m) X(t)=a0+a1*X(t-1)+..+ а * X (тм). Я планирую найти общую переменную перехода, используя тройной цикл, и по этой причине она представляет собой [i,j,k]= X(ti)*X^k(tj)

    library(gamlss)
    library(gamlss.add)
    library(gam)
    library(mgcv)
    library(tsDyn)

    llynx=log10(lynx)


    minAICVCsplinetest=function(x,pmax,p,q,r){
    blagg=na.remove(blag(x,pmax))
    data=na.remove(blag(x,pmax))
    alpha=array(0,dim=c(p,q,r))
    a=rep(0, length(data[,c(1)]))

    for(i in 1:p){
    for(j in 1:q){
    for(k in 1:r){
    a[i,j,k]=blagg[,c(i)]*blagg[,c(j)]^k
    for(m in 1:pmax){ll[m]=to.string(bquote("s(a[i,j,k],by=data[,c("~.(m)~"+1)])+"))}
    gg=to.string((gsub( "[^][:alnum:],=()[+]", "", (ll))))
    alpha[i,j,k]=AIC(gam(blagg[,c(1)]~cat(substr(gg, 1, nchar(gg)-1))))}}}
    which(alpha==min(alpha), arr.ind=TRUE)}

    minAICVCsplinetest(llynx,6,4,4,10)

Оптимальная политика, вероятно, состояла бы в том, чтобы показать переменную перехода с наименьшей эффективной степенью свободы, но у меня возникает следующая проблема: Ошибка в [i, j, k] = blagg[, c(i)] * blagg[, c(j)]^k: неверное количество подписчиков. Спасибо за ваше время и внимание

0 ответов

Другие вопросы по тегам