다중 회귀 분석에서 변수 수 감소


9

시간이 지남에 따라 인덱스 펀드의 동작을 예측하기 위해 다중 회귀 분석에 사용할 수있는 수백 가지 재무 변수 값으로 구성된 큰 데이터 세트가 있습니다. 가능한 많은 예측력을 유지하면서 변수 수를 10 정도로 줄이려고합니다. 추가 : 감소 된 변수 세트는 원래 변수의 경제적 의미를 유지하기 위해 원래 변수 세트의 서브 세트 여야합니다. 따라서 예를 들어 선형 변수 또는 원래 변수의 집계로 끝나서는 안됩니다.

이 작업을 수행하는 방법에 대한 일부 (아마도 순진한) 생각 :

  1. 각 변수로 간단한 선형 회귀를 수행하고 가장 큰 값을 가진 10을 선택하십시오 . 물론 10 개의 최고의 개별 변수가 10 개의 최고의 그룹이 될 것이라는 보장은 없습니다.R2
  2. 주성분 분석을 수행하고 처음 몇 개의 주축과 가장 큰 연관성을 갖는 10 개의 원래 변수를 찾으십시오.

변수가 실제로 중첩되어 있지 않기 때문에 계층 적 회귀를 수행 할 수 없다고 생각합니다. 조합이 너무 많기 때문에 10 개의 변수 조합을 모두 시도하는 것은 계산 상 불가능합니다.

다중 회귀 분석에서 변수 수를 줄이는이 문제를 해결하기위한 표준 접근 방법이 있습니까?

이것이 표준 접근법이있을 정도로 일반적인 문제 일 것 같습니다.

매우 유용한 답변은 표준 방법을 언급 할뿐만 아니라 작동 방법 및 이유에 대한 개요를 제공합니다. 또는 표준 접근 방식이 하나가 아니라 다른 강점과 약점을 가진 여러 방법이 있다면 장단점을 논의하는 것이 매우 도움이 될 것입니다.

아래 whuber의 의견은 마지막 단락의 요청이 너무 광범위하다는 것을 나타냅니다. 대신, 나는 주요한 접근법의 목록을 아마도 좋은 답변으로 받아 들일 것이다. 일단 용어가 있으면 각각의 세부 사항을 파헤칠 수 있습니다.


1
Mike, 익숙하지 않다면 ESL 3 장 을 살펴보십시오. 제공된 링크의 페이지는 무료로 제공되는 합법적 인 텍스트 PDF를 가리 킵니다.
추기경

예를 들어 10 개의 원래 변수 만 유지하려고하거나 원래 변수의 선형 조합의 작은 하위 집합을 사용하는 방법에 관심이 있는지 확인할 수 있습니까 (후자는 전통적인 주성분 회귀와 같은 것임) 줄 것이다).
추기경

3
이 답변 은 방법 1의 (많은) 문제 중 하나의 구체적인 예를 제공합니다. Frank Harrell의 @cardinal의 답변은 방법 2의 문제의 요점을 얻습니다. 종속 변수와의 관계, 관련성이 없거나 더 나쁜 위험. 표준 또는 "정규"답변에 관한 한 여기에서 요구하는 것은 타원 곡선의 합리적인 점을 장단점으로 찾는 모든 방법에 대한 토론을 장려하는 것과 같습니다.
whuber

2
여기에 다른 사람들이 언급했듯이 방법 1은 문제를 일으킬 것입니다. 이 접근 방식의 다른 문제 중 하나에 대한 설명 / 직접 접근 가능한 이유를 알아 보려면 다음을 읽어보십시오. stats.stackexchange.com/questions/20836/…
gung-Reinstate Monica

1
첫 번째 아이디어의 문제에 대한 설명을 해준 whuber와 gung에게 감사드립니다.
Mike Spivey

답변:



6

방법 1이 작동하지 않습니다. 방법 2는 그 방법에 따라 희망이 있습니다. 내림차순으로 주성분을 입력하는 것이 좋습니다. 보다 해석 가능한 접근 방식은 가변 군집화를 수행 한 다음 각 군집을 단일 점수 (Y를 사용하지 않음)로 줄이고 모형을 군집 점수에 맞추는 것입니다.


+1. "가변 군집화"란 요인 분석 을 의미합니까? 이것이 제가 사용할 전략입니다 (y를보기 전에). 클러스터 분석은 변수가 아닌 그룹화 관찰로 생각하지만 클러스터 분석에 대한 피상적 인 지식 만 가지고 있습니다.
gung-복직 모니카

1
예측 변수의 최대 분산 방향 이 반응 과 반드시 ​​밀접한 상관 관계가 있다고 믿는 선험적 이유 는없는 것 같습니다 . 아마도 내가 틀렸거나 당신의 의견을 오해했을 것입니다. 당신은 명확히 할 수 있습니까?
추기경

