lmfit能否输出完整相关矩阵为NumPy数组?
获取规整的参数相关系数矩阵数组
既然你已经能通过result.covar拿到协方差矩阵,其实可以直接用它推导相关系数矩阵——毕竟相关系数本质就是协方差经过标准差标准化后的结果,和fit_report里展示的完全一致。
具体操作步骤如下:
- 先引入numpy(大部分科学计算框架都依赖它,通常已经安装)
- 从拟合结果中提取协方差矩阵
- 计算每个参数的标准差(对协方差矩阵的对角线元素开平方)
- 通过广播运算,将协方差矩阵的每个元素除以对应两个参数标准差的乘积,得到相关系数矩阵
import numpy as np # 提取协方差矩阵 cov_mat = result.covar # 计算每个参数的标准差 param_stds = np.sqrt(np.diag(cov_mat)) # 生成规整的相关系数矩阵数组 correl_mat = cov_mat / np.outer(param_stds, param_stds)
这样得到的correl_mat就是标准二维数组,对角线元素均为1(参数与自身的相关系数),其余元素和fit_report(show_correl=True, min_correl=0)里展示的相关系数完全对应,格式完全符合需求。
内容的提问来源于stack exchange,提问作者Goldie_Chemist
相关产品推荐
相关产品推荐

