如何进行n个分位数回归模拟

问题描述 投票:0回答:1
library(rqPen)
LASSO.fit(Y,X, tau=0.5, lambda=0.1, intercept=FALSE, coef.cutoff=1e-5)

我如何模拟这N次以得到100套结果?我有下面的代码,但是计算时间太长,PC崩溃了。这是正确的吗?

for (i in 1:100){
beta[i] = LASSO.fit(Y,X, tau=0.5, lambda=0.1, intercept=FALSE, coef.cutoff=1e-5)
}

[我也尝试了以下方法,但是,当我使用lapply时,每个模拟的每个beta的值都完全相同...我希望每个beta的行具有不同的系数。

do.call(cbind, lapply(1:100, function(i) {
beta = LASSO.fit(Y,X, tau=0.5, lambda=0.1, intercept=FALSE, coef.cutoff=1e-5)
  return(beta)}))

r simulation montecarlo
1个回答
0
投票

您如何在for循环之前定义beta变量?崩溃可能与将值存储在beta中有关。由于LASSO.fit返回一个数组,据我所知,您想存储所有这些值,因此应将beta定义为列表

beta <- vector("list", length = ncol(X))
for (i in 1:100){
beta[[i]] = LASSO.fit(Y,X, tau=0.5, lambda=0.1, intercept=FALSE, coef.cutoff=1e-5)
}

如果要使用lapply进行操作,则可以按照以下步骤进行操作

beta <- lapply(1:100 , function(z) LASSO.fit(Y,X, tau=0.5, lambda=0.1, intercept=FALSE, coef.cutoff=1e-5))
© www.soinside.com 2019 - 2024. All rights reserved.