행 확대를 사용하여 릿지 처벌 GLM?


12

능선 회귀는 원래 데이터 행렬에 데이터 행을 추가하여 달성 할 수 있다는 것을 읽었습니다. 여기서 각 행은 종속 변수의 경우 0을 사용하고 독립 변수 의 경우 제곱근 또는 0을 사용하여 구성됩니다. 그런 다음 각 독립 변수마다 하나의 추가 행이 추가됩니다.k

로지스틱 회귀 또는 다른 GLM을 포함하여 모든 경우에 대한 증거를 도출 할 수 있는지 궁금합니다.


아니요, ncss.com/wp-content/themes/ncss/pdf/Procedures/NCSS/ 에서 가져 왔으며 335-4 페이지에 간략하게 언급되어 있습니다.
Snowflake

1
댓글이 삭제되어 죄송합니다. 답장을보고 삭제하기 전에 내가 잘못 결정했습니다.
Glen_b-복지 주 모니카

2
이 문제에 대한 약간의 일반화는 stats.stackexchange.com/questions/15991 에서 요청하고 답변 합니다. 이 질문의 로지스틱 회귀 부분을 다루지 않기 때문에 두 스레드를 병합하기로 투표하지 않았습니다.
whuber

GLM은 bwlewis.github.io/GLM과 같이 반복적 으로 가중 된 최소 제곱을 사용하여 적합 하므로 각 반복 내에서 릿지 페널티 가중 최소 제곱 단계로 정규 가중 최소 제곱 단계를 대체 하여 릿지 불이익 GLM을 얻을 수 있습니다. 실제로, 적응 형 융기 페널티 페널티와 함께 ​​이것은 l0ara 패키지 에서처럼 L0 페널티 GLM에 맞추는 데 사용됩니다. biodatamining.biomedcentral.com/articles/10.1186/…journals.plos.org/plosone/article?id=10.1371
Tom Wenseleers

답변:


13

릿지 회귀는 합니다.i=1n(yixiTβ)2+λj=1pβj2

(종종 상수가 필요하지만 축소되지는 않습니다.이 경우 및 예측 변수에 포함 되지만 축소하지 않으려는 경우 의사 관측에 해당하는 행이 없습니다. 또는 당신이 그것을 축소하려는 경우, 당신은 그것에 대한 행이 있습니다. 그것이에 포함되지 것처럼 내가 쓸 것이다 , 그리고 수축 된이 더 복잡 사건으로,. 다른 경우이에서 사소한 변화 .)βp

우리는 두 번째 항 쓸 수 우리가 각각의 "Y"와 대응하는 각각 기록 할 경우 의사 관찰 이 "X"등 -vectorsp(p+1)

(yn+jxn+jTβ)2=λβj2,j=1,,p

그러나 검사를 통해 , , 다른 모든 ( ).yn+j=0xn+j,j=λxn+j,k=0xn+j,0=0

그때

(yn+j[xn+j,0β0+xn+j,1β1+xn+j,2β2+...+xn+j,pβp])2=λβj2 입니다.

이것은 선형 회귀에 적용됩니다. 일반 로지스틱 회귀는 잔차 제곱의 합을 최소화하지 않기 때문에 로지스틱 회귀에는 작동하지 않습니다.

[릿지 회귀는 그러한 의사 관측 트릭을 통해 수행 할 수있는 유일한 것이 아닙니다. 여러 가지 다른 상황에서 나타납니다.]


고마워, 나는 이미 로지스틱 회귀에서 모든 것을 다시 작성하는 데 어려움을 겪고 있었지만 전화 데이터 방법을 구현할 수 없었습니다. 그리고 나는 불가능하다고 말할 수있을 정도로 내 능력을 충분히 믿지 않습니다.
Snowflake

적어도 나는 그렇게 생각하지 않습니다. 우도 함수를 다시 살펴 보겠습니다.
Glen_b-복지 주 모니카

3
+1 추가 관련 회귀 속임수에 대한 답변에 도입 stats.stackexchange.com/a/32753stats.stackexchange.com/a/26187 , 특히 .
whuber

