# US crime
[YonseiESC ESC-21SPRING](https://github.com/YonseiESC/ESC-21SPRING)
5조 한인욱, 강동인, 신예진, 이청파, 정유진
<br>
<br>
## [US crime](http://archive.ics.uci.edu/ml/datasets/communities+and+crime)

<br>
- murders 살인 / rapes 강간/ robberies 강도/ assaults 폭행 / burglaries (절도,강도 목적의) 주거침입/ larcenies 절도 / autoTheft 차량탈취 / arsons 방화, 8종류의 범죄에 대한 범죄지도 완성하기
- 강력범죄 : `murders`, `rapes`, `robberies`, `assaults`
- 비강력 범죄: `burglaries`,`larcenies`,`autoTheft`,`arsons`
- 147개의 변수, 2215개의 observation
- 인구 관련 독립변수: 가구당 평균 구성 인원, 인구밀도
- 개인 특성 독립변수: 인종, 나이, 학력, 미/이혼, 가정, 이민
- 경제 관련 독립변수: 고용, 소득, 부동산
- 결측치가 아닌 지역들을 기반으로 모델을 세워서 예측되어야 하는 범죄 변수들의 결측치 채우기
<br>
<br>
## Data 문제점!
- 변수별 scale이 다름 ->scaling
- skewed된 변수들이 있음->transformation
- 변수들 간에 correlation이 높음-> correlation높은 변수들 제거
- 변수가 너무 많음-> 변수제거

<br>
<br>
## 변수 제거

- 결측치 비율이 84%이상인 변수 제거
- y변수 중 `murders`, `murderperpop`과 같이 구성되어 있는 것들은 `murders`제거하고 `murderperpop`사용
- `NumKidsBornNeverMar`, `PctKidsBornNeverMar` 같은 의미의 비율 변수 존재하기 때문에 제거
<br>
<br>
## 결측치 평균으로 채우기
```{python3}
# NA 지우기
OtherPerCap_mean = data.OtherPerCap.mean()
data.loc[data.OtherPerCap.isna(),'OtherPerCap'] = OtherPerCap_mean
```
- OtherPerCap: 결측치 1개 평균으로 대체
<br>
<br>
## Correlation 처리
US crime data는 아래 그림에서 볼 수 있는 것처럼 몇개 변수들 간에 높은 correlation이 나타난다. 따라서 이에 대한 전처리 필요!

<br>
1. `agePct12t21`, `agePct12t29`, `agePct16t24`
- age 변수의 경우 A to B 살의 비율이 된다.
- 당연히 나이의 범위가 겹치므로 Corr 이 높다.
- 변환: `agePct22t29`(agePct12t29 - agePct12t21)` 로 변환
- 제거변수: `agePct16t24`
2. `medFamInc`, `perCapInc`, `whitePerCap`
- `medFamInc` : family 중위 소득
- `perCapInc`: 1인당 소득
- `whitePerCap`: 1인당 백인 소득
- 제거변수: `perCapInc` (타 1인당 인종 소득이 1인당 소득을 구성)
3. `PctPopUnderPov`, `PctLess9thGrade`, `PctNotHSGrad`
- `PctPopUnderPov` : poverty level 하의 비율
- `PctLess9thGrade`: 25세 이상 중 9학년(대학)미만 비율
- `PctNotHSGrad`: 25세 이상 중 고졸 미만 비율
- 제거변수: `PctNotHSGrad` (`PctLess9thGrade`에 포함됨)
4. `MalePctDivorce`, `FemalePctDiv`, `TotalPctDiv`
- `FemalePctDiv` : 여성이혼비율
- `MalePctDivorce` : 남성 이혼 비율
- `TotalPctDiv`: 총 이혼비율
- 제거변수: `FemalePctDiv`,`MalePctDivorce` (`TotalPctDiv`에 포함)
5. `PctFam2Par`,`PctKids2Par`,`PctYoungKids2Par`,`PctTeen2Par`
- `PctFam2Par`: 두부모+kids 가족 비율
- `PctKids2Par`: 두 부모와 함께 거주하는 kids 비율
- `PctYoungKids2Par`: 두 부모와 함께 거주하는 4살 이하의 아동 비율
- `PctTeen2Par` : 두 부모와 함께 거주하는 12-17살 아이들 비율
- 제거변수: `PctKids2Par`,`PctYoungKids2Par`,`PctTeen2Par`
6. `PctWorkMomYoungKids`,`PctWorkMom`
- `PctWorkMomYoungKids` : 6살 이하의 아이가 있는 워킹맘의 비율
- `PctWorkMom`: 18살 이하의 아이가 있는 워킹맘의 비율
- 제거변수: `PctWorkMomYoungKids`
7. `PctImmigRecent` , `PctImmigRec5`, `PctImmigRec8`, `PctImmigRec10`
- `PctImmigRecent`: 지난 3년 이내에 이민한 이민자의 비율
- 제거변수: `PctImmigRec5`, `PctImmigRec8`, `PctImmigRec10`
8. `PctRecentImmig`, `PctRecImmig5`, `PctRecImmig8`, `PctRecImmig10`
- `PctRecentImmig`: 지난 3년 이내에 이민한 인구의 비율
- 제거변수: `PctRecImmig5`, `PctRecImmig8`, `PctRecImmig10`
9. `PctLargHouseFam`,`PctLargHouseOccup`
- `PctLargHouseFam`: 가족이 6명 이상인 비율
- `PctLargHouseOccup`: 구성원이 6명 이상인 all occupied households 의 비율
- 제거변수: `PctLargHouseOccup`
10. `OwnOccLowQuart`, `OwnOccMedVal`, `OwnOccHiQuart`, `RentLowQ`, `RentMedian RentHighQ`, `MedRent`
- `own` : 집을 소유한 사람의 집값
- `rent` : 집세를 내는 사람의 입장에서 집세
- `med` : 총 집세 중앙값
- 다소 corr이 높게 나타나지만, 각각의 칼럼의 의미가 있다고 생각해 일단 보류
11. `NumInShelters`, `NumStreet`
- `NumInShelters` : 노숙자 보호소에 있는 노숙자 수
- `NumStreet` : 길에서 지내는 노숙자의 수
- 제거변수: 없음
<br>
<br>
## scaling
- 변수들의 단위가 다르기 때문에 **standard scaling**을 통해 scaling을 해줌.
- (x-평균)/표준편차
`agePct12t29`

<br>
## 최종 변수
- 독립변수 84개, 종속변수 8개
- 독립변수:
- 개인 특성: 인종 `racepctblack` ,`racePctWhite` , 학력 `PctLess9thGrade`, 나이 `agePct12t29`, `agePct22t29` , 이민 `PctImmigRecent` 등등
- 인구 관련: 가구당 평균 구성 인원 `PctLargHouseFam`, 인구밀도 `PopDens`등등
- 경제 관련: 소득 `medIncome`, `medFamInc`, 빈곤 `PctPopUnderPov`, `NumInShelters` 등등
<br>
- 종속변수 :
- `murdPerPop`
`rapesPerPop`
`robbbPerPop`
`assaultPerPop`
`burglPerPop`
`larcPerPop`
`autoTheftPerPop`
`arsonsPerPop`
<br>
<br>
## 시각화

- Smart Monkey 라는 스프레드 부가기능을 이용해 위치를 지오코딩
- Mexicocity 같은 미국이 아닌 도시가 섞여있음 그래서 이를 제외하고 시각화

- 시각화를 할 때에는 인구당 범죄를 시각화 하기로 하였음
- 100K의 인구수 당 범죄의 수
- 우리가 구하고자 하는 8종의 범죄에 대해서 곁측치를 제외한 범죄 수를 시각화

- 진한 남색일수록 범죄율이 높은것 (자세한것은 링크에서 설명)


[시각화 링크](https://public.tableau.com/profile/haninwook#!/vizhome/Book1_16216167187690/Final1)
<br>
<br>
## 계획
- 변수별 transformation 필요 (Log? Power? TBD)

NumUnderPov
- 범죄별로 모델링 진행 (Frequentist vs Bayesian)
- Feature importance, 계수 등에 대한 분석
- Y 결측치 데이터로 범죄 예측 후 범죄지도 완성