2015-03-02 38 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