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

如何在R的psych::pairs.panels中绘制更大的容忍椭圆?

解决psych::pairs.panels绘制更大容忍椭圆的问题

由于psych::pairs.panels没有直接提供设置椭圆半径的参数,你可以通过以下两种方式实现自定义大小的容忍椭圆:

方法一:自定义修改pairs.panels函数源码

pairs.panels默认绘制的是对应68%置信水平的椭圆(半径约1),我们可以复制其源码并修改椭圆绘制逻辑,添加自定义半径参数:

library(psych)
library(MASS) # 用于cov.trob估计稳健协方差

my_pairs_panels <- function(x, ellipse_radius = sqrt(qchisq(0.99, 2)), ...) {
  # 复制psych::pairs.panels的完整源码(控制台输入`psych::pairs.panels`可查看)
  # 找到原函数中绘制椭圆的代码块,替换为以下内容:
  if (ellipses) {
    el <- cov.trob(cbind(x[, i], x[, j]))
    lines(ellipse(el$cov, el$center, radius = ellipse_radius), 
          col = col[2], lwd = lwd)
  }
  # 其余源码保持与原pairs.panels一致
}

# 使用自定义函数绘制99%容忍椭圆
X <- iris
X1 <- subset(X, Species == "setosa")[,1:4]

my_pairs_panels(X1,
                method = "pearson",
                density = TRUE,
                ellipses = TRUE,
                lm = TRUE,
                ellipse_radius = sqrt(qchisq(0.99, 2)) # 99%容忍度,半径≈3.03
)

方法二:先绘制基础图,再手动叠加car::ellipse

先关闭pairs.panels的默认椭圆,然后遍历每个散点图面板,用car::ellipse添加自定义半径的椭圆:

library(psych)
library(car)

X <- iris
X1 <- subset(X, Species == "setosa")[,1:4]

# 绘制不带椭圆的pairs图
psych::pairs.panels(X1,
                    method = "pearson",
                    density = TRUE,
                    ellipses = FALSE, # 关闭默认椭圆
                    lm = TRUE
)

# 遍历所有散点图面板(下三角区域)
vars <- colnames(X1)
n_vars <- length(vars)

for (i in 2:n_vars) {
  for (j in 1:(i-1)) {
    # 切换到当前面板
    panel_idx <- (i-1)*(n_vars) + j
    plot.new()
    par(usr = par("usr"))
    
    # 提取当前变量对的数据
    x <- X1[, j]
    y <- X1[, i]
    
    # 计算均值和协方差
    mean_vals <- c(mean(x), mean(y))
    cov_mat <- cov(cbind(x, y))
    
    # 绘制99%容忍椭圆
    ellipse(cov_mat, center = mean_vals, 
            radius = sqrt(qchisq(0.99, 2)), # 对应99%容忍度
            col = "darkred", lwd = 2)
  }
}

关键参数说明

  • 容忍椭圆的半径对应卡方分布的分位数:
    • 68%置信水平:sqrt(qchisq(0.68, 2)) ≈ 1(默认)
    • 95%置信水平:sqrt(qchisq(0.95, 2)) ≈ 2.45
    • 99%置信水平:sqrt(qchisq(0.99, 2)) ≈ 3.03

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:07:47