[R] 가설검정, 상관분석에서 제시한 기후 데이터를 바탕으로 PM10(미세먼지)에 대한 회귀분석을 진행하고자 한다.

1. 설명변수 선택

회귀선을 나타내는 변수의 수가 많아지면 과적합이 발생하거나 많은 계산이 필요하므로, 가능한 적은 변수로 최적의 회귀선을 찾는 것이 중요하다.

summary(lm(PM10 ~ SO2 + CO + NO2, data = data))

이전 글에서 미세먼지와 비교적 강한 상관관계를 가진 SO2(이산화황), CO(일산화탄소), NO2(이산화질소)를 독립변수로 선정하고 다중회귀를 시행한다.

회귀선은 -12.5523 + 6512.7755 * SO2 + 65.2830 * CO - 214.6248 * NO2로 나타났다. 각 변수의 회귀계수가 모두 0.05보다 작지만, 결정계수의 값이 0.45로 낮게 나타났기 때문에 이 선이 적합하다고 할 수는 없다. 종합하면, 해당 변수들로 도출한 회귀식의 설명력은 낮지만, 미세먼지에 대해 어느 정도 추정할 수는 있다.

 

2. 전진선택 - forward selection

상수 모델에서 시작해서 하나씩 독립변수를 추가하는 방법이다.

step(lm(PM10 ~ 1, data = data),
	 scope = list(lower = ~1,
    		    upper = ~SO2 + CO + O3 + NO2 + PM25 + celsius + rainfall + windspeed + humidity),
     direction = 'forward')

변수가 하나씩 추가되면서, 모든 변수가 포함된 회귀모델이 최상의 결과로 나타났다. 결정계수는 0.81로, 임의로 변수를 선택했을 때와는 달리 높게 나타났다.

 

3. 후진제거- backward elimination

모든 변수를 포함한 모델에서 시작해서 하나씩 독립변수를 제거하는 방법이다.

step(lm(PM10~. , data = data), direction = 'backward')

모든 변수를 포함한 모델에서 시작했지만, 제거된 변수 없이 전진선택과 같은 결과가 나타났다.

 

4. 단계선택 - stepwise selection

모든 경우를 고려하는 모델 생성 방법으로 최적의 변수만 포함해서 모델을 도출하는 방법이다.

step(lm(PM10~. , data = data), direction = 'both')

전진선택, 후진선택과 같은 결과가 도출되어 출력 내용은 생략한다.

현재 가진 데이터에서는 전처리가 제대로 되지 못한 문제인지 더 좋은 회귀선을 찾지 못했다. 하지만, 독립변수가 많이 포함된 데이터가 아니라면 모든 가능성을 고려하는 stepwise 방법으로 회귀선을 찾는 것이 적합할 것으로 보인다.

728x90
반응형

'Programming Language > R' 카테고리의 다른 글

[R] 시계열 분해  (0) 2021.02.27
[R] 가설검정, 상관분석  (0) 2021.02.15
[R] ggplot2  (0) 2021.01.29
[R] Data Frame 2 - 결합, 결측치  (0) 2021.01.22
[R] Data Frame 1  (0) 2021.01.15
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기