如何计算2D标准偏差(平均值为0,以界限为边界)


10

我的问题如下:我从某个点一次在地面上几米处投下40个球。球滚动,停下来。使用计算机视觉,我计算了XY平面中的质心。我只对从质心到每个球的距离感兴趣,这是使用简单几何图形计算的。现在,我想知道与中心的单侧标准偏差。因此,我将能够知道一定数量的球在一个std半径内,更多球在2 * std半径内,依此类推。如何计算单面标准偏差?正常方法将声明一半球位于0均值的“负侧”。在这个实验中,这当然是没有意义的。我是否必须确保滚珠符合标准分布?感谢您的任何帮助。

Answers:


13

要表征质心周围的2D色散量,您只需要(均方根)均方根距离,

σ^=RMS=1ni((xix¯)2+(yiy¯)2).

在这个公式中 (xi,yi),i=1,2,,n 是点坐标,其质心(平均值点)是 (x¯,y¯).


这个问题要求距离的分布。当球的质心周围具有各向同性的二元正态分布时(这是一个标准且物理上合理的假设),平方距离与具有两个自由度的卡方分布成比例(每个坐标一个)。这是将卡方分布定义为独立标准正态变量的平方和的直接结果,因为

xix¯=n1nxiji1nxj
是独立正态变量与期望的线性组合
E[xix¯]=n1nE[xi]ji1nE[xj]=0.
写出共同方差 xiσ2
E[(xix¯)2]=Var(xix¯)=(n1n)2Var(xi)+ji(1n)2Var(xj)=n1nσ2.
各向异性的假设是 yj 具有与 xi 并且与它们无关,因此对于 (yjy¯)2。这样就建立了比例常数:距离的平方具有两个自由度的卡方分布,按比例缩放n1nσ2

这些方程式最严峻的考验是 n=2,那么分数 n1n 与最大的不同 1。通过模拟实验,n=2n=40,并用缩放的卡方分布(红色)过度绘制平方距离的直方图,我们可以验证这一理论。

数字

每行显示相同的数据:x轴的左边是对数; x轴是对数。在右侧,它显示了实际的平方距离。的真实价值σ 这些模拟设置为 1

这些结果用于100,000次迭代 n=2 和50,000次迭代 n=40。直方图和卡方密度之间的一致性非常好。


虽然 σ2未知,可以通过各种方式进行估算。例如,均方距离应为n1nσ2 乘以平均值 χ22,这是 2。用n=40,例如估算 σ24039/2乘以均方根距离。因此,对σ 将会 40/78乘以RMS距离。使用的值χ22 分布,我们可以这样说:

  • 大约39%的距离小于 39/40σ^,因为39%的 χ22 分布小于 1

  • 大约78%的距离小于 339/40σ^,因为78%的 χ22 分布小于 3

依此类推,您可以使用任意多个代替 1 要么 3。作为检查,在模拟中n=40 先前绘制的距离的实际比例小于 1,2,,10n1nσ^2

0.3932 0.6320 0.7767 0.8647 0.9178 0.9504 0.9700 0.9818 0.9890 0.9933

理论比例是

0.3935 0.6321 0.7769 0.8647 0.9179 0.9502 0.9698 0.9817 0.9889 0.9933

协议很好。


这是R进行和分析仿真的代码。

f <- function(n, n.iter, x.min=0, x.max=Inf, plot=TRUE) {
  #
  # Generate `n.iter` experiments in which `n` locations are generated using
  # standard normal variates for their coordinates.
  #
  xy <- array(rnorm(n*2*n.iter), c(n.iter,2,n))
  #
  # Compute the squared distances to the centers for each experiment.
  #
  xy.center <- apply(xy, c(1,2), mean)
  xy.distances2 <- apply(xy-array(xy.center, c(n.iter,2,n)), c(1,3), 
                         function(z) sum(z^2))
  #
  # Optionally plot histograms.
  #
  if(plot) {
    xy.plot <- xy.distances2[xy.distances2 >= x.min & xy.distances2 <= x.max]

    hist(log(xy.plot), prob=TRUE, breaks=30,
         main=paste("Histogram of log squared distance, n=", n),
         xlab="Log squared distance")
    curve(dchisq(n/(n-1) * exp(x), df=2) * exp(x) * n/(n-1), 
          from=log(min(xy.plot)), to=log(max(xy.plot)), 
          n=513, add=TRUE, col="Red", lwd=2)

    hist(xy.plot, prob=TRUE, breaks=30,
         main=paste("Histogram of squared distance, n=", n),
         xlab="Squared distance")
    curve(n/(n-1) * dchisq(n/(n-1) * x, df=2), 
          from=min(xy.plot), to=max(xy.plot), 
          n=513, add=TRUE, col="Red", lwd=2)  
  }
  return(xy.distances2)
}
#
# Plot the histograms and compare to scaled chi-squared distributions.
#
par(mfrow=c(2,2))
set.seed(17)
xy.distances2 <- f(2, 10^5, exp(-6), 6)
xy.distances2 <- f(n <- 40, n.iter <- 50000, exp(-6), 12)
#
# Compare the last simulation to cumulative chi-squared distributions.
#
sigma.hat <- sqrt((n / (2*(n-1)) * mean(xy.distances2)))
print(cumsum(tabulate(cut(xy.distances2, 
                    (0:10) * (n-1)/n * sigma.hat^2))) / (n*n.iter), digits=4)
print(pchisq(1:10, df=2), digits=4)

2
感谢您提供非常全面的答案。我不能完全理解RMS公式如何描述标准偏差而不用球数来表示。如果您将其与http://en.wikipedia.org/wiki/Root-mean-square_deviation_(生物信息学进行比较,他们会将总和除以N。该总和应除以N还是N-1(因为40个球只是一个从
一群

