生成多元正态数据

本文详细介绍了R语言中MASS包的mvrnorm函数,用于生成服从多元正态分布的随机数据,通过两个实例展示了如何设置均值向量和协方差矩阵,以及如何处理生成的结果。
摘要由CSDN通过智能技术生成

目录

一、mvrnorm()函数使用介绍

例1:生成服从多元正态分布的数据

例2:生成一组服从多元正态分布的观测


一、mvrnorm()函数使用介绍

获取来自给定均值向量和协方差阵的多元正态分布的数据。

MASS包中的mvrnorm()函数可以让这个问题变得很容易,其调用格式为:

mvrnorm(n, mean, sigma)

其中n是你想要的样本大小,mean是均值向量,sigma是方差-协方差矩阵(或相关矩阵)。

可以想一下,产生的随机数据,一定是一个矩阵形式,有n行(即样本量为n,产生了n个观测),有p列(因为是多元随机变量,每一行是一个观测,相当于人的体重、身高、臂长、体脂率、年龄等数据信息。)

例1:生成服从多元正态分布的数据

library(MASS)
options(digits=3)
set.seed(1234) #设置随机种子,让结果可以重现(reproducible)

#指定均值向量和协方差矩阵
mean <- c(230.7, 146.7, 3.6)
sigma <- matrix(c(15360.8, 6721.2, -47.1, 6721.2, 4700.9, -16.5, -47.1, -16.5, 0.3), nrow=3, ncol=3)

mydata <- mvrnorm(500, mean, sigma)

#为了方便,将结果从矩阵转换为数据框
#并为变量指定了名称
mydata <- as.data.frame(mydata)
names(mydata) <- c("y","x1","x2")

dim(mydata)
head(mydata, n=10)

 结果:

例2:生成一组服从多元正态分布的观测

mvrnorm(1,rep(0,10),diag(rep(0.2^2,10)))

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值