为了账号安全,请及时绑定邮箱和手机立即绑定

Numpy lomax 平均函数返回“inf”而不是值

Numpy lomax 平均函数返回“inf”而不是值

跃然一笑 2021-09-14 17:26:31
按照本教程,我创建了以下churn.py文件:import numpy as npimport scipy as spimport scipy.stats as stats#duration of alive subscriptionscensored = np.array([419,513, ... ,316,14])#duration of completed subscriptionsuncensored = np.array([389,123,340, ... ,56,31])#Log likelihoods for censored datadef log_likelihood_lomax(args):    shape, scale = args    val = stats.lomax.logpdf(uncensored, shape, loc=0, scale=scale).sum() + stats.lomax.logsf(censored, shape, loc=0, scale=scale).sum()    return -valres_lomax = sp.optimize.minimize(log_likelihood_lomax,   [1, 1], bounds=((0.001, 1000000), (0.001, 1000000)))print("lomax shape", res_lomax.x[0], ", scale=", res_lomax.x[1])print("lomax mean", stats.lomax.mean(res_lomax.x[0], scale=res_lomax.x[1]))print("lomax median", stats.lomax.median(res_lomax.x[0], scale=res_lomax.x[1]))注:在...中censored和uncensored阵列在这里为保密的目的。在实际脚本中,我改为包含真实值。当我用 运行这个脚本时python3 churn.py,我得到以下结果:lomax shape 0.36948878639375643 , scale= 1440.4384891101636lomax mean inflomax median 7961.447172364986我知道为中位数返回的值是不正确的。但最重要的是,我不明白为什么 lomar mean returns inf。我的脚本有什么问题吗?
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

你的结果显示


lomax shape 0.36948878639375643 

也就是说,使用 scipy 的表示法,形状参数c是 0.36948878639375643(在维基百科文章中,c是 α)。对于c≤ 1,分布的均值是无限的(即定义均值发散的积分)。


你问“我的脚本有什么问题吗?” 我建议进行一项重要更改:在调用 之后minimize,res_lomax.success在使用 中的值之前检查它是否为 True res_lomax.x。像这样的东西:


res_lomax = sp.optimize.minimize(log_likelihood_lomax, [1, 1], bounds=((0.001, 1000000), (0.001, 1000000)))

if res_lomax.success:

    print("lomax shape", res_lomax.x[0], ", scale=", res_lomax.x[1])

    print("lomax mean", stats.lomax.mean(res_lomax.x[0], scale=res_lomax.x[1]))

    print("lomax median", stats.lomax.median(res_lomax.x[0], scale=res_lomax.x[1]))

else:

    print("minimization failed:", res_lomax.message)


查看完整回答
反对 回复 2021-09-14
  • 1 回答
  • 0 关注
  • 289 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号