R glmnet计算时间差异-为什么?

R glmnet计算时间差异-为什么?,r,algorithm,glmnet,usage-statistics,lasso-regression,R,Algorithm,Glmnet,Usage Statistics,Lasso Regression,如果一个参数增加,glmnet在我正在做的应用程序(联合套索)中似乎会变慢 我发现我给glmnet的矩阵在下半年会增加。它与下面的代码类似,其中X的前半部分的平均值为70,后半部分的平均值为0。 与两个半部分的平均值为70或平均值为0的情况相比,计算时间约为三倍 这种行为有具体的原因吗 library(glmnet) Sigma_matrix <- diag(x = 1, nrow = number_variables, ncol = number_variables) rho <-

如果一个参数增加,glmnet在我正在做的应用程序(联合套索)中似乎会变慢

我发现我给glmnet的矩阵在下半年会增加。它与下面的代码类似,其中X的前半部分的平均值为70,后半部分的平均值为0。 与两个半部分的平均值为70或平均值为0的情况相比,计算时间约为三倍

这种行为有具体的原因吗

library(glmnet)
Sigma_matrix <- diag(x = 1, nrow = number_variables, ncol = number_variables)
rho <- 0.5
for (k in 1:number_variables) {
  for (j in 1:number_variables) {
    if (k != j) {
      Sigma_matrix[k, j] <- rho^((abs(k-j))^2)
    }
  }
}
number_variables <- 20
observations <- 250
X[1: (observations/2), ] <- mvrnorm(n = (observations/2), mu = c(rep(70, times = number_variables)), Sigma = Sigma_matrix)
X[((observations/2)+1): observations, ] <- mvrnorm(n = (observations/2), mu = c(rep(0, times = number_variables)), Sigma = Sigma_matrix)
y <- rnorm(n = observations)
start_one <- Sys.time()
for (i in 1:1000) {
  model <- cv.glmnet(X, y, intercept = TRUE)
}
end_one <- Sys.time()
print(end_one-start_one)
库(glmnet)
西格玛矩阵