2015-03-02 73 views
9

下面的代码段创建二元正态的数据,绘制它然后与线Y = X当图形窗口不是方形时,为什么椭圆会改变方向?

require(ellipse); require(MASS) 

mu <- c(30,30) 
Sigma <- matrix(c(900,630,630,900),2,2,byrow=TRUE) 
dt <- data.frame(mvrnorm(n=1000,mu,Sigma)) 
names(dt) <- c("x","y") 


plot(dt$x,dt$y) 

df_ell <- data.frame(ellipse(cor(dt$x, dt$y), scale=c(sd(dt$x),sd(dt$y)), centre=c(mean(dt$x),mean(dt$y)))) 
lines(df_ell) 
abline(a=0,b=1) 

的直线y = x应通过适当的协方差结构的椭圆的长轴沿着绘制椭圆和平等的手段。

在一个正方形图形窗口,一切似乎很动听: enter image description here

但是,如果调整窗口的大小,使其不再是方形,椭圆形,似乎自己从线定向远:

enter image description here

是什么导致了这种情况的发生?

+2

绘制'y = x'线。线和'x'轴之间的角度是多少?然后调整窗口大小,就像你在这个问题中所做的那样。现在是什么角度? – nicola 2015-03-02 20:25:19

+1

相关:http://stackoverflow.com/questions/4587794/drawing-non-intersecting-circles,http://stackoverflow.com/questions/6322603/trying-to-draw-circles-based-on-distance-between点; 'MASS:eqscplot'可能会有用。 – 2015-03-02 21:19:13

回答

10

这是一种错觉。当坐标不是正方形时,椭圆看起来有点奇怪。


请注意,您的椭圆是基于从样品,而不是真正的潜在价值估计,所以它不是很正确对齐下手。

df_ell2 <- data.frame(ellipse(0.7, scale=c(30,30), centre=c(30,30)), npoints=101) 

现在绘制与切线椭圆以及其长轴:

plot(dt$x,dt$y) 
lines(df_ell2) 
abline(0, 1) 
abline(df_ell2[1,1]*2, -1) 
abline(df_ell2[51,1]*2, -1) 

ellipse with major axis and tangents

希望切线让你看到椭圆正确对齐,而是倾斜纵横比。

+3

观察的另一个可能有用的事情是,正好位于椭圆上的点集在方形图上与在椭圆形图上相同。 – 2015-03-02 21:17:57