130 lines
4.0 KiB
Markdown
130 lines
4.0 KiB
Markdown
# 베이지안 스타트업 가치평가 프레임워크
|
||
|
||
**날짜**: 2025-10-16
|
||
**목표**: Neo4j + 베이지안 MCMC 확률적 가치평가
|
||
|
||
---
|
||
|
||
## 개요
|
||
|
||
**데이터**: K-Startup 12,703개 기업 (`/mnt/51123data/DATA/startup/data/startup_data_20251016.json`, 14MB)
|
||
- 매출 정보: 10,484개 (82.5%)
|
||
- 투자금 정보: 9,264개 (73.0%)
|
||
- Neo4j 마이그레이션 완료: 26,117개 노드, 532MB (참고: `troubleshooting/251016_neo4j_startup_data_migration.md`)
|
||
|
||
**구성**: Neo4j 유사 기업 → Bayesian MCMC 확률 분포 → 동적 프리미엄 학습
|
||
|
||
---
|
||
|
||
## 아키텍처
|
||
|
||
```
|
||
1. Neo4j → 유사 기업 Top-K 탐색 (공통 태그 K≥3)
|
||
2. Bayesian MCMC → 가치평가 확률 분포 (10,000 iterations)
|
||
3. PostgreSQL → 프리미엄 학습 및 업데이트 (Beta(α,β))
|
||
```
|
||
|
||
---
|
||
|
||
## Phase 1: Neo4j 유사 기업 (미구현)
|
||
|
||
**현재 상태**: Neo4j 데이터 마이그레이션 완료 (12,703개 한국 스타트업, 5,490개 YC 기업)
|
||
- Startup 노드 속성: `tagNamesKr`, `bizNamesKr`, `invstCdKr`, `empWholeVal`, `finacRevenueVal`, `invstSumValText`
|
||
- 참고: 기존 `get_dynamic_prior_from_neo4j()`는 부분 구현 (토큰 매칭만, 투자 단계 필터링 없음)
|
||
|
||
### 입력
|
||
```python
|
||
{
|
||
"company_name": "리버스마운틴", # IR 분석에서 추출
|
||
"investment_stage": "seed", # invstCdKr 정규화
|
||
"team_size": 9, # empWholeVal 또는 IR에서 추출
|
||
"business_area": "협업툴,SaaS" # tagNamesKr 또는 bizNamesKr
|
||
}
|
||
```
|
||
|
||
### 검색 조건 (Cypher 쿼리)
|
||
- `tagNamesKr` 또는 `bizNamesKr`에서 공통 태그 K개 이상 (K=3)
|
||
- `invstCdKr` 투자 단계 동일 또는 ±1 (seed → pre-A/series A 허용)
|
||
- Top-5 유사 기업 반환 (`finacRevenueVal`, `invstSumValText` 포함)
|
||
|
||
---
|
||
|
||
## Phase 2: 베이지안 MCMC (미구현)
|
||
|
||
**현재 상태**: 단순 베이지안 프레임워크 사용 (`startup_valuation.py`)
|
||
- Prior: Stage 기반 고정값 + Neo4j 동적 Prior 혼합 (분위수 기반)
|
||
- Posterior: Prior × Likelihood 조정 계수 (MCMC 없음)
|
||
|
||
### 모델
|
||
```
|
||
Prior: 로그정규분포 (산업/단계별 평균, 또는 Neo4j 유사기업 분포)
|
||
Likelihood: 유사 기업 투자금액 분포 (invstSumValText 파싱)
|
||
Posterior: MCMC 샘플링 (PyMC3/Stan, 10,000 iterations)
|
||
```
|
||
|
||
### 출력
|
||
```
|
||
평균: 7.3억원
|
||
중앙값: 6.8억원
|
||
90% 신뢰구간: [4.2억 ~ 12.5억]
|
||
```
|
||
|
||
---
|
||
|
||
## Phase 3: 동적 프리미엄 (미구현)
|
||
|
||
### DB 구조
|
||
```sql
|
||
CREATE TABLE valuation_premia (
|
||
stage VARCHAR,
|
||
industry VARCHAR,
|
||
premium_mu FLOAT,
|
||
premium_sigma FLOAT,
|
||
updated_at TIMESTAMP
|
||
);
|
||
```
|
||
|
||
### 학습
|
||
- 신규 투자 데이터 → 자동 재학습
|
||
- Beta(α,β) 분포로 업데이트
|
||
- 30일 주기 재계산
|
||
|
||
---
|
||
|
||
## 구현 우선순위
|
||
|
||
1. **즉시**: Neo4j 유사 기업 (1주)
|
||
2. **단기**: MCMC 확률 분포 (2주)
|
||
3. **중기**: 동적 프리미엄 (1개월)
|
||
|
||
---
|
||
|
||
## 실현 가능성 검증
|
||
|
||
**테스트**: `rb8001/tests/test_bayesian_valuation_plan_feasibility.py`
|
||
|
||
**결과**:
|
||
- ✅ Phase 1: Neo4j 쿼리 구조 및 데이터 필드 호환성 확인 (환경변수 설정 필요)
|
||
- ✅ Phase 2: scipy.stats 사용 가능, PyMC 라이브러리 설치 필요 (requirements.txt 추가)
|
||
- ✅ Phase 3: PostgreSQL 스키마 구조 검증 완료, asyncpg 사용 가능
|
||
|
||
**결론**: 계획 실현 가능, PyMC 라이브러리 설치와 Neo4j 환경변수 설정만 추가 필요
|
||
|
||
---
|
||
|
||
## 참고
|
||
|
||
### 데이터 파일
|
||
- 한국 스타트업: `/mnt/51123data/DATA/startup/data/startup_data_20251016.json` (12,703개)
|
||
- YC 기업: `/mnt/hdd/data/DATA/startup/yc_companies_all.json` (5,490개)
|
||
- Neo4j 저장소: `/mnt/hdd/neo4j/data/` (532MB, 심볼릭 링크: `/var/lib/neo4j/data`)
|
||
|
||
### Neo4j 연결
|
||
- URI: `bolt://192.168.219.45:7687` (51123 서버)
|
||
- 사용: `app/services/memory/neo4j_client.py` (Neo4jClient)
|
||
|
||
### 관련 문서
|
||
- 데이터 마이그레이션: `troubleshooting/251016_neo4j_startup_data_migration.md`
|
||
- 양자 베이지안 모델 (이론): `research/bayesian_theory/251227_양자_베이지안_스타트업_가치평가_모델.md`
|
||
- 가치분석 원칙: `book/300_architecture/314_스타트업_가치분석_원칙.md`
|