环境
Ubuntu 22.04
Python 3.10.13
numpy 1.26.3
matplotlib 3.7.2
核心代码
def groupcir(x, y, level=0.95, df=2, **kwargs):
'''
置信椭圆:描述多元正态分布的置信区间。
椭圆的长轴和短轴表示方差,而椭圆的旋转角度则表示协方差。
本函数计算了p={level},自由度df={df}的置信椭圆
:type x: array like
:param x: x postion of samples
:type y: array like
:param y: y postion of samples
:type level: float
:param level: confidence level
:type df: int
:param df: degrees of freedom
:param kwargs:pass to mpl.patches.Ellipse
'''
critical_value = chi2.ppf(level, df=df)
x0 = np.mean(x) # 椭圆中心x坐标
y0 = np.mean(y) # 椭圆中心y坐标
cov = np.cov(x, y) # 样本协方差矩阵
lambda_, v = np.linalg.eig(cov) # 求特征值和特征向量
a = np.sqrt(lambda_[0]) * critical_value # 长轴
b = np.sqrt(lambda_[1]) * critical_value # 短轴
theta = np.arctan2(v[1,

最低0.47元/天 解锁文章
1478

被折叠的 条评论
为什么被折叠?



