草明砸 2026-03-11 01:31 采纳率: 100%
浏览 7
已结题

关于干旱传播概率计算的疑问

我正在阅读“气象干旱触发水文(农业)干旱的概率及其触发阈值的动态变化-贝叶斯copula模型”这篇文章,我的疑问是常规思路不一般都是用marginfitdist找出来边缘分布再用cdf计算小于某个阈值的边缘分布函数吗,但是如果是Gamma分布或者Weibull 分布,他就计算不了,所以就只能用normcdf去解决,这个有没有能改进的方法呢

https://blog.csdn.net/frankgis/article/details/145823693

ssmithlow1 = cdf(PD_U1{1}, -0.5); % 计算不同阈值的SSMI累积分布值
ssmithlow2 = cdf(PD_U1{1}, -1);
ssmithlow3 = cdf(PD_U1{1}, -1.5);
ssmithlow4 = cdf(PD_U1{1}, -2.0);
————————————————
版权声明:本文为CSDN博主「有梦想的Frank博士」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/frankgis/article/details/145823693

  • 写回答

2条回答 默认 最新

  • 关注

    其实你不用纠结normcdf,MATLAB里算Gamma/Weibull的CDF根本不用绕这个弯。

    1. 要是你已经用fitdistmarginfitdist拟合出了分布对象(比如PD_U1{1}),直接cdf(PD_U1{1}, -0.5)就行,MATLAB会自动识别是Gamma还是Weibull,算得准还不折腾;
    2. 要是知道分布的形状、尺度参数,直接用gamcdf(-0.5, a, b)(Gamma)或wblcdf(-0.5, a, b)(Weibull),一步到位;
    3. 提个醒:Gamma/Weibull本来就只针对正数,你算-0.5的CDF,结果其实就是0,得确认下数据和阈值选得合不合理,别白忙活。

    总结

    • 核心:用分布专属的CDF函数(gamcdf/wblcdf)或拟合对象直接调cdf,别用normcdf凑数;
    • 注意:负数阈值对Gamma/Weibull无意义,结果必为0,需核对数据逻辑。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月19日
  • 已采纳回答 3月11日
  • 修改了问题 3月11日
  • 修改了问题 3月11日
  • 展开全部