-
[R] 회귀분석 최적의 변수 조합 찾기카테고리 없음 2024. 3. 26. 11:21
R 에서 회귀분석의 독립변수를 넣는 경우에 수가 많을 것이다.
예를 들어 독립변수가 5개라고 한다면, 독립변수를 넣는 경우의 수는 2 ^ 5 = 32 가지의 경우의 수가 있을 것이다.
이런 것들을 일일히 하는 데 고통을 받기에 한번에 이들 중에 어떤 경우에 수정된 R-square 값이 높은지를 보기 위해
regsubsets 메소드를 사용한다.
regsubsets 메소드 중에서 전역 탐색을 하면 모든 경우의 수를 볼 수 있을 것이다.
R 의 regsubsets 함수는 leaps pachage 에 포함되어있다.
그 용도는 회귀 분석에서 최적의 변수 조합을 찾기 위해 사용된다.
이 함수는 가능한 모든 변수의 조합을 평가하여, 데이터에 가장 잘 맞는 회귀 모델을 찾는 데 도움을 준다.
회귀 분석에서 최적의 변수 조합 찾기
- x: 모델에 사용될 종속 변수와 독립 변수를 포함한 수식
- data: 분석에 사용될 데이터 프레임입니다.
- nbest: 각 변수 개수에 대해 선택할 최상의 모델 수입니다
- nvmax: 고려할 최대 변수 수입니다. 이 값이 설정되지 않으면, 데이터에 있는 모든 변수가 고려됩니다.
- force.in, force.out: 모델에 포함시키거나 배제할 변수를 강제로 지정합니다.
- method : 변수 선택 방법을 선택하는 파라미터이고,
- "exhaustive" 를 넣으면 모든 가능한 변수 조합을 평가
- "foward" 는 전진 선택법
- "backward' 는 후진 제거법을 의미 (이거는 요새는 정확성 때문에 많이 안 쓰인다고 한다)
- really.big: 데이터 세트가 크고 변수의 수가 많을 때 메모리 사용을 최적화하기 위한 옵션입니다.
출력과 해석
regsubsets 함수의 실행 결과는 다양한 정보를 포함하는 regsubsets 객체입니다.
이 객체를 summary 함수로 처리하면, 각 변수 조합에 대한 세부 정보를 얻을 수 있습니다.
여기에는 선택된 변수, 각 모델의 결정계수(R²), 조정된 R², AIC, BIC 등의 통계가 포함될 수 있습니다.
주의 사항
변수가 많고, 데이터의 크기가 클 경우에 긴 시간동안 돌아갈 수 있으므로,
nvmax 옵션을 조절하면서 실행하시길
summary()
* 가 있는 변수가 최적의 변수임.
행은 최적의 예측변수의 조합 순위라고 보면 된다.
예를 들어, 1행의 1, 3, 7열에 별표가 있다고 한다면, 최적의 예측변수(독립 변수) 조합이 1열, 3열, 7열에 있는 변수 3개의 조합이다.
# regsubsets 을 활용해 변수 선택 실행하고, 결과를 regfit.full 에 할당 regfit.full <- regsubsets(mpg ~ ., data=mtcars, nvmax=10) # 요약 결과 summary(regfit.full) # 요약 결과를 변수에 할당하고, 이를 통해 특정 정보를 추출할 수 있음. reg.summary <- summary(regfit.full) # 각 변수의 개수에 따른 R-squared 값을 확인합니다. reg.summary$rsq