2013-11-03 2 views
0

하나의 응답 변수가 있고 1664 개의 다른 설명 변수를 사용하여 다중 회귀 회귀 모델을 피팅하는 방법을 찾고 있습니다. 저는 R에 대해 매우 익숙하며 수식에있는 각각의 설명 변수를 사용하여 수식을 기술함으로써이를 수행하는 방법을 배웠습니다. 그러나 1664 개의 변수가 있기 때문에 너무 오래 걸릴 것입니다. 이 작업을 수행하는 더 빠른 방법이 있습니까?다중 회귀 직선 회귀 모델을 1664 개 변수에 맞추는 방법

감사합니다.

+0

나는 당신이 무슨 뜻인지 모르겠어요,하지만 난 나를 위해 코드를 생성하는 스크립트를 작성하거나 배열에 넣어 수 그 위에 반복하십시오. – duffymo

+1

'lm (response ~., data = your_data)'를 의미할까요? 이것은 SO의 다른 곳에서 주석 처리 된 지름길입니다. –

+0

1664 개의 설명 변수가있는 선형 모델을 만들면 R^2가 1에 가깝습니다.). –

답변

3

1664 개의 변수 중에서 유효한 모델, 즉 설명 변수가 적은 데이터의 가변성을 예측하는 모델을 선택하려고한다고 생각합니다. 이 작업을 수행하는 방법은 여러 가지가 있습니다.

  • 관련성이 높은 것으로 알려진 변수를 선택하려면 전문 지식을 사용하십시오. 이것은 다른 연구가 이것을 발견했기 때문이거나, 당신이 현재 그 변수를 관련되게 만드는 어떤 기본 과정으로 인한 것일 수 있습니다.
  • 변수를 선택하는 일종의 단계별 회귀 방법을 사용하면 데이터를 얼마나 잘 설명하는지에 따라 관련이 있습니다. 이 방법에는 몇 가지 심각한 단점이 있습니다. Aikaike Information Criterium을 사용하여이 작업을 수행하는 방법은 stepAIC을 참조하십시오.

데이터와 1664 개의 변수를 연관 시키면 순전히 임의성을 기반으로 95 % 유의 수준 (0.05 * 1664)을 선택하면 약 83 개의 중요한 상관 관계가 생성됩니다. 따라서 자동 변수 선택으로주의 깊게 살펴보십시오. 노련한 지식 또는 일부 비 상관 기술 (예 : 주성분 분석)을 사용하여 변수의 양을 줄이면 도움이됩니다.

코드 예제의 경우, 먼저 내가 작성할 수있는 자신의 예제 (데이터 + 코드)를 포함시켜야합니다.

+4

Lasso/Ridge/Elastic Net은 어떤가? 하지만 우리는 실제로 CrossValidated 영역에 있습니다 .... –

+1

+1은 @ AriB.Friedman의 의견입니다 :'glmnet' 패키지를보십시오. –

+0

문제는 관련 변수가 어떤 변수인지 확실하지 않다는 것입니다. 이것의 목적은 기본적으로 응답 변수에 어떤 형태의 의미가 있음을 보여주기 위해 시작하는 관련 변수를 근본적으로 줄이는 것입니다. 그러나 나는 단계적 회귀 접근법을 먼저 시도해보고 선형 회귀를하기 전에 내가 얻은 것을 살펴볼 것입니다. 감사합니다! – user2062207

2

프로그래밍 질문에 답변 하겠지만 많은 변수를 사용하는 회귀 분석에서는 일종의 변수 선택 절차 (예 : @ PaulHiemstra의 제안)를 사용할 수 있습니다. 점은 아직 언급되지 않은 모든 변수를 나타냅니다 form <- y ~ . :

  1. 당신은 다음 수식 바로 가기를 사용하여 실행할 변수 만이있는 data.frame을 구성 할 수 있습니다.
  2. 대신 수동으로 수식을 구성 할 수 있습니다. 예를 들어 : form <- as.formula(paste("y ~", paste(myVars,sep="+")))

는 그런 다음 회귀 실행

lm(form, data=dat)