미국 Medicare Part B 데이터(2012–2024)로 신약 62개의 출시 후 환자 수 곡선을 그리고, 확산 속도를 가른 요인을 분석했습니다.
출발 — 생명공학 전공자로서, 분자가 복잡할수록 시장 진입이 어려울 거라 생각했습니다.
도착 — 데이터는 분자 특성을 지지하지 않았습니다. 같은 표적·같은 기전의 항체 여섯 개가 70배 차이를 보였고, 차이를 만든 건 어떤 제형으로 내놓았고 언제 진입했느냐였습니다.
1. 편의성은 상대적이다 절대 투여시간은 무관합니다. 계열 내 최선 대비 얼마나 불편한가가 결정합니다. Gazyva는 4시간인데 멀쩡하고 Cinqair는 30분인데 무너졌습니다.
2. 편의성이 비슷하면 후발이 이긴다 계열 내에서 먼저 나온 약이 다섯 사례 모두 밀렸습니다. Orbactiv와 Kimyrsa는 성분이 같은데 투여 시간만 3시간에서 1시간으로 줄인 후발이 시장을 가져갔습니다.
3. 편의성은 충분조건이지 필요조건이 아니다 2012–2015년 승인 약으로 규칙을 세워 2016–2018년 약에 적용했습니다. 검증 정확도 80%인데 오류가 한 방향으로만 났습니다.
4. 관리하기 쉬운 것과 큰 것이 다르다
제형 문제 예측 가능(정확도 80%) · 10.4 백만$
경쟁 문제 예측 변수 못 찾음 · 383.3 백만$
제형은 개발 단계에서 미리 판단할 수 있지만 규모가 작습니다. 경쟁 열위는 37배 큰 문제인데 사전에 알 방법을 찾지 못했습니다.
환자 수 기준 확산 곡선 → 정점 대비 하락률 → 같은 표적을 노리는 약끼리 묶어 계열 내 비교 → 투여 편의성을 계열 내 상대값으로 변환 → 학습/검증 분리 후 예측 → 지출 감소액 환산
같은 표적으로 묶는 게 설계의 핵심입니다. 표적도 기전도 승인 시기도 비슷한데 결과만 다른 상황을 만들면, 남는 차이가 곧 답이 됩니다.
통계는 평균·중앙값 비교와 산점도만 사용했습니다. 표본이 작아 회귀 대신 사례 비교로 진행했습니다.
- Medicare Part B Spending by Drug — Historical Data zip, Manufacturer 파일
- openFDA API — 승인 연도 조회
받은 파일을 data/ 폴더에 넣고 셀을 순서대로 실행하면 됩니다.
용량 문제로 데이터 파일은 저장소에 포함하지 않았습니다.
- Medicare Advantage 가입자 제외(전체의 35% 이상), 65세 이상 중심
- 병원 투여 주사제만. 먹는 약과 자가주사는 제외
- 학습 12개 · 검증 10개로 정확도 수치는 참고용
- 임계값 2.5배는 데이터가 고른 값이 아님(학습 구간 초과군이 1개뿐)
- 투여 편의성은 각 제품 FDA 허가사항의 Dosage and Administration 항목을 보고 손으로 코딩
- 경쟁 열위를 사전에 예측할 변수를 찾지 못했습니다. 금액으로는 이쪽이 훨씬 큰 문제입니다.
- PD-1/PD-L1 6개의 70배 격차는 여전히 미해결입니다.
- H1(새로움 가설)은 first-in-class 지정 정보를 붙이지 않아 간접 확인에 그쳤습니다.
New_Drug_Diffusion_Medicare_PartB.ipynb 분석 노트북 (30셀)
README.md
data/ 데이터 파일 (미포함)
Python 3.12 · pandas · matplotlib · requests
openFDA 조회 결과이므로 재실행 시점에 따라 매칭 수가 달라질 수 있습니다. 본 결과는 2026-08-09 기준입니다.