1
또한 OP는 그의 방법 2에서 주요 구성 요소 회귀를 설명하지 않는 것처럼 들린다.
추기경

원래 게시물에서 완전히 명확하지는 않았지만 원래 변수 의 하위 집합 이 필요 합니다. 따라서 간단한 주요 구성 요소 분석 또는 클러스터링은 실제로 내가 추구하는 것이 아닙니다.
Mike Spivey

1
변수 군집은 요인 분석과 관련이 있지만 더 간단합니다. 변수는 서로 상관 관계가있는 방식으로 그룹화됩니다. varclusR Hmisc패키지 의 기능 또는 SAS의 PROC VARCLUS를 참조하십시오 . 약간의주의를 기울이면 데이터 축소는 변수를 하위 설정하는 데 도움이됩니다. 값이 0.3 인 경우 전체 클러스터를 제거 할 수 있습니다 . 주요 구성 요소에는 구성 요소의 하위 집합으로 PC를 근사화하는 배터리 감소와 같은 기술이 있습니다. P
Frank Harrell

3

R을 사용한 데이터 마이닝 5 장에서 저자는 가장 유용한 예측 변수를 선택하는 몇 가지 방법을 보여줍니다. (각 샘플 행에 12,000 개 이상의 열이있는 생물 정보학의 맥락에서!)

먼저 통계적 분포에 따라 일부 필터를 사용합니다. 예를 들어, 평균과 sd가 비슷한 6 개의 예측 변수가 있으면 그 중 하나만 유지하면됩니다.

그런 다음 임의 포리스트를 사용하여 가장 유용한 예측 변수를 찾는 방법을 보여줍니다. 다음은 독립적 인 추상 예제입니다. 좋은 예측 자 5 개, 나쁜 예측 자 5 개가 있습니다. 이 코드는 최고를 유지하는 방법을 보여줍니다 .3.

set.seed(99)

d=data.frame(
  y=c(1:20),
  x1=log(c(1:20)),
  x2=sample(1:100,20),
  x3=c(1:20)*c(11:30),
  x4=runif(20),
  x5=-c(1:20),
  x6=rnorm(20),
  x7=c(1:20),
  x8=rnorm(20,mean=100,sd=20),
  x9=jitter(c(1:20)),
  x10=jitter(rep(3.14,20))
  )

library(randomForest)
rf=randomForest(y~.,d,importance=T)
print(importance(rf))
#         %IncMSE IncNodePurity
# x1  12.19922383    130.094641
# x2  -1.90923082      6.455262
# ...

i=importance(rf)
best3=rownames(i)[order(i[,"%IncMSE"],decreasing=T)[1:3]]
print(best3)
#[1] "x1" "x5" "x9"

reduced_dataset=d[,c(best3,'y')]

저자의 마지막 접근법은 계층 적 클러스터링 알고리즘을 사용하여 유사한 예측 변수를 30 개의 그룹으로 클러스터링하는 것입니다. 30 개의 다양한 예측 변수를 원하는 경우 30 개의 각 그룹 중 하나를 임의로 선택하십시오.

다음은 위와 동일한 샘플 데이터를 사용하여 10 개 열 중 3 개를 선택하는 코드입니다.

library(Hmisc)
d_without_answer=d[,names(d)!='y']
vc=varclus(as.matrix(d_without_answer))
print(cutree(vc$hclust,3))
# x1  x2  x3  x4  x5  x6  x7  x8  x9 x10 
#  1   2   1   3   1   1   1   2   1   3 

5 개의 좋은 예측 변수와 5 개의 노이즈 만 있기 때문에 샘플 데이터는이 접근법에 전혀 맞지 않습니다. 10 개 개의 예측이 약간 상관 관계를 한 경우 y, 그리고 (금융 영역에서 확실히 가능하다)을 함께 사용하면 더 나은되는 좋은 기회가 있었다, 이것은 좋은 방법이 될 수 있습니다.


2

매개 변수 벡터의 한 표준을 최소화하는 솔루션을 선택하여 최소 제곱을 정규화하는 LASSO와 같은 방법을 사용할 수 있습니다. 이는 매개 변수 벡터에서 0이 아닌 항목 수를 최소화하는 데 실제로 영향을 미친다는 것이 밝혀졌습니다. LASSO가 일부 통계 분야에서 인기가 있지만 압축 감지 분야에서는 다른 많은 관련 방법이 고려되었습니다.


감사. LASSO를 찾아 볼게요. (추기경 추기경에서 언급 된 것 같습니다.)
Mike Spivey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.