본문 바로가기

ADsP(데이터 분석 준전문가)/개념정리

[3-4. 통계분석] 3.회귀분석

728x90

3절 회귀분석
학습목표
+회귀분석의 정의와 가정을 이해
- 예)매출증대에 영향을 미치는 요소, 난방비에 영향을 주는 요소들, 학습능력을 향상시키는 요소들
+단순회귀분석과 다중회귀분석을 이해
- 단순회귀분석 : 하나의 요소가 결과에 미치는 영향을 모형화
- 다중회귀분석 : 여러 개의 요소가 결과에 미치는 영향을 모형화 (많이 발생)
- *회귀분석에선 개념에 대한 문제,R프로그램 실행 후 Output을 해석하는 문제가 나옴

1) 회귀분석의 개요
1. 회귀분석의 정의
- 하나나 그 이상의 독립변수들이 종속변수에 미치는 영향을 추정할 수 있는 통계기법
- 변수들 사이의 인과관계를 밝히고 모형을 적합하여 관심있는 변수를 예측하거나 추론하기 위한 분석방법
- 독립변수의 개수가 하나이면 단순선형회귀분석, 독립변수의 개수가 두 개이상이면 다중선형회귀분석으로 분석 

2. 회귀분석의 변수
- 영향을 주는 변수(x) : 설명변수(Explanatory Variable) , 독립변수(Independent Variable), 예측변수(Predictor Variable), 출력변수
- 영향을 받는 변수(y) : 반응변수(Response Variable), 종속변수(Dependent Variable), 결과변수(Outcome Variable), 입력변수

3. 선형회귀분석의 가정
(1) 선형성 : 입력변수와 출력변수의 관계가 선형이다 (선형회귀분석에서 가장 중요한 가정)

*오차(Error)와 잔차(Residual)의 차이
오차 : 모집단에서 실제값이 회귀선과 비교해볼 때 나타나는 차이(정확치와 관측치의 차이)
잔차: 표본에서 나온 관측값이 회귀선과 비교해 볼 때 나타나는 차이.
-> 회귀모형에서 오차항은 측정할 수 없으므로 잔차를 오차항의 관찰값으로 해석하여 오차항에 대한 가정들의 성립 여부 조사.

(2) 등분산성
- 오차의 분산이 입력변수와 무관하게 일정하다 
*오차의 분산 : 예측된 값과 실제 관측 값 사이의 차이 또는 오차가 어느 정도로 퍼져 있는지를 나타내는 측도
*오차의 분산이 작을수록 모델은 더 정확하게 예측하고 있으며, 오차의 분산이 클수록 예측의 불확실성이 높아집니다.
*오차의 분산은 주로 잔차의 분포를 통해 확인
- 잔차플롯(산점도)을 활용하여 잔차와 입력변수간에 아무런 관련성이 없게 무작위적으로 고루 분포되어야 등분산성 가정을 만족
*만약 오차의 분산이 일정하다면(등분산성이 만족된다면), 모델은 모든 값에 대해 일정한 정도의 정확성을 가지고 있습니다. 
* 잔차 플롯은 모델의 예측값과 실제 관측값 간의 차이인 잔차를 그래프로 표시한 것

(3) 독립성 : 입력변수와 오차는 관련이 없다. 자기상관(독립성)을 알아보기 위해 Durbin-Waston 통계량 사용->시계열 데이터에서 많이 활용
- 잔차들이 서로 독립적이어야 하며, 한 관측치의 오차가 다른 관측치의 오차에 영향을 미치지 않아야 합니다.
Durbin-Watson 통계량 = 2: 잔차들 간의 자기상관이 없음(독립성이 있다).
Durbin-Watson 통계량 < 2: 양의 자기상관이 존재(근접한 관측치 간에 양의 상관 관계).
Durbin-Watson 통계량 > 2: 음의 자기상관이 존재(근접한 관측치 간에 음의 상관 관계).

(4) 비상관성 : 오차들끼리 상관이 없다

