확률로 입찰량 정하기
발전량 예측은 어차피 틀린다. 틀릴 걸 알면서 어떻게 입찰량을 정해야 정산금이 최대가 되는가 — 계단형 보상 위에서의 최적화.
들어가며
지난 글에서 전력시장의 예측정산금이 계단형이라는 이야기를 했다. 입찰량 대비 실제 발전량의 오차가 문턱 안에 들면 정산금을 받고, 넘으면 뚝 떨어진다. 오늘은 이 계단 위에서 어떻게 입찰해야 하는지를 다룬다.
예측은 ’숫자 하나’가 아니다
대부분의 발전 사업자는 입찰을 이렇게 한다. 예측 모델을 돌려 “내일 발전량 100kWh”라는 숫자가 나오면, 그 100을 그대로 입찰량으로 낸다.
문제는 그 100이 사실은 숫자 하나가 아니라는 점이다.
날씨가 안정적인 날이면 실제 발전량은 98102 사이일 것이다. 구름이 들쭉날쭉한 날이면 80120까지 벌어진다. 같은 “예측 100”이라도 얼마나 흔들릴지가 다르다. 진짜 예측 결과는 “100”이 아니라 “100을 중심으로 이만큼 퍼진 분포”다.
예측을 숫자 하나로 납작하게 만들어 입찰하면 이 ’퍼짐’을 통째로 버리는 셈이다. 광고 입찰 시스템에서도 똑같았다 — 클릭 확률을 “0.3”이라고 단정하는 것과 “0.3쯤이지만 꽤 불확실하다”고 다루는 것은 완전히 다른 입찰로 이어진다.
계단 위에서 입찰하기
보상이 매끄러운 곡선이라면 예측 평균을 그대로 부르는 게 대체로 무난하다. 하지만 예측정산금은 곡선이 아니라 계단이다.
계단 보상에서는 질문이 달라진다. *“내 예측이 평균적으로 맞느냐”*가 아니라, *“내 입찰량이 정산 문턱 안에 들어갈 확률이 얼마냐”*가 핵심이 된다.
예측 분포가 넓게 퍼진 날, 평균값을 그대로 입찰하면 실제 발전량이 문턱을 넘나들 확률이 높아진다. 이때는 입찰량을 평균에서 약간 옮기는 편이 문턱 안에 들 확률을 높여 기대 정산금을 키울 수 있다. 어디로 얼마나 옮길지는 그날 예측의 ’퍼짐’이 결정한다.
핵심 직관: 입찰량을 정한다는 건 “가장 그럴듯한 발전량”을 맞히는 게임이 아니라, 계단의 어느 칸에 떨어질지의 확률을 설계하는 게임이다.
구체적인 입찰량 결정 방법 — 어떤 분포를 쓰고 기대 정산금을 어떻게 계산해 최적점을 찾는지 — 은 공개하지 않는다. 다만 사고의 출발점은 위 한 문장이다.
발전소 하나보다 열 개가 정확하다
여기서 가상발전소가 왜 ‘여러 발전소를 묶는’ 사업인지가 수학적으로 드러난다.
발전소 하나의 내일 발전량은 그 동네 날씨에 통째로 휘둘린다. 예측이 출렁인다. 그런데 서로 떨어진 발전소 열 개를 묶으면, 한 곳이 예측보다 덜 나올 때 다른 곳은 더 나오는 식으로 오차가 서로 상쇄된다. 묶음 전체의 오차는 개별 발전소 오차의 평균보다 낮아진다.
즉 소규모 발전소는 혼자서는 문턱을 넘기 어렵지만, 잘 묶이기만 하면 묶음 단위로는 문턱 안에 들어갈 수 있다. 이게 분산된 작은 자원을 한데 모으는 진짜 이유다 — 친환경 구호가 아니라 오차 상쇄라는 통계의 힘이다.
물론 아무렇게나 묶는다고 되는 건 아니다. 같은 날씨권에 몰린 발전소만 묶으면 오차가 같이 움직여 상쇄가 안 된다. 어떤 발전소를 어떻게 묶을지 자체가 최적화 문제다.
정리
- 발전량 예측은 숫자 하나가 아니라 분포다. 점추정 입찰은 정보를 버린다.
- 계단형 보상에서는 “평균을 맞히기”가 아니라 **“문턱 안에 들 확률을 설계하기”**가 목표다.
- 여러 발전소를 묶으면 오차가 상쇄된다 — 작은 자원을 모으는 수학적 이유.
소규모 발전소가 불리한 건 설비가 나빠서가 아니라, 이 확률 설계와 묶음 최적화를 혼자 할 수 없어서다. 그 일을 대신 해주는 소프트웨어 — 그게 우리가 만드는 것이다.
다음 글
다음 편에서는 이 모든 게 돌아가려면 필요한 데이터 파이프라인을 다룬다. 기상 예보와 발전 이력을 어떻게 모으고, 예측이 틀리기 시작할 때 시스템이 어떻게 스스로 알아차리고 다시 학습하는지 — ML 서빙 시스템에서 겪은 교훈을 전력 도메인에 옮기는 과정이다.