bwlewis.github.io/GLM 에서처럼 GLM은 반복적으로 가중치를 줄인 최소 제곱을 사용하여 적합 하므로 각 반복 내에서 릿지 페널티 가중 최소 제곱 단계로 정규 가중 최소 제곱 단계를 대체 하여 릿지 불이익 GLM을 얻을 수 있습니다. 실제로, 적응 형 융기 페널티 페널티와 함께 ​​이것은 l0ara 패키지 에서처럼 L0 페널티 GLM에 맞추는 데 사용됩니다. biodatamining.biomedcentral.com/articles/10.1186/…journals.plos.org/plosone/article?id=10.1371
Tom Wenseleers

@TomWenseleers 감사합니다, 그렇습니다, 그것은 말이됩니다
Glen_b-복지국 Monica Monica

0

이 레시피를 GLM에 일반화하는 것은 그리 어렵지 않습니다. GLM은 일반적으로 반복적 으로 가중 된 최소 제곱을 사용하여 적합하기 때문 입니다. 따라서, 각각의 반복 내에서 릿지 불이익을 가한 최소 제곱 단계로 규칙적인 가중 최소 제곱 단계를 대체하여 릿지 불이익을받은 GLM을 얻을 수있다. 실제로, 적응 형 릿지 페널티와 함께이 레시피는 L0 페널티 GLM (일명 최상의 서브 세트, 즉 0이 아닌 계수의 총 수가 페널티를받는 GLM)에 맞추기 위해 사용됩니다. 이것은 예를 들면 구현 된 l0ara 패키지 , 볼 이 논문이 하나의 세부 사항을.

규칙적인 능선 회귀 문제를 해결하는 가장 빠른 닫힌 형태의 방법을 사용한다는 점도 주목할 가치가 있습니다.

lmridge_solve = function (X, y, lambda, intercept = TRUE) {
  if (intercept) {
    lambdas = c(0, rep(lambda, ncol(X)))
    X = cbind(1, X)
  } else { lambdas = rep(lambda, ncol(X)) }
  solve(crossprod(X) + diag(lambdas), crossprod(X, y))[, 1]
}

n>=p, 또는 사용 하는 경우

lmridge_solve_largep = function (X, Y, lambda) (t(X) %*% solve(tcrossprod(X)+lambda*diag(nrow(X)), Y))[,1]

p>n절편이없는 모델의 경우

이것은 빨리 사용하는 것보다 행 증가 조리법을 , 일을하여 예

lmridge_rbind = function (X, y, lambda, intercept = TRUE) {
  if (intercept) {
    lambdas = c(0, rep(lambda, ncol(X)))
    X = cbind(1, X)
  } else { lambdas = rep(lambda, ncol(X)) }
  qr.solve(rbind(X, diag(sqrt(lambdas))), c(y, rep(0, ncol(X))))
}

적합 계수에 음이 아닌 구속 조건 이 필요한 경우 다음을 수행 할 수 있습니다.

library(nnls)

nnlmridge_solve = function (X, y, lambda, intercept = TRUE) {
  if (intercept) {
    lambdas = c(0, rep(lambda, ncol(X)))
    X = cbind(1, X)
  } else { lambdas = rep(lambda, ncol(X)) }
  nnls(A=crossprod(X)+diag(lambdas), b=crossprod(X,Y))$x
}

그런 다음보다 약간 더 정확한 결과를 제공합니다.

nnlmridge_rbind = function (X, y, lambda, intercept = TRUE) {
  if (intercept) {
    lambdas = c(0, rep(lambda, ncol(X)))
    X = cbind(1, X)
  } else { lambdas = rep(lambda, ncol(X)) }
  nnls(A=rbind(X,diag(sqrt(lambdas))), b=c(Y,rep(0,ncol(X))))$x 
}

(그리고 엄격하게 말하면 해결책 만 nnls(A=crossprod(X)+diag(lambdas), b=crossprod(X,Y))$x 올바른 것입니다).

비 음성 제약 사례가 사례에 대해 어떻게 더 최적화 될 수 있는지 아직 p > n알지 lmridge_nnls_largep = function (X, Y, lambda) t(X) %*% nnls(A=tcrossprod(X)+lambda*diag(nrow(X)), b=Y)$x못했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.