2

X ~ N(mu, 3*sigma^2)

Y ~ N(mu,sigma^2)

我试图以图形方式证明 P[ |X-mu| < sigma ] < P[ |Y-mu| < sigma ](即蓝色曲线下面积小于红色曲线下面积0到sigma之间)

我创建了 |X-mu| 的 pdf 和 |Y-mu| 使用以下代码,我让 mu=0 和 sigma=1:

x<-seq(-10,10,length=10000000)

y1<-rnorm(x,mean=0,sd=sqrt(3))
y2<-rnorm(x,mean=0,sd=1)

absy1<-abs(y1-mean(y1))
absy2<-abs(y2-mean(y2))

plot(density(absy2), type="l", axes=FALSE, xlab = "", ylab = "", main="", col="red")
lines(density(absy1), col="blue")

abline(v=1,lty=2,col="black")

text(3.5,0.18,expression(abs(N(mu,3 * sigma^2)-mu)), col="blue")
text(1.5,0.48,expression(abs(N(mu,sigma^2)-mu)), col="red")
axis(1,at=0,labels=0, line=-1)
axis(1,at=1,labels=expression(sigma), line=-1)

这是我尝试使用的上述代码生成的图像的链接:

https://lh3.googleusercontent.com/-wYtqZpKfkQs/UFXzvAdB1WI/AAAAAAAAACU/W9bXfk-ghew/s371-pk/HW2problem2graph-iv.jpg

我想在 0 和 sigma 之间对每条曲线下的区域进行着色。

为了遮蔽其他正态分布曲线,我一直在使用类似下面的线,但我不能用它来解决这个问题(或者我不知道如何)。

polygon(c(0,xred,10),c(0,yred,0),col="mistyrose", border=NA)

非常感谢您的帮助!另外,如果有更好的绘制曲线的方法,请指教!(这是我学习 R 的第二天,所以请尽量说清楚!)谢谢。

解决方案 - 感谢@DWin

x<-seq(-10,10,length=10000000)

y1<-rnorm(x,mean=0,sd=sqrt(3))
y2<-rnorm(x,mean=0,sd=1)

absy1<-abs(y1-mean(y1))
absy2<-abs(y2-mean(y2))

plot(den2 <-density(absy2), type="l", axes=FALSE, xlab = "", ylab = "", main="", col="red")
with(den2, polygon(x=c(0, x[x < 1], rev(x[x<1]), 0), y=c(0, 0*x[x < 1], rev(y[x<1]), 0), col="mistyrose", border=NA))

lines(den1 <-density(absy1), col="blue")
with(den1, polygon(x=c(0, x[x < 1], rev(x[x<1]), 0), y=c(0, 0*x[x < 1], rev(y[x<1]), 0), col="aliceblue", border=NA))

abline(v=1,lty=2,col="black")

text(3.5,0.18,expression(abs(N(mu,3 * sigma^2)-mu)), col="blue")
text(1.75,0.48,expression(abs(N(mu,sigma^2)-mu)), col="red")
axis(1,at=0,labels=0, line=-1)
axis(1,at=1,labels=expression(sigma), line=-1)
4

1 回答 1

1

密度函数会产生绘制图形的副作用,但它也会返回一个包含命名为“x”和“y”组件的列表,因此您需要将其保存为命名对象(我将其命名为“den1”)并工作与那些组件。由于您的密度图中有一些“斜率”,您可能想查看 ISTR 具有接受约束的密度函数的“logspline”包。

因此,请将此作为您的初始绘图策略::

plot(den2 <-density(absy2), type="l", axes=FALSE, xlab = "", ylab = "", main="", col="red")
lines(den1 <-density(absy1), col="blue")

然后添加彩色多边形(在这种情况下,'sigma' 为 1):

with( den1, polygon(x=c(0, x[x < 1],   rev(x[x<1]), 0), 
                    y=c(0, 0*x[x < 1], rev(y[x<1]), 0), col="red") )

分解为 4 个组件,您以 [0,0] 为起点勾勒该区域,然后沿 x 轴绘制到 [sigma,0],然后将垂直线绘制到 [sigma, density(sigma)],然后沿着密度曲线并在 [0,0] 处关闭。

在此处输入图像描述

于 2012-09-16T16:37:20.170 回答