问题描述
我正在研究有关超额损失再保险定价的项目,因此我定义了两个功能:第一个功能计算保险人保留的成本:
charge_assureur=[]
def CHARGE(c,d):
for i in range(0,len(ma_base)):
if ma_base.iloc[i,2] < d:
charge_assureur.append(ma_base.iloc[i,2])
elif ma_base.iloc[i,2] > c:
charge_assureur.append(ma_base.iloc[i,2]-c)
else :
charge_assureur.append(d)
return(charge_assureur)
其中ma_base
是一个dataframe
,具有827行30列(第二列包含成本,因此输出是一个长度为827的列表)。
然后,我定义另一个包含while循环并调用第一个函数的函数,它是一种二分查找算法,用于寻找保险公司选择的最大优先级。
Portee=10**12
MAX=2*10**7
lengths=[39,125,67,72,88,65,18,93,72]
def Priorite_maximale_dichotomie():
b=max(sinistre.montant[sinistre.montant>=u])
a=0
while (b-a)>1 :
Priorite=(a+b)/2
if np.quantile(CHARGE(Portee,Priorite )),.95) > MAX:
b=Priorite
else :
a=Priorite
return(Priorite)
我的问题是,在函数CHARGE
中调用函数Priorite_maximale_dichotomie
时,它在第二次迭代中返回一个长度为1654的列表,在第三次迭代中返回长度为2481的列表,依此类推。
有人可以帮我解决这个问题吗?通过在第二个函数中调用函数CHARGE
,我想为每个可能的夫妇(Porte,Priorite)
建立一个长度为827的列表。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)