(5) 정상성(정규성) : 
- 오차의 분포가 정규분포를 따른다. 
- 모델이 예측한 값과 실제 관측값 사이의 잔차가 평균이 0이고 표준편차가 일정한 정규분포를 따른다는 것을 의미
- Q-Q plot, Kolmogorov-Smirnov 검정, Shaprio-Wilk 검정등을 활용해 정규성 확인
- 정규성을 확인하는 방법 중 하나는 잔차의 분포를 히스토그램이나 QQ 플롯과 같은 시각화 도구를 사용하여 확인
- 히스토그램이 정규분포와 유사하게 보이고 QQ 플롯이 직선에 가까운 형태를 보인다면, 정규성 가정이 만족된다고 판단

(6) 그래프를 활용한 선형회귀분석의 가정 검토
- 선형성 : 선형회귀모형에서는 설명변수(x)와 반응변수(y)가 선형적관계에 있음이 전제 



- 등분산성 
>설명변수(x)에 대한 잔차의 산점도를 그렸을 때, 아래 첫번째 그래프처럼 설명변수(x)값에 관계없이 잔차들의 변동성(분산)이 일정한 형태를 보이면 선형회귀분석의 가정 중 등분산성 만족


>2차항 설명변수가 필요

 

>등분산 가정이 무너진 그래프는 설명변수(x)가 커질수록 잔차의 분산이 줄어드는 이분산의 형태
>새로운 설명변수가 필요



- 정규성 : Q-Q Plot 출력시 잔차가 대각방향의 직선 형태를 지니고 있으면 잔차는 정규분포를 따른다고 할 수 있음.

(7) 가정에 대한 검증
- 단순선형회귀분석 : 입력변수와 출력변수간의 선형성을 점검하기 위해 산점도를 확인
- 다중선형회귀분석 : 선형회귀분석의 가정인 선형성, 등분산성, 독립성, 정상성이 모두 만족 하는지 확인

2) 단순선형 회귀분석
- 하나의 독립변수가 종속변수에 미치는 영향을 추정할 수 있는 통계기법 


*절편 : 독립 변수의 값이 0일 때의 종속 변수의 예측값을 나타내는 상수

1. 회귀분석에서의 검토사항
(1) 회귀계수(기울기)들이 유의미한가? : 해당 계수의 t-통계량(평균)의 p-값이 0.05보다 작으면 회귀계수가 통계적으로 유의
- 귀무가설 (H0): 해당 회귀계수는 0이다 (즉, 해당 독립 변수는 종속 변수에 영향을 미치지 않는다).
- 대립가설 (H1): 해당 회귀계수는 0이 아니다 (즉, 해당 독립 변수는 종속 변수에 통계적으로 유의미한 영향을 미친다).
- p-값이 0.05보다 작으면, 귀무가설을 기각하고 해당 회귀계수는 통계적으로 유의미하다고 판단합니다.

(2) 모형이 얼마나 설명력을 갖는가? : 결정계수(𝑅²,R-squared) 확인. 결정계수는 0~1값을 가지며, 높은 값을 가질 수록 추정된 회귀식의 설명력이 높음
- 결정계수(𝑅²) = 1 - 잔차제곱의 합/종속변수의 총 변동
- "잔차 제곱의 합"은 모델이 예측한 값과 실제 값 간의 차이를 제곱하여 모두 더한 값입니다.
- "종속 변수의 총 변동"은 종속 변수 값들이 평균으로부터 얼마나 퍼져 있는지를 나타냅니다.
- 𝑅² = 0 : 모델이 종속 변수의 변동을 전혀 설명하지 못함
- 𝑅² = 1 : 모델이 종속 변수의 모든 변동을 완벽하게 설명함
- 0<𝑅²<1 : 모델이 종속 변수의 변동을 어느 정도 설명함

(3) 모형이 데이터를 잘 적합하고 있는가? : 잔차를 그래프로 그리고 회귀진단
- 잔차(residuals)는 실제 관측값과 모델에 의한 예측값 간의 차이를 나타내며, 모델이 데이터를 얼마나 잘 설명하는지에 대한 정보를 담고 있습니다.

