You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将循环生成的分位数点绘制在同一张R语言损失超越曲线中?

解决方案:生成单张损失超越曲线

以下是修正后的R代码,可将所有数据点整合到同一张图表中:

# 模拟复合损失数据:泊松事件次数 × 对数正态单次损失
x <- rpois(10000, 3) * rlnorm(10000, 100, 10)

# 定义概率序列(10% 到 100%,步长10%)
prob_seq <- seq(0.1, 1, 0.1)

# 批量计算对数损失的分位数,无需循环
log_loss_quantiles <- quantile(log(x), prob_seq)

# 整理成数据框统一存储
curve_data <- data.frame(
  概率 = prob_seq,
  对数损失值 = as.numeric(log_loss_quantiles)
)

# 绘制带点线的损失超越曲线
plot(curve_data$对数损失值, curve_data$概率,
     type = "b",
     xlab = "对数损失值",
     ylab = "概率",
     main = "损失超越曲线",
     pch = 16,
     col = "#2E86AB")

代码修改说明

  • 移除循环,直接用quantile的向量输入批量计算分位数,效率更高;
  • 用数据框统一存储概率和对应损失值,避免循环中重复生成独立图表;
  • 使用type = "b"同时绘制数据点和连线,清晰呈现曲线趋势。

风险量化中的技术解释
  • 复合损失模型:rpois(10000, 3)模拟风险事件的发生次数(泊松分布适配低频离散的事件计数场景,比如操作风险事故次数);rlnorm(10000, 100, 10)模拟单次事件的损失金额(对数正态分布天然适配厚尾特征,能准确反映实际风险中大额损失的概率分布),两者相乘生成总损失样本,是保险、金融风控领域常用的损失建模方法。
  • 对数转换与分位数:对损失取log(x)是为了压缩极端大额损失的数值跨度,让分布规律更易观察;quantile(log(x), prob_seq)计算的分位数,对应“某一概率下的损失阈值”——比如prob=0.1对应的分位数,表示有10%的损失(对数后)低于该值,90%的损失高于该值,这正是损失超越曲线的核心数据逻辑。
  • 损失超越曲线的价值:这条曲线是风险量化的核心可视化工具,能直观展示不同损失水平对应的发生概率,帮助风险管理者快速判断极端损失的可能性,为经济资本计提、风险限额设定提供数据支撑。

内容的提问来源于stack exchange,提问作者Professor W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 00:20:34