선형 회귀분석은,
독립 변수와 종속 변수 간 관계를 수리적 함수로 만드는 것이다.
함수로 만드는 목적은 단순 명료하다.
함수로 표현함으로써 독립 변수를 이용해 종속 변수를 예측할 수 있고,
독립 변수가 종속 변수에 어떤 영향을 끼치는지 알 수 있다.
회귀 분석의 가정은 다음과 같다.
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)
# 데이터 불러오기
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%정도 설명이 된다는 뜻이다.
이번 포스팅은 여기까지 하고, 다음 포스팅에서 모형 성능을 개선시켜보자.
'Statistical Analysis > R' 카테고리의 다른 글
[R] Linear Regression, 선형 회귀분석(3) - 변수 변환 (0) | 2022.08.22 |
---|---|
[R] Linear Regression, 선형 회귀분석(2) - 변수 선택법 (0) | 2022.08.21 |
[R] Spearman correlation coefficient(스피어만 상관 계수), Kendall Tau coefficient(켄달 타우 계수) (0) | 2022.07.12 |
[R] Pearson correlation coefficient, 피어슨 상관 계수 (0) | 2022.07.11 |
[R] exact McNemar test, 정확 맥니마 검정 (0) | 2022.07.09 |