2020. 7. 16. 13:53ㆍADP | ADsP with R/Knowledge
회귀 분석은 하나 또는 그이상의 변수들이 다른 변수에 미치는 영향을 추론하는 통계기법이다. 통계에서 영향을 받는 변수를 종속변수 혹은 반응변수라고 하고 이는 y로 표기한다. 그리고 영향을 주는 변수를 독립변수 혹은 설명변수라고 하고 x,x_1,x_2 등으로 표기한다.
그리고 단순회귀분석과 다중회귀분석을 진행할 때 가정은 아래와 같다.
1, 선형성(독립변수의 변화에 따라 종속변수도 일정 크기로 변화하는가)
2. 독립성(잔차와 독립변수의 값이 관련되어 있지 않은가)
3. 등분산성(독립변수의 모든 값에 대해 오차들의 분산이 일정한가)
4. 비상관성(관측치들의 잔차들끼리 상관이 없는가)
5. 정상성(잔차항이 정규분포를 이루는가)
이러한 가정을 두고 회귀분석을 진행하기에, 회귀분석의 결과를 검토할 때, 이러한 가정들이 충족되는지 확인할 필요가 있다.
1) 단순회귀분석
설명 : 설명변수가 1개이며 반응변수와 관계가 직선이다.
형태 : Y = b0 + b1X + e
실습
# 임의의 데이터셋 생성
set.seed(2)
x = runif(10,0,11)
y = 2 + 3*x + rnorm(10,0,0.2)
dfrm = data.frame(x,y)
dfrm
# 회귀모델 적합
lm(y~x, data=dfrm)
결과 : y = 2.213 + 2.979x
2) 다중회귀분석
설명 : 설명변수가 k개이며 반응변수와 관계가 선형이다.
형태 : Y = b0 + b1X1 + b2X2 + ... + bkXk + e
실습
# 임의의 데이터셋 생성
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.2)
dfrm = data.frame(y,u,v,w)
dfrm
# 회귀모델 적합
lm(formula = y ~ u + v + w)
결과 : y = 3.0833 + 0.1463u + 1.9780v - 2.9956w
기술통계량 확인
# 모델 변수로 생성
model <- lm(formula = y ~ u + v + w)
model
# summary를 통한 OLS표
summary(model)
설명 : 이를 통해 확인해본 결과 F통계량은 2.59e+04고 p-value는 1.007e-12로 유의수준 5%하에서 회귀모형이 매우 유의함을 확인할 수 있다. 그리고 결정계수와 조정된 결정계수(R-squeared, Adjusted R-squared)는 0.9999.로 이 회귀식이 데이터들을 매우 잘 설명함을 볼 수 있다. 그리고 u,v,w와 같은 개별 회귀계수의 p-value 또한 0.01조차 안되는 것으로 보아 통계적으로 유의하다.
3) 다항회귀분석
설명 : 설명변수가 k개이며 반응변수와 관계가 1치힘수 이상이다.
형태 : Y = b0 + b1X1 + b2X2 + b11(X1)^2+ b22(X2)^2 + b12(X1X2)+ e
실습
# cars 데이터를 이용한 다항회귀분석 진행
data(cars)
head(cars)
cars데이터는 speed와 dist변수로 이루어져있다. dist가 속도의 변화에 따라 어떻게 변하는지 확인하는 과정을 진행한다.
# speed^2 변수를 추가
speed2 <- cars$speed^2
cars <- cbind(speed2,cars)
head(cars)
# 회귀모델 적합
lm(formula = dist ~ speed + speed2, data = cars)
결과 : dist = 2.47014 + 0.91329speed + 0.09996speed^2
# 모델 변수로 생성
model <- lm(formula = dist ~ speed + speed2, data = cars)
model
# summary를 통한 OLS표
summary(model)
설명 : 위의 OLS 결과를 보면 R-Squared 는 0.6673으로 모델의 설명력이 66퍼정도 된다는 소리이다. 완벽하지는 않다. 그리고 speed와 speed^2의 p-value또한 유의수준 0.05를 넘기때문에 모델이 유의하지 않다는 것을 확인할 수 있다.
현실에서는 단순/다중/다항 회귀분석으로 해결이 안되는 데이터가 많다. 하지만, 동시에 많은 데이터들이 과적합의 문제없이 단순/다중/다항 회귀분석을 통해서 검정이 수월하게 잘 된다. 위의 자료는 속도와 거리간의 관계를 확인하는데 있어서 잘못된 모델을 사용하여 유의성이 없는 것으로 판단할 수 있다.
데이터 분석의 목적에 따라 적절한 모델을 사용하는 것도 분석가의 능력이다. 단순/다중/다항회귀분석은 통계의 기본이니 꼭 학습을 할 필요성은 있다.
# plot
plot(model)
'ADP | ADsP with R > Knowledge' 카테고리의 다른 글
[ADP] R을 활용한 다변량 분석 -상관분석/ 다차원 척도법 / 주성분분석 (PCA) (0) | 2020.07.17 |
---|---|
[ADP] R을 활용한 변수 선택법 ( step()함수 - Forward, Backward, Stepwise ) (0) | 2020.07.17 |
[ADP] R - 결측값 처리와 이상값 탐색 (0) | 2020.07.14 |
[ADP] R-데이터 마트(2) / sqldf / plyr / data.table (0) | 2020.07.14 |
[ADP] R-데이터 마트(1) / reshape패키지(metl,cast함수) (1) | 2020.07.13 |