R에서 (또는 일반적으로) 회귀 계수를 특정 부호로 만들 수 있습니까?


10

실제 데이터를 사용하고 있으며 회귀 모델이 반 직관적 인 결과를 산출합니다. 일반적으로 나는 통계를 신뢰하지만 실제로 이러한 것들 중 일부는 사실이 될 수 없습니다. 내가보고있는 주요 문제는 실제로 하나의 변수가 증가하면 실제로는 음의 상관 관계가 있어야 응답이 증가한다는 것입니다.

각 회귀 계수에 대해 특정 부호를 강제하는 방법이 있습니까? 이 작업을 수행하는 모든 R 코드도 감사하겠습니다.

모든 도움을 주셔서 감사합니다!




이 링크 r-bloggers.com/positive-coefficient-regression-in-r-r 제곱 값에 대한 @JRW의 질문에 대한 답변이라고 생각합니다. 이미 언급했듯이 양의 계수 값을 적용하기 전에주의를 기울여야합니다.
Esme_

답변:


11
  1. 한계 상관 관계와 부분 상관 관계 (다른 변수에 조건부 상관 관계)의 차이를주의하십시오. 합법적으로 다른 표시 일 수 있습니다.

    즉 는 음수 일 수 있지만 다중 회귀 분석의 회귀 계수는 양수입니다. 이 두 가지에 반드시 모순이있는 것은 아닙니다. Simpson의 역설을 참조하십시오 . 이는 다소 관련이 있습니다 (특히 다이어그램). 일반적으로 회귀 계수는 한계 상관 관계에 대한 인수를 기반으로 한 부호 여야한다고 유추 할 수 없습니다.corr(Y,Xi)

  2. 예, 회귀 계수를 또는 * 로 제한 할 수 있습니다 . 여러 가지 방법이 있습니다. 이들 중 일부는 via와 같이 R에서 쉽게 수행 할 수 있습니다 . 다수의 R 패키지와 다른 가능한 접근법을 언급 한이 질문에 대한 답변도 참조하십시오 .000nnls

    그러나 많은 부분이 쉽게 구현되기 때문에 1의 요점을 신속하게 무시하지 않도록주의해야합니다.

    * (해당 변수를 부정하여 음수가 아닌 프로그램을 사용하여 양수가 아닌 프로그램을 사용할 수 있음)


10

그런 방법이 있을지 모르지만 나는 그것이 당신의 상황에서 바람직 하지 않다고 말하고 싶습니다 .

불가능한 결과가있는 경우 :

1) 데이터에 문제가 있습니다. 2) "불가능"에 대한 정의에 문제가 있습니다. 또는 3) 잘못된 방법을 사용하고 있습니다.

먼저 데이터를 확인하십시오. 둘째, 코드를 확인하십시오. (또는 다른 사람들에게 확인하도록 요청하십시오). 둘 다 괜찮 으면 예기치 않은 일이 발생했을 수 있습니다.

다행히도 "불가능"이라는 간단한 말이 있습니다. 두 변수 양의 상관 관계 가 없습니다 . 따라서 산점도를 만들고 매끄럽게 추가하십시오. 단일 특이 치가이를 유발할 수 있습니다. 또는 비선형 관계 일 수 있습니다. 또는 다른 것.

그러나 운이 좋으면 새로운 것을 발견했습니다. 내가 가장 좋아하는 교수는 "놀라지 않으면 아무 것도 배우지 않았다"고 말했었습니다.


(피터와 글렌 모두에게 +1) @JRW-부호를 고치면 청중에게 "달성 된"계수와 신뢰 구간을 설명하려고 할 때 벽에 날고 싶습니다. 더욱이 그들은 합법적으로 묻습니다. 당신은 다른 사람들의 표적이나 범위를 고쳤습니까? 그렇지 않다면 왜 안됩니까?
rolando2

6

특정 질문에 대답하기 위해 계수에 음이 아닌 제약 조건으로 최소 제곱 회귀를 수행 하는 nnls 패키지를 사용해 볼 수 있습니다 . 적절한 예측 변수의 부호를 변경하여 원하는 부호를 얻는 데 사용할 수 있습니다.

그런데 여기에 양의 상관 관계와 음의 회귀 계수를 갖는 방법을 보여주기 위해 데이터 집합을 만드는 매우 간단한 방법이 있습니다.

> n <- rnorm(200)
> x <- rnorm(200)
> d <- data.frame(x1 = x+n, x2= 2*x+n, y=x)
> cor(d)
      x1        x2         y
 x1 1.0000000 0.9474537 0.7260542
 x2 0.9474537 1.0000000 0.9078732
 y  0.7260542 0.9078732 1.0000000
> plot(d)
> lm(y~x1+x2-1, d)

Call:
lm(formula = y ~ x1 + x2 - 1, data = d)

Coefficients:
x1  x2  
-1   1  

방금이 nnls 패키지로 arround를 놀았습니다. 조정 된 R 제곱 값 (또는 동등한 것)을 얻는 방법이 있습니까, 아니면 어떻게 든 직접 시도하고 계산해야합니까?
JRW
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.