列昂惕夫矩阵求逆出现#DIV/0!及NaN错误的排查咨询
列昂惕夫矩阵计算异常的原因排查
大概率是数据问题,核心根源是列昂惕夫矩阵(I - A)不可逆,这基本和投入产出表的原始数据问题挂钩:
- 检查直接消耗系数矩阵A的行和:如果某部门行和等于1,说明该部门产出全被中间消耗,没有最终产品,会导致I - A行列式为0,矩阵奇异没法求逆——这就是Excel出#DIV/0!、R返回NaN的直接原因。
- 核对数据完整性:EORA26的投入产出表有没有缺失值、异常零值,或者部门分类合并/拆分错了,导致矩阵不符合投入产出分析的基本结构要求。
- 确认数据口径:是不是存在货币单位不统一、统计口径混乱的情况?比如部分部门用现价、部分用不变价,或者流量和存量数据混着用,都会搞崩计算逻辑。
快速验证方法:
- 先算出直接消耗系数矩阵A,手动查几个关键部门的「中间投入/总产出」比例,看看有没有行和≥1的情况。
- 在R里用
det()函数计算I - A的行列式,要是返回0,直接实锤矩阵奇异,没法求逆。 - 检查原始表的总产出列,有没有总产出为0的部门——这会让计算A时直接出现除以0的错误,后续列昂惕夫矩阵肯定出问题。
内容的提问来源于stack exchange,提问作者Guga Tsukhishvili
相关产品推荐
相关产品推荐

