R을 사용한 올가미 예측의 표준 오차 사용하여 예측을

예측을 위해 LASSO 모델을 사용하려고하는데 표준 오류를 추정해야합니다. 분명히 누군가가 이미 이것을하기 위해 패키지를 작성했습니다. 그러나 내가 알 수있는 한, LASSO를 사용하여 예측을 수행하는 CRAN의 패키지는 해당 예측에 대한 표준 오류를 반환하지 않습니다.

그래서 내 질문은 : 패키지 또는 일부 R 코드가 LASSO 예측에 대한 표준 오류를 계산할 수 있습니까?



답변

Kyung et al. (2010), “Penalized regression, standard errors, & Bayesian lassos”, Bayesian Analysis, 5 , 2 는 올가미 예측에 대한 표준 오차를 계산하는 통계적으로 유효한 방법에 대한 합의가 없을 수 있다고 제안합니다. Tibshirani 표준 오류가 여전히 해결되지 않은 문제라는 데 동의합니다 (슬라이드 43) .


답변

도움이 될 수있는 관련 메모에서 Tibshirani와 동료들은 올가미에 대한 유의성 검정을 제안했습니다. 이 논문 은 이용 가능하며 제목은 “올가미에 대한 유의성 테스트”입니다. 무료 버전의 종이는 여기 에서 찾을 수 있습니다


답변

Sandipan Karmakar의 답변은 무엇해야하는지 알려줍니다 . “방법”에 도움이됩니다.

> library(monomvn)
>
> ## following the lars diabetes example
> data(diabetes)
> str(diabetes)
'data.frame':   442 obs. of  3 variables:
 $ x : AsIs [1:442, 1:10] 0.038075.... -0.00188.... 0.085298.... -0.08906.... 0.005383.... ...
      ..- attr(*, "dimnames")=List of 2
      .. ..$ : NULL
  .. ..$ : chr  "age" "sex" "bmi" "map" ...

 $ y : num  151 75 141 206 135 97 138 63 110 310 ...

[…]

> ## Bayesian Lasso regression
> reg_blas <- with(diabetes, blasso(x, y))
t=100, m=8
t=200, m=5
t=300, m=8
t=400, m=8
t=500, m=7
t=600, m=8
t=700, m=8
t=800, m=8
t=900, m=5
>
> ## posterior mean beta (setting those with >50% mass at zero to exactly zero)
> (beta <- colMeans(reg_blas$beta) * (colMeans(reg_blas$beta != 0)  > 0.5))
      b.1       b.2       b.3       b.4       b.5       b.6       b.7       b.8
   0.0000 -195.9795  532.7136  309.1673 -101.1288    0.0000 -196.4315    0.0000
      b.9      b.10
 505.4726    0.0000
>
> ## n x nsims matrix of realizations from the posterior predictive:
> post_pred_y <- with(reg_blas, X %*% t(beta))
>
> ## predictions:
> y_pred <- rowMeans(post_pred_y)
> head(y_pred)
[1]  52.772443 -78.690610  24.234753   9.717777 -23.360369 -45.477199
>
> ## sd of y:
> sd_y <- apply(post_pred_y, 1, sd)
> head(sd_y)
[1] 6.331673 6.756569 6.031290 5.236101 5.657265 6.150473
>
> ## 90% credible intervals
> ci_y <- t(apply(post_pred_y, 1, quantile, probs=c(0.05, 0.95)))
> head(ci_y)
             5%       95%
[1,]  42.842535  62.56743
[2,] -88.877760 -68.47159
[3,]  14.933617  33.85679
[4,]   1.297094  18.01523
[5,] -32.709132 -14.13260
[6,] -55.533807 -35.77809

답변

베이지안 LASSO는 표준 오차 계산 문제에 대한 유일한 대안입니다. 표준 오류는 Bayesian LASSO에서 자동으로 계산됩니다 … Gibbs 샘플링 구성표를 사용하여 Bayesian LASSO를 매우 쉽게 구현할 수 있습니다 …

베이지안 LASSO는 모형의 모수에 사전 분포를 할당해야합니다. LASSO 모델에는 목적 함수 with 정규화 매개 변수로 여기서 우리는 대해 -norm을 때문에이를 위해 특별한 유형의 사전 분포가 필요합니다. 각 매개 변수의 전체 조건부 사후를 기반으로 추론됩니다.

||y−Xβ||22+λ||β||1

λ

ℓ1

β

그런 다음 체인 시뮬레이션을 위해 Gibbs Sampling을 사용할 수 있습니다. 참조
공원 및 Cassella (2008), “베이지안 올가미 ‘, JASA , 103 , 482 .

잦은 LASSO에는 다음과 같은 세 가지 단점이 있습니다.

  1. 교차 검증 또는 다른 수단으로 를 선택해야합니다 .

    λ
  2. LARS 및 기타 알고리즘이 대한 점 추정치를 생성하므로 표준 오류를 계산하기가 어렵습니다 .

    β
  3. 당면한 문제의 계층 구조는 잦은 모델을 사용하여 인코딩 할 수 없으므로 베이지안 프레임 워크에서는 매우 쉽습니다.


답변

위의 답변에 추가하기 위해 문제는 불이익을받은 모델의 추정치가 바이어스되고 부트 스트랩이 분산에 대해서만 이야기하므로 추정치의 편향을 무시하고 부트 스트랩조차 불충분 할 수 있습니다. 이것은 벌칙 적용 패키지의 비 네트에 잘 요약되어 있습니다 ( 18 페이지) .

그러나 예측에 사용되는 경우 왜 모델의 표준 오차가 필요합니까? 적절하게 교차 검증 또는 부트 스트랩 할 수 없으며 MSE와 같은 예측 관련 메트릭에 대한 표준 오류를 생성 할 수 없습니까?


답변

R ( https://cran.r-project.org/web/packages/selectiveInference/index.html) 에 selectiveInference 패키지가 있으며 ,이 백서는 다음 문서를 기반으로 LASSO에 적합한 계수에 대한 신뢰 구간 및 p 값을 제공합니다. :

Stephen Reid, Jerome Friedman 및 Rob Tibshirani (2014). 올가미 회귀 분석에서의 오차 분산 추정에 관한 연구. arXiv : 1311.5274

PS : 그냥 당신이 당신이 사용할 수있는 가정 후 …있어 무엇 경우,이 최종 예측에 오류를 들어, 매개 변수에 대한 확인 오류 추정치를하지 생산 실현 “인구 예측 간격을” 당신이 좋아하는 경우에 의해 (그것을 위해 다변량 정규 분포에 따른 적합도에 따른 리샘플링 매개 변수).