多元正态分布

正态分布大家都非常熟悉了,多元正态分布就是多维数据的正态分布,其概率密度函数为

上式为 x 服从 k 元正态分布,x 为 k 维向量;|Σ| 代表协方差矩阵的行列式

二维正态分布概率密度函数为钟形曲面,等高线是椭圆线族,并且二维正态分布的两个边缘分布都是一维正态分布,如图

np.random.multivariate_normal

生成一个服从多元正态分布的数组      【适用于 python3,但在 python2 中也能用】

multivariate_normal(mean, cov, size=None, check_valid=None, tol=None) 

mean:均值,维度为1,必选参数;

cov:协方差矩阵,必选参数;

size: 指定生成矩阵的维度,若size=(1, 1, 2),则输出的矩阵的 shape 即形状为 1X1X2XN(N为mean的长度);

check_valid:可取值 warn,raise以及ignore;

tol:检查协方差矩阵奇异值时的公差,float类型;

示例

mean = (1, 2)
cov = [[1, 0], [0, 1]]
x = np.random.multivariate_normal(mean, cov, (2, 2), 'raise') # 2x2x2
print(x)

直接生成数组

scipy.stats.multivariate_normal

生成一个多元正态分布

def __call__(self, mean=None, cov=1, allow_singular=False, seed=None)

示例-生成多元正态分布

import numpy as np
import scipy.stats as st
import matplotlib.pylab as plt x, y = np.mgrid[-1:1:.01, -1:1:.01]
pos = np.empty(x.shape + (2,))
pos[:, :, 0] = x; pos[:, :, 1] = y
rv = st.multivariate_normal([0, 0], [[1, 0], [0, 1]]) # 生成多元正态分布
print(rv) # <scipy.stats._multivariate.multivariate_normal_frozen object at 0x08EDDDB0> 只是生成了一个对象,并没有生成数组
plt.contourf(x, y, rv.pdf(pos))
plt.show()

示例-概率密度函数

x = np.linspace(0, 5, 10, endpoint=False)       # 样本
y = st.multivariate_normal.pdf(x, mean=2.5, cov=.5) # 样本的概率密度函数 plt.plot(x, y)
plt.show()

生成了概率密度曲线

可用方法

pdf(x, mean=None, cov=1) :概率密度函数

logpdf(x, mean=None, cov=1) :概率密度函数日志

rvs(mean=None, cov=1) :从多元正态分布中随机抽取样本

entropy() :计算多元法线的微分熵

参考资料:

https://www.cnblogs.com/21207-iHome/p/8039741.html  多元正态分布

https://blog.csdn.net/zch1990s/article/details/80005940  np.random.multivariate_normal方法浅析

https://www.cnblogs.com/wanghui-garcia/p/10763418.html   scipy.stats.multivariate_normal的使用

multivariate_normal 多元正态分布的更多相关文章

  1. Multivariate normal distribution | 多元正态分布

    现在终于需要用到了.

  2. scipy.stats.multivariate_normal的使用

    参考:https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.multivariate_normal.html ...

  3. np.random.multivariate_normal方法浅析

    从多元正态分布中抽取随机样本. 多元正态分布,多正态分布或高斯分布是一维正态分布向更高维度的推广.这种分布由其均值和协方差矩阵来确定.这些参数类似于一维正态分布的平均值(平均值或"中心&qu ...

  4. Hotelling T2检验和多元方差分析

    1.1 Hotelling T2检验 Hotelling T2检验是一种常用多变量检验方法,是单变量检验的自然推广,常用于两组均向量的比较. 设两个含量分析为n,m的样本来自具有公共协方差阵的q维正态 ...

  5. SPSS数据分析—多元方差分析

    之前的单因素方差分析和多因素方差分析,都在针对一个因变量,而实际工作中,经常会碰到多个因变量的情况,如果单纯的将其拆分为多个单因变量的做法不妥,需要使用多元方差分析或因子分析 多元方差分析与一元方差分 ...

  6. 正态分布(Normal distribution)又名高斯分布(Gaussian distribution)

    正态分布(Normal distribution)又名高斯分布(Gaussian distribution),是一个在数学.物理及project等领域都很重要的概率分布,在统计学的很多方面有着重大的影 ...

  7. 多元高斯分布(The Multivariate normal distribution)

    在数据建模时,经常会用到多元高斯分布模型,下面就这个模型的公式并结合它的几何意义,来做一个直观上的讲解. 1, 标准高斯函数 高斯函数标准型: $f(x) = \frac{1}{\sqrt{2π}}e ...

  8. ML—R常用多元统计分析包(持续更新中……)

    基本的R包已经实现了传统多元统计的很多功能,然而CRNA的许多其它包提供了更深入的多元统计方法,下面要综述的包主要分为以下几个部分: 1) 多元数据可视化(Visualising multivaria ...

  9. 使用正态分布变换(Normal Distributions Transform)进行点云配准

    正态分布变换算法是一个配准算法,它应用于三维点的统计模型,使用标准优化技术来确定两个点云间的最优的匹配,因为其在配准过程中不利用对应点的特征计算和匹配,所以时间比其他方法快.下面是PCL官网上的一个例 ...

随机推荐

  1. 8.4 JavaScript(一)

    参考链接:http://how2j.cn/k/javascript/javascript-javascript-tutorial/519.html 一.JavaScript是什么 JavaScript ...

  2. Django的JWT机制工作流程

    https://blog.csdn.net/bin_1022/article/details/81278513 django-rest-framework-jwt token 怎么解码得到用户名? d ...

  3. leetcode-hard-ListNode-23. Merge k Sorted Lists

    mycode   91.2% # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x ...

  4. @Transient的应用

    我今天分配的任务是为一个页面Debug,遇到了一个问题查询的实体类在数据库没有对应的表,这时最常用的是建立视图或者表,但是应用@Transient注释可以让你更简单,免除建立表还有视图需要找多表关联关 ...

  5. js闭包解决多个点击事件

    <script> var severalObj=window.document.getElementsByName("button"); for(var i=0;i&l ...

  6. Statement、 PreparedStatement 、CallableStatement 区别和联系

    Statement. PreparedStatement .CallableStatement 区别和联系 1. Statement.PreparedStatement和CallableStateme ...

  7. 5、kubernetes资源清单定义入门

    使用配置清单创建资源 定义pod时使用yaml格式 master ~]# kubectl get pod NAME READY STATUS RESTARTS AGE client / Error 1 ...

  8. GB 和 GiB 的区别

    GB 和 GiB 的区别 Gibibyte (GiB) is one of the standard units used in the field of data processing and da ...

  9. 如何在Github下载jackson的jar包

    -------------------------这是jackson-annotations的,往下拉找到Downloads就有jar包下载了 https://github.com/FasterXML ...

  10. TYPES与DATA区别

    例如:int  a; "c语言定义 TYPES:BEGIN OF typ,   filed1 TYPE c,   END OF typ.         "相当于int类型 DAT ...