274
9가지 사례로 익히는 고급 스파크 분석 (2판)
}
val conditionalValueAtRisk = fivePercentCVaR(trials)
conditionalValueAtRisk: Double = -0.09002629251426077
9.9
수익 분포 시각화하기
특정 신뢰수준의
VaR
을 계산하는 것에 추가로, 수익 분포에 대한 더 큰 그림을 그려보면 도움
이 될 때가 많다. 수익이 정규분포를 따르는가? 혹은 극단에서 크게 오르는가? 앞서 각 요인에
대해 했듯이, 커널 밀도 추정을 이용하여 결합 확률 분포
Joint
Probability
Distribution
에 대한 확률 밀도
함수를 추정해 그릴 수 있다(그림
9
-
3
). (데이터셋상에서 ) 분산 방식의 밀도 추정을 계산하
기 위한 지원 코드는 깃허브 저장소에 올려두었다.
import org.apache.spark.sql.functions
def plotDistribution(samples: Dataset[Double]): Figure = {
val (min, max, count, stddev) = samples.agg(
functions.min($"value"),
functions.max($"value"),
functions.count($"value"),
functions.stddev_pop($"value")
).as[(Double, Double, Long, Double)].first()
val bandwidth = 1.06 * stddev * math.pow(count, ...