[삼성 SDS Brightics] Brightics 개인 분석 프로젝트_서울시 골목상권 데이터분석_다중회귀분석, QGIS Geo코딩
안녕하세요!
Brightics 서포터즈 yeenn입니다.
매 주 Brightics와 함께하는 분석과정과 블로그 포스팅이 이제는 정말 일상이 된 것 같아요!!
새삼 느끼는 거지만... 거의 미션 20주차 가까이 접어들다 보니 당연한 것 같기도 하고ㅎㅎ
지난 포스팅에서는 데이터 Normalization과 주성분분석(PCA) 과정을 진행했었는데요,
↓
https://yeenn-db.tistory.com/38
[삼성 SDS Brightics] Brightics 개인 분석 프로젝트_서울시 골목상권 데이터분석_표준화(Normalization), 주
안녕하세요 Brightics 서포터즈 yeenn입니다! 요즘 날씨가 점점 쌀쌀해지고 있는 것 같아요..! 이제는 밤에 얇은 이불을 끝까지 덮지 않고는 잘 수가 없는 날씨가 되어버린... 그래도 오랜만에 맑은
yeenn-db.tistory.com
이번 포스팅 과정에서는 주성분을 활용한 다중선형회귀분석을 진행해보도록 하겠습니다!
주성분 선택
[상권]
주성분 분석결과를 살펴보면 cum_explained_variance_ratio 를 확인할 수 있는데요,
이는 주성분들의 누적 설명비율을 의미합니다!
상권 데이터의 주성분으로는,
누적비율이 약 85%의 설명력을 가지는
3번째 주성분 (project_0, project_1, project_2) 까지 선택해주었습니다.
[상권배후지]
상권 배후지 데이터의 주성분으로는,
누적비율이 약 85%의 설명력을 가지는
2번째 주성분 (project_0, project_1) 까지 선택해주었습니다.
다중선형회귀모형 적합 결과
그 다음은, 선택한 3개의 주성분으로 회귀모형을 적합해주었습니다.
[상권]
[상권배후지]
상권 데이터, 상권배후지 데이터 모두
결정계수가 0.985, 0.996으로 매우 높게 나타났으며,
독립성을 판단할 수 있는 Durbin-Watson값도 2부근으로 자기상관성이 거의 없는 것으로 확인되었습니다.
다중공선성 여부를 판단할 수 있는 VIF 계수도 모두 1 근처의 값으로,
False 출력값을 반환하는 것으로 확인되었습니다!
다중선형회귀-Prediction
[상권/상권배후지]
그 다음은, Linear Regression: Predict 함수를 불러와
split함수로 분리한 test 데이터와 학습한 train 데이터를 연결시켜주었습니다.
회귀모형 평가(Evaluate Regression)
마지막으로, Brightics의 Evaluate Regression을 사용해서 회귀모형의 성능을 평가해주었습니다!
[상권]
결정계수 값을 확인해보니, 상권 데이터 예측의 r2_score은 0.963,
[상권배후지]
상권배후지 데이터 예측의 r2_score은 0.970으로 높은 예측력을 보이는 것으로 나타났습니다!
.
.
.
GeoCoding - 상권 지도 시각화
그 다음은..
분석 과정에 꼭 포함시키고 싶었던 골목상권 현황 분포의 지도 시각화! 인데요
아래의 서울 열린데이터 광장에 있는 서울시 상권분석서비스 상권영역의 영역 데이터를 다운받으면,
최신 서울시 상권영역 분포 현황 데이터파일을 확인할 수 있습니다!
(위 이미지에는 수정 년도가 2019년으로 되어있는데, 최종 파일 수정은 2021년 9월을 기준으로 이루어졌습니다..!)
↓
열린데이터광장 메인
데이터분류,데이터검색,데이터활용
data.seoul.go.kr
위 파일을 다운받고 압축을 풀었더니 아래와 같은 6개의 데이터 파일을 확인할 수 있었습니다.
음?
csv나 txt, json 파일이 아닌데 Brightics에 어떻게 불러오지..?
..라고 생각했다가
shp파일을 csv형태로 변환하는 방법을 찾게 되었습니다!
dbf파일은 상권 영역데이터의 속성 정보를 담고있는 파일인데요,
이 dbf 파일을 엑셀 새 문서에 drag&drop 해주기만 하면,
이렇게 정렬된 table형태로 보여지는 것을 확인할 수 있습니다!
이제 이 data를 csv 파일형태로 전환하고,
Brightics load에도 성공하여
두근대는 마음으로 Map 차트를 열고,
다운받은 서울시 geo데이터를 Map type에 지정해주고,
Latitude와 Longtitude 파리미터를 지정해주었는데,
...?
왜 분포가 지도에 표시되지 않는 걸까요??
그러다 알게된 사실..
해당 데이터가
투영좌표계(XY좌표) 로 구성된 데이터이더라구요!
(찾아보면서 의도치 않게 몰랐던 좌표계의 세계에 대해 조금이나마 자세히 알게되어서 좋았어요 :>)
[좌표계, 간단히 알고 넘어가자!]
좌표계는 크게
1. 지리좌표계(경도와 위도)
2. 투영좌표계(미터)
로 나뉩니다!
1. 지리좌표계
지리좌표계란, 지구상에 위치를 좌표로 표현하기 위해 3차원의 구면을 이용하는 좌표계를 의미합니다.
한 지점은 경도(longitude)와 위도(latitude)로 표현되며 이 단위는 도(degree)로 표시됩니다.
위 그림과 같이 지구는 원이 아닌 타원체의 형태를 띠고 있는데,
지리좌표계는 이 타원체의 중심점(datumn)을 기반으로 측량을 하고 좌표를 통해 표현합니다.
세계적으로 통일성을 유지하기 위해 국제 표준 타원체로 GRS80과 WGS84가 제시되었습니다.
ex. 127.xx, 36.xx 로 표시
1. 투영좌표계
그리고 위 3차원 위경도 좌표를 2차원 평면 상으로 나타내기 위해 투영(projection)이라는 과정을 거치게 되는데 이렇게 투영된 좌표를 투영좌표계라고 합니다.
이 투영방법에 따라서도 여러가지 체계로 분류가 되는데, 크게 2가지로 분류할 수 있습니다.
- TM(Transverse meractor) : 횡단원통등각투영법
- UTM(Universal Transcerse Mercator)
두 투영방법은 상수가 다르지만, 같은 계산법을 거칩니다.
우리나라의 경우 TM좌표계를 기반으로 국가 기본도를 제작하고 있으며,
UTM은 군사지도나 단일원점을 사용하는 일부 부처에서 부분적으로 사용합니다.
load한 서울시 상권데이터는 TM좌표계를 기반으로 하는 좌표데이터를 포함하고 있습니다!
___
출처: https://yganalyst.github.io/spatial_analysis/spatial_analysis_3/
[GIS] 좌표 정의 및 변환 방법, 자주쓰는 좌표계
공간정보 데이터의 좌표를 정의하고 변환하는 방법을 알아보자.
yganalyst.github.io
간단히 정리하자면,
지리좌표계 : 위경도 좌표계, 3차원
투영좌표계 : 미터 좌표계, 2차원
로 좌표계를 구분할 수 있겠습니다.
Brightics의 위/경도에 파라미터를 지정해주기 위해서는
해당 데이터가 지리좌표계를 포함하고 있어야 하지만,
앞에서도 볼 수 있듯이 서울시 상권데이터는 TM좌표계를 기반으로 하는 투영좌표계를 포함하고 있기 때문에 구현이 되지 않는 것이었어요..!
하지만 방법은 있다!!
대안으로, QGIS 프로그램을 다운받아 shp 파일을 열어 영역을 표시해보기로 했습니다!
QGIS는 데이터 뷰, 편집, 분석을 제공하는 지리 정보 체계(GIS) 응용 프로그램으로, 셰이프 파일(SHP) 형식을 지원합니다.
(셰이프파일(shapefile) 형식: 지리 정보 시스템(GIS) 소프트웨어를 위한 지리 공간 벡터 데이터 형식)
https://qgis.org/ko/site/forusers/download.html
QGIS 다운로드
qgis.org
먼저, 위 QGIS 프로그램 다운로드 사이트에 들어가서,
최신버전의 프로그램을 다운받아주었습니다.
오픈 소스 프로그램이라 무료로 다운받을 수 있고,
모두 다운받는데에 약 3-5분 가량 소요됩니다..!!
윈도우 설치프로그램 목록에서 찾아서 더블클릭하여 실행해주고,
다운받은 shp파일을 drag&drop 하면,
아래와 같이 서울시 상권분포를 지도에 시각화할 수 있답니다!
실제 서울시 지역구별 지도와 비교해볼까요?
강북 지역에서는 주로 마포구와 종로구, 중구, 용산구에,
강남 지역에서는 강남구와 송파구에
상권이 밀집분포되어 있는 것을 확인할 수 있었습니다!
.
.
벌써 개인분석프로젝트도 막바지를 향해 달려가고 있네요ㅠㅠ
큰 일정변동이 없는 이상
다음주에 모델링 과정을 마무리하게 될 것 같습니다..!
마지막 분석과정과 포스팅도 기대 부탁드립니다!!
-본 게시물은 Brightics 서포터즈 활동의 일환으로 작성된 포스팅 입니다.