본문으로 이동
모든 코스
Harvard시장과 정책180분4 모듈
안정판안정판 0.5.3 · 2024년 4월

수출 바구니에서 다음 산업 기회를 추론하기

국가·제품·수출액 표가 RCA, 경제복잡도, 제품 간 근접성으로 바뀌는 코드를 읽고 산업 추천의 가정을 감사합니다.

한국이 지금 잘 만드는 제품은 다음에 만들 수 있는 산업을 어디까지 말해 줄까요?

프로젝트와 최신성

MIT 라이선스의 `py-ecomplexity`와 Harvard Atlas를 사용합니다. 학생은 패키지를 블랙박스로 호출하지 않고 열 표준화, RCA, 제품 근접성 계산을 실제 코드로 읽습니다.

패키지는 성숙했지만 기본 브랜치 코드는 2023년 1월 커밋입니다. 방법론 학습에는 유효하되 버전을 고정해 시험하고, 정책 결론에는 2025-26년 최신 무역 데이터를 별도로 사용합니다.

먼저 볼 장면

수출액이 큰 산업을 곧바로 ‘미래 산업’으로 추천하기

경제복잡성은 단순 수출액이 아니라 세계 평균 대비 전문성과 다른 제품과의 공동 출현을 봅니다. 그래도 교육·자본·환경 규제는 무역표 밖에서 따로 확인해야 합니다.

데이터 흐름

수출표가 제품 공간 지도가 되는 과정

1무역 데이터연도·국가·제품·수출액
2열 표준화서로 다른 열 이름 통일
3RCA 행렬상대적 전문성 계산
4제품 공간근접성과 기회 후보 표시
0/4

‘다음 단계’를 눌러 입력이 결과가 되는 길을 따라가세요.

구성요소 대화

추천 제품 하나를 두고 데이터가 나누는 대화

‘다음 단계’를 눌러 구성요소의 첫 메시지를 열어 보세요.

코드 워크스루

관심 분야의 문제를 정하고, 코드와 데이터를 읽고, AI 실험을 검증한 뒤 결과를 발표합니다.

40분

네 개 열에서 분석 시작하기

연도·국가·제품·수출액을 고르고 패키지에 열 역할을 알려 주는 첫 실행을 읽습니다.

먼저 떠올릴 비유

택배 분류기가 주소·받는 사람·물품·무게 칸을 알아야 움직이는 것과 같습니다.

핵심 판단

함수는 열 이름 자체를 추측하지 않습니다. `trade_cols` 사전이 어떤 열이 시간·지역·제품·값인지 연결합니다.

직접 해보기

최신 무역표에서 필요한 네 열을 고르고 단위·연도·제품 분류를 데이터 카드에 적습니다.

남길 증거

입력 데이터 계약서

코드 용어
저장소의 실제 코드이 파일에서 확인
README.mdd22c0f7
from 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)
코드가 하는 일
  1. 1

    복잡성과 근접성을 계산하는 두 함수를 가져옵니다.

  2. 2

    Atlas의 압축 무역표를 읽고 네 열만 남깁니다.

  3. 3

    열의 역할을 연결한 뒤 복잡성 계산을 실행합니다.

새 상황에 적용하기

새 데이터의 수출액 열 이름이 `trade_usd`입니다.

패키지를 안전하게 쓰려면 무엇을 바꿔야 하나요?

45분

서로 다른 표를 공통 언어로 바꾸기

입력 열을 공통 이름으로 바꾸고 숫자가 아닌 값·결측·중복을 처리하는 코드의 선택을 감사합니다.

먼저 떠올릴 비유

국제회의 통역 부스처럼 여러 나라의 표현을 공통 네 단어로 바꿉니다.

핵심 판단

패키지는 결측값을 0으로 채우고 중복은 첫 행만 남길 수 있습니다. 편리하지만 실제 ‘수출 없음’과 ‘자료 누락’을 섞을 위험이 있습니다.

직접 해보기

결측 2행과 중복 2행이 있는 작은 표를 만들고 자동 처리 전후의 합계를 비교합니다.

남길 증거

데이터 정리 결정 로그

코드 용어
저장소의 실제 코드이 파일에서 확인
ecomplexity/ComplexityData.pyd22c0f7
    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)
