회귀를 사용하여 하나의 계수를 수정하고 다른 계수를 맞추는 방법


11

과 같은 특정 계수를 수동으로 수정 한 다음 모델에 을 유지하면서 계수를 다른 모든 예측 변수에 .β 1 = 1.0β1=1.0β1=1.0

R을 사용하여 어떻게 이것을 할 수 있습니까? glmnet가능하면 LASSO ( ) 와 협력하고 싶습니다 .

또는 어떻게이 계수를 특정 범위 (예 : 제한 할 수 있습니까?0.5β11.0


적합 계수에 대한 상자 제약 조건을 지정하려면 glmnet에 인수 lower.limits 및 upper.limits가 있습니다.
Tom Wenseleers

답변:


4

다음 offset과 같은 인수 를 사용해야합니다 .

library(glmnet)
x=matrix(rnorm(100*20),100,20)
x1=matrix(rnorm(100),100,1)
y=rnorm(100)
fit1=glmnet(x,y,offset=x1)
fit1$offset
print(fit1)

범위에 대해 ... 나는 그것이 구현되지 않았다고 생각합니다 glmnet. 그들이 숫자 방법을 사용한다면, R 코드를 파고 그것을 제한하려고 할 수도 있지만, 훌륭하고 견고한 프로그래밍 배경이 필요합니다.


2
offset실제로 무엇을 하고 있습니까? 1.1*x1질문 의 가치는 어떻게 결정됩니까?
whuber

glmnet에서 'offset'에 대한 설명서를 읽었으며 여전히 그것이 무엇인지 잘 모르겠습니다. 나는 훌륭한 예를 찾지 못했지만 대부분 Poisson 프로세스를 참조합니다. 왜 1.1 * x1이 사용됩니까?
raco

나는 그가 계수를 로 고정한다고 생각했다 . 방금 답변을 편집했습니다. 오프셋은 계수가 모델에 의해 추정되지 않지만 값 1을 갖는 것으로 가정되는 용어입니다.β1=1.1
Stat

이 답변에 만족합니다. 다른 오프셋 "계수"를 반복하고 모델을 비교할 수 있습니다. 감사!
raco

1
에 관해서 offsetglmnet패키지, 합계에서 제공하는 대답은 저를 감지하지 않습니다. fit1 beta)]를 실행하면 β 1 = 1.0이 표시되지 않습니다 . 예제에서 오프셋이 어떻게 작동하는지 명확하게 설명 할 수 있습니까? 베타 범위의 경우 및 인수를 사용할 수 있습니다 . beta[,ncol(fit1β1=1.0lower.limitsupper limits
Mario Nuñez

9

생각 해보자. 당신은 :

Y=b0+b1x1+b2x2+e

(간단하게 유지하기 위해) 을 강제하고 싶기 때문에b1=1

Y=b0+x1+b2x2+e

따라서 각면에서 을 빼면 다음과 같습니다.x1

Ynew=Yx1=b0+b2x2+e

그러면 를 추정 할 수 있습니다 .b2


2
그것은 쉬운 부분입니다 (그리고 내가 기억하는 것처럼 다른 스레드에서 해결되었습니다). 계수를 범위로 제한하는 것은 어떻습니까? 이 문제의 특히 어려운 부분은 추정치가 구속 조건 영역의 경계에있을 때 좋은 신뢰 한계를 얻는 것입니다.
whuber

2
확실히 어렵습니다. 게시물 끝을 놓쳤습니다. 그러나 저는 질문의 일부에 대한 답변으로 답변을 남겨 두어야한다고 생각합니다
Peter Flom

β11β1=0.75Ynew=Y.75x1=β0+(β10.75)x1+β2x2+ϵβ1

1
그렇습니다. .75로 고정되면 말을하는 것이 효과적입니다. 그러나 @ whuber가 지적했듯이, 그것은이 문제의 쉬운 부분입니다
Peter Flom

2
@whuber의 Bayesian 프레임 워크에서 Metropolis 단계를 통해 범위 밖의 계수를 던지거나 잘린 다변량 정규 분포에서 표본을 추출 할 수 있습니다.
John

3

계수가 범위 내에 있도록 제한하는 것과 관련하여, 베이지안 추정 방법은이를 달성하기위한 수단 중 하나입니다.

특히, Markov Chain Monte Carlo에 의존 할 것입니다. 먼저 Gibbs 샘플링 알고리즘을 고려하십시오. 이는 제한이없는 베이지안 프레임 워크에 MCMC를 맞추는 방법입니다. Gibbs 샘플링에서는 알고리즘의 각 단계에서 데이터 및 기타 모든 매개 변수에 조건부로 각 매개 변수 (또는 매개 변수 그룹)의 사후 분포에서 샘플링합니다. Wikipedia는 접근 방식에 대한 좋은 요약을 제공합니다.

범위를 제한하는 한 가지 방법은 Metropolis-Hastings 단계를 적용하는 것입니다. 기본 아이디어는 단순히 경계 밖의 시뮬레이션 변수를 버리는 것입니다. 그런 다음 다음 반복으로 넘어 가기 전에 범위 내에서 재 샘플링을 계속할 수 있습니다. 이것의 단점은 여러 번 시뮬레이션을 멈춰 MCMC 속도를 늦출 수 있다는 것입니다. John Geweke 가 원래 몇 개의 논문으로 개발하고 Davis- Rodriguez-Yam 의 논문에서 확장 한 대안 은 Sharpe 가 제한된 다변량 정규 분포를 시뮬레이션하는 것입니다. 이 접근법은 매개 변수에 대한 선형 및 비선형 불평등 제약 조건을 처리 할 수 ​​있으며 성공했습니다.


적합 계수에 대한 상자 제약 조건을 지정하려면 glmnet에 인수 lower.limits 및 upper.limits가 있습니다.
Tom Wenseleers

@ TomWenseleers 더 일반적으로 대답했습니다. 와 관련하여 다른 답변 중 일부를 살펴보십시오 glmnet.
John

2

LASSO 또는에 익숙하지 glmnet않지만 lavaan( "잠재적 변수 분석"의 약자) 등식 제약 조건과 단일 경계 불평등 제약 조건을 모두 사용하여 다중 회귀 모델을 용이하게합니다 ( 본 PDF의 7 페이지 에있는 "lavaan : R 패키지"참조). 구조 방정식 모델링을 위해 " ). 계수에 상한과 하한을 모두 가질 수 있는지는 모르지만 각 선을 별도의 선으로 추가 할 수 있습니다.

Coefficient>.49999999
Coefficient<1.0000001

물론 모형을 피팅하기 전에 모든 것을 표준화하는 경우 어쨌든 회귀 계수에 상한을 1로 설정하는 것에 대해 걱정할 필요가 없습니다. 이 경우에는 문제가 발생하는 경우를 대비하여 생략하는 것이 좋습니다. ( lavaan 이다 모든 ... 내가 지금까지 그것의 내 자신의 제한된 사용에서 일부 약간 비린내 결과를 본 적이 후 아직 베타 버전.)


적합 계수에 대한 상자 제약 조건을 지정하려면 glmnet에 인수 lower.limits 및 upper.limits가 있습니다.
Tom Wenseleers
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.