主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

lhsnorm

来自多元正态分布的拉丁超立方样本

说明

X = lhsnorm(mu,sigma,n) 返回数值矩阵 X,其中包含大小为 n 的拉丁超立方样本,该样本来自具有均值向量 mu 和协方差矩阵 sigma 的多元正态分布。X 的大小是 n×d,其中 dmu 的大小。X 类似于从多元正态分布生成的随机样本(请参阅 mvnrnd),但 lhsnorm 会调整每列的边缘分布,使得其样本边缘分布接近其理论正态分布。

示例

X = lhsnorm(mu,sigma,n,Smooth) 还设置样本平滑的类型。

[X,Z] = lhsnorm(___) 使用上述语法中的任何输入参量组合时还会返回原始多元正态样本 Zlhsnorm 会先用 mvnrnd 生成 z,然后调整边缘分布以获得 X

示例

全部折叠

定义二维正态分布的均值向量和协方差矩阵。

mu = [0 1];
sigma = [1 0.5; 0.5 1];

验证协方差矩阵是对称半正定矩阵。

issymmetric(sigma)
ans = logical
   1

eigenvalues = eig(sigma);
all(eigenvalues >= 0)
ans = logical
   1

sigma 的特征值均为非负值,说明协方差矩阵是半正定矩阵。

从二维正态分布创建一个大小为 100 的拉丁超立方样本。

X = lhsnorm(mu,sigma,100);

绘制 X 的第一列中的值的直方图。

hist(X(:,1))

Figure contains an axes object. The axes object contains an object of type patch.

输入参数

全部折叠

多元正态分布的均值向量,指定为 1×d 数值向量,其中 d 是多元正态分布的维度或是数值标量。

数据类型: single | double

多元正态分布的协方差矩阵,指定为 d×d 对称半正定矩阵,其中 d 是多元正态分布的维度或是数值标量。如果您将 sigma 指定为数值标量,它表示一维正态分布的方差。

数据类型: single | double

X 中返回的样本数,指定为非负整数。

数据类型: single | double

样本平滑的标志,指定为 "on""off"

  • 如果 Smooth"off",则 X 的每列在概率等级上都有等间距的点。因此,每列均为值 G(0.5/n), G(1.5/n), ..., G(1-0.5/n) 的排列,其中 G 是该列边缘分布的逆正态累积分布。

  • 如果 Smooth"on"(默认值),则 X 的每列都有在概率等级上均匀分布的点。因此,lhsnorm01 之间均匀分布的随机值中对 G 抽取 n 个样本。

数据类型: char | string

输出参量

全部折叠

来自多元正态分布的拉丁超立方样本,以 n×d 数值矩阵形式返回,其中 dmu 的大小。X 类似于从多元正态分布生成的随机样本(请参阅 mvnrnd),但 lhsnorm 会调整每列的边缘分布,使得其样本边缘分布接近其理论正态分布。

原始多元正态样本,以 n×d 数值矩阵形式返回,其中 dmu 的大小。lhsnorm 在调整边缘分布以获得 X 之前,会调用 mvnrnd 来创建 Z

提示

  • lhsnorm 要求协方差矩阵 sigma 是对称矩阵。如果 sigma 只是略有不对称,您可以使用 (sigma + sigma')/2 来解决不对称问题。

参考

[1] Stein, M. “Large Sample Properties of Simulations Using Latin Hypercube Sampling.” Technometrics 29, no. 2 (May 1987): 143–151.

版本历史记录

在 R2006a 之前推出