R 如何确定点是否位于椭圆中

R 如何确定点是否位于椭圆中,r,statistics,R,Statistics,早些时候,我发布了一个类似的问题。我试图确定一个点是否位于椭圆内。基本上,我生成一些二元正态数据并创建一个椭圆。 这是我使用的代码 library(MASS) set.seed(1234) x1<-NULL x2<-NULL k<-1 Sigma2 <- matrix(c(.72,.57,.57,.46),2,2) Sigma2 rho <- Sigma2[1,2]/sqrt(Sigma2[1,1]*Sigma2[2,2]) eta<-re

早些时候,我发布了一个类似的问题。我试图确定一个点是否位于椭圆内。基本上,我生成一些二元正态数据并创建一个椭圆。 这是我使用的代码

 library(MASS)
 set.seed(1234)
 x1<-NULL
 x2<-NULL
 k<-1
 Sigma2 <- matrix(c(.72,.57,.57,.46),2,2)
 Sigma2
 rho <- Sigma2[1,2]/sqrt(Sigma2[1,1]*Sigma2[2,2])

 eta<-replicate(300,mvrnorm(k, mu=c(-2.503,-1.632), Sigma2)) 

 p1<-exp(eta)/(1+exp(eta))
 n<-60
 x1<-replicate(300,rbinom(k,n,p1[,1]))
 x2<-replicate(300,rbinom(k,n,p1[,2]))

 rate1<-x1/60
 rate2<-x2/60

 library(car)
 dataEllipse(rate1,rate2,levels=c(0.05, 0.95)) 
库(MASS)
种子集(1234)

x1
dataEllipse
将椭圆返回为多边形,因此您可以使用
sp
库中的
point.in.polygon
函数检查这些点是否在椭圆内:

ell = dataEllipse(rate1, rate2, levels=c(0.05, 0.95)) 
point.in.polygon(rate1, rate2, ell$`0.95`[,1], ell$`0.95`[,2])

当我运行以下代码时

library(MASS)
set.seed(1234)
x1<-NULL
x2<-NULL
k<-1
Sigma2 <- matrix(c(.72,.57,.57,.46),2,2)
Sigma2
rho <- Sigma2[1,2]/sqrt(Sigma2[1,1]*Sigma2[2,2])
eta<-replicate(300,mvrnorm(k, mu=c(-2.503,-1.632), Sigma2))
p1<-exp(eta)/(1+exp(eta))
n<-60
x1<-replicate(300,rbinom(k,n,p1[,1]))
x2<-replicate(300,rbinom(k,n,p1[,2]))
rate1<-x1/60
rate2<-x2/60
library(car)
ell = dataEllipse(rate1, rate2, levels=c(0.05, 0.95))
library(sp)
point.in.polygon(rate1, rate2, ell$`0.95`[,1], ell$`0.95`[,2])

只要找到C并减去半径


如果您确定了焦距的位置,则焦距加上距焦距点的距离之和在椭圆上为常数的点可以用作测试。您拼凑的示例对于退化情况下的圆是正确的,其中的焦间距离为零。@DWin lmfao您得到的是+1sir@DWin也不仅仅是为了圆。考虑一个变量的半径,当我运行你的代码时,我得到所有的零点。我不确定我是否理解它。我想看看这对(p1[,1],p1[,2])是否位于椭圆中。换句话说,估计的椭圆覆盖了真实的p>library(car)>library(sp)>ell点的多少次多边形(rate1,rate2,ell$
0.95
[,1],ell$
0.95
[,2])[1]0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 s用于您的响应。我想知道在300次模拟中,这对(p1[,1],p1[,2])落在(速率1,速率2)椭圆内的次数。@user156025:您可以使用
计数(point in.polygon…)获得落在椭圆内的点数
(我一次运行得到
289
),您可以使用
平均值(多边形点(…)
(在本例中为
0.9633
)得到概率。但是对于代码的最后一行,而不是多边形点(比率1,比率2,ell$
0.95
[,1],ell$
0.95
[,2])要确定估计的椭圆中是否包含真正的p,我应该做点in.多边形(p1[1,],p1[2,],ell$
0.95
[,1],ell$
0.95
[,2])我希望能在这方面得到一些帮助。当我运行Jake发布的上述代码时,我得到了所有的零。但是他的输出显示了一些1。我只是将代码复制粘贴到R。有什么想法吗?
  [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 [56] 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[111] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[166] 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1
[221] 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[276] 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1