我在 R 中使用了一个名为“quantreg”的库,并尝试在时间序列的基础上估计完整的非参数分位数回归。为了获得统计上显着的结果,我尝试了很多变量和平滑参数值 (lambda)。但这很累而且非常耗时。因此,我想应用网格搜索,但这对我来说有点难。我想确定最佳平滑值,所以我应该构造一个 for 循环。但我希望该循环尝试每种组合。在我想获得最佳模型或模型的 lambda 值(所有变量的 p 值<0.05 条件)。例如,如果我的方程式中有三个变量,我会这样写:
lambdas1<-rbind(1,2,3)
lambdas2<-rbind(1,2,3)
lambdas3<-rbind(1,2,3)
mylist<-list()
for (i in 1:3) {
for (j in 1:3) {
for (n in 1:3) {
f <-try(rqss(Y~qss(X1,lambda = lambdas1[i])+qss(X2,lambda = lambdas2[j])+qss(X3,lambda = lambdas3[n]), tau=0.05))
sf<-summary(f)
if( (sf[["qsstab"]]['X1','Pr(>F)']<0.05)&(sf[["qsstab"]]['X2','Pr(>F)']<0.05)&(sf[["qsstab"]]['X3','Pr(>F)']<0.05) ){
mylist[[i]]<-f$lambdas
}
}
}
}
如何重新排列此代码?有什么捷径吗?
任何帮助将不胜感激。先感谢您。