如何解决如何使用预先确定的滞后结构在 R 中执行非线性最小二乘法
假设我要估计以下模型的参数: $y_t = beta0 (sum_{i=1}^p w(delta;i) x_{t-i})$.
等式的乳胶版本:https://i.stack.imgur.com/POOlD.png
其中 y_t 和 x_{t-i} 是已知数据点,wdelta 遵循指数 Almon 滞后结构,具有两个参数 delta1 和 delta2(见图)。而 beta0 是公用参数。
为 x 和 y 生成一些数据
y <- seq(1:10)
x <- rnorm(10,2,5)
文献建议使用 NLS 和高斯牛顿法估计模型参数。 R 确实有一个函数 gaussNewton 但是我不知道如何使用它。如何估计参数 beta0、delta1 和 delta2?
维基百科建议:https://en.wikipedia.org/wiki/Non-linear_least_squares,但是我觉得这在这种情况下不合适。 R 中的 nls 函数无法处理预定义的滞后结构,因此这也不是一个选项。也许我可以以残差平方和的形式写出函数并使用 optim 函数?另一种选择是使用 nlm 函数。
nonls <- function(delta1,delta2,i,p) {
z <- exp(delta1 * i + delta2 *i)
wdelta[i] <- exp(delta1 * i + delta2 *i)/sum(z[1:i])
ssr <- (y[i]- (beta0 * wdelta[i] * x[i:p]))^2
}
optim(ssr)
我期待您的建议。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。