2011-12-21 3 views
3

내 모델의 계수 중 하나를 0보다 작거나 같게하고 싶습니다.강제 계수가 음수로 음수가되도록

nnls 패키지를 사용하면 모든 계수를 0 이상으로 설정할 수 있지만 특정 계수를 0보다 작게 지정하는 방법은 손실됩니다.

도움을 주시면 감사하겠습니다.

+2

제한된 회귀에 대한 경험이 없지만 데이터에서 해당 변수의 부호를 변경하는 것이 가장 먼저 생각됩니다. 그런 다음> = 0 제약 조건이 목표를 달성해야합니다 (모델을 더 복잡한 형태로 해석하게 만들었지 만). – joran

답변

6

the same package에있는 nnnpls 함수는 "음수가 아니며 양수가 아닌 제약 조건이있는 최소 제곱의 구현"입니다.

세번째 인수 con은 하나의 계수가 비 양성 있어야하는 지정할 수 :

소자 i가 부의 길이 m

숫자 벡터 경우에만, 요소 용액 벡터 xi 음수가 아닌 값인 이 아닌 반대 값으로 제한해야합니다.

+0

예제를 보여 주시겠습니까? 나는 nnpls에 대한 도움말 페이지에 약간 혼란 스럽다. –

+0

좋은 구식 RTFM과 같은 것은 없습니까? :-). Tho '나는 처음부터 살펴볼 패키지가 어느 것인지 항상 분명하지는 않다는 것을 인정해야한다. 다음은'sos' 패키지 용 플러그인입니다.이 패키지는 여러분을 위해 도구와 패키지를 찾는 훌륭한 작업을 수행합니다. –

+0

@BurtonGuster : 매뉴얼에는 다음과 같은 예가 있습니다 :'nnnpls (A, matdat [, i], con = c (1, -1,1))'. 처음 두 인수는 당신이'nnls()'에 제공하는 것과 정확히 같고 세번째 인수는 제 대답에서 인용 한 단락에서 설명한 것과 같습니다. – NPE

0

ic.infer는이 작업에 적합 할 수 있습니다. 패키지 림에서

: "선형 모델과 다변량 정규 상황 일차 부등식 형태 사전 정보가 발생 될 수 있고, 또는 선형 부등식 가설 통계 시험을 실시 할 수 있도록 개발되었다 ic.infer R 패키지. 그러한 상황에 대한 불평등 - 제한적 추정 및 시험을 지원한다. "

관련 문제