코드가 하는 일
  1. 1

    사용자가 준 열 이름 연결표를 반대로 뒤집어 공통 이름으로 바꿉니다.

  2. 2

    분석에는 time·loc·prod·val 네 열만 남깁니다.

  3. 3

    값 열을 숫자로 변환하며 오류 처리 방식은 설정값에 따릅니다.

새 상황에 적용하기

자료가 없는 제품 행을 모두 0으로 바꿨더니 국가의 다양성이 낮아졌습니다.

먼저 확인할 것은 무엇인가요?

45분

큰 수출액과 상대적 강점을 구분하기

국가 안 제품 비중을 세계 안 제품 비중으로 나누는 RCA 계산을 실제 배열 코드로 읽습니다.

먼저 떠올릴 비유

한 반에서 수학 동아리 비율이 학교 전체보다 높은지 비교하는 것과 같습니다.

핵심 판단

RCA가 1보다 크면 그 제품이 해당 국가 수출에서 세계 평균보다 더 큰 비중을 차지합니다. 수익성이나 미래 성공을 직접 뜻하지는 않습니다.

직접 해보기

두 국가·두 제품의 작은 표로 분자와 분모를 손으로 계산한 뒤 코드 결과와 맞춥니다.

남길 증거

RCA 계산을 설명하는 한 장 인포그래픽

코드 용어
저장소의 실제 코드이 파일에서 확인
ecomplexity/ComplexityData.pyd22c0f7
        # 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 / den
코드가 하는 일
  1. 1

    0으로 나누는 경고를 잠시 제어하고 국가별 제품 비중을 분자로 만듭니다.

  2. 2

    제품별 세계 합계와 세계 전체 합계로 세계 비중을 만듭니다.

  3. 3

    국가 비중을 세계 비중으로 나눈 값이 RCA입니다.

새 상황에 적용하기

한 제품 수출액은 작지만 그 나라 수출에서 차지하는 비중이 세계 평균보다 큽니다.

RCA 관점의 설명은 무엇인가요?

50분

가까운 제품을 기회 후보로, 예언으로는 보지 않기

여러 국가에서 함께 나타나는 제품 강점을 근접성으로 계산하고, 추천에 필요한 외부 조건을 붙입니다.

먼저 떠올릴 비유

지하철 노선에서 가까운 역은 이동 후보지만 공사비와 목적지 수요까지 보장하지는 않습니다.

핵심 판단

코드는 제품 쌍의 공동 출현을 각 제품의 보편성으로 나누고, 대칭형에서는 두 방향 중 작은 값을 씁니다.

직접 해보기

근접 제품 세 개에 인력·자본·수요·탄소 기준을 각각 조사해 최종 후보를 다시 순위화합니다.

남길 증거

근접성 + 외부 조건이 있는 산업 기회 지도

코드 용어
저장소의 실제 코드이 파일에서 확인
ecomplexity/calc_proximity.pyd22c0f7
    # 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
코드가 하는 일
  1. 1

    행렬 곱으로 제품 쌍이 같은 국가에서 함께 강한 횟수를 셉니다.

  2. 2

    많은 국가가 만드는 흔한 제품의 효과를 보편성으로 나눠 조정합니다.

  3. 3

    대칭 모드에서는 두 방향 중 더 보수적인 작은 값을 남깁니다.

새 상황에 적용하기

배터리가 한국 제품 공간에서 가깝게 나타났습니다.

정책 제안 전에 추가할 증거는 무엇인가요?

이번 코스의 결과물

국가 한 곳의 제품 근접성 지도와 근거 있는 산업 후보 3개

제출 전 확인

  • 패키지 버전과 무역 데이터 기준일을 따로 표시했다.
  • 결측·중복·제품 분류 처리 규칙이 기록됐다.
  • RCA와 근접성을 수익성이나 성공 보장으로 표현하지 않았다.
  • 최종 산업 후보에 외부 조건 근거가 붙어 있다.

7분 세미나 질문

제품 공간이 가까워도 진입하지 말아야 할 산업은 어떤 경우이며, 그 판단은 어느 데이터에서 와야 하나요?

다음 코스

선거 숫자를 믿기 전에 한 행부터 감사하기

과정 보기