R 用二元椭圆求覆盖

R 用二元椭圆求覆盖,r,statistics,R,Statistics,我正在努力解决一个估计问题。在几个例子中,我展示了如何使用由二元正态分布生成的点向量计算二元椭圆。代码运行良好,只是覆盖率(生成的或真实的ps(p1,p2)包含在估计椭圆中的次数)似乎非常低。我还应该指出,与新版本相比,旧版本的R给出了显著不同的结果。我现在使用的是R3.0.1。下面是能够重现问题的代码 library(MASS) set.seed(1234) x1<-NULL x2<-NULL k<-1 Sigma2 <- matrix(c(.7

我正在努力解决一个估计问题。在几个例子中,我展示了如何使用由二元正态分布生成的点向量计算二元椭圆。代码运行良好,只是覆盖率(生成的或真实的ps(p1,p2)包含在估计椭圆中的次数)似乎非常低。我还应该指出,与新版本相比,旧版本的R给出了显著不同的结果。我现在使用的是R3.0.1。下面是能够重现问题的代码

  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(-1.01,-2.39), Sigma2)) 
  p1<-exp(eta)/(1+exp(eta)) # true p's
  n<-60
  x1<-replicate(300,rbinom(k,n,p1[1,])) 
  x2<-replicate(300,rbinom(k,n,p1[2,]))

  rate1<-x1/60  # Estimated p's
  rate2<-x2/60
  library(car)
  ell <- dataEllipse(rate1, rate2, levels=c(0.05, 0.95))
  library(sp)
  within<-point.in.polygon(p1[1,], p1[2,], ell$`0.95`[,1], ell$`0.95`[,2])
  mean(within)    # coverage
库(MASS)
种子集(1234)

x1错误在于以下几行:

x1<-replicate(300,rbinom(k,n,p1[1,])) 
x2<-replicate(300,rbinom(k,n,p1[2,]))
正确的代码提供了适当的覆盖率(约95%):


x1错误在于:

x1<-replicate(300,rbinom(k,n,p1[1,])) 
x2<-replicate(300,rbinom(k,n,p1[2,]))
正确的代码提供了适当的覆盖率(约95%):


x1作为后续,R中是否有函数查找上述生成椭圆的面积?作为后续,R中是否有函数查找上述生成椭圆的面积?
x1<-rbinom(300,n,p1[1,])
x2<-rbinom(300,n,p1[2,])
rate1<-x1/60  # Estimated p's
rate2<-x2/60
library(car)
plot.new()
ell <- dataEllipse(rate1, rate2, levels=c(0.05, 0.95), plot.points=T, pch=NA)
library(sp)
within<-point.in.polygon(p1[1,], p1[2,], ell$`0.95`[,1], ell$`0.95`[,2])
mean(within)  

plot(p1[1,which(within==1)], p1[2,which(within==1)], col="blue", ylim=c(0,1),xlim=c(0,1))
points(p1[1,which(within==0)], p1[2,which(within==0)], col="green")
ell <- dataEllipse(rate1, rate2, levels=c(0.05, 0.95), plot.points=T, pch=NA, add=T)