[英]ARIMA model with nonlinear exogenous variable in R
我正在R中进行非线性回归,并想在模型中添加一个移动平均项以消除残差的自相关。
基本上,这是模型:
y[n] = a + log((x1[n])^g + (x2[n])^g) + c*e[n-1] + e[n]
其中[e]
是移动平均项。
我计划使用ARIMA(0, 0, 1)
对残差建模。 但是,我不知道我应该在R中使用哪个函数将非线性外生部分添加到ARIMA模型中。
更多信息:我知道如何使用nls
命令来估计a
和g
,但是不知道如何处理e[n]
。
我知道xreg
中的arima
可以处理带有线性外生变量的ARIMA模型。 是否有类似的函数来处理带有非线性外生变量的ARIMA模型?
预先感谢您的帮助!
nlme
具有这种能力,因为它适合非线性混合模型。 通过允许随机效应和相关误差,您可以认为它是nls
的扩展(仅固定效应非线性回归)。
nlme
可以通过诸如correlation = corARMA(0.2, ~ 1, p = 0, q = 1, fixed = TRUE)
类的东西来处理ARMA相关性。 这意味着,残差是MA(1)过程,初始猜测系数为0.2,但在模型拟合过程中会进行更新。 ~ 1
表示MA(1)
处于截距,没有进一步的分组结构。
我不是nlme
的专家,但是我知道nlme
是您所需要的。 我提供了以下示例,但是由于我不是专家,因此目前无法使nlme
工作。 我将其发布在此处以开始/添加味道。
set.seed(0)
x1 <- runif(100)
x2 <- runif(100)
## MA(1) correlated error, with innovation standard deviation 0.1
e <- arima.sim(model = list(ma = 0.5), n = 100, sd = 0.1)
## a true model, with `a = 0.2, g = 0.5`
y0 <- 0.2 + log(x1 ^ 0.5 + x2 ^ 0.5)
## observations
y <- y0 + e
## no need to install; it comes with R; just `library()` it
library(nlme)
fit <- nlme(y ~ a + log(x1 ^ g + x2 ^ g), fixed = a + g ~ 1,
start = list(a = 0.5, g = 1),
correlation = corARMA(0.2, form = ~ 1, p = 0, q = 1, fixed = FALSE))
与nls
相似,我们有一个整体模型公式y ~ a + log(x1 ^ g + x2 ^ g)
,并且迭代过程需要起始值。 我选择了start = list(a = 0.5, g = 1)
。 开头已经说明了correlation
位。
nlme
fixed
和random
参数指定在整个公式中应视为固定效应和随机效应的参数。 由于我们没有随机效应,因此我们未对其进行指定。 我们希望a
和g
为固定效果,所以我尝试了诸如fixed = a + g ~ 1
。 不幸的是,由于某些原因,我不知道它不能正常工作。 我阅读了?nlme
,并认为该公式意味着我们希望所有观察值都具有共同的a
和g
,但是后来nlme
报告了一个错误,指出这不是有效的组公式。
我也在对此进行投资; 正如我所说,以上内容为我们提供了一个起点。 我们已经很接近最终答案了。
感谢user20650指出我的尴尬错误。 我应该使用gnls
函数而不是nlme
。 根据nlme
软件包的设计性质,函数lme
和nlme
必须采用random
参数才能起作用。 幸运的是, nlme
软件包中还有其他一些例程可以扩展线性模型和非线性模型。
gls
和gnls
通过允许非对角方差函数gnls
扩展lm
和nls
。 因此,我应该真正使用gnls
代替:
## no `fixed` argument as `gnls` is a fixed-effect only
fit <- gnls(y ~ a + log(x1 ^ g + x2 ^ g), start = list(a = 0.5, g = 1),
correlation = corARMA(0.2, form = ~ 1, p = 0, q = 1, fixed = FALSE))
#Generalized nonlinear least squares fit
# Model: y ~ a + log(x1^g + x2^g)
# Data: NULL
# Log-likelihood: 92.44078
#
#Coefficients:
# a g
#0.1915396 0.5007640
#
#Correlation Structure: ARMA(0,1)
# Formula: ~1
# Parameter estimate(s):
# Theta1
#0.4184961
#Degrees of freedom: 100 total; 98 residual
#Residual standard error: 0.1050295
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.