2. 회귀계수의 추정(최소제곱법, 최소자승법)
- 측정값을 기초로 하여 적당한 제곱합을 만들고 그것을 최소로 하는 값을 구하여 측정결과를 처리하는 방법
- 회귀선을 데이터에 가장 잘 적합시키기 위해 잔차(예측값과 실제값 간의 차이)의 제곱합을 최소화하는 회귀계수를 찾는 방법

3. 회귀분석의 검정
(1) 회귀계수의 검정
- 회귀계수 β1(기울기)이 0이면 입력변수 x와 출력변수 y 사이에는 아무런 인과관계X
- 회귀계수 β1이 0이면 적합된 추정식은 아무 의미 없음


- x의 회귀계수인 t-통계량에 대한 p-값 : 0.000581 -> 유의수준인 0.05보다 작으므로 회귀계수 추정치들이 통계적으로 유의
- Intercept(절편) : 6.409, x(기울기) : 1.529
- 결정계수(R-squared) : 0.8341 -> 이 회귀식이 데이터를 적절하게 설명하고 있다곤 할 수 있음
- 결정계수가 높아 데이터의 설명력이 높고 회귀분석결과에서 회귀식과 회귀계수들이 통계적으로 유의미
- 회귀분석 결과 "판매대수(y)=6.4095+1.2595*예약대수(x)" 의 회귀식을 구할 수 있음

(2) 결정계수
- 전체제곱합(Total Sum of Squares, SST)
- 회귀제곱합(Regression Sum of Squares, SSR)
- 오차제곱합(Error Sum of Squares, SSE)
- 결정계수(𝑅²)는 전체제곱합에서 회귀제곱합의 비율(SSR/SST), 0<=𝑅²<=1(여기서SST=SSR+SSE)
- 결정계수(𝑅²)는 전체 데이터를 회귀모형이 설명할 수 있는 설명력을 의미
- 단순회귀분석에서 결정계수 = 상관계수 𝛾^2
*상관계수:두 변수 간의 선형 관계의 강도와 방향을 측정하는 통계적 지표입니다. 상관계수는 일반적으로 -1에서 1 사이의 값을 가짐

(3) 회귀직선의 적합도 검토 
- 결정계수(𝑅²)을 통해 추정된 회귀식이 얼마나 타당한지 검토(결정계수가 1에 가까울수록 회귀모형이 자료를 잘 설명)
- 독립변수가 종속변수 변동의 몇%를 설명하는지 나타내는 지표
- 다변량 회귀분석(다중선형회귀분석)에서는 독립변수의 수가 많아지면, 결정계수가 높아지므로 독립변수가 유의하든, 유의하지 않든 독립변수의 수가 많아지면 결정계수가 높아지는 단점있음
-> 단점 보완을 위해 수정된 결정계수(Ra^2 : adjusted 𝑅²)활용 > 수정된 결정계수는 결정계수보다 작은 값으로 산출

3) 다중선형 회귀분석
1. 다중선형회귀분석(다변량회귀분석)
- 둘 이상의 독립 변수를 사용하여 종속 변수와의 관계를 모델링하는 통계적 방법
(1) 모형의 통계적 유의성
- 모형의 통계적 유의성은 F-통계량(분산)으로 확인
- 유의수준 5% 이하에서 F-통계량의 p-값이 0.05보다 작으면 추정된 회귀식은 통계적으로 유의
- 귀무가설: "모든 회귀계수는 0이다" (즉, 모든 독립 변수의 영향이 없다)
- 대립가설 : "적어도 하나의 회귀계수는 0이 아니다" (즉, 적어도 하나의 독립 변수는 종속 변수에 영향을 미친다).
- F-통계량의 값이 크면서 p-value가 작을수록 귀무가설을 기각하게 됩니다. 이는 모델 전체가 통계적으로 유의미한 예측력을 가지고 있음을 나타냅니다.

