【发布时间】:2020-07-24 02:55:18
【问题描述】:
我被要求抽样,然后做一个边际分布 $f(x_1,x_5)$ 并绘制它。我有以下代码,但 dnorm 用于一维,所以我想知道是否需要将其更改为 dmvnorm。
如果是这样,我更改 mu=mu.marginal,sigma=sigma.marginal,添加了一个 y 样本,但 dmvnorm 说由于非数组输入而出错。感谢任何帮助。
多元正态模型:
mu = c(1,2,6,2,-4)
sigma = c(1,2,1,0.5,2)
rho = diag(rep(1,5))
rho[1,2] = rho[2,1] = 0.4
rho[1,3] = rho[3,1] = -0.3
rho[1,4] = rho[4,1] = -0.7
rho[3,5] = rho[5,3] = 0.2
rho[4,5] = rho[5,4] = 0.5
Sigma = rho * (sigma %o% sigma)
我的代码:
p = c(1,5)
(mu.marginal = mu[p])
(Sigma.marginal = Sigma[p,p])
# p is one-dimensional: use dnorm() to compute marginal pdf
x = seq(-1,6,by=0.01)
fx = dnorm(x,mean=mu.marginal,sd=sqrt(Sigma.marginal))
ggplot(data=data.frame(x=x,y=fx),mapping=aes(x=x,y=y)) + geom_line(col="blue")
【问题讨论】:
-
您的代码注释说“p 是一维的”,但
(x_1, x_5)是二维的...为了确保我正确理解您的任务,您将从 @ 的边际分布中抽样987654324@ 并绘制样本? -
是的,抱歉它的意思是 p 是二维的
标签: r distribution sample normal-distribution multivariate-testing