You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于statsmodels示例,如何筛选置信区间外的x、y数据点?

提取置信区间外的数据点方法

嘿,我来帮你搞定这个问题!你已经用statsmodels的summary_table算出了95%置信区间的上下限,现在要揪出那些落在区间外面的x和y数据点其实很简单,跟着下面的步骤来就行:

首先先回顾你给出的基础代码:

import numpy as np 
import statsmodels.api as sm 
from statsmodels.stats.outliers_influence import summary_table 

# measurements
n = 100 
x = np.linspace(0, 10, n) 
e = np.random.normal(size=n) 
y = 1 + 0.5*x + 2*e 
X = sm.add_constant(x) 
re = sm.OLS(y, X).fit() 
st, data, ss2 = summary_table(re, alpha=0.05) 
predict_ci_low, predict_ci_upp = data[:, 6:8].T 

接下来只需要三步就能筛选出目标数据点:

  • 第一步:创建筛选掩码
    我们需要生成一个布尔数组,标记哪些原始y值小于置信区间下限,或者大于置信区间上限:

    # 生成掩码:标记y值在置信区间外的位置
    outliers_mask = (y < predict_ci_low) | (y > predict_ci_upp)
    
  • 第二步:提取目标数据
    用上面的掩码直接对x和y数组进行索引,就能得到所有落在置信区间外的数据点:

    # 提取置信区间外的x和y值
    x_outliers = x[outliers_mask]
    y_outliers = y[outliers_mask]
    
  • 第三步:查看结果(可选)
    如果你想把这些数据点以(x,y)对的形式展示,可以把它们组合成二维数组:

    # 组合成(x,y)对的二维数组
    outliers = np.column_stack((x_outliers, y_outliers))
    print("落在95%置信区间外的数据点:")
    print(outliers)
    

这样你就能精准拿到所有不在置信区间内的x和y数据啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:56:36