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

基于R语言概率密度函数图评估极端降水阈值规避概率

问题与解决方案

核心需求

需要通过R语言结合温室气体排放与极端降水数据,利用概率密度函数(PDF)图估算:

  1. 规避200mm/天极端降水事件的概率
  2. 达到该降水阈值前剩余的允许排放量

当前代码仅绘制了排放值的密度曲线,未整合降水变量,无法实现关联分析。


解决步骤

1. 建立排放与降水的关联模型

首先需要拟合排放与极端降水的统计关系,这里以线性回归为例(若实际数据是非线性关系,可替换为非线性模型如gam或nls):

# 拟合降水~排放的线性模型
fit_model <- lm(precip ~ emissions, data = GEV)

# 反推200mm/天降水对应的临界排放值
critical_em <- (200 - coef(fit_model)[["(Intercept)"]]) / coef(fit_model)[["emissions"]]

2. 计算规避概率

规避概率即排放水平低于临界值的累积概率,可通过经验累积分布函数(ECDF)计算:

# 生成排放的经验累积分布函数
em_ecdf <- ecdf(GEV$emissions)
# 计算临界排放值对应的累积概率(规避概率)
avoid_prob <- em_ecdf(critical_em)

3. 绘制整合后的PDF图

修改原ggplot代码,添加临界线、规避区域阴影及概率标注:

library(ggplot2)

# 绘制带关联分析的密度图
final_plot <- ggplot(GEV, aes(x = emissions)) +
  # 排放的密度曲线
  geom_density(color = "midnightblue", size = 3) +
  # 临界排放值虚线
  geom_vline(xintercept = critical_em, color = "red", size = 2, linetype = "dashed") +
  # 填充规避区域(排放低于临界值的部分)
  geom_area(stat = "density", fill = "midnightblue", alpha = 0.3, 
            xlim = c(min(GEV$emissions), critical_em)) +
  # 标注规避概率
  annotate("text", x = critical_em - diff(range(GEV$emissions))/10,
           y = max(density(GEV$emissions)$y)/2,
           label = paste0("规避概率: ", round(avoid_prob*100, 1), "%"),
           size = 14, color = "darkred") +
  # 标注临界排放值
  annotate("text", x = critical_em + diff(range(GEV$emissions))/10,
           y = max(density(GEV$emissions)$y)/2,
           label = paste0("临界排放: ", round(critical_em, 2), " TtC"),
           size = 14, color = "darkred") +
  # 轴标签与标题
  xlab("温室气体排放 (万亿吨碳)") +
  ylab("概率密度") +
  ggtitle("RCP 4.5: 极端降水阈值对应的排放规避概率") +
  # 主题优化
  theme(plot.title = element_text(size=24),
        axis.title=element_text(size=20),
        axis.text=element_text(size=18),
        panel.background = element_blank(),
        panel.grid.major = element_line(color = "gray80"))

print(final_plot)

4. 估算剩余排放量

假设当前已累计排放current_em,剩余排放量为临界排放值与当前排放的差值:

# 示例:当前累计排放0.07万亿吨碳
current_em <- 0.07
remaining_em <- critical_em - current_em
cat("达到200mm/天降水阈值前剩余排放量: ", round(remaining_em, 2), " TtC\n")

补充优化建议

  • 非线性关联修正:若排放与降水呈非线性关系(如指数、对数),可使用广义可加模型(mgcv包的gam函数)拟合更精准的关联。
  • 极端事件适配:针对极端降水分析,推荐使用分位数回归(quantreg包),直接估算特定降水分位数对应的排放阈值,更贴合极端事件的统计特性。
  • 多情景对比:若有不同排放情景(如RCP2.6、RCP8.5)的数据,可在同一张图中绘制多条密度曲线,对比不同情景下的规避概率差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:50:30