(2) 회귀계수의 유의성
- 단변량회귀분석(단순선형회귀분석)의 회귀계수 유의성 검토와 같이 t-통계량(평균)으로 확인
- 모든 회귀계수의 유의성이 통계적으로 검증되어야 선택된 변수들의 조합으로 모형 활용 가능

(3) 모형의 설명력 : 결정계수(𝑅²)나 수정된 결정계수를 확인


(4) 모형의 적합성 : 모형이 데이터를 잘 적합하고 있는지 잔차와 종속변수의 산점도로 확인한다 

(5) 데이터가 전제하는 가정을 만족시키는가? : 선형성, 독립성, 등분산성, 비상관성, 정상성

(6) 다중공선성(Multicollinearity)
- 다중회귀분석에서 설명변수(x) 사이에 선형관계가 존재하면 회귀계수의 정확한 추정 곤란
- 다중공선성 검사 방법
가) 분산팽창요인(VIF) : 4보다 크면 다중공선성 존재, 10보다 크면 심각한 문제
나) 상태지수 : 10이상이면 문제O, 30보다 크면 심각한 문제
다) 다중선형회귀분석에서 다중공선성의 문제가 발생하면, 문제가 있는 변수를 제거 or 주성분회귀, 능형회귀 모형을 적용하여 해결

4) 회귀분석의 종류
- 단순회귀 : 독립변수가 1개, 종속변수와의 관계가 직선
- 다중회귀 : 독립변수가 k개, 종속변수와의 관계가 선형(1차 함수)
- 로지스틱 회귀 : 종속변수가 범주형(2진변수)인 경우에 적용되며, 단순로직스틱 회귀 및 다중,다항 로지스틱 회귀로 확장할 수 있음
- 다항회귀 : 독립변수와 종속변수와의 관계가 1차함수 이상인 관계(단, k=1이면 2차 함수 이상, k는 항의 수)
- 곡선회귀 : 독립변수가 1개이며 종속변수와의 관계가 곡선
- 비선형 회귀 : 회귀식의 모양이 미지의 모수들의 선형관계로 이뤄져 있지 않은 모형

5) 회귀분석 사례
1. R프로그램을 통한 회귀분석
(1) 분석내용 : MASS 패키지의 Car93 데이터셋의 가격(Price)를 종속변수(y)로 선정하고 엔진 크기(Engine-Size), RPM, 무게(Weight)를 이용해서 다중회귀분석 실시
library(MASS)
head(Cars93)
attach(Cars93) #데이터를 R 검색경로에 추가해 변수명으로 바로 접근 가능
lm(Price~EngineSize+RPM+Weight, data=Cars93)  #lm 선형회귀분석
summary(lm(Price~EngineSize+RPM+Weight, data=Cars93))
(2) 결과 및 해석


- F-통계량 : 37.98, p-value(유의확률) : 6.746e-16 -> 유의수준 5%하에서 추정된 회귀모형이 통계적으로 매우 유의함
- 결정계수 : 0.5614 , 수정된 결정계수 : 0.5467 -> 조금 낮게 나타나 회귀식이 데이터를 적절하게 설명하고 있다곤 할 수 X
- 회귀계수들의 p-값이 0.05보다 작으므로 회귀계수의 추정치들이 통계적으로 유의
- 결정계수가 낮아 데이터 설명력은 낮으나, 회귀분석 결과에서 회귀식과 회귀계수들이 통계적으로 유의하여 자동차의 가격을 엔진의 크기,RPM,무게로 추정 가능

(2) R프로그램을 통한 로지스틱 회귀분석
(1) 데이터 설명 : 림프절이 전립선 암에 대해 양성인지 여부를 예측하는 데이터
변수명         설명
-------------------------
양성여부(r)     전립선암에 대한 양성 여부
age             환자의 연령
stage         질병 단계 : 질병이 얼마나 진행되어 있는지 나타내는 척도
grade         종양의 등급 : 진행의 정도
xray         x-선 결과
acid         특정한 부위에 종양이 전이되었을 때 상승되는 혈청의 인산염값
(2) 분석결과


