r - 如何使用R确定一系列点是否位于3维椭球中?

标签 r

我使用 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/

相关文章:

r - 在 data.frame 行中查找 NA 值序列

sql - DBI/ Spark : how to store the result in a Spark Dataframe?

r - 对训练数据进行聚类后,如何预测新数据的聚类?

r - 如何在R中用科学记数法写数字

r - plotly R : setting the spacing between axis label and axis ticks labels

r - 在ggplot中使用annotation_map_tile为单个点添加 basemap

R 使用行索引合并文件

regex - R:用 sub 替换多个正则表达式

r - 从克隆的 repo 安装/导入 R 库

r - 从随机森林分类中绘制 ROC 曲线