帮助绘制置信椭圆

机器算法验证 r 置信区间 多元分析
2022-03-24 13:21:11

car package 的ellipse 函数需要一个radius参数。在帮助中说这是“生成椭圆的圆的半径”。你能告诉我这是哪个圆圈吗?

非常感谢

1个回答

椭圆可以参数化为任何给定圆的仿射图像。如果我们考虑单位圆:

x=acos(t)
y=bsin(t)

ellipse(center, shape, radius, log="", center.pch=19, center.cex=1.5, 
  segments=51, add=TRUE, xlab="", ylab="", 
   col=palette()[2], lwd=2, fill=FALSE, fill.alpha=0.3, grid=TRUE, ...)

您可以注意到该ellipse函数要求圆的中心和半径,以及协方差矩阵,这相当于给出了仿射变换的参数。

center  2-element vector with coordinates of center of ellipse.
shape   2 * 2 shape (or covariance) matrix.
radius  radius of circle generating the ellipse.

让我们看一下car包函数:

ellipse <- t(center + radius * t(unit.circle %*% chol(shape)))

radius如果要直接对参数使用协方差矩阵,可以将该参数设置为 1 shape我相信引入它是为了帮助人们使用归一化矩阵,如果他们愿意的话。


编辑:正如 whuber 的评论中提到的,下面的两个椭圆是相同的。

> library(car)
> s=matrix(c(1,0,0,1), nrow=2, ncol=2)
> plot(0, 0, xlim=c(-5,5), ylim=c(-5,5))
> ellipse(c(0,0), 4*s, 1)
> ellipse(c(0,0), s, 2)