2013-05-20 2 views
2

의 dataEllipse 함수와 일치 시키려면 R의 다 변수 정규 분포에서 샘플링을하고 패키지 자동차의 ellipse() 함수를 사용하여 95 % 신뢰도 타원을 계산하는 방법을 파악하려고합니다. . 그래서 기본적으로 내가 타원 명령은 dataEllipse 명령을 복제 할타원 함수를 R

mu = c(0,0) 
sigma = matrix(c(20,0,0,45),nrow=2) 

z = rmvnorm(10000,mu,sqrt(sigma)) 

par(mfrow=c(1,2)) 
plot(z) 
ellipse(mu,sqrt(sigma*qchisq(.05,2)),radius=1) 
dataEllipse(z,levels=.95) 

: 여기

내가 실행하고 일부 코드입니다. 누군가에게 크게 감사 할 제안이 있다면! Dwins 코드를 사용하여 내 자신 내에서 결합 : 당신이 볼 수있는

library(car) 
library(mvtnorm) 

mu = c(0,0) 
sigma = matrix(c(20,0,0,45),nrow=2) 

z = rmvnorm(10000,mu,sqrt(sigma)) 

dataEllipse(z,levels=.95) 
car::ellipse(mu, sigma*qchisq(.05,2), col="blue", 
       radius=sqrt(2 * qf(.975, 2, 9998))) 

enter image description here

을 따라서, 타원은 여전히 ​​동일하지 않습니다 ...

답변

2

나 '편집

당신이 내게 그렇게해서는 안되지만) rmvnorm은 'mixtools'에서 왔으며 'car'다음에로드되었습니다. ellipse에 대한 인수가 공분산 행렬이라고 가정하기 때문에 sqrt() 함수가 필요하다고 생각하지 않습니다. 또한 그 순간에 그것은 음모를 꾸미고 있지만 당신은 그것을 볼 수 없습니다. 왜냐하면 당신은 그것의 붉은 색 (또는 무엇인가)을 색칠하지 않았기 때문입니다. 또한 'mixtools'와 'car'에는 모두 ellipse 함수가 있으므로, cars 버전 (mixtools 버전과 달리 반경 인수가 있음)을 원하면 double 콜론 규칙을 사용하여 호출해야합니다.

library(car); library(mixtools) 
car::ellipse(mu, sigma*qchisq(.05,2), col="red", 
       radius=sqrt(2 * qf(.975, 2, 9998))) 
+0

rmvnorm은 실제로 라이브러리 (mvtnorm)입니다. 그리고 네, sqrt() 함수를 내 covaraince 행렬에 연결하는 것을 의미하지는 않습니다. –

+0

그러나 제공된 코드를 실행하면 여전히 dataEllipse() 함수와 같은 대답을 얻지 못합니다. –

+0

매개 변수 선택에 대한 정당성은 무엇입니까? 반경 매개 변수를 올바르게 사용하는 방법을 파악하는 데 어려움을 겪고 있습니다. –