假设车祸所涉及的损失金额是一个指数随机变量,平均值为1000。其中,保险公司只支付超过免赔额400的金额。如果X是代表损失金额的随机变量,则保险赔付为 max(X-400,0)。
我正在尝试使用 scipy 的 quad 函数来评估 max(x-400) 的 0 和无穷大之间的积分
这是更好地可视化的链接:https ://imgur.com/a/XIglH8i
我需要使用蒙特卡罗模拟来验证 670.32 的答案,并且我相信我需要使用 numpy 的 .random.exponential 函数来绘制 10,000,000 个 X 样本。
如前所述,我正在尝试使用 scipy 的四边形来定义积分,但我正在苦苦挣扎的是如何合并重复的循环数,以使 X 被绘制 10,000,000 次。我希望 for 循环效率极低,因此相信使用矩阵操作进行广播可能是更有效的解决方案。不幸的是,这超出了我的编程经验水平,并且可以真正使用一些帮助:有效地收集 X 的样本,然后 2,将其合并到评估 X 积分的函数中,将其存储在一些数据结构中,并重复该过程 10,000,000 次
from scipy.integrate import quad
from numpy import exp, log, inf
import numpy as np
exponential_var=np.random.exponential(1,10000000)
def Expected_Payout(x):
return max(exponential_var - 400,0)
v,b = quad(Expected_Payout, 0 ,inf )
如何定义我的函数以获取指数数量的变量并存储它们以重复该过程?
结果应该是 ~= 670.32