나는 단지 예제로 R에 코드를 제공하고 있습니다 .R에 경험이 없으면 답변을 볼 수 있습니다. 예를 들어 몇 가지 사례를 만들고 싶습니다.
상관 관계 vs 회귀
하나의 Y와 하나의 X로 간단한 선형 상관 관계 및 회귀 분석 :
모델:
y = a + betaX + error (residual)
두 개의 변수 만 있다고 가정 해 봅시다.
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
plot(X,Y, pch = 19)
산포도에서 점이 직선에 가까울수록 두 변수 사이의 선형 관계가 강해집니다.
선형 상관 관계를 봅시다.
cor(X,Y)
0.7828747
이제 선형 회귀 및 풀 아웃 R 제곱 값.
reg1 <- lm(Y~X)
summary(reg1)$r.squared
0.6128929
따라서 모델의 계수는 다음과 같습니다.
reg1$coefficients
(Intercept) X
2.2535971 0.7877698
X의 베타는 0.7877698입니다. 따라서 모델은 다음과 같습니다.
Y = 2.2535971 + 0.7877698 * X
회귀 분석에서 R 제곱 값의 제곱근 r
은 선형 회귀 분석에서 와 같습니다 .
sqrt(summary(reg1)$r.squared)
[1] 0.7828747
위의 동일한 예제를 사용하여 회귀 기울기와 상관에 대한 스케일 효과 를 보고 X
일정한 say를 곱해 봅시다 12
.
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
X12 <- X*12
cor(X12,Y)
[1] 0.7828747
상관 할 일의 R 제곱으로 변경되지 않습니다 .
reg12 <- lm(Y~X12)
summary(reg12)$r.squared
[1] 0.6128929
reg12$coefficients
(Intercept) X12
0.53571429 0.07797619
회귀 계수가 변경되었지만 R- 제곱이 아닌 것을 볼 수 있습니다. 이제 또 다른 실험을 통해 상수를 추가하고 X
이것이 어떤 영향을 미치는지 확인할 수 있습니다 .
X = c(4,5,8,6,12,15)
Y = c(3,6,9,8,6, 18)
X5 <- X+5
cor(X5,Y)
[1] 0.7828747
추가 후에도 상관 관계는 여전히 변경되지 않습니다 5
. 이것이 회귀 계수에 어떤 영향을 미치는지 봅시다.
reg5 <- lm(Y~X5)
summary(reg5)$r.squared
[1] 0.6128929
reg5$coefficients
(Intercept) X5
-4.1428571 0.9357143
R-광장 과 상관 규모 효과가 없지만 절편 및 기울기는 않습니다. 따라서 기울기가 상관 계수와 동일하지 않습니다 (변수가 평균 0 및 분산 1 로 표준화 되지 않은 경우 ).
ANOVA 란 무엇이며 왜 ANOVA를 수행합니까?
분산 분석은 분산을 비교하여 결정을 내리는 기술입니다. (호출 응답 변수 Y
) 동안에 양적 가변 X
수 양적 또는 질적 (상이한 수준 팩터). 모두 X
와Y
숫자 하나 이상이 될 수 있습니다. 일반적으로 우리는 질적 변수에 대한 분산 분석을 말하고, 회귀 상황에서의 분산 분석은 덜 논의됩니다. 혼란의 원인이 될 수 있습니다. 정 성적 변수 (요인 그룹 등)의 귀무 가설은 회귀 분석에서 선의 기울기가 0과 유의하게 다른지 여부를 테스트하는 동안 그룹 평균이 다르거 나 같지 않다는 것입니다.
X와 Y가 모두 정량적이므로 회귀 분석과 정 성적 요인 분산 분석을 모두 수행 할 수있는 예를 보자. 그러나 X를 요인으로 취급 할 수 있습니다.
X1 <- rep(1:5, each = 5)
Y1 <- c(12,14,18,12,14, 21,22,23,24,18, 25,23,20,25,26, 29,29,28,30,25, 29,30,32,28,27)
myd <- data.frame (X1,Y1)
데이터는 다음과 같습니다.
X1 Y1
1 1 12
2 1 14
3 1 18
4 1 12
5 1 14
6 2 21
7 2 22
8 2 23
9 2 24
10 2 18
11 3 25
12 3 23
13 3 20
14 3 25
15 3 26
16 4 29
17 4 29
18 4 28
19 4 30
20 4 25
21 5 29
22 5 30
23 5 32
24 5 28
25 5 27
이제 회귀 분석과 분산 분석을 모두 수행합니다. 첫번째 회귀 :
reg <- lm(Y1~X1, data=myd)
anova(reg)
Analysis of Variance Table
Response: Y1
Df Sum Sq Mean Sq F value Pr(>F)
X1 1 684.50 684.50 101.4 6.703e-10 ***
Residuals 23 155.26 6.75
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
reg$coefficients
(Intercept) X1
12.26 3.70
이제 X1을 factor로 변환하여 기존의 ANOVA (요인 / 정성 변수의 평균 분산 분석)입니다.
myd$X1f <- as.factor (myd$X1)
regf <- lm(Y1~X1f, data=myd)
anova(regf)
Analysis of Variance Table
Response: Y1
Df Sum Sq Mean Sq F value Pr(>F)
X1f 4 742.16 185.54 38.02 4.424e-09 ***
Residuals 20 97.60 4.88
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
위의 경우 1 대신 4 인 변경된 X1f Df를 볼 수 있습니다.
정성 변수에 대한 분산 분석과 달리 회귀 분석을 수행하는 정량 변수와 관련하여-분산 분석 (ANOVA)은 회귀 모델 내 변동 수준에 대한 정보를 제공하고 유의성 검정의 기초를 형성하는 계산으로 구성됩니다.
기본적으로 분산 분석은 귀무 가설 베타 = 0을 테스트합니다 (대체 가설 베타는 0이 아님). 여기서 우리는 모델 대 오차 (잔여 분산)에 의해 설명 된 변동 비율을 테스트합니다. 모형 분산은 적합 선에 의해 설명 된 양에서 비롯되고 잔차는 모형에 의해 설명되지 않은 값에서 비롯됩니다. F가 크다는 것은 베타 값이 0과 같지 않다는 것을 의미하며 두 변수 사이에 중요한 관계가 있음을 의미합니다.
> anova(reg1)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 81.719 81.719 6.3331 0.0656 .
Residuals 4 51.614 12.904
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
여기서 우리는 높은 상관 관계 또는 R- 제곱을 볼 수 있지만 여전히 중요한 결과는 아닙니다. 때때로 낮은 상관 관계가 여전히 중요한 상관 관계인 결과를 얻을 수 있습니다. 이 경우에 유의미한 관계가없는 이유는 충분한 데이터가 없기 때문에 (n = 6, 잔차 df = 4), F는 분자 1 df 대 4 denomerator df로 F 분포를 살펴 봐야하기 때문입니다. 따라서이 경우 경사가 0과 같지 않은 것을 배제 할 수 없었습니다.
다른 예를 보자.
X = c(4,5,8,6,2, 5,6,4,2,3, 8,2,5,6,3, 8,9,3,5,10)
Y = c(3,6,9,8,6, 8,6,8,10,5, 3,3,2,4,3, 11,12,4,2,14)
reg3 <- lm(Y~X)
anova(reg3)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 69.009 69.009 7.414 0.01396 *
Residuals 18 167.541 9.308
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
이 새로운 데이터에 대한 R- 제곱 값 :
summary(reg3)$r.squared
[1] 0.2917296
cor(X,Y)
[1] 0.54012
이전 사례보다 상관 관계가 낮지 만 상당한 경사가 있습니다. 데이터가 많을수록 df가 증가하고 충분한 정보를 제공하므로 경사가 0이 아닌 귀무 가설을 배제 할 수 있습니다.
부정적 상관이있는 다른 예를 보자.
X1 = c(4,5,8,6,12,15)
Y1 = c(18,16,2,4,2, 8)
# correlation
cor(X1,Y1)
-0.5266847
# r-square using regression
reg2 <- lm(Y1~X1)
summary(reg2)$r.squared
0.2773967
sqrt(summary(reg2)$r.squared)
[1] 0.5266847
값이 제곱 되었기 때문에 제곱근은 여기에 긍정적 또는 부정적 관계에 대한 정보를 제공하지 않습니다. 그러나 크기는 같습니다.
다중 회귀 분석 사례 :
다중 선형 회귀 분석은 관측 데이터에 선형 방정식을 적용하여 둘 이상의 설명 변수와 반응 변수 간의 관계를 모델링하려고합니다. 위의 논의는 다중 회귀 사례로 확장 될 수 있습니다. 이 경우 용어에 여러 베타 버전이 있습니다.
y = a + beta1X1 + beta2X2 + beta2X3 + ................+ betapXp + error
Example:
X1 = c(4,5,8,6,2, 5,6,4,2,3, 8,2,5,6,3, 8,9,3,5,10)
X2 = c(14,15,8,16,2, 15,3,2,4,7, 9,12,5,6,3, 12,19,13,15,20)
Y = c(3,6,9,8,6, 8,6,8,10,5, 3,3,2,4,3, 11,12,4,2,14)
reg4 <- lm(Y~X1+X2)
모델의 계수를 보자.
reg4$coefficients
(Intercept) X1 X2
2.04055116 0.72169350 0.05566427
따라서 다중 선형 회귀 모델은 다음과 같습니다.
Y = 2.04055116 + 0.72169350 * X1 + 0.05566427* X2
이제 X1 및 X2의 베타가 0보다 큰지 테스트하십시오.
anova(reg4)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X1 1 69.009 69.009 7.0655 0.01656 *
X2 1 1.504 1.504 0.1540 0.69965
Residuals 17 166.038 9.767
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
여기서 우리는 X1의 기울기가 0보다 크다고 말하지만 X2의 기울기가 0보다 크다고 판단 할 수는 없습니다.
기울기는 X1과 Y 또는 X2와 Y 사이의 상관 관계가 아닙니다.
> cor(Y, X1)
[1] 0.54012
> cor(Y,X2)
[1] 0.3361571
다중 변이 상황 (변수가 두 개보다 큰 경우) 부분 상관 관계가 작용합니다. 부분 상관 관계는 세 번째 이상의 다른 변수를 제어하면서 두 변수의 상관 관계입니다.
source("http://www.yilab.gatech.edu/pcor.R")
pcor.test(X1, Y,X2)
estimate p.value statistic n gn Method Use
1 0.4567979 0.03424027 2.117231 20 1 Pearson Var-Cov matrix
pcor.test(X2, Y,X1)
estimate p.value statistic n gn Method Use
1 0.09473812 0.6947774 0.3923801 20 1 Pearson Var-Cov matrix