>백엔드 개발 >파이썬 튜토리얼 >Python을 사용하여 회귀 분석에서 다중 공선성 문제 감지 및 처리

Python을 사용하여 회귀 분석에서 다중 공선성 문제 감지 및 처리

王林
王林앞으로
2023-08-18 15:05:201759검색

다중 공선성은 회귀 모델에서 독립 변수 간의 높은 상호 상관 관계를 나타냅니다. 이로 인해 모델의 계수가 부정확해져서 다양한 독립 변수가 종속 변수에 미치는 영향을 판단하기가 어려워질 수 있습니다. 이 경우 회귀 모델의 다중 공선성을 식별 및 처리하고 다양한 절차와 출력을 결합하는 것이 필요합니다. 이에 대해 단계별로 설명하겠습니다.

방법

  • 다중 공선성 감지

  • 다중 공선성 처리

알고리즘

1단계 − 필요한 라이브러리 가져오기

2단계 - Pandas Dataframes에 데이터 로드

3단계 - 예측자를 사용하여 상관 행렬 만들기

4단계 − 상관관계 시각화를 위해 상관행렬의 히트맵 생성

5단계 - 출력의 각 예측 변수에 대한 분산 팽창 인자를 계산합니다

6단계 − 예측 변수 결정

7단계 - 예측변수를 제거해야 합니다

8단계 - 회귀 모델 다시 실행

9단계 - 다시 확인하세요.

방법 1: 다중 공선성 감지

pandas 패키지의 corr() 함수를 사용하여 독립 변수의 상관 행렬을 결정합니다. seaborn 라이브러리를 사용하여 히트 맵을 생성하여 상관 행렬을 표시합니다. statsmodels 패키지의 variance_inflation_factor() 함수를 사용하여 각 독립 변수에 대한 분산 팽창 계수(VIF)를 결정합니다. VIF가 5 또는 10보다 크면 다중 공선성이 높다는 것을 나타냅니다.

Example-1

의 중국어 번역은 다음과 같습니다.

Example-1

이 코드에서는 데이터가 Pandas DataFrame에 로드되면 예측 변수 X와 종속 변수 y가 분리됩니다. 각 예측 변수에 대한 VIF를 계산하기 위해 statsmodels 패키지의 Variation_inflation_factor() 함수를 사용합니다. 프로세스의 마지막 단계에서는 새로운 Pandas DataFrame에 예측 변수 이름과 함께 VIF 값을 저장한 다음 결과를 표시합니다. 이 코드를 사용하면 각 예측 변수에 대한 변수 이름과 VIF 값이 포함된 테이블이 생성됩니다. 변수의 VIF 값이 높은 경우(상황에 따라 5 또는 10 이상) 변수를 추가로 분석하는 것이 중요합니다.

으아악

출력

으아악

방법 2: 다중 공선성 처리

모델에서 밀접하게 상관된 하나 이상의 독립 변수를 제외합니다. 주성분 분석(PCA)을 사용하면 상관관계가 높은 독립 변수를 단일 변수로 결합할 수 있습니다. 능선 회귀 또는 올가미 회귀와 같은 정규화 방법을 사용하여 강하게 상관된 독립 변수가 모델 계수에 미치는 영향을 줄일 수 있습니다. 위의 접근 방식을 사용하면 다음 예제 코드를 사용하여 다중 공선성 문제를 식별하고 해결할 수 있습니다. −

으아악

이 함수는 각 독립변수의 VIF 값을 출력하는 것 외에 다른 출력을 생성하지 않습니다. 이 코드를 실행하면 각 독립 변수에 대한 VIF 값만 출력되며 그래프나 모델 성능은 인쇄되지 않습니다.

이 예에서는 데이터가 먼저 pandas DataFrame에 로드된 다음 상관 행렬이 계산되고 마지막으로 상관 행렬을 표시하기 위한 히트 맵이 생성됩니다. 그런 다음 각 독립변수의 VIF를 검정한 후 상관관계가 높은 독립요인을 제거했습니다. 우리는 능형 회귀 분석을 사용하여 상관 관계가 높은 독립 변수가 모델 계수에 미치는 영향을 줄이고 주성분 분석을 사용하여 상관 관계가 높은 독립 변수를 하나의 변수로 결합합니다.

으아악

출력

으아악

Pandas 패키지를 사용하면 이 Python 프로그램을 통해 DataFrame이라는 배열 데이터 구조를 생성할 수 있습니다. 특정 차원에는 어시스트, 리바운드, 포인트, 등급이라는 네 가지 열이 포함됩니다. 라이브러리는 코드 시작 부분에서 가져오고 이후에는 복잡성을 줄이기 위해 "pd"라고 합니다. DataFrame은 코드의 두 번째 줄에서 pd.DataFrame() 메서드를 실행하여 최종적으로 구성됩니다.

코드의 세 번째 줄에서 print() 메서드를 사용하여 DataFrame을 콘솔에 인쇄합니다. 각 열의 값은 목록의 정의를 형성하고 사전 입력 기능의 키와 값 역할을 합니다. 각 선수에 대한 정보는 점수, 어시스트, 리바운드를 포함한 통계가 열에 배열되어 있는 표 형식으로 표시되며, 각 행은 선수를 나타냅니다.

결론

요약하자면, 모델에 있는 두 개 이상의 예측 변수가 서로 강한 상관관계를 갖는 경우 이를 다중 공선성이라고 합니다. 이러한 상황은 모델 결과를 해석하기 어렵게 만들 수 있습니다. 이 경우 각 고유 예측 변수가 결과 변수에 어떻게 영향을 미치는지 확인하기가 어렵습니다.

위 내용은 Python을 사용하여 회귀 분석에서 다중 공선성 문제 감지 및 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제