- glm : 로지스틱 회귀분석
- 2번째 변수인 양성여부(r)를 종속변수(y)로 두고, 5개의 변수를 독립변수(x)로 하여 로지스틱 회귀분석 실시
- age와 grade는 유의수준 5%하에서 유의X로 이를 제외한 3개의 변수(stage, xray, acid)를 활용해 모형 개발
- stage, xray, acid의 추정계수는 유의수준 5%하에서 유의하게 나타나므로 p(r=1)=1/(1+exp-(-3.05+1.65stage+1.91xray+1.64acid))의 선형식 가능

6) 최적회귀방식
1. 최적회귀방정식의 선택
(1) 설명변수 선택
- 필요한 변수만 상황에 따라 타협을 통해 선택
- y에 영향을 미칠 수 있는 모든 설명변수 x들을 y의 값을 예측하는 데 참여
- 데이터에 설명변수 x들의 수가 많아지면 관리하는데 많은 노력이 요구되므로, 가능한 범위 내에서 적은 수의 설명변수 포함

(2) 모형선택(Exploratory Analysis) : 분석 데이터에 가장 잘 맞는 모형을 찾아내는 방법
- 모든 가능한 조합의 회귀분석(All Possible Regression) : 모든 가능한 독립변수들의 조합에 대한 회귀모형을 생성한 뒤 가장 적합한 회귀모형 선택

(3) 단계적 변수선택(Stepwise Variable Selection)
- 전진선택법(Forward Selection) 
    > 절편만 있는 상수모형으로부터 시작해 중요하다고 생각되는 설명변수부터 차례로 모형에 추가
    > 변수의 개수가 많은 경우에도 사용 가능
    > 변수값의 작은 변동에도 그 결과가 크게 달라짐 =>안정성 부족
- 후진제거법(Backward Elimination)
    > 독립변수 후보 모두를 포함한 모형에서 출발해 가장 적은 영향을 주는 변수부터 하나씩 제거하면서 더 이상 제거할 변수가 없을 때의 모형 선택
    > 전체 변수들의 정보를 이용
    > 변수의 개수가 많은 경우 사용하기 어려움
- 단계선택법(Stepwise Method) 
     > 전진선택법에 의해 변수를 추가하면서 새롭게 추가된 변수에 기인해 기존 변수의 중요도가 약화되면 해당 변수를 제거하는 등 단계별로 추가 또는 제거되는 변수의 여부를 검토해 더 이상 없을 때 중단

2. 별점화된 선택기준 
(1) 개요
- 모형의 복잡도에 별점을 주는 방법으로 AIC방법과 BIC방법이 주로 사용
- AIC : 모델의 적합도와 모델의 복잡성(파라미터의 수) 사이의 균형을 측정하여 모델 선택에 도움을 줍니다. AIC 값이 낮을수록 모델이 더 적절하다고 간주
- BIC : AIC와 달리 로그 샘플 크기(log(n))를 페널티로 사용하여 모델의 복잡성에 대한 페널티를 더 강하게 부과. 즉, BIC는 더 적은 파라미터를 가진 모델을 선호

(2) 설명
- 모든 후보 모형들에 대해 AIC 또는 BIC를 계산하고, 그 값이 최소가 되는 모형을 선택
- 모형선택의 일치성(Consistency Inselection) : 자료의 수가 늘어날 때 참인 모형이 주어진 모형 선택 기준의 최소값을 갖게 되는 성질
- 이론적으로 AIC는 일치성 성립X, BIC는 주요 분포에서 성립
- AIC활용이 보편화된 방법
- 그 외의 벌점화 선택기준 : RIC(Risk Inflation Criterion), CIC(Covariance Inflation Criterion), DIC(Deviation Information Criterion)

