interpretation_of_multiple_regression
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
interpretation_of_multiple_regression [2023/05/17 04:31] – [회귀분석의 조건] hkimscil | interpretation_of_multiple_regression [2023/05/17 10:48] (current) – [회귀계수 분석 Regression coefficients] hkimscil | ||
---|---|---|---|
Line 7: | Line 7: | ||
scholar <- data.frame(FGPA, | scholar <- data.frame(FGPA, | ||
+ | |||
+ | # install.packages(" | ||
+ | # library(psych) | ||
describe(scholar) # provides descrptive information about each variable | describe(scholar) # provides descrptive information about each variable | ||
Line 14: | Line 17: | ||
pairs(scholar) | pairs(scholar) | ||
attach(scholar) | attach(scholar) | ||
- | # freshman' | ||
- | mod.all <- lm(FGPA ~ HSGPA + SATV, data = scholar) | ||
- | summary(mod.all) | ||
m1 <- lm(FGPA ~ SATV, data = scholar) | m1 <- lm(FGPA ~ SATV, data = scholar) | ||
Line 45: | Line 45: | ||
FGPA, HSGPA, SATV | FGPA, HSGPA, SATV | ||
- | > # freshman' | ||
- | > mod.all <- lm(FGPA ~ HSGPA + SATV, data = scholar) | ||
- | > summary(mod.all) | ||
- | |||
- | Call: | ||
- | lm(formula = FGPA ~ HSGPA + SATV, data = scholar) | ||
- | |||
- | Residuals: | ||
- | Min 1Q Median | ||
- | -0.2431 -0.1125 -0.0286 | ||
- | |||
- | Coefficients: | ||
- | Estimate Std. Error t value Pr(> | ||
- | (Intercept) 0.233102 | ||
- | HSGPA | ||
- | SATV 0.000151 | ||
- | --- | ||
- | Signif. codes: | ||
- | |||
- | Residual standard error: 0.192 on 7 degrees of freedom | ||
- | Multiple R-squared: | ||
- | F-statistic: | ||
- | </ | ||
- | |||
- | < | ||
> m1 <- lm(FGPA ~ SATV, data = scholar) | > m1 <- lm(FGPA ~ SATV, data = scholar) | ||
> summary(m1) | > summary(m1) | ||
Line 91: | Line 66: | ||
F-statistic: | F-statistic: | ||
</ | </ | ||
+ | |||
위 linear modeling 에서 아래와 같은 선형모델을 얻는다. | 위 linear modeling 에서 아래와 같은 선형모델을 얻는다. | ||
y hat (FGPA) = 0.95633 + 0.00381 * SATV | y hat (FGPA) = 0.95633 + 0.00381 * SATV | ||
Line 98: | Line 74: | ||
* SAT가 100점이 올라가면 GPA는 0.381이 올라간다. | * SAT가 100점이 올라가면 GPA는 0.381이 올라간다. | ||
* 아래는 그것을 확인해보는 R 코드이다. | * 아래는 그것을 확인해보는 R 코드이다. | ||
+ | |||
< | < | ||
p <- data.frame(c(400, | p <- data.frame(c(400, | ||
Line 105: | Line 82: | ||
pred[5]-pred[4] | pred[5]-pred[4] | ||
</ | </ | ||
+ | |||
< | < | ||
> p <- data.frame(c(400, | > p <- data.frame(c(400, | ||
Line 116: | Line 94: | ||
0.381 | 0.381 | ||
</ | </ | ||
+ | |||
아래는 원 데이터를 d 로 바꾼후 독립변인인 SATV를 평균점수를 0으로 하는 SATV_centered 로 바꾸어서 다시 regression을 한 것이다. m1_centered의 결과를 보면 | 아래는 원 데이터를 d 로 바꾼후 독립변인인 SATV를 평균점수를 0으로 하는 SATV_centered 로 바꾸어서 다시 regression을 한 것이다. m1_centered의 결과를 보면 | ||
* SATV의 계수 값은 원래와 (m1) 같다. | * SATV의 계수 값은 원래와 (m1) 같다. | ||
* 절편값은 3.09 인데, 이는 SATV 점수가 평균일 (mean(SATV) = 560) 때의 FGPA 값을 말한다. | * 절편값은 3.09 인데, 이는 SATV 점수가 평균일 (mean(SATV) = 560) 때의 FGPA 값을 말한다. | ||
+ | |||
< | < | ||
d <- scholar | d <- scholar | ||
Line 154: | Line 134: | ||
</ | </ | ||
+ | |||
====== 기울기 계수로 독립변인의 영향력 평가하기 ====== | ====== 기울기 계수로 독립변인의 영향력 평가하기 ====== | ||
- | SATV의 기울기 계수인 0.00381은 모델 직선의 (데이터를 관통하는) 위치를 알려주는 것이고 이 선을 중심으로 데이터들이 포진하게 된다. 그리고 선에서 데이터 까지의 거리가 에러 값이다. 또한 이 거리는 표준편차 값을 갖게 되고 이를 이용하여 표준오차 (standard error) 값을 구해볼 수 있다. 즉 이 표준오차 값은 에러값들이 선을 중심으로 얼마나 잘 포진되어 있는지를 보여주는 지표가 된다. | + | SATV의 기울기 계수인 0.00381은 모델 직선의 (데이터를 관통하는) 위치를 알려주는 것이고 이 선을 중심으로 데이터들이 포진하게 된다. 그리고 선에서 데이터 까지의 거리가 에러 값이다. 또한 이 거리는 표준편차 값을 갖게 되고 이를 이용하여 표준오차 (standard error) 값을 구해볼 수 있다. 즉 이 표준오차 값은 에러값 들이 선을 중심으로 얼마나 잘 포진되어 있는 지를 보여주는 지표가 된다. |
+ | |||
+ | 이 논리도 연구자는 계수 값을 (b에 해당하는 계수) 표준오차 값으로 (standard error)값으로 나누고 이를 t 계산 값으로 (t-calculated value) 삼아서 significance 테스트를 할 수 있다. 표준오차가 작은 경우는 선을 중심으로 실제 데이터 값들이 좁게 모여 있음을 의미하므로 높은 t 값을 얻을 수 있겠다. 따라서 계수의 역할에 대한 통계학적인 의미가 있다고 판단한다. | ||
- | 이 논리도 연구자는 계수 값을 표준오차 값으로 (standard error)값으로 나누고 이를 t 계산값으로 (t-calculated value) 삼아서 significance 테스트를 할 수 있다. | ||
< | < | ||
Line 181: | Line 163: | ||
F-statistic: | F-statistic: | ||
</ | </ | ||
+ | |||
위에서 SATV의 | 위에서 SATV의 | ||
* 계수값은 (Estimate) 0.00381 이고 (a라고 하자) 이에 대한 | * 계수값은 (Estimate) 0.00381 이고 (a라고 하자) 이에 대한 | ||
Line 190: | Line 173: | ||
* df 값은 n-2로 (변수의 갯수) 구한다. | * df 값은 n-2로 (변수의 갯수) 구한다. | ||
* 이 값은 | * 이 값은 | ||
- | * 0.004119 를 구한다. 이것이 Pr(>|t|) 값인 '' | + | * 0.004119 를 구한다. 이것이 Pr(>|t|) 값인 '' |
+ | |||
+ | ====== Standard error of b1 ====== | ||
+ | b1은 기울기이다 (regression coefficient). xi 지점에서 y값을 살펴보면 실제 y값에서 (y value) 기울기 선에 위치한 y값을 (y fitted value 혹은 predicted value of y) 뺀 값은 우리가 이야기한 error에 혹은 residual에 해당하는 값이다. 이 에러들이 사선을 중심으로 어떻게 포진해 있는가를 보기 위해서 b1 기울기 주변에 모인 residual 값들의 standard error 값을 알아보려면: | ||
+ | |||
+ | \begin{eqnarray*} | ||
+ | \displaystyle s_{b_{1}} & = & \sqrt {\frac {MSE}{SS_{X}}} \\ | ||
+ | & = & \displaystyle \sqrt { \frac{1}{n-2} * \frac{SSE}{SS_{X}}} \\ | ||
+ | & = & \displaystyle \sqrt { \frac{1}{n-2} * \frac{\Sigma{(Y-\hat{Y})^2}}{\Sigma{(X_{i} - \bar{X})^2}}} \\ | ||
+ | \end{eqnarray*} | ||
+ | |||
+ | < | ||
+ | > sum(resid(m1)^2) | ||
+ | [1] 0.5822 | ||
+ | > sse <- sum(resid(m1)^2) | ||
+ | > ssx <- sum((SATV - mean(SATV))^2) | ||
+ | > sqrt((1/ | ||
+ | [1] 0.0009598 | ||
+ | > | ||
+ | </ | ||
+ | |||
+ | 혼란스러운 것을 정리하기 위해서: | ||
+ | * summary(m1) 아웃풋에서의 standard error of residual 은 말 그대로 | ||
+ | * SSE/ | ||
+ | * 즉 sqrt(에러분산 혹은 레지듀얼분산) 값을 말한다. | ||
+ | * 즉 sqrt(MSE) 값이다. | ||
+ | * b1의 se 값은 b1에 (독립변인의 기울기) 대한 영향력을 테스트하는 b1의 se이다. | ||
+ | * 이 값은 sqrt(MSE/ | ||
+ | * 만약에 multiple regression이라서 X가 여러개라면 각 X에 해당하는 SSxi 가 분모로 쓰일 것이다. | ||
====== 회귀분석의 조건 ====== | ====== 회귀분석의 조건 ====== | ||
+ | |||
- Linearity. 선형관계를 전제로 한다. 즉 이차방정식, | - Linearity. 선형관계를 전제로 한다. 즉 이차방정식, | ||
- Normality of residuals. 회귀식을 중심으로 한 에러값 혹은 잔차값의 분포는 정상적이어야 한다. | - Normality of residuals. 회귀식을 중심으로 한 에러값 혹은 잔차값의 분포는 정상적이어야 한다. | ||
- Homoscedasticity of the residuals. 에러의 분산 값은 x 값의 range에서 공히 일정해야 한다. [[: | - Homoscedasticity of the residuals. 에러의 분산 값은 x 값의 range에서 공히 일정해야 한다. [[: | ||
- No outlier. 숫자로 측정된 데이터의 경우 아웃라이어는 전체 평균치에 (statistics) 큰 영향을 미친다. 따라서 아웃라이어를 확인하고 제외할 필요가 있는지 확인해야 한다. | - No outlier. 숫자로 측정된 데이터의 경우 아웃라이어는 전체 평균치에 (statistics) 큰 영향을 미친다. 따라서 아웃라이어를 확인하고 제외할 필요가 있는지 확인해야 한다. | ||
+ | - 독립변인들 간의 상관관계가 커서는 안된다. 어느정도까지 허용할지는 여러가지 방법이 있다. [[: | ||
+ | |||
+ | |||
====== 플로팅 ====== | ====== 플로팅 ====== | ||
Line 204: | Line 219: | ||
</ | </ | ||
{{: | {{: | ||
+ | |||
< | < | ||
# load necessary libraries | # load necessary libraries | ||
Line 215: | Line 231: | ||
theme_minimal() | theme_minimal() | ||
</ | </ | ||
+ | {{: | ||
+ | |||
+ | ====== Multiple regression 다중회귀분석 ====== | ||
+ | |||
+ | < | ||
+ | ggplot(scholar) + | ||
+ | aes(x = SATV, y = FGPA, size = HSGPA) + | ||
+ | geom_point() + | ||
+ | scale_color_gradient() + | ||
+ | labs( | ||
+ | y = "First Year GPA", | ||
+ | x = "SAT score", | ||
+ | size = "Hi School GPA" | ||
+ | ) + | ||
+ | theme_minimal() | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | < | ||
+ | m2 <- lm(FGPA~SATV+HSGPA, | ||
+ | summary(m2) | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | > m2 <- lm(FGPA~SATV+HSGPA, | ||
+ | > summary(m2) | ||
+ | |||
+ | Call: | ||
+ | lm(formula = FGPA ~ SATV + HSGPA, data = scholar) | ||
+ | |||
+ | Residuals: | ||
+ | Min 1Q Median | ||
+ | -0.2431 -0.1125 -0.0286 | ||
+ | |||
+ | Coefficients: | ||
+ | Estimate Std. Error t value Pr(> | ||
+ | (Intercept) 0.233102 | ||
+ | SATV 0.000151 | ||
+ | HSGPA | ||
+ | --- | ||
+ | Signif. codes: | ||
+ | |||
+ | Residual standard error: 0.192 on 7 degrees of freedom | ||
+ | Multiple R-squared: | ||
+ | F-statistic: | ||
+ | |||
+ | > | ||
+ | > | ||
+ | </ | ||
+ | |||
+ | ====== 회귀계수 분석 | ||
+ | 아래 회귀식에서 (regression equation) b 값들이 통계학적으로 유의미한지 살펴보는 방법 | ||
+ | Y hat (FGPA) = 0.233102 + 0.000151 SATV + 0.845192 HSGPA | ||
+ | |||
+ | < | ||
+ | Coefficients: | ||
+ | Estimate Std. Error t value Pr(> | ||
+ | (Intercept) 0.233102 | ||
+ | SATV 0.000151 | ||
+ | HSGPA | ||
+ | --- | ||
+ | Signif. codes: | ||
+ | |||
+ | </ | ||
+ | * 둘 다 양의 상관관계 | ||
+ | * 계수값의 단위가 HSGPA가 더 크지만 그 이유는 측정단위 때문에 (FGPA와 HSGPA의 단위가 거의 비슷함 (0 - 4.0) | ||
+ | * 각 변인의 t값을 구하여 significant test를 하여 각각 | ||
+ | * t_SATV = 0.11, t_HSGPA = 2.98 을 얻음 | ||
+ | * 전자는 Pr(>|t|) 값이 0.917, 후자는 0.021로 HSGPA가 significant하다. | ||
+ | * 각각의 계수를 해석하는 방법은 | ||
+ | * SATV를 제외한 독립변인들의 (여기서는 HSGPA 하나) 영향력을 상수화하여 제어했을 때, SATV의 영향력은 SATV의 단위가 하나 증가할 때, 학점은 0.000151 증가하는 것으로 파악된다. | ||
+ | * 마찬가지로 SATV의 영향력을 상수화하여 제어했을 때, FGPA의 단위가 하나 증가하면, | ||
+ | |||
+ | 위 분석을 받아들이기 망서리게 되는 이유는 simple regression에서 SATV의 FGPA에 대한 설명력이 유의미하다는 것을 밝혔음에도 불구하고 두개의 독립변인을 동시에 고려할 때에는 중요하지 않은 변인이 되기 때문이다. 이에 대한 설명을 하기 위해서 [[:partial and semipartial correlation]] 문서를 살펴본다. | ||
+ | |||
+ | |||
+ |
interpretation_of_multiple_regression.1684265513.txt.gz · Last modified: 2023/05/17 04:31 by hkimscil