我使用 R 中的以下代码生成 3 组二项式数据,其中先验是具有一些均值和方差的多元正态分布。我需要确定 p (p1,p2,p3) 的真实值是否落在 3-由 p (rate1,rate2,rate3) 的估计值创建的维度椭球空间。我为双变量做了一个类似的问题,我使用 point.in.polygon 作为函数。三变量和四变量是否有类似的东西?我编辑了我的代码,如何使用 3 组生成的数据绘制椭圆体。
library(MASS)
set.seed(1234)
m<-300
x<-NULL
k<-20
Sigma2 <- matrix(c(.58,.49,.37,.49,.58,.38,.37,.38,.34),3,3)
eta<-mvrnorm(k, mu=c(-0.85,-2.09,-1.90), Sigma2)
p1<-exp(eta[,1])/(1+exp(eta[,1]))
p2<-exp(eta[,2])/(1+exp(eta[,2]))
p3<-exp(eta[,3])/(1+exp(eta[,3]))
n<-60
x1<-replicate(m,rbinom(k,n,p1))
x2<-replicate(m,rbinom(k,n,p2))
x3<-replicate(m,rbinom(k,n,p3))
x<-cbind(x1,x2,x3)
rate<-x/60
x<-cbind(x1,x2,x3)
sigma<-var(rate)
origin<-c(mean(rate[,1]), mean(rate[,2]), mean(rate[,3]))
#origin<-c(0.349,0.184,0.148)
coords<-matrix(c(p1,p2,p3),nrow=3)
A<-sigma
cFromO<-coords-origin
Ell<-apply(cFromO,2,function(c){t(c) %*% A %*% c})<=1
Ell
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
最佳答案
我相信这里解决了完全相同的问题:
Ellipsoid R function - finding if a point fits in - R script
对于更高的维度,我相信给定 M 椭圆矩阵和点 p 的一个简单解决方案是检查 ginv(M)%*%p 的范数是否小于 1。
关于r - 如何使用R确定一系列点是否位于3维椭球中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28731608/