首页 > 解决方案 > 如何在绘制等高线图时为二元分布(x-mu => 0)和(x-mu <0)添加条件?

问题描述

bivariate.ESEP <- function(x, mu, Sigma ,eps) 
{
sqrt(det(k))/(2*(gamma(1+2/alp))*sqrt(det(Sigma)))*
exp(-(((t(x-mu)%*% solve((I-eps)^2)%*% solve(Sigma) %*%k%*%(x-mu))^alp/2)*ifelse(x-mu>=0,1,0) +
(((t(mu-x)%*% solve((I+eps)^2)%*% solve(Sigma)%*%k%*%(mu-x)))^alp/2)))*ifelse(x-mu<0,1,0)
}

mu <- c(179.81,22.2)
Sigma <- matrix(c(0.6,0.35,0.35,2), nrow=2)

Sigma<-Sigma1
eps<-matrix(c(-0.186,0,0,0.6), nrow=2)
k<-matrix(c(1,0,0,1), nrow=2)
I<-matrix(c(1,0,0,1), nrow=2)
alp =1
x1 <- seq(150, 220)
x2 <- seq(0, 40)
z <- outer(x1, x2, FUN=function(x1, x2, ... ){
         apply(cbind(x1,x2), 1, bivariate.ESEP, ...)
       }, mu=mu, Sigma=Sigma ,eps = eps)
plot(dat1, xlab="Ht", ylab="BMI", pch=19, cex=.7)
contour(x1, x2, z, col="blue", drawlabels=FALSE, nlevels= 20,
    xlab=expression(x[1]), ylab=expression(x[2]), lwd=1, add = TRUE)

x 是一个二元分布。所以如果 (x>=mu) 那么我们取 bivariatte.ESEP 的第一部分并将另一部分 0 和类似地 if (x

标签: r

解决方案


推荐阅读