-
2024 ADsP 데이터분석 준전문가 시험공부 11일차/20자격증/ADsP 2024. 5. 4. 16:00728x90반응형
03 회귀분석 ★★★
1. 회귀분석 개요
(1) 회귀분석의 개념
① 회귀분석 ★★
: 하나 이상의 독립변수(x1, x2, ...)들이 종속변수(y)에 얼마나 영향을 미치는지 추정하는 통계기법
- 기본적으로 변수가 연속형 변수일 때 사용하며, 범주형 변수일 경우 이를 파생변수로 변환하여 사용
- IF 종속변수가 범주형일 경우 로지스틱 회귀분석 사용
- "독립변수와 종속변수 간에 인관관계가 있다!"
=> 독립변수가 원인이 되어 종속변수에 영향을 미친다는 뜻 (= 변수들이 일정한 경향성을 띤다)
- 독립변수 = 원인변수(혹은 설명 변수)
- 종속변수 = 결과변수(혹은 반응 변수)
- 독립변수가 하나면 단순선형회귀분석, 2개 이상이면 다중선형회귀분석으로 분석
② 회귀분석의 종류
종류 식 모형 단순회귀 1개의 독립변수와 반응변수가 직선(선형) 관계 다중회귀 k개의 독립변수와 반응변수가 선형 관계 다항회귀 k개의 독립변수와 반응변수가 2차함수 이상의 관계 비선형회귀 회귀식이 미지의 모수들과 선형관계가 아닌 경우
(지수함수, 로그함수, 삼각함수 등)(2) 회귀분석의 가정 ★★★
선형성 - 독립변수와 종속변수가 선형적이어야 함
- 예외적으로 2차함수 회귀선을 갖는 다항회귀분석의 경우에는 선형성을 갖지 않아도 됨
- 산점도를 통해 분석하기 전에 변수 사이의 관계를 짐작 가능해 회귀분석 하기 전 상관분석은 거의 필수적으로 수행독립성 - 단순회귀분석에서는 잔차와 독립변수의 값이 서로 독립
- 독립변수가 여러 개인 다중회귀분석의 경우에는 독립변수들 간에 상관성이 없이 독립
- IF 독립변수들 간에 상관성이 존재하는 경우, 이를 다중공선성이라 하며, 이를 제거하고 회귀분석 수행등분산성 - 등분산성 : 분산이 같다는 의미(= 잔차들이 고르게 분포하고 있다는 의미)
- 잔차의 중심에서 분산이 같아야 함. 등분산성을 불만족 시 회귀선은 어떤 추세를 띠지 못하고 덩어리(뭉친) 모양이 됨정규성 - 잔차항이 정규분포 형태를 띠는 것을 정규성을 만족한다고 함
- Q-Q Plot에서 잔차가 오른쪽으로 상승하는 형태를 띠면 정규성을 만족한다고 판단
- 정규성을 검증하기 위한 방법으로는 히스토그램, QQ plot을 활용하여 시각적으로 확인 가능
- ex) 샤피로 검정, 앤더슨-달링 검정, 히르케-베라 검정 등- 오차 : 모집단의 데이터를 활용하여 회귀 식을 구한 경우 예측 값과 실제 값의 차이
- 잔차 : 모집단을 특정할 수 없는 경우 모집단의 일부인 표본집단으로 회귀식으로 추정하게 되는데,
이때 표본집단에 의해 추정된 회귀식의 예측 값과 실제 값의 차이
2. 단순선형회귀분석
(1) 회귀계수의 추정
① 단순선형회귀분석
: 독립변수와 종속변수가 1개씩일 때 둘 사이의 인과관계를 분석하는 것. 두 변수의 관계 = 선형
- 최소제곱법을 활용하여 실제 데이터와 오차가 가장 작아지는 직선의 방정식을 찾음
위키피디아 - 선형 회귀 ② 최소제곱법으로 회귀계수 추정 ★★★
- 회귀분석 기본 알고리즘 : 최소제곱법을 통해 파라미터를 추정하고 추정된 파라미터를 통해 추세선을 그려 값을 예측하는 것
- 최소제곱법 : 실제 관측치와 추세선에 의해 예측된 점 사이의 거리, 즉 오차를 제곱해 더한 값을 최소화하는 것
[회귀계수] (2) 회귀분석모형의 적합성 ★★★
① 회귀분석의 분산분석표
- [단순선형회귀분석의 분산분석표]
요인 제곱 합 자유도 제곱평균 F 회귀 SSR 1 MSR = SSR MSR / MSE 잔차 SSE n - 2 MSE = SSE / (n - 2) 총 SST = SSR + SSE n - 1 - [다중선형회귀분석의 분산분석표]
요인 제곱 합 자유도 제곱평균 F 회귀 SSR k MSR = SSR / k MSR / MSE 잔차 SSE n - k - 1 MSE = SSE / (n - k - 2) 총 SST = SSR + SSE n - 1 ② 회귀모형의 통계적 유의성 검증 ★★★
- 회귀모형의 귀무가설 : '모든 회귀계수는 0이다', F-검점을 통해 확인
- F-검정은 분산의 차이를 확인 할 때 사용 : 분산의 차이가 크다는 것은 회귀모형에서 회귀계수가 크다는 의미
- F-통계량 즉, F값이 크다는 말은 회귀계수가 크고 가파르다는 말과 같음. = 변수 간에 유의미한 인과관계 존재한다고 봄
==> F값이 크면, F값이 '0'에서 얼마나 가까운지 확률적으로 측정한 값인 P값은 상대적으로 작아짐
(P값은 회귀모형에서 0.05보다 작을 경우 유의미한 인과관계가 있다고 판단하는 중요한 기준이 됨)
③ 회귀계수의 통계적 유의성 검증
- 회귀계수의 유의성은 t-검정을 통해 확인
- t-통계량 : 회귀계수를 표준오차로 나눈 값
- t-통계량이 크다는 것은 분모가 작다는 의미이므로 분모에 해당하는 표준오차가 작다고 볼 수 있음,
반대로 분자인 회귀계수가 분모보다 크다
- t-통계량 ↑ --> 회귀계수 ↑ ==> 유의미한 인과관계 검증! (+P값 ↓)
④ 모형의 설명력 ★★★
- 회귀모형의 설명력이 좋다는 의미는 데이터들의 분포가 회귀선에 밀접하게 분포하고 있다는 의미
- 회귀분석 결과를 분산분석하고, 도출된 결정계수(R^2)로 모형의 설명력 판단
- 결정계수가 1에 가깝다면 데이터들이 회귀선에 매우 밀접하게 분포, 회귀 모형의 예측력 높음, 주어진 자료를 잘 설명함
Q : 전체 데이터들의 편차들을 제곱하여 합한 값
Qe : 전체 데이터들의 잔차들을 제곱하여 합한 값
+ 수정된 결정게수
- 종속변수에 영향을 주지 않은 독립변수가 모형에 포함되어도 결정게수가 커지는 단점 보완
(3) 단순선형회귀분석의 예 ★★★
① 자동차 배기량과 연비 회귀분석
X 배기량(L) 1 1.4 1.6 2 2.2 2.4 3 3.3 3.6 Y 연비(km/L) 15 13 13 12 11 10.5 10 9 8 > X <- c(1, 1.4, 1.6, 2, 2.2, 2.4, 3, 3.3, 3.6) > Y <- c(15, 13, 13, 12, 11, 10.5, 10, 9, 8) > result <- lm(Y ~ X) #lm은 Linear Model(선형모델)의 약어 > summary(result) Call: lm(formula = Y ~ X) Residuals: Min 1Q Median 3Q Max -0.47990 -0.41705 0.04524 0.21353 0.60809 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 16.8291 0.4142 40.63 1.43e-09 *** X -2.4371 0.1707 -14.27 1.97e-06 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 0.4277 on 7 degrees of freedom Multiple R-squared: 0.9668, Adjusted R-squared: 0.962 F-statistic: 203.7 on 1 and 7 DF, p-value: 1.97e-06
- p-value : 1.97e-06으로, 유의수준 0.05에서 회귀분석의 귀무가설 기각
- 따라서 '모든 회귀계수는 0이다'라고 할 수 없으므로 주어진 모형은 통계적으로 유의하다!
- 독립변수의 X의 회귀계수는 -2.4371일 것으로 추정 가능
- 상수항의 추정치는 16.8291
- 따라서 추정되는 회귀식은 Y(연비) = {-2.4371 * (배기량 X)} + 16.8291
② 분산분석표와 수정계수
> X <- c(1, 1.4, 1.6, 2, 2.2, 2.4, 3, 3.3, 3.6) > Y <- c(15, 13, 13, 12, 11, 10.5, 10, 9, 8) > result <- lm(Y ~ X) #lm은 Linear Model(선형모델)의 약어 > anova(result) Analysis of Variance Table Response: Y Df Sum Sq Mean Sq F value Pr(>F) X 1 37.275 37.275 203.73 1.97e-06 *** Residuals 7 1.281 0.183
+ QQ-plot(Quantile-Quantile Plot)
: 모집단 또는 표본집단의 정규분포를 따르는지 시각적으로 확인하기 위한 산점도
- QQ plot의 점들이 45도에 가까운 직선의 모양을 띨수록 정규분포를 따른다고 할 수 있음
3. 다중선형회귀분석
(1) 다중선형회귀분석
- 독립변수가 2개 이상이고 종속변수가 하나일 때 사용 가능한 회귀분석으로 독립변수와 종속변수의 관계가 선형으로 표현
- 단순회귀분석이 확장된 형태, 기본적인 회귀계수 및 통계적 유의성 검증 등은 동일
- 독립변수가 여러 개이므로 회귀계수도 여러 개
(2) 다중공선성 ★★★
① 다중공선성의 개념
: 회귀분석에서 독립변수 간에 강한 상관관계가 나타나는 문제
- 다중공선성이 존재하면 회귀분석의 기본 가정인 독립성(독립변수 간에는 상관관계가 없이 독립이다)에 위배
- 독립변수가 1개인 단순선형회귀분석에서는 문제가 안되지만 독립변수가 2개 이상인 다중선형회귀분석에서는 유의!
- A, B라는 변수 사이에 다중공선성이 존재하면 A 또는 B라는 변수가 Y값에 어느 정도의 영향을 미치는지 정확하게 판단 불가능
- 다중공선성을 해결하지 않고 분석을 하면 분석 결과의 회귀계수를 신뢰할 수 없고 잘못된 결과가 나올 수 있음
② 다중공선성의 진단
- 결정계수 (R^2) 값이 커서 회귀식의 설명력은 높지만 각 독립변수의 P-value 값이 커서 개별 인자가 유의하지 않은 경우 다중공선성 의심 필요
- 독립변수 간의 상관계수를 구한다
- 분산팽창요인(VIF = 1 / 1 - R^2)을 구해 이 값이 10을 넘는다면 보통 다중공선성이 있다고 판단 가능
③ 다양한 다중공선성 문제 해결법
- 다중공선성의 문제가 발생하는 변수를 제거
- 주성분분석(PCA)을 통해 변수의 차원 축소 (변수 삭제x, 데이터가 가진 내재적 속성을 보존하면서 축소)
- R에서 '스크리 산점도(Scree plot)'를 사용해 주성분 개수 선택
- 선형판별분석(LDA)으로 차원 축소 (LDA :데이터의 분포를 학습하여 결정경계를 만들어 데이터를 분류하는 지도학습)
- t-분포 확률적 임베딩(t-SNE)으로 차원 축소
- 특잇값 분해(SVD)로 차원 축소. PCA와 유사한 행렬 분해 기법을 사용하지만, PCA와 달리 행과 열 크기를 다른 어떤 행렬에도 적용할 수 있다는 이점이 있음
(3) 다중선형회귀분석의 예 ★★★
yard 마당 면적(㎡) 31 31 27 39 30 32 28 23 28 35 area 집 면적(㎡) 58 51 47 35 48 42 43 56 41 41 park 주차 대수(대) 1 1 5 5 2 4 5 1 1 3 dist 편의점까지 거리(m) 492 426 400 125 443 412 201 362 192 423 price 집 가격(만 원) 12631 12084 12220 15649 11486 12276 15527 12666 13180 10169 > yard <- c(31, 31, 27, 39, 30, 32, 28, 23, 28, 35) > area <- c(58, 51, 47, 35, 48, 42, 43, 56, 41, 41) > park <- c(1, 1, 5 , 5, 2, 4, 5, 1, 1, 3) > dist <- c(492, 426, 400, 125, 443, 412, 201, 362, 192, 423) > price <- c(12631, 12084, 12220, 15649, 11486, 12276, 15527, 12666, 13180, 10169) > result <- lm(price ~ yard + area + park + dist) > summary(result) Call: lm(formula = price ~ yard + area + park + dist) Residuals: 1 2 3 4 5 6 7 8 9 10 211.9 193.4 -451.5 -193.6 247.8 801.9 387.0 -486.6 100.3 -810.6 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3045.689 4084.218 0.746 0.48939 yard 117.922 65.779 1.793 0.13300 area 230.563 61.193 3.768 0.01305 * park 436.801 155.508 2.809 0.03760 * dist -16.446 2.489 -6.609 0.00119 ** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 645.3 on 5 degrees of freedom Multiple R-squared: 0.9184, Adjusted R-squared: 0.8531 F-statistic: 14.07 on 4 and 5 DF, p-value: 0.006267
- p-value 값이 0.006267이므로 유의수준 0.05에서 기각 귀무가설을 기각 (유의)
- 각 독립변수에 대한 p-value 값을 유의수준 0.05 이내에서 비교해보면, yard를 제외한 나머지 변수는 통계적으로 유의
- 이러한 경우 yard를 제외한 나머지 3개를 독립변수로 회귀분석을 재수행할 것을 권장
- 유의미하지 않은 변수 yard를 제외하지 않는다면, 추정되는 회귀식은 다음과 같음
price = 3045.689 + (117.922 * yard) + (230.563 * area) + (436.801 * park) + (-16.446 * dist)
- 유의미하지 않은 변수 yard를 제외한다면 회귀분석 수행 후 위 회귀식에서 yard를 제외한 회귀식을 도출하면 됨
4. 최적 회귀방정식
(1) 최적 회귀방정식
① 최적 회귀방정식의 개념
- 종속변수에 유의미한 영향을 미칠 것으로 생각되는 독립변수를 선택하는 과정, 모델 성능 향상을 위해 사용
- 목표 : 1개의 반응변수 y를 설명하기 위한 k개의 독립변수 후보들이 있을 때 반응변수 y를 가장 잘 설명할 수 있는 회귀식을 찾는 것
- 변수가 결과에 영향을 미치는지 등의 특성을 고려해 선택하는 것이 중요!
- 결정계수 혹은 결정계수도 변수 선택에 활용 가능
② 최적의 회귀방정식을 도출하기 위한 방법 ★★
- 변수선택법 : 부분집합법, 단계적 변수선택법
- 부분집합법 : 모든 가능한 모델을 고려하여 가장 좋은 모델을 선정하는 방법(임베디드 기법)
- 장점 : 변수의 개수가 적은 경우 높은 설명력을 가진 결과를 도출해내는 데 효과적
- 단점 : 변수가 많아짐에 따라 검증해야 하는 회귀 분석도 많아짐
- ex) 라쏘, 릿지, 엘라스틱넷 등
- 단계적 변수선택법 : 일정한 단계를 거치면서 변수를 추가하거나 혹은 제거하는 방식으로 최적의 회귀방정식을 도출하는 방식
- 일반적으로 많이 사용
- ex) 전진선택법, 후진제거법, 단계선택법 등
+ 변수선택법의 작동 원리에 따른 분류
임베디드
(Embedded)- 부분집합의 생성 및 선택 과정이 모형학습 과정에 포함
- C4.5, LASSO래퍼
(Wrapper)- 특정 모형의 성능 향상에 가장 이상적인 변수의 조합 찾는 방법
- 회귀분석의 전진 선택법, 후진 제거법, 단계 선택법
- 장점 : 다른 방법에 비해 정확도가 높음
- 단점 : 과적합 문제와 계산 비용이 많이 듦필터
(Filter)- 모형학습과 독립적으로 변수 집합 F에서 적합도 평가 지표를 이용하여 기준 조건을 충족하는 변수를 선택함으로써 부분 집합을 구성하는 방법
- 평가 지표로는 주로 상관계수를 사용하거나 정보이른의 엔트로피를 이용
- 장점 : 계산 시간이 적으며 과적합을 피할 수 있음
- 단점 : 래퍼 방법보다 성능이 다소 낮음(2) 변수 선택에 사용되는 성능지표 ★★★
① 벌점화(penalty : 페널티) 방식의 AIC와 BIC
- 벌점화 방식 : 변수의 수가 많아 복잡해진 모형에 벌점을 주어 최적 회귀방정식을 도출(= 회귀 모형의 설명력 ↑)하고자 하는 방법
- 회귀 모형은 변수의 수가 증가할수록 편향(bias)은 작아지고 분산(variance)은 커지려는 경향이 있음
- AIC와 BIC의 두 벌점 모두 편향과 분산이 최적이 되는 균형점 제안
② AIC(Akaike Information Criteria : 아카이케 정보 기준)
: 모델의 성능지표로서 MSE에 변수 수만큼 페널티를 주는 지표
- 일반적으로 회귀분석에서 Model Selection할 때 많이 씀
③ BIC(Bayes Information Criteria : 베이즈 정보 기준)
- AIC의 단점인, 표본(n)이 커질 때 부정확하다는 단점을 보완한 지표
- AIC와 큰 차이는 없지만 BIC는 표본이 커질 경우 좀 더 정확한 결과가 나타남
- BIC의 경우 변수의 개수가 많을수록 AIC보다 더 큰 페널티를 주기 때문에 변수의 개수가 적은 모형이 우선이라면 BIC 참고 권장
④ 멜로우 Cp(Mallow's Cp)
- 멜로우가 제안한 통계량으로 Cp 값은 최소자승법으로 사용하여 추정된 회귀모형의 적합성을 평가하는 데 사용
- Cp 값은 수정된 결정계수 및 AIC와 밀접합 관련
- Cp 값은 모든 변수가 다 포함될 경우에 p값과 같아짐, 따라서 나쁜 모델의 Cp값이 p값보다 클 때이며 좋은 모델은 최소한 p값보다 작을 때임
(3) 단계적 변수 선택법 ★★★
① 전진선택법(forward selection)
- 모든 독립변수 가운데 기준 통계치에 가장 많은 영향을 줄 것으로 판단되는 변수부터 하나씩 추가하면서 모형을 선택
- 설명력이 가장 높은 설명변수(p-value가 가장 작은 변수)부터 시작해 하나씩 모형에 추가
- 단점 : 변수의 개수가 많을 때 사용할 수 있지만 변숫값이 조금만 변해도 결과에 큰 영향을 미치기 때문에 안정성이 부족함
- 상관계수의 절댓값이 가장 큰 변수에 대해 부분 F 검정으로 유의성 검정을 하고 더는 유의하지 않은 경우 해당 변수부터는 더 이상 변수를 추가하지 않음
② 후진제거법(backward elimination)
- 독립변수를 모두 포함하여 가장 적은 영향을 주는 변수부터 하나씩 제거하는 방법
- 전진선택법과 반대로 상관계수의 절댓값이 가장 작은 변수에 대해 부분 F 검정을 실시, 검정 결과가 가장 적은 영향을 주는 변수(유의하지 않는 변수 = p-value가 큰 변수)부터 하나씩 제거
- 단점 : 전체 변수의 정보를 이용한다는 장점이 있지만 변수의 개수가 너무 많은 경우 적용하기 어려움
③ 단계별 방법(stepwise method)
- 전진선택법과 후진제거법을 보완한 방법
- 전진선택법에 의해 변수를 추가하면서 추가될 때 예상되는 벌점 값과 이미 추가된 변수가 제거될 때 예상되는 벌점 값이 가장 작도록 만들어 나가는 방법
(4) 최적 회귀방정식 실습 ★★★
yard 마당 면적(㎡) 31 31 27 39 30 32 28 23 28 35 area 집 면적(㎡) 58 51 47 35 48 42 43 56 41 41 park 주차 대수(대) 1 1 5 5 2 4 5 1 1 3 dist 편의점까지 거리(m) 492 426 400 125 443 412 201 362 192 423 popul 인구 수(명) 4412 2061 4407 1933 4029 4180 3444 1683 3020 4459 price 집 가격(만 원) 12631 12084 12220 15649 11486 12276 15527 12666 13180 10169 ① 전진선택법
> yard <- c(31, 31, 27, 39, 30, 32, 28, 23, 28, 35) > area <- c(58, 51, 47, 35, 48, 42, 43, 56, 41, 41) > park <- c(1, 1, 5 , 5, 2, 4, 5, 1, 1, 3) > dist <- c(492, 426, 400, 125, 443, 412, 201, 362, 192, 423) > popul <- c(4412, 2061, 4407, 1933, 4029, 4180, 3444, 1683, 3020, 4459) > price <- c(12631, 12084, 12220, 15649, 11486, 12276, 15527, 12666, 13180, 10169) > result <- step(lm(price~1), scope = list(lower = ~1, upper = ~yard + area + park + dist + popul), direction = 'forward') Start: AIC=149.52 price ~ 1 # 절편만 있는 모형에서 시작 Df Sum of Sq RSS AIC + dist 1 16958139 8557243 140.60 + popul 1 5431481 20083900 149.13 + park 1 4895399 20619982 149.39 <none> 25515382 149.52 + area 1 2806386 22708996 150.36 + yard 1 282704 25232677 151.41 Step: AIC=140.6 price ~ dist # dist 추가 Df Sum of Sq RSS AIC + area 1 2214900 6342343 139.60 <none> 8557243 140.60 + park 1 376540 8180703 142.15 + popul 1 90527 8466716 142.49 + yard 1 53104 8504139 142.53 Step: AIC=139.6 price ~ dist + area # area 추가 Df Sum of Sq RSS AIC + park 1 2922548 3419795 135.43 <none> 6342343 139.60 + yard 1 975693 5366650 139.93 + popul 1 326295 6016048 141.07 Step: AIC=135.43 price ~ dist + area + park # park 추가 Df Sum of Sq RSS AIC + yard 1 1338046 2081748 132.46 <none> 3419795 135.43 + popul 1 879 3418916 137.42 Step: AIC=132.46 price ~ dist + area + park + yard # yard 추가 Df Sum of Sq RSS AIC <none> 2081748 132.46 + popul 1 54218 2027530 134.20 # 마지막 변수 popul이 추가될 경우 벌점 증가 # 따라서 더 이상 변수 추가 x, 작업 종료 # price를 추정하기 위한 독립변수로는 dist, area, park, yard의 4개의 변수 사용 # 더 자세한 결과는 summary 함수 사용 > summary(result) Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3045.689 4084.218 0.746 0.48939 dist -16.446 2.489 -6.609 0.00119 ** area 230.563 61.193 3.768 0.01305 * park 436.801 155.508 2.809 0.03760 * yard 117.922 65.779 1.793 0.13300 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 645.3 on 5 degrees of freedom Multiple R-squared: 0.9184, Adjusted R-squared: 0.8531 F-statistic: 14.07 on 4 and 5 DF, p-value: 0.006267 # p-value < 0.05 ==> 귀무가설 기각 # 위 추정식은 통계적으로 유의
② 후진제거법
> yard <- c(31, 31, 27, 39, 30, 32, 28, 23, 28, 35) > area <- c(58, 51, 47, 35, 48, 42, 43, 56, 41, 41) > park <- c(1, 1, 5 , 5, 2, 4, 5, 1, 1, 3) > dist <- c(492, 426, 400, 125, 443, 412, 201, 362, 192, 423) > popul <- c(4412, 2061, 4407, 1933, 4029, 4180, 3444, 1683, 3020, 4459) > price <- c(12631, 12084, 12220, 15649, 11486, 12276, 15527, 12666, 13180, 10169) >result <- step(lm(price ~ yard + area + park + dist + popul), scope = list(lower = ~1, upper = ~yard + area + park + dist + popul ), direction = 'backward') Start: AIC=134.2 price ~ yard + area + park + dist + popul Df Sum of Sq RSS AIC - popul 1 54218 2081748 132.46 <none> 2027530 134.20 - yard 1 1391386 3418916 137.42 - park 1 2644982 4672512 140.55 - area 1 5427894 7455424 145.22 - dist 1 10086523 12114053 150.07 Step: AIC=132.46 price ~ yard + area + park + dist Df Sum of Sq RSS AIC <none> 2081748 132.46 - yard 1 1338046 3419795 135.43 - park 1 3284902 5366650 139.93 - area 1 5910682 7992431 143.91 - dist 1 18183500 20265249 153.22 # 남은 변수들이 제거되는 경우 현재 모형보다 벌점 증가 # 따라서 더 이상 변수를 제거하지 않고 작업 종료 # price를 추정하기 위한 독립변수로는 dist, area, park, yard의 4개의 변수 사용
③ 단계별 방법
> yard <- c(31, 31, 27, 39, 30, 32, 28, 23, 28, 35) > area <- c(58, 51, 47, 35, 48, 42, 43, 56, 41, 41) > park <- c(1, 1, 5 , 5, 2, 4, 5, 1, 1, 3) > dist <- c(492, 426, 400, 125, 443, 412, 201, 362, 192, 423) > popul <- c(4412, 2061, 4407, 1933, 4029, 4180, 3444, 1683, 3020, 4459) > price <- c(12631, 12084, 12220, 15649, 11486, 12276, 15527, 12666, 13180, 10169) > result <- step(lm(price ~ 1), scope = list(lower = ~1, upper = ~yard + area + park + dist + popul), direction = 'both') Start: AIC=149.52 price ~ 1 Df Sum of Sq RSS AIC + dist 1 16958139 8557243 140.60 + popul 1 5431481 20083900 149.13 + park 1 4895399 20619982 149.39 <none> 25515382 149.52 + area 1 2806386 22708996 150.36 + yard 1 282704 25232677 151.41 Step: AIC=140.6 price ~ dist Df Sum of Sq RSS AIC + area 1 2214900 6342343 139.60 <none> 8557243 140.60 + park 1 376540 8180703 142.15 + popul 1 90527 8466716 142.49 + yard 1 53104 8504139 142.53 - dist 1 16958139 25515382 149.52 Step: AIC=139.6 price ~ dist + area Df Sum of Sq RSS AIC + park 1 2922548 3419795 135.43 <none> 6342343 139.60 + yard 1 975693 5366650 139.93 - area 1 2214900 8557243 140.60 + popul 1 326295 6016048 141.07 - dist 1 16366653 22708996 150.36 Step: AIC=135.43 price ~ dist + area + park Df Sum of Sq RSS AIC + yard 1 1338046 2081748 132.46 <none> 3419795 135.43 + popul 1 879 3418916 137.42 - park 1 2922548 6342343 139.60 - area 1 4760908 8180703 142.15 - dist 1 17088473 20508268 151.34 Step: AIC=132.46 price ~ dist + area + park + yard Df Sum of Sq RSS AIC <none> 2081748 132.46 + popul 1 54218 2027530 134.20 - yard 1 1338046 3419795 135.43 - park 1 3284902 5366650 139.93 - area 1 5910682 7992431 143.91 - dist 1 18183500 20265249 153.22 # 새로운 변수를 추가 또는 기존 변수를 삭제하여 현재 벌점보다 낮출 수 없음 # price를 추정하기 위한 독립변수로는 dist, area, park, yard의 4개의 변수 사용
5. 고급 회귀분석
(1) 정규화 선형회귀
① 과적합과 과소적합 ★★★
- 과적합(overfitting) 또는 과대적합이란 모델이 학습 데이터를 과하게 학습하는 것을 의미
- 모델이 학습 데이터에 너무 과하게 맞추면 새로운 데이터에 일반화하기가 어렵기 때문에 테스트 데이터에 대한 성능은 낮게 나옴
- 과소적합(underfitting) : 반대로 모델이 너무 단순해서 학습 데이터조차 제대로 예측하지 못하는 경우
② 정규화 선형회귀
: 회귀분석에서 과적합되면 계수의 크기도 과도하게 증가하는 경향을 방지하기 위해 계수의 크기를 제한하는 방법
- ex) 릿지(Ridge), 라쏘(Lasso), 엘라스틱넷(Elastic Net)
③ 정규화 선형회귀의 종류 ★★★
1. 라쏘(Lasso Regression)
: L1 규제라고도 하며, 가중치들의 절댓값의 합을 최소화하는 것을 제약조건으로 추가하는 방법
- 일정한 상숫값이 패널티로 부여되어 일부 불필요한 가중치 파라미터를 0으로 만들어 분석에서 아예 제외
- 몇 개의 의미 있는 변수만 분석에 포함시키고 싶을 때 효과적
2. 릿지(Ridge Regression)
: L2 규제라고도 하며, 가중치들의 제곱합을 최소화하는 것을 제약조건으로 추가하는 방법
- 일부 가중치 파라미터를 제한하지만, 완전히 0으로 만들지는 않고 0에 가깝게 만듦
- 매우 크거나 작은 이상치의 가중치를 0에 가깝게 유도함으로써 선형 모델의 일반화 성능을 개선하는 데 사용
3. 엘라스틱넷(Elastic Net)
- 라쏘 + 릿지
- 가중치의 절댓값의 합과 제곱합을 동시에 제약조건으로 가짐
(2) 일반화 선형회귀(GLM, Generalized Linear Regression)
① 일반화 선형회귀의 개념
- 회귀분석은 종속변수가 정규분포를 따른다는 정규성을 전제로 함. 벗, 종속변수가 범주형 자료이거나 정규성을 만족하지 못하는 경우 -> 그 종속변수를 적절한 함수 f(x)로 정의한 다음, 이 함수와 독립변수를 선형 결합하여 회귀분석을 수행할 수 있음
② 일반화 선형회귀의 구성 요소
- 확률 요소(Random Component) : 종속변수의 확률분포를 규정하는 성분
- 선형 예측자(Linear Predictor, 혹은 체계적 성분) : 종속변수의 기댓값을 정의하는 독립변수들 간의 선형 결합
- 연결 함수(Link function) : 확률 요소와 선형예측자를 연결하는 함수
③ 일반화 선형회귀의 종류 ★★★
1. 로지스틱 회귀(Logistic regression)
- 종속변수가 범주형 변수(0 또는 1, 합격/불합격, 사망/생존 등)인 경우로 의학연구에 많이 사용
- 로지스틱 회귀 분석은 종속 변수와 독립 변수 간의 관계를 나타내어 예측 모델을 생성한다는 점에서는 선형 회귀 분석 방법과 동일
- 하지만 독립 변수(x)에 의해 종속 변수(y)의 범주로 분류한다는 측면은 '분류 분석'방법으로 분류
2. 포아송 회귀(Poisson regression)
- 종속변수가 특정 시간 동안 발생한 사건의 건수에 대한 도수 자료(count data, 음수가 아닌 정수)인 경우이면서, 종속변수가 정규분포를 따르지 않거나 등분산성을 만족하지 못하는 경우에 포아송 회귀 분석 사용
- 선형회귀모형이 최소제곱법으로 모수를 추정한다면 포아송 회귀모형은 최대 가능도 추정(MLE, Maximum Likelihood Estimation)을 통해 모수 측정
(3) 더빈 왓슨(Durbin-Watson) 검정
① 오차항의 상관관계
- 오차항이 상관관계를 갖는 경우 : 대부분 시계열 데이터의 경우
- 시계열 데이터 : 시간의 흐름대로 나열된 데이터, 연속적인 열련의 관측치들이 서로 상관됨(자기상관성)
- 자기상관성 : 하나의 잔차항의 크기가 이웃하는 다른 잔차항의 크기와 서로 일정한 관련이 있음
② 더빈 왓슨 검정
- 회귀분석에 있어서는 오차항이 서로 연관성이 없어야 함 = 회귀분석에서의 오차항의 공분산은 '0'
- IF 자기 상관성이 있다면 회귀분석이 아니라 시계열 분석이나 다른 분석방법을 수행해야함
- 더빈 왓슨 검정 : 회귀분석에 있어 이러한 자기상관성이 존재하는지(오차항이 독립성을 만족하는지 = 오차항이 서로 연관성이 없는지) 검정하는 방법
- 더빈 왓슨 검정 통계량 값이 2에 가까울수록 오차항의 자기상관이 없다는 의미. 만약 0에 가깝다면 양의 상관관계가, 4에 가깝다면 음의 상관관계가 있다고 판단
+ 회귀분석의 평가 지표 ★★
회귀분석 평가 지표 비교 728x90반응형'자격증 > ADsP' 카테고리의 다른 글
ADsP 37회 기출 변형 [1과목] 문제 풀이 (0) 2024.05.08 2024 ADsP 데이터분석 준전문가 시험공부 12일차/20 (0) 2024.05.04 2024 ADsP 데이터분석 준전문가 시험공부 10일차/20 (0) 2024.05.02 2024 ADsP 데이터분석 준전문가 시험공부 9일차/20 (2) 2024.05.01 2024 ADsP 데이터분석 준전문가 시험공부 8일차/20 (1) 2024.04.26