먼저 볼 장면
수출액이 큰 산업을 곧바로 ‘미래 산업’으로 추천하기
경제복잡성은 단순 수출액이 아니라 세계 평균 대비 전문성과 다른 제품과의 공동 출현을 봅니다. 그래도 교육·자본·환경 규제는 무역표 밖에서 따로 확인해야 합니다.
국가·제품·수출액 표가 RCA, 경제복잡도, 제품 간 근접성으로 바뀌는 코드를 읽고 산업 추천의 가정을 감사합니다.
한국이 지금 잘 만드는 제품은 다음에 만들 수 있는 산업을 어디까지 말해 줄까요?
MIT 라이선스의 `py-ecomplexity`와 Harvard Atlas를 사용합니다. 학생은 패키지를 블랙박스로 호출하지 않고 열 표준화, RCA, 제품 근접성 계산을 실제 코드로 읽습니다.
패키지는 성숙했지만 기본 브랜치 코드는 2023년 1월 커밋입니다. 방법론 학습에는 유효하되 버전을 고정해 시험하고, 정책 결론에는 2025-26년 최신 무역 데이터를 별도로 사용합니다.
경제복잡성은 단순 수출액이 아니라 세계 평균 대비 전문성과 다른 제품과의 공동 출현을 봅니다. 그래도 교육·자본·환경 규제는 무역표 밖에서 따로 확인해야 합니다.
관심 분야의 문제를 정하고, 코드와 데이터를 읽고, AI 실험을 검증한 뒤 결과를 발표합니다.
연도·국가·제품·수출액을 고르고 패키지에 열 역할을 알려 주는 첫 실행을 읽습니다.
함수는 열 이름 자체를 추측하지 않습니다. `trade_cols` 사전이 어떤 열이 시간·지역·제품·값인지 연결합니다.
최신 무역표에서 필요한 네 열을 고르고 단위·연도·제품 분류를 데이터 카드에 적습니다.
입력 데이터 계약서
d22c0f7from ecomplexity import ecomplexity
from ecomplexity import proximity
# Import trade data from CID Atlas
data_url = "https://intl-atlas-downloads.s3.amazonaws.com/country_hsproduct2digit_year.csv.zip"
data = pd.read_csv(data_url, compression="zip", low_memory=False)
data = data[['year','location_code','hs_product_code','export_value']]
# Calculate complexity
trade_cols = {'time':'year', 'loc':'location_code', 'prod':'hs_product_code', 'val':'export_value'}
cdata = ecomplexity(data, trade_cols)복잡성과 근접성을 계산하는 두 함수를 가져옵니다.
Atlas의 압축 무역표를 읽고 네 열만 남깁니다.
열의 역할을 연결한 뒤 복잡성 계산을 실행합니다.
새 데이터의 수출액 열 이름이 `trade_usd`입니다.
먼저 한 가지를 골라 보세요.
입력 열을 공통 이름으로 바꾸고 숫자가 아닌 값·결측·중복을 처리하는 코드의 선택을 감사합니다.
패키지는 결측값을 0으로 채우고 중복은 첫 행만 남길 수 있습니다. 편리하지만 실제 ‘수출 없음’과 ‘자료 누락’을 섞을 위험이 있습니다.
결측 2행과 중복 2행이 있는 작은 표를 만들고 자동 처리 전후의 합계를 비교합니다.
데이터 정리 결정 로그
d22c0f7 def rename_cols(self):
"""Standardize column names"""
cols_map_inv = {v: k for k, v in self.cols_input.items()}
self.data = self.data.rename(columns=cols_map_inv)
self.data = self.data[["time", "loc", "prod", "val"]]
def clean_data(self, val_errors_flag_input):
"""Clean data to remove non-numeric values, handle NA's and duplicates"""
# Make sure values are numeric
self.data.val = pd.to_numeric(self.data.val, errors=val_errors_flag_input)사용자가 준 열 이름 연결표를 반대로 뒤집어 공통 이름으로 바꿉니다.
분석에는 time·loc·prod·val 네 열만 남깁니다.
값 열을 숫자로 변환하며 오류 처리 방식은 설정값에 따릅니다.
자료가 없는 제품 행을 모두 0으로 바꿨더니 국가의 다양성이 낮아졌습니다.
먼저 한 가지를 골라 보세요.
국가 안 제품 비중을 세계 안 제품 비중으로 나누는 RCA 계산을 실제 배열 코드로 읽습니다.
RCA가 1보다 크면 그 제품이 해당 국가 수출에서 세계 평균보다 더 큰 비중을 차지합니다. 수익성이나 미래 성공을 직접 뜻하지는 않습니다.
두 국가·두 제품의 작은 표로 분자와 분모를 손으로 계산한 뒤 코드 결과와 맞춥니다.
RCA 계산을 설명하는 한 장 인포그래픽
d22c0f7 # Calculate RCA, disable dividebyzero errors
with np.errstate(divide="ignore", invalid="ignore"):
num = data_np / np.nansum(data_np, axis=1)[:, np.newaxis]
loc_total = np.nansum(data_np, axis=0)[np.newaxis, :]
world_total = np.nansum(loc_total, axis=1)[:, np.newaxis]
den = loc_total / world_total
self.rca_t = num / den0으로 나누는 경고를 잠시 제어하고 국가별 제품 비중을 분자로 만듭니다.
제품별 세계 합계와 세계 전체 합계로 세계 비중을 만듭니다.
국가 비중을 세계 비중으로 나눈 값이 RCA입니다.
한 제품 수출액은 작지만 그 나라 수출에서 차지하는 비중이 세계 평균보다 큽니다.
먼저 한 가지를 골라 보세요.
여러 국가에서 함께 나타나는 제품 강점을 근접성으로 계산하고, 추천에 필요한 외부 조건을 붙입니다.
코드는 제품 쌍의 공동 출현을 각 제품의 보편성으로 나누고, 대칭형에서는 두 방향 중 작은 값을 씁니다.
근접 제품 세 개에 인력·자본·수요·탄소 기준을 각각 조사해 최종 후보를 다시 순위화합니다.
근접성 + 외부 조건이 있는 산업 기회 지도
d22c0f7 # Calculate discrete proximity
phi = mcp.T @ mcp
phi = phi / ubiquity[np.newaxis, :]
if asymmetric == False:
# Symmetric proximity matrix
phi = np.minimum(phi, phi.T)
elif asymmetric == True:
# Asymmetric proximity matrix
phi = phi.T
return phi행렬 곱으로 제품 쌍이 같은 국가에서 함께 강한 횟수를 셉니다.
많은 국가가 만드는 흔한 제품의 효과를 보편성으로 나눠 조정합니다.
대칭 모드에서는 두 방향 중 더 보수적인 작은 값을 남깁니다.
배터리가 한국 제품 공간에서 가깝게 나타났습니다.
먼저 한 가지를 골라 보세요.
이번 코스의 결과물
제품 공간이 가까워도 진입하지 말아야 할 산업은 어떤 경우이며, 그 판단은 어느 데이터에서 와야 하나요?
다음 코스