You need to enable JavaScript to run this app. Python自动化实现生命表时lx计算结果异常问题求解
优惠活动
大模型
产品
解决方案
定价
更多

Python自动化实现生命表时lx计算结果异常问题求解

生命表Python计算问题排查与修复

问题原因

  • 变量逻辑错误:deaths变量仅存储单一年龄组的死亡人数,并非累计死亡总人数,循环首行starting_cohort = 100000 - deaths的计算逻辑不符合生命表累计存活的要求
  • 变量未持久化:starting_cohort在循环内部每次被重新赋值,上一轮计算得到的剩余存活人口不会被带入下一轮计算,导致结果错误

修复方案

直接维护全局的剩余存活人口变量,不需要通过初始人口反算,修正后代码如下:

Qx = [0.07230,0.02765,0.00851,0.00636,0.00641,0.00899,0.00814,0.00984,0.01497,0.02184,0.03175,0.04509,0.06498]
dx = []
lx = []
# 初始化初始队列人口
survival = 100000

for q in Qx:
    # 计算当前年龄组死亡人数
    current_death = survival * q
    dx.append(current_death)
    # 计算剩余存活人口
    survival = survival - current_death
    lx.append(survival)

print(dx)
print(lx)

逻辑说明

  1. 初始将总队列人口survival设为100000,作为全局变量在循环外定义
  2. 每轮遍历对应年龄组死亡率q,直接用当前剩余存活人口计算该组死亡人数
  3. 扣除死亡人数后更新survival的值,直接带入下一轮计算,自动完成累计存活的统计

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 23:00:02