再次进行计算之后,似乎sqrt(SDx ^ 2 + SDy ^ 2)是我想要的。这将为我提供一个包含所有球的概率为65%的圆的半径,对吗?
K_scheduler 2013年

这是RMS的等效公式,但是65%的值不正确,如此答案所述。
ub

2
@nali我在这里的回答中清楚地指出了所有这些要点。
ub

4
@nali您在这里发表的帖子在粗鲁无礼和人为攻击方面超出了礼节的范围。尽管我不担心被视为无知或愚蠢的人,但作为该网站的主持人,我必须关注保持论述的民俗性,因此不能容忍您发布的vituperation。因此,我删除了您的最新评论。如果我发现您的评论对任何人都毫无礼貌,我将其删除而无需另行通知,并且我(或其他主持人)将立即采取措施限制您在此网站上的互动。
ub

4

我认为您有些困惑。的确,距离不能为负,但这不会影响标准偏差的计算。尽管这意味着距离的分布可能不完全态的,但仍可能是接近的。但是即使它与正常值相差很远,仍然存在标准偏差。

同样,没有“单面”标准偏差-您可能正在考虑假设检验(可以是单面或双面)。在标题中,您说的均值为0,但平均距离不会为0(除非球在堆栈中的高度为40球!),并且您说有限制-如果球掉入,则可能有限制一个房间,那么他们离中心的距离就不会比离最近的墙的距离远。但是,除非某些球弹到墙壁上,否则不会影响任何事情。

因此,一旦有了40个距离,就可以使用标准方法计算标准差(以及均值,中位数,四分位数范围等)。您还可以绘制距离图(例如,分位数正态图,箱形图),以查看其是否大致呈正态分布(如果感兴趣)。


谢谢彼得,我没有正确表达自己。让我尝试澄清一下:从上面想象场景。您计算出平均距离,它将显示为围绕质心的圆(平均距离=半径)。现在,与此相关的+/- std偏差将产生一个较小的圆圈和一个较大的圆圈。我不想知道到质心的平均距离的标准偏差,而是想知道从质心向外的标准偏差。换句话说,在距质心的半径内,所放置的球为68.2%(一个标准偏差)。
K_scheduler 2013年

哦好的。那么我认为这不是统计问题,而是数学问题。知道会跌到68.2%的地方...我忘记了答案,但这涉及π
Peter Flom

您的第一个答案可能是正确的。根据我的发现,使用径向标准偏差应该可以解决问题。RSD = sqrt(SDx ^ 2 + SDy ^ 2)
K_scheduler 2013年

1

自问这个问题以来已经有一段时间了,但问题的答案是这就是名为Rayleigh分布的2D分布。在此假设瑞利形状因子等于X和Y坐标的标准偏差。实际上,将从X和Y的标准偏差的合并平均值中计算出形状因子的值。

从...开始

XN(μx,σx2)
YN(μy,σy2)

使用双变量正态分布。

f(x,y)=12πσxσy1ρ2exp(12(1ρ2)[(xμx)2σx2+(yμy)2σy22ρ(xμx)(yμy)σxσy])

转换为点

(μx,μy)
并假设
ρ=0

还假设

σx2=σy2
所以都换成
σ2

然后将二维分布表示为围绕点的半径

(μx,μy)
这就是瑞利分布

PDF(r;σ)=rσ2exp(r22σ2)
哪里
σ=σx=σy
ri=(xiμx)2+(yiμy)2

CDF(r;σ)=1exp(r22σ2)

当然,这是用于连续分发。对于仅40个球的样本,没有确切的解决方案。您需要使用40个球的样本进行蒙特卡洛分析。泰勒(Taylor,MS)和格鲁布斯(Grubbs),弗兰克·E(Frank E.)(1975)。“极端点差的近似概率分布”找到了Chi分布的估计值,其对数正态分布将适合样本的分布。


编辑-尽管有Wuber的怀疑,但他计算出的理论比例是:

0.3935 0.6321 0.7769 0.8647 0.9179 0.9502 0.9698 0.9817 0.9889 0.9933

从CDF函数中,r的累积Sigma值(以sigma为单位)等于:

0-1、0-2、0-3,...,0-10

是:

0.3935、0.6321、0.7769、0.8647、0.9179、0.9502、0.9698、0.9817、0.9889、0.9933


感谢您命名发行版本。但是,通过(1)不区分分布的参数和从数据得出的该参数的估计值,(2)不陈述关于球的分布所需的(严格)假设,以及(3)含糊其词,您就有风险误导读者。确实,不清楚您的“ this”是什么意思:这是球的位置分布吗?(否)质心的分布?(是的,但是比例参数不同于球的标准偏差。)您想澄清您的答案吗?
ub

填补了空白
。...– MaxW

谢谢您的澄清,麦克斯。作为对答案正确性的简单检查,让我们考虑一个球而不是40。您的答案似乎声称该球与所有球的质心之间的距离分布是瑞利分布。不幸的是,在这种情况下,该距离始终为零。(问题具体描述为“质心到每个球的距离,这是使用简单的几何体计算的。”)这表明您的答案在每种情况下都可能是错误的,包括40球。
ub

分布大约是质心。
MaxW

CDF设置为一个球。从CDF中,有39%的球会落入半径σ的圆内,在2σ内的半径为86%,在3σ内的半径为99%。
MaxW 2015年

-1

如果您认识到此正态分布是针对半径或“距质心的距离”,则正负两个正态分布都有意义。另一个变量角度是随机的,并且从0-pi均匀分布


绝对不能为负的半径绝对不会具有正态分布!
ub
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.