3. 최적회귀방정식의 사례
(1) 변수 선택법 예제(유의확률 기반)
- x1, x2, x3, x4를 독립변수로 가지고 y를 종속변수로 가지는 선형회귀모형을 생성한 뒤, step()함수를 이용하지 않고 직접 후진제거법을 적용하는 R코드 작성하여 변수제거 수행
- summary(a)에서 모형의 유의성을 판단 : F-통계량을 확인한 결과 111.5이며, p-value가 4.756e-07임으로 통계적으로 유의
- 하지만 각각의 입력변수들의 통계적 유의성 검토 : t-통계량을 통한 유의확률이 0.05보다 작은 변수가 하나도 존재하지 않아 모형을 활용할 수 없다고 판단
- 적절한 모형을 선정하기 위해 유의확률이 가장 높은 x3을 제외하고 다시 회귀모형 생성 (유의확률이 가장 낮은 것을 유지)
- x3변수 제거 후, 모형의 유의성 : F-통계량에 대한 유의확률은 통계적으로 유의
- x1을 제외한 2개의 변수의 유의확률이 0.05보다 높게나타나 유의하지 않음 -> 유의확률이 가장 높은 x4 변수를 제외하고 회귀모형 다시 생성
- F-통계량을 통해 유의수준 0.05하에서 모형이 통계적으로 유의미
- 다변량회귀분석에 선정된 x1, x2변수에 대한 각각의 유의확률 값이 모두 통계적으로 유의
- 수정된 결정계수(Adjusted R-squared)는 0.9744로 선정된 다변량회귀식이 전체 데이터의 97.44%를 설명하고 있는 것을 확인
- 후진제거법을 통해 최종적으로 얻게 된 추정된 회귀식: y=52.57735+1.436831x1+0.66225x2

(2) 변수 선택법 예제(벌점화 전진선택법)
- step함수를 사용하여 전진선택법을 적용하여 변수 제거를 수행해보자.
(step(lm(출력변수~입력변수, 데이터셋), scope=list(lower=~1, upper=~입력변수), direction="변수선택방법")
#scope:변수선택과정에서 설정할 수 있는 가장 큰 모형/가장 작은 모형
#scope가 없는 경우
전진선택법 : 현재 선택한 모형을 가장 큰 모형으로,
후진제거법 : 상수항만 있는 모형을 가장 작은 모형으로 설정
#direction
forward : 전진선택법, backward : 후진제거법, stepwise : 단계선택법
#k : 모형선택 기준에서 AIC, BIC와 같은 옵션 사용, k=2이면 AIC, k=log(자료의 수)이면 BIC)
- 벌점화 방식을 적용한 전진선택법 실시 결과, 가장 먼저 선택된 변수는 AIC값이 58.852로 가장 낮은 x4
- x4에 x1을 추가 했을 때, AIC값이 28.742가 되고 x2를 추가했을 때 AIC값이 24.974로 최소화 -> 더 이상 AIC를 낮출 수 없어 변수 선택 종료
- 최종적으로 선택된 추정된 회귀식 : y=71.6483 - 0.2365x4 + 1.4519x1 + 0.4161x2

(3) 변수 선택법 예제(벌점화 후진제거법)
(1) 활용데이터
- 전립선암 자료(8개의 입력변수와 1개의 출력변수)
- 마지막 열(train)에 있는 변수는 학습자료인지 예측자료인지를 나타내는 변수로 이번 분석에서 사용X
변수명     설명
lcavol   종양 부피의 로그
lweight   전립선 무게의 로그
age       환자의 연령
lbph   양성 전립선 증식량의 로그
svi       암이 정낭을 침범할 확률
lcp       capsular penetration의 로그 값
gleason   Gleason 점수 
pgg45   Gleason 점수가 4 또는 5 인 비율 
lpsa   전립선 수치의 로그     

(2) 후진제거법에서 AIC를 이용한 변수선택
예시 확인
- 맨 처음 AIC는 -62.67로 gleason을 제거하고 회귀분석 실시
- 차례로 lcp, pgg45 순서로 제거되어 회귀분석 실시
- Step : AIC=~에 적혀있는 AIC보다 작으면(절대값 기준 크면) 삭제

728x90