본문 바로가기

Statistical Analysis/R

[R] Linear Regression, 선형 회귀분석(1)

선형 회귀분석은,

독립 변수와 종속 변수 간 관계를 수리적 함수로 만드는 것이다.

함수로 만드는 목적은 단순 명료하다.

함수로 표현함으로써 독립 변수를 이용해 종속 변수를 예측할 수 있고,

독립 변수가 종속 변수에 어떤 영향을 끼치는지 알 수 있다.

 

회귀 분석의 가정은 다음과 같다.

1. 선형성 : 독립 변수와 종속 변수는 선형 관계를 가진다.

2. 등분산성 : 잔차의 분산은 동일하다.

3. 정규성 : 잔차는 정규성을 가진다.

4. 독립성 : 잔차는 독립적이다.

여기서 잔차라 함은, 종속 변수의 실제 값과 회귀분석 식에 의한 예측 값의 차이이다.

 

회귀 분석에는 2가지 검정이 포함되어 있다.

첫 번째는 F 검정이다.

F검정은 회귀 모형 자체가 유의한 지 검정하는 것이다.

두 번째는 T 검정이다.

T검정은 각 독립 변수의 유의성을 검정하는 것이다.

 

우선적으로 F검정을 통해 회귀 모형의 유의성을 확인하고,

모형이 유의하다면, 각 독립 변수의 유의성을 확인하면 된다.

 

이때까지 진행해왔던 분석과는 조금 다른 점이 있는데,

가정을 먼저 확인하고 분석을 시행했던 것과는 다르게 회귀 모형을 일단 먼저 만들어야 한다.

회귀 모형을 만들어야 잔차를 확인할 수 있기 때문이다...

 


# 데이터 불러오기
sample = read.csv("F:/Sw-tastics/Statistics Analysis/example/14. linear regression.csv", header = T)

# 산점도
pairs(sample)

# regression
model = lm(sales ~ ., data = sample)
par(mfrow = c(2, 2))
plot(model)

summary(model)

14. linear regression.csv
0.00MB

 

 

# 데이터 불러오기
sample = read.csv("F:/Sw-tastics/Statistics Analysis/example/14. linear regression.csv", header = T)

사용한 데이터는 datarium 라이브러리의 Marketing 데이터셋이다.

총 변수는 4개이고, 각 변수는 다음과 같다.

1) youtube : 유튜브 광고 투자 금액

2) facebook : 페이스북 광고 투자 금액

3) newspaper : 신문 광고 투자 금액

4) sales : 매출액

 

투자 금액과 매출액의 관계를 회귀 모형으로 만들어보자.

좋은 모형을 만들 수 있다면, 어디가 광고 효과가 좋은지 알 수 있을 것이다.

 

# 산점도
pairs(sample)

유튜브와 페이스북은 광고 투자를 할수록 매출액이 상승하는 느낌인데, 뉴스는 별로..?

산점도만 봤을 땐,

유튜브가 가장 유의할 거 같고,

페이스북이 그 다음,

신문은 유의하지도 않을 것 같다.

 

어쨌든 회귀 모형을 만들어서 잔차를 확인해보자.

회귀 분석의 모든 가정은 잔차를 통해 확인할 수 있다.

 

# regression
model = lm(sales ~ ., data = sample)
par(mfrow = c(2, 2))
plot(model)

총 4개의 잔차 그래프를 확인할 수 있다.

첫 번째는 가장 기본적인 잔차 그래프이다.

이 그래프만 잘 봐도 대부분의 가정은 체크할 수 있다.

 

두 번째는 Nomal Q-Q plot이다.

잔차의 정규성을 확인할 수 있다.

 

세 번째는 조금 변형된 잔차 그래프로, 등분산성을 확인할 수 있다.

 

마지막은 이상치를 확인하기 위한 그래프이다.

그래프에 보이는 Cook's distance를 벗어나면, 이상치로 판단한다.

 

(1), (3) 그래프에서 빨간 직선은 직선 형태로 곧게 뻗어 있는 것이 좋고,

(2) 그래프에서는 점들이 직선에 착 달라붙어 있는 게 좋다.

(4) 그래프에서는 Cook's distance에 가까운 점이 없는 게 좋겠다.

 

이렇게 들으면 위에 모형이 가정을 잘 만족하고 있는지 확실치 않다.

하지만, 현실에서는 항상 가정과 이론을 엄격하게 따르지는 않는다.

상황에 따라 가정을 어느 정도 무시하고 진행하는 경우도 꽤 있으므로 우리도 그냥 가정을 만족한다고 해보자.

그럼 모형의 결과를 살펴볼 차례.

 

summary(model)

맨 아래에 F-statistic에 해당하는 p-value를 보면 매우 낮은 값임을 확인할 수 있다.

따라서, F검정에서 회귀 모형이 유의하다는 결과를 얻을 수 있다.

 

회귀 모형이 유의하다는 결과를 얻었으므로 각 독립 변수의 유의성을 확인해보자.

유튜브와 페이스북은 유의하고, 신문은 유의한 변수가 아님을 확인할 수 있다.

 

또한, 이 모형의 R^2값은 0.8972이고, 수정 R^2값은 0.8956이다.

R^2값은 회귀 모형으로 데이터를 설명할 수 있는 정도라고 보면 된다.

수정 R^2값은 변수의 개수에 페널티를 줌으로써 좀 더 현실적인(?) R^2값이라고 보면 될 듯하다.

어쨌든 이 모형으로 대략 90%정도 설명이 된다는 뜻이다.

 

이번 포스팅은 여기까지 하고, 다음 포스팅에서 모형 성능을 개선시켜보자.