我的目标是在R中估计以下方程:
Y_t = const + alpha_1 * (labor_t + theta_1 * trend1_t + theta_2 * trend2_t) + (1 - alpha_1) * capital_t
我尝试了以下几种方法:
library(stats4)
LL <- function(par){
beta0 <- par[1]
alpha1 <- par[2]
theta1 <- par[3]
theta2 <- par[4]
sigma2 <- par[5]
rhs <- beta0 + alpha1 * (log_lab + theta1*t80 + theta2*t95) + (1-alpha1)*log_cap
# rhs <- beta0 + alpha1 * log_lab + (1-alpha1)*log_cap
lhs <- y
rval <- sum(-lhs + dnorm(lhs, mean = rhs, sd = sqrt(sigma2), log = TRUE))
return(-rval)
}
par0 = as.vector(c(4.5, 0.65, 0.0014, 0.0023, 0.01))
fit <- optim(par0, LL, hessian = TRUE,
method = "L-BFGS-B", lower = 0.00001, upper = 10)
summary(fit)不幸的是,我发现了以下错误:Error in optim(par0, LL, hessian = TRUE, method = "L-BFGS-B", lower = 1e-05, : non-finite finite-difference value [5]
我已经使用MLE()和其他规范尝试了不同的方法,但都没有成功。如何解决估计具有约束系数的最小二乘回归的问题,即alpha_1 * beta_1 = 1,使得beta_1 == (1-α_1)?
发布于 2021-06-24 19:17:56
可以使用以下线性模型:
Y1(t) = α0 + α1*L1(t) + β1*T(1,t) + β2*T(2,t)
where
Y1(t) = Y(t)-C(t)
L1(t) = L(t)-C(t) 然后恢复:
θ1 = β1/α1
θ2 = β2/α1 (如果这是正确的,请检查数学)
https://stackoverflow.com/questions/68114108
复制相似问题