r - 如何在绘制等高线图时为二元分布(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
解决方案
推荐阅读
- php - 从一个 PHP 文件触发多个文件
- python - 获取使用 matplotlib 创建的绘图中矩形的宽度
- gradle - Gradle 构建单个模块
- python - 在python中找到两个元素的不同对,使得两个元素之和等于0
- python - 如何仅在 N 秒 n Python 后在另一个函数中执行任务?
- windows - 根据系统信息调用 Web 请求
- r - Probit 模型不起作用,如何在 r 模型中编写下标?
- css - Typescript - CSS 打印设置 - Break Div
- r - R - 查找向量的字符是否在另一个向量中
- python - Networkx 哈密顿循环