GDP 상위 10개국의 환율과 GDP 11위인 대한민국의 KOSPI/KOSDAQ 상관관계
데이터 수집
- 네이버 증권 페이지에서 GDP 상위 10개국 환율과 대한민국 KOSPI/KOSDAQ 크롤링
- 100일 분량
KOSPI
1 | import requests |
1 | def get_stock_data(code, page_size=100, page=1): |
1 | kosdaq_df = get_stock_data("KOSDAQ") |
cd | dt | ncv | cv | cr | ov | hv | lv | |
---|---|---|---|---|---|---|---|---|
98 | KOSDAQ | 20200207 | 672.63 | -0.06 | -0.01 | 673.11 | 674.03 | 667.93 |
99 | KOSDAQ | 20200206 | 672.69 | 11.37 | 1.72 | 665.94 | 672.69 | 665.88 |
1 | kospi_df = get_stock_data("KOSPI") |
cd | dt | ncv | cv | cr | ov | hv | lv | |
---|---|---|---|---|---|---|---|---|
98 | KOSPI | 20200207 | 2211.95 | -15.99 | -0.72 | 2221.49 | 2223.92 | 2198.14 |
99 | KOSPI | 20200206 | 2227.94 | 62.31 | 2.88 | 2184.77 | 2229.99 | 2182.25 |
1 | df_kor = pd.merge(kospi_df, kosdaq_df, left_on="dt", right_on="dt") |
kospi | kosdaq | |
---|---|---|
dt | ||
20200207 | 2211.95 | 672.63 |
20200206 | 2227.94 | 672.69 |
환율
1 | def get_currency_data(code, page_size=100, page=1): |
1 | # 미국 |
1 | # 중국 |
1 | # 일본 |
1 | # 유로 (독일, 프랑스, 이탈리아) |
1 | # 인도 |
1 | # 영국 |
1 | # 브라질 |
1 | # 캐나다 |
데이터 정리
1 | cur = pd.concat([usd_df, cny_df, jpy_df, eur_df, inr_df, gbp_df, brl_df, cad_df], axis=1, ignore_index=True) |
usd | cny | jpy | eur | inr | gbp | brl | cad | |
---|---|---|---|---|---|---|---|---|
dt | ||||||||
20200630 | 1202.3 | 170.01 | 1115.88 | 1348.56 | 15.92 | 1476.48 | 222.50 | 878.59 |
20200629 | 1200.5 | 169.78 | 1120.03 | 1354.34 | 15.90 | 1479.98 | 218.84 | 879.00 |
20200626 | 1200.0 | 169.41 | 1123.02 | 1347.48 | 15.87 | 1489.86 | 223.85 | 879.96 |
20200625 | 1203.5 | 169.94 | 1122.20 | 1349.42 | 15.92 | 1497.52 | 225.03 | 883.69 |
20200624 | 1202.5 | 170.27 | 1128.63 | 1359.55 | 15.90 | 1505.89 | 233.38 | 886.41 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
20200212 | 1180.0 | 169.27 | 1072.97 | 1288.21 | 16.53 | 1531.99 | 272.40 | 889.19 |
20200211 | 1184.5 | 169.82 | 1077.95 | 1293.30 | 16.62 | 1530.97 | 273.90 | 891.20 |
20200210 | 1187.0 | 170.04 | 1081.40 | 1299.88 | 16.64 | 1534.55 | 274.73 | 893.15 |
20200207 | 1193.5 | 170.50 | 1087.17 | 1307.06 | 16.71 | 1543.08 | 278.70 | 896.66 |
20200206 | 1184.0 | 169.85 | 1078.28 | 1302.87 | 16.63 | 1535.59 | 279.56 | 891.50 |
100 rows × 8 columns
1 | kor_vs_cur = pd.concat([df_kor, cur], axis=1, ignore_index=True) |
kospi | kosdaq | usd | cny | jpy | eur | inr | gbp | brl | cad | |
---|---|---|---|---|---|---|---|---|---|---|
dt | ||||||||||
20200212 | 2238.38 | 686.59 | 1180.0 | 169.27 | 1072.97 | 1288.21 | 16.53 | 1531.99 | 272.40 | 889.19 |
20200211 | 2223.12 | 682.34 | 1184.5 | 169.82 | 1077.95 | 1293.30 | 16.62 | 1530.97 | 273.90 | 891.20 |
20200210 | 2201.07 | 676.07 | 1187.0 | 170.04 | 1081.40 | 1299.88 | 16.64 | 1534.55 | 274.73 | 893.15 |
20200207 | 2211.95 | 672.63 | 1193.5 | 170.50 | 1087.17 | 1307.06 | 16.71 | 1543.08 | 278.70 | 896.66 |
20200206 | 2227.94 | 672.69 | 1184.0 | 169.85 | 1078.28 | 1302.87 | 16.63 | 1535.59 | 279.56 | 891.50 |
상관관계 확인을 위해 그래프 그리기
1 | from sklearn.preprocessing import minmax_scale |
1 | plt.figure(figsize=(40, 10)) |
상관계수 확인 - KOSPI
1 | #상관계수 확인 - "KOSPI" |
KOSPI vs KOSDAQ : 0.8689701457832764
KOSPI vs USDKRW : -0.7474526625164396
KOSPI vs CNYKRW : -0.8299251745227267
KOSPI vs JPYKRW : -0.6105987487442344
KOSPI vs EURKRW : -0.2986694402889244
KOSPI vs INRKRW : -0.09305307626089275
KOSPI vs GBPKRW : 0.4807979987407145
KOSPI vs BRLKRW : 0.267607616153946
KOSPI vs CADKRW : 0.6836357941585803
KOSPI - Negative Correlation
1 | plt.figure(figsize=(40, 10)) |
상관계수 확인 - “KOSDAQ”
1 | print("KOSDAQ vs KOSDAQ : {}".format(np.corrcoef(kor_vs_cur["kosdaq"], kor_vs_cur["kospi"])[0, 1])) |
KOSDAQ vs KOSDAQ : 0.8689701457832764
KOSDAQ vs USDKRW : -0.4560788590919353
KOSDAQ vs CNYKRW : -0.7171914703642415
KOSDAQ vs JPYKRW : -0.24811709011626565
KOSDAQ vs EURKRW : -0.019148376695966446
KOSDAQ vs INRKRW : -0.3900569760483904
KOSDAQ vs GBPKRW : 0.21872439893983708
KOSDAQ vs BRLKRW : -0.21073197177622852
KOSDAQ vs CADKRW : 0.49393118449595613
KOSDAQ - Negative Correlation
1 | plt.figure(figsize=(40, 10)) |
상관계수 확인 결과, 강한 상관관계를 보인 항목들은 아래와 같다.
- KOSPI vs USDKRW : -0.7474526625164396
- KOSPI vs CNYKRW : -0.8299251745227267
- KOSPI vs JPYKRW : -0.6105987487442344
- KOSDAQ vs CNYKRW : -0.7171914703642415
코스닥이 오를 때에는 달러와 위안화를 사두면 좋을 것 같다.
1 | # # KOSPI & KOSDAQ - Negative Correlation |
추가 상관계수 확인 - “USD”
- 확실히 KOSPI나 KOSDAQ과 비교했을 때 전체적으로 상관계수들이 비교적 높다
- USD 상관계수 절대값 0.4 미만 = 2개
- KOSPI 상관계수 절대값 0.4 미만 = 3개
- KOSDAQ 상관계수 절대값 0.4 미만 = 5개
달러의 움직임이 전세계에 영향을 미친다는 것을 알 수 있다.
1 | print("USD vs KOSPI : {}".format(np.corrcoef(kor_vs_cur["usd"], kor_vs_cur["kospi"])[0, 1])) |
USD vs KOSPI : -0.7474526625164396
USD vs KOSDAQ : -0.45607885909193524
USD vs CNYKRW : 0.8717121292793995
USD vs JPYKRW : 0.7276336988139611
USD vs EURKRW : 0.47570951394792504
USD vs INRKRW : 0.13242540153627583
USD vs GBPKRW : -0.45775893555193975
USD vs BRLKRW : -0.4943384202903821
USD vs CADKRW : -0.3276584506393807
1 | plt.figure(figsize=(40, 10)) |
추후
- NASDAQ과 미국 주요 지수들 그리고 미국 포브스 선정 100대 기업들의 상관관계
- PMI 지수와 전세계 100대 기업들의 상관관계