한 변수(종속 변수)와 하나 이상의 다른 변수(독립 변수) 간의 관계를 모델링하고 설명하는 통계적 기법으로 하나 이상의 독립변수(들이 종속변수()에 미치는 영향을 예측하는 통계기법이다.
단순회귀, 다중회귀, 다항회귀, 로지스틱 회귀, 비선형 회귀가 있다.

회귀분석은 4가지 가정 사항을 전제로 분석을 수행할 수 있습니다.
입력변수와 출력변수의 관계가 선형이다.

잔차와 독립변수의 값이 서로 독립이어야 한다.

모든 독립 변수 값에 대한 오차 항의 분산이 일정하다는 가정
등분산성을 만족하는 경우

등분산성을 만족하지 못하는 경우

Q-Q Plot을 출력했을 때, 잔차가 대각방향의 직선의 형태를 지니고 있으면 정규분포를 따른다고 할 수 있다.

관측치들의 잔차들끼리 상관이 없어야 한다
회귀분석에 대한 설명으로 옳지 않은 것은?
1. 하나 이상의 독립변수들이 종속변수에 얼마나 영향을 미치는지 추정하는 통계기법
2. 하나 이상의 설명변수들이 결과변수에 얼마나 영향을 미치는지 추정하는 통계기법
3. 독립변수가 범주형 변수인 경우 로지스틱 회귀분석을 사용한다
4. 변수들이 일정한 경향성을 띤다는 것은 그 변수들이 일정한 인과관계를 갖고 있다고 추측할 수 있다
정답
독립변수와 종속변수는 모두 연속형 변수일 때 사용 가능하며, 종속변수가 범주형 변수인 경우에 대해서는 로지스틱 회귀분석을 사용한다.
데이터의 정규성을 확인하기 위해 사용하는 방법으로 옳지 않은 것은?
1. Q-Q plot
2. Durbin-Waston
3. 히스토그램
4. Shaprio-Wilk
정답
Durbin-Waston 통계량은 독립성을 알아보기 위해 사용한다.
회귀분석의 4가지 가정 사항으로 옳지 않은 것은?
1. 비선형성
2. 등분산성
3. 독립성
4. 정규성
정답
회귀분석 4가지 가정 사항으로는 선형성, 등분산성, 독립성, 정규성이 있다.
하나의 독립 변수와 하나의 종속 변수 간의 선형 관계를 분석하는 통계기법
회귀분석에서의 검토사항
F통계량을 확인한다. 유의수준 5% 하에서 F통계량의 p-값이 0.05보다 작으면 추정된 회귀식은 통계적으로 유의하다고 볼 수 있다.
해당 계수의 t-통계량의 p-값 또는 이들의 신뢰구간을 확인한다.
- 결정계수를 확인한다. 결정계수는 0에서 1값을 가지며, 높은 값을 가질수록 추정된 회귀식의 설명력이 높다.
- 회귀모형의 설명력이 좋다는 의미는 데이터들의 분포가 회귀선에 밀접하게 분포하고 있다는 의미이다.
- 결정계수 를 구하는 공식
결정계수는 회귀 모델이 주어진 데이터를 얼마나 잘 설명하는지를 나타내는 통계적 측도이다.
잔차를 그래프로 그리고 회귀진단을 한다
최소제곱법은 회귀 분석에서 사용되는 통계적 방법으로, 모델의 파라미터를 추정하는데 사용된다. 주로 단순선형회귀나 다중선형회귀에서 모델 파라미터를 추정하는 데에 적용된다.

결정계수()를 통해 추정된 회귀식이 얼마나 타당한지 검토한다. 독립변수가 종속변수 변동의 몇 %를 설명하는지 나타내는 지표이다.
- k : 독립변수 개수, n : 데이터의 개수
쌍으로 묶인 관찰들 인 두 벡터 x와 y를 생성하고, x와 y사이에 선형관계가 있다고 가정하고 lm()함수를 이용해 단순선형회귀분석 해보기
> set.seed(2)
> x=runif (10,0,11)
> y=2 + 3*x + rnorm(10,0,0.2)
> dfrm=data.frame (x, y )
> dfrm
x y
1 2.033705 8.127599
2 7.726114 25.319934
3 6.306590 20.871829
4 1.848571 7.942608
5 10.382233 33.118941
6 10.378225 33.218204
7 1.420749 6.458597
8 9.167937 29.425272
9 5.148204 17.236677
10 6.049821 20.505909
> lm(y~x, data=dfrm)
Call:
lm(formula = y ~ x, data = dfrm)
Coefficients:
(Intercept) x
2.213 2.979
# 이 경우 회귀방정식은 y=2.213 + 2.979x로 추정된다.
식이요법 방법을 적용한 닭에 대한 데이터로 두번째 예제 실습해보기
> library(MASS)
> head(ChickWeight)
weight Time Chick Diet
1 42 0 1 1
2 51 2 1 1
3 59 4 1 1
4 64 6 1 1
5 76 8 1 1
6 93 10 1 1
# 1번 닭에게 식이요법 방법 1을 적용한 데이터만 조회하여 chick 변수에 할당한다.
> Chick <- ChickWeight[ChickWeight$Diet==1,]
> Chick
weight Time Chick Diet
1 42 0 1 1
2 51 2 1 1
3 59 4 1 1
... (중략)
217 98 16 20 1
218 107 18 20 1
219 115 20 20 1
220 117 21 20 1
# chick 데이터세트에서 1번 닭만 조회한다.
> Chick <-ChickWeight[ChickWeight$Chick==1,]
> Chick
weight Time Chick Diet
1 42 0 1 1
2 51 2 1 1
3 59 4 1 1
4 64 6 1 1
5 76 8 1 1
6 93 10 1 1
7 106 12 1 1
8 125 14 1 1
9 149 16 1 1
10 171 18 1 1
11 199 20 1 1
12 205 21 1 1
# 시간의 경과에 따른 닭들의 몸무게를 단순회귀분석을 해본다.
> lm(weight~Time, data=Chick)
Call:
lm(formula = weight ~ Time, data = Chick)
Coefficients:
(Intercept) Time
24.465 7.988
# 여기서 회기식은 weight=7.988Time+24.465로 추정된다.
> summary(lm(weight~Time, data=Chick))
Call:
lm(formula = weight ~ Time, data = Chick)
Residuals:
Min 1Q Median 3Q Max
-14.3202 -11.3081 -0.3444 11.1162 17.5346
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 24.4654 6.7279 3.636 0.00456 **
Time 7.9879 0.5236 15.255 2.97e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 12.29 on 10 degrees of freedom
Multiple R-squared: 0.9588, Adjusted R-squared: 0.9547
F-statistic: 232.7 on 1 and 10 DF, p-value: 2.974e-08
F통계량 = 232.7이며 p-값이 2.974e-08로 유의수준 5% 이하에서 추정된 회귀 모형이 통계적으로 매우 유의함을 볼 수 있다. 결정계수 또한 0.9588로 매우 높은 값을 보이므로 이 회귀식이 데이터를 96% 정도로 설명하고 있음을 알 수 있다. 또한 회귀계수들의 p-값들도 0.05보다 매우 작으므로 회귀계수의 추정치들이 통계적으로 매우 유의하다. Time에 대한 회귀계수가 7.99 이므로 Time이 1 증가할 때 weight 가 7.99 만큼 증가한다고 해석할 수 있다.

2개 이상의 독립변수에 대하여 종속변수의 관계를 수치적으로 파악하기 위한 기법
다중선형회귀분석에서 사용된 독립 변수들 간에 강한 상관관계가 나타나는 현상
다중공선성 진단
결정계수 값이 커서 회귀식의 설명력은 높지만 각 독립변수의 p-value 값이 커서 개별 인자가 유의하지 않은 경우 다중공선성을 의심할 수 있다.
- VIF는 각 독립 변수가 다른 독립 변수들과 얼마나 강하게 상관되어 있는지를 측정하는 지표이다.
다중공선성 문제 해결법
여러 개의 독립변수(u,v,w)와 하나의 반응변수(y)를 생성하고 ,이들 간에 선형관계가 있다고 생각하며, 데이터에 다중선형회귀 실시해보기!
> set.seed(2)
> u=runif(10,0, 11)
> v=runif (10, 11,20)
> w=runif(10,1,30)
> y=3 + 0.1*u + 2*v -3*w + rnorm(10,0,0.1)
> dfrm=data.frame (y,u,v,w)
> dfrm
y u v w
1 -25.6647952 2.033705 15.97407 20.195064
2 -6.5562326 7.726114 13.15005 12.238937
3 -36.4858791 6.306590 17.84462 25.269786
4 12.4472764 1.848571 12.62738 5.364542
5 0.1638434 10.382233 14.64754 11.070895
6 -3.9124946 10.378225 18.68194 15.174424
7 26.6127780 1.420749 19.78759 5.328159
8 -3.9238295 9.167937 13.03243 11.354815
9 -53.0331805 5.148204 15.00328 28.916677
10 12.4387413 6.049821 11.67481 4.838788
> m<-lm(y~u+v+w)
> m
Call:
lm(formula = y ~ u + v + w)
Coefficients:
(Intercept) u v w
3.0417 0.1232 1.9890 -2.9978
# 이 경우 회귀식은 y=3.0417+0.1232u+1.9890v-2.9978w로 추정된다.
> summary(m)
Call:
lm(formula = y ~ u + v + w)
Residuals:
Min 1Q Median 3Q Max
-0.188562 -0.058632 -0.002013 0.080024 0.143757
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.041653 0.264808 11.486 2.62e-05 ***
u 0.123173 0.012841 9.592 7.34e-05 ***
v 1.989017 0.016586 119.923 2.27e-11 ***
w -2.997816 0.005421 -552.981 2.36e-15 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.1303 on 6 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: 1
F-statistic: 1.038e+05 on 3 and 6 DF, p-value: 1.564e-14
F통계량 = 1.038e+05이며 p-값이 1.564e-14로 유의수준 5% 하에서 추정된 회귀 모형이 통계적으로 매우 유의함을 볼 수 있다. 결정계수와 수정된 결정계수 모두 1로 이 회귀식이 데이터를 매우 잘 설명하고 있음을 알 수 있다. 또한 회귀계수 u, v, w들의 p-값들도 0.01보다 작으므로 회귀계수의 추정치들이 통계적으로 유의하다.
아래 보기에서 설명하는 것으로 옳은 것은?
<보기>
정답
위 설명은 최소제곱법에 대한 설명이다
다중공선성 문제 해결법으로 옳지 않은 것은?
1. 결정계수()를 통해 추정된 회귀식이 얼마나 타당한지 검토한다.
2. 선형판별분석(LDA)으로 차원을 축소한다.
3. 주성분분석(PCA)을 통해 변수의 차원을 축소한다.
4. t-분포 확률적 임베딩(t-SNE)으로 차원을 축소한다.
정답
1번의 내용은 회귀직선의 적합도 검토에 대한 내용이다.
회귀분석에서의 검토사항으로 옳지 않은 것은?
1. 모형이 통계적으로 유의미한가?
2. 회귀계수들이 유의미한가?
3. 모형의 데이터가 얼마나 밀집되어 있는가?
4. 모형이 얼마나 설명력을 갖는가?
정답
3번은 회귀분석에서의 검토사항에 해당되지 않는 내용이다.
여러개의 독립변수가 있을 때 종속변수를 설명하기 가장 좋은 독립변수를 선택하고 최적의 회귀방정식을 찾는 것이 목표이다. 보통 모델 성능을 향상시키기 위해 사용한다.
설명변수 선택
필요한 변수만 상황에 따라 타협을 통해 선택한다.
모형선택
분석 데이터에 가장 잘 맞는 모형을 찾아내는 방법이다.
단계적 변수선택
일정한 단계를 거치면서 변수를 추가하거나 제거하는 방식으로 최적의 회귀방정식을 도출하는 방식으로 전진선택법, 후진제거법, 단계선택법이 있다.
전진선택법 (Forward Selection)
후진제거법 (Backward Elimination)
단계선택법 (Stepwise Method)
전진선택법과 후진 제거법을 보완한 방법이다.
모형의 복잡도에 벌점을 주는 방법으로 AIC 방법과 BIC 방법이 주로 사용되며, 두 벌점 모두 편향과 분산이 최적이 되는 균형점을 제안해준다.
모델의 상대적인 품질을 측정하는 통계적 평가 지표 중 하나이다.
AIC의 단점인 표본(n)이 커질 때 부정확하다는 단점을 보완한 지표이다.
Y를 반응변수로 하고, X1, X2, X3, X4를 설명변수로 하는 선형회귀모형을 고려하여 진행하기
> X1 <- c(7,1,11,11,7,11,3,1,2,21,1,11,10)
> X2 <- c(26,29,56,31,52,55,71,31,54,47,40,66,68)
> X3 <- c(6,15,8,8,6,9,17,22,18,4,23,9,8)
> X4 <- c(60,52,20,47,33,22,6,44,22,26,34,12,12)
> Y <- c(78.5,74.3,104.3,87.6,95.9,109.2,102.7,72.5,93.1,115.9,83.8,113.3,109.4)
> df <- data.frame(X1,X2,X3,X4,Y)
> head(df)
X1 X2 X3 X4 Y
1 7 26 6 60 78.5
2 1 29 15 52 74.3
3 11 56 8 20 104.3
4 11 31 8 47 87.6
5 7 52 6 33 95.9
6 11 55 9 22 109.2
> a <- lm(Y~X1+X2+X3+X4, data=df)
> a
Call:
lm(formula = Y ~ X1 + X2 + X3 + X4, data = df)
Coefficients:
(Intercept) X1 X2 X3 X4
62.4054 1.5511 0.5102 0.1019 -0.1441
> summary(a)
Call:
lm(formula = Y ~ X1 + X2 + X3 + X4, data = df)
Residuals:
Min 1Q Median 3Q Max
-3.1750 -1.6709 0.2508 1.3783 3.9254
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 62.4054 70.0710 0.891 0.3991
X1 1.5511 0.7448 2.083 0.0708
X2 0.5102 0.7238 0.705 0.5009
X3 0.1019 0.7547 0.135 0.8959
X4 -0.1441 0.7091 -0.203 0.8441
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.446 on 8 degrees of freedom
Multiple R-squared: 0.9824, Adjusted R-squared: 0.9736
F-statistic: 111.5 on 4 and 8 DF, p-value: 4.756e-07
회귀식은 Y= 62.4054+ 1.5511X1 + 0.5102X2 + 0.1019X3 - 0.1441X4로 추정된다. 여기서 F통계량= 111.5이며 p-값이 0.00000047564로 유의수준 5% 하에서 추정된 회귀 모형이 통계적으로 매우 유의함을 볼 수 있다. 수정된 결정계수 또한 0.9736으로 매우 높은 값을 보이므로 추정된 회귀식이 데이터를 97%로 적절하게 설명하고 있음을 알 수 있다. 설명변수 X1, X2, X3, X4의 p-value를 보면 X3의 유의 확률이 가장 높아 이들 중 가장 유의하지 않음을 볼 수 있다. 설명변수 X3을 제거하고 다시 회귀분석을 한다.
참고
부동소수점 : 컴퓨터에서 실수를 표시하는 방법으로 (가수)(밑수)^(지수)와 같은 형태로 표현(가수는 유효숫자, 지수는 소수점 위치를 나타냄)
| 부동소수점 | 가수 | (밑수)^(지수) | 값 |
|---|---|---|---|
| 1e+02 | 1 | 10^(2) | 100 |
| 1e+01 | 1 | 10^(1) | 10 |
| 1e+00 | 1 | 10^(0) | 1 |
| 1e-01 | 1 | 10^(-1) | 0.1 |
| 1e-02 | 1 | 10^(-2) | 0.01 |
step 함수를 사용하여 전진선택법을 적용해보기
step 함수
step(lm(종속변수~설명변수,데이터세트),scope=list(lower=~1,upper=~설명변수),drection=”변수선택방법”)
> step(lm(Y~1,data=df), scope=list(lower=~1, upper=~X1+X2+X3+X4), direction="forward")
Start: AIC=71.44
Y ~ 1
Df Sum of Sq RSS AIC
+ X4 1 1831.90 883.87 58.852
+ X2 1 1809.43 906.34 59.178
+ X1 1 1450.08 1265.69 63.519
+ X3 1 776.36 1939.40 69.067
<none> 2715.76 71.444
Step: AIC=58.85
Y ~ X4
Df Sum of Sq RSS AIC
+ X1 1 809.10 74.76 28.742
+ X3 1 708.13 175.74 39.853
<none> 883.87 58.852
+ X2 1 14.99 868.88 60.629
Step: AIC=28.74
Y ~ X4 + X1
Df Sum of Sq RSS AIC
+ X2 1 26.789 47.973 24.974
+ X3 1 23.926 50.836 25.728
<none> 74.762 28.742
Step: AIC=24.97
Y ~ X4 + X1 + X2
Df Sum of Sq RSS AIC
<none> 47.973 24.974
+ X3 1 0.10909 47.864 26.944
Call:
lm(formula = Y ~ X4 + X1 + X2, data = df)
Coefficients:
(Intercept) X4 X1 X2
71.6483 -0.2365 1.4519 0.4161
최종회귀식은 Y= 71.6483 - 0.2365X4 + 1.4519X1 + 0.4161X2로 추정된다. 앞의 후진선택법의 결과와 다른 모형이 선택되었다. 보통 변수선택의 기준에 따라 선택된 모형은 차이를 보일 수 있다.
위의 자료와 모형에 대해 단계적 방법을 적용하여 모형 선택해보기
> df
X1 X2 X3 X4 Y
1 7 26 6 60 78.5
2 1 29 15 52 74.3
3 11 56 8 20 104.3
4 11 31 8 47 87.6
5 7 52 6 33 95.9
6 11 55 9 22 109.2
7 3 71 17 6 102.7
8 1 31 22 44 72.5
9 2 54 18 22 93.1
10 21 47 4 26 115.9
11 1 40 23 34 83.8
12 11 66 9 12 113.3
13 10 68 8 12 109.4
> step(lm(Y~1,data=df), scope=list (lower=~1, upper=~X1+X2+X3+X4), direction="both")
Start: AIC=71.44
Y ~ 1
Df Sum of Sq RSS AIC
+ X4 1 1831.90 883.87 58.852
+ X2 1 1809.43 906.34 59.178
+ X1 1 1450.08 1265.69 63.519
+ X3 1 776.36 1939.40 69.067
<none> 2715.76 71.444
Step: AIC=58.85
Y ~ X4
Df Sum of Sq RSS AIC
+ X1 1 809.10 74.76 28.742
+ X3 1 708.13 175.74 39.853
<none> 883.87 58.852
+ X2 1 14.99 868.88 60.629
- X4 1 1831.90 2715.76 71.444
Step: AIC=28.74
Y ~ X4 + X1
Df Sum of Sq RSS AIC
+ X2 1 26.79 47.97 24.974
+ X3 1 23.93 50.84 25.728
<none> 74.76 28.742
- X1 1 809.10 883.87 58.852
- X4 1 1190.92 1265.69 63.519
Step: AIC=24.97
Y ~ X4 + X1 + X2
Df Sum of Sq RSS AIC
<none> 47.97 24.974
- X4 1 9.93 57.90 25.420
+ X3 1 0.11 47.86 26.944
- X2 1 26.79 74.76 28.742
- X1 1 820.91 868.88 60.629
Call:
lm(formula = Y ~ X4 + X1 + X2, data = df)
Coefficients:
(Intercept) X4 X1 X2
71.6483 -0.2365 1.4519 0.4161
최종 회귀모형은 Y = 71.6483 - 0.2365X4+1.4519X1 + 0.4161X2로 추정된다.
정규화 선형회귀
모델이 과도하게 최적화되는 현상(과적합,Overfitting)을 막는 방법
과적합과 과소적합
과적합은 모델이 학습 데이터를 과하게 학습하는 것을 의미한다.
정규화 선형회귀의 종류
라쏘 (Lasso Regression)
릿지 (Ridge Regression)
엘라스틱넷 (Elastic Net)
라쏘와 릿지를 결합한 모델이다.
일반화 선형회귀
선형 회귀 분석을 일반화하여 다양한 종속 변수 분포와 관련된 모델링을 수행하는 통계적 방법
일반화 선형회귀의 구성요소
일반화 선형회귀의 종류
- 종속변수가 범주형 변수(0 또는 1, 합격/불합격 등)인 경우로 의학연구에 많이 사용된다.
- 독립변수에 의해 종속변수의 범주로 분류화 한다는 것이 선형 회귀 분석과의 차이점이며 따라서 분류 분석 방법으로 설명한다.
- 종속변수가 특정 시간 동안 발생한 사건의 건수에 대한 도수 자료(음수가 아닌 정수)인 경우이면서, 종속변수가 정규분포를 따르지 않거나 등분산성을 만족하지 못하는 경우에 포아송 회귀분석이 사용된다.
- 선형회귀모형이 최소제곱법으로 모수를 추정한다면 포아송 회귀모형은 최대 가능도 추정을 통해 모수를 추정한다.
회귀 분석의 주요한 가정 중 오차항이 독립성을 만족하는지를 검정하기 위해서는 더빈 왓슨(Durbin-Watson) 검정을 수행한다
최적회귀방정식을 선택법 중, 단계적 변수 선택법으로 적절하지 않은 것은?
1. 단계선택법
2. 모형선택법
3. 후진제거법
4. 전진선택법
정답
단계적 변수선택으로는 전진선택법, 후진제거법, 단계선택법이 있다
아래 보기에서 설명하는 정규화 선형회귀의 종류로 옳은 것은?
<보기>
가중치들의 절댓값의 합을 최소화하는 것을 제약조건으로 추가하는 기법으로 몇 개의 의미 있는 변수만 분석에 포함시키고 싶을 때 효과적인 방법이다.
정답
보기의 설명은 라쏘회귀에 대한 설명이다.
고급 회귀분석에 대한 설명으로 옳지 않은 것은?
1. 정규화 선형회귀는 과적합을 막는 방법이다.
2. 로지스틱 회귀는 종속변수가 범주형 변수인 경우로 의학연구에 많이 사용된다.
3. 포아송 회귀는 오차항이 독립성을 만족하는지를 검정하기 위해서 사용된다.
4. 일반화 선형회귀의 구성요소로 확률 요소, 선형 예측자, 연결 함수가 있다.
정답
오차항이 독립성을 만족하는지를 검정하기 위해서 사용되는 것은 더빈 왓슨 검정이다.