다중선형회귀

김요한·2024년 8월 5일

통계학

목록 보기
19/30
post-thumbnail

다중선형회귀

  • 두 개 이상의 변수에 의한 결과를 예측

다중선형회귀란?

  • 두 개 이상의 독립 변수(X1,X2,X3,n..)와 하나의 종속변수(Y)간의 관계를 모델링.

회귀식

  • Y = β0 + β1X1 + β2X2 + ... + βnXn

특징

  • 여러 독립 변수의 변화를 고려, 종속 변수를 설명하고 예측.
  • 종속변수에 영향을 미치는 여러 독립변수가 있을 때 사용.
  • 여러 변수의 영향을 동시에 분석
  • 변수들 간의 다중공선성 문제가 발생

다중공선성이란?

  • 다중공선성(Multicollinearity)은 회귀분석에서 독립 변수들 간에 높은 상관관계가 있는 경우
  • 이는 회귀분석 모델의 성능과 해석에 여러 문제를 일으킴.
    • 독립 변수들이 서로 강하게 상관되어 있으면, 걱 변수의 개별적인 효과를 분리해내기 어려워져 회귀의 해석을 어렵게 함.
    • 다중공선성으로 인해 중요한 변수가 통계적으로 유의하지 않게 나타날 수 있음.
  • 진단하는 방법?
    • 가장 간단한 방법으로 상관계수를 계산, 상관계수가 높은(0.07) 변수들이 있는지 확인해 볼 수 있음.
    • 더 정확한 방법으로 분산 팽창 계수(VIF)를 계산하여 VIF값이 10이 높은지 확인하여 다중공선성이 높다고 판단함.
  • 다중공선성 해결 방법
    • 가장 간단한 방법은 높은 게수를 가진 변수 중 하나를 제거
    • 주성분 분석(PCA)과 같은 변수들을 효과적으로 줄이는 차원 분석 방법을 적용해 해결할 수도 있다.

    다중선형회귀는 언제 사용하나

    두개 이상의 독립 변수와 종속변수와의 관계를 분석 및 예측

  • 다양한 광고비(TV,Radio, Newspaper)과 매출 간의 관계 분석.
  • 현재의 광고비(TV,Radio, Newspaper)를 바탕으로 예상되는 매출 분석 가능.
 # 예시 데이터 생성
data = {'TV': np.random.rand(100) * 100,
        'Radio': np.random.rand(100) * 50,
        'Newspaper': np.random.rand(100) * 30,
        'Sales': np.random.rand(100) * 100}
df = pd.DataFrame(data)

# 독립 변수(X)와 종속 변수(Y) 설정
X = df[['TV', 'Radio', 'Newspaper']]
y = df['Sales']

# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=0.2,
random_state=42)

# 다중선형회귀 모델 생성 및 훈련
model = LinearRegression()
model.fit(X_train, y_train)

# 예측
y_pred = model.predict(X_test)

# 회귀 계수 및 절편 출력
print("회귀 계수:", model.coef_)
print("절편:", model.intercept_)

# 모델 평가
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print("평균 제곱 오차(MSE):", mse)
print("결정 계수(R2):", r2)

0개의 댓글