当前位置:网站首页>numpy.random使用文档
numpy.random使用文档
2022-08-05 05:25:00 【ProfSnail】
正态分布
二维正态分布
random.RandomState.multivariate_normal(mean, cov, size=None, check_valid='warn', tol=1e-8)
mean = (1, 2)
cov = [[1, 0], [0, 1]]
x = np.random.multivariate_normal(mean, cov, (3, 3))
第一个参数为均值向量,第二个参数为协方差矩阵。协方差矩阵参数与相关系数的关系如下。
ρ x y = C o v ( X , Y ) σ X σ Y \rho_{xy} = \dfrac{Cov(X,Y)}{\sigma_X \sigma_Y} ρxy=σXσYCov(X,Y)
下面展示不同的相关系数对生成的分布造成怎样的影响,
import numpy as np
from numpy.random import multivariate_normal
import matplotlib.pyplot as plt
def generate_data(mu1, mu2, stv1, stv2, rho, num):
cov = np.array([[stv1**2, rho*stv1*stv2],[rho*stv1*stv2, stv2**2]])
mu = np.array([mu1, mu2])
X = multivariate_normal(mu, cov, size=num)
plt.scatter(X[:,0], X[:,1], alpha=0.5, label=r'$\rho$={:.2f}'.format(rho))
for rho in [0, 0.23, 0.45, 0.68, 0.90]:
generate_data(0,0,1,1,rho,200)
plt.legend()
plt.show()
生成结果如下图:相关系数越接近1,变量之间的线性关系越明显,也就是椭球更扁平。
另外,根据多元高斯的性质,如果构成多元高斯分布,任意多个变量子集都构成高斯分布:如果独立投影到X轴和Y轴,会发现二者都服从高斯分布。
import numpy as np
from numpy.random import multivariate_normal
import matplotlib.pyplot as plt
def show_1d_gauss(mu1, mu2, stv1, stv2, rho, num, ax):
cov = np.array([[stv1**2, rho*stv1*stv2],[rho*stv1*stv2, stv2**2]])
mu = np.array([mu1, mu2])
X = multivariate_normal(mu, cov, size=num)
X1 = X[:, 0]
X2 = X[:, 1]
ax.scatter(X1, X2, alpha=0.5)
ax.scatter(X1, np.zeros_like(X1), alpha=0.2)
ax.scatter(np.zeros_like(X2), X2, alpha=0.2)
ax.set_title(r'$\rho$={:.2f}'.format(rho))
fig, axes = plt.subplots(2, 3)
rholist = [0, 0.23, 0.45, 0.68, 0.90, 1]
for i, rho in enumerate(rholist):
show_1d_gauss(0,0,1,1,rho,200, axes.flatten()[i])
plt.show()
结果如图所示
边栏推荐
猜你喜欢

What are some things that you only know when you do operation and maintenance?

Q 2020, the latest senior interview Laya soul, do you know?

Tencent Internal Technology: Evolution of Server Architecture of "The Legend of Xuanyuan"

selenium模块的操作之拉钩

LeetCode practice and self-comprehension record (1)

Operation and maintenance engineer, come and pick up the wool

From "dual card dual standby" to "dual communication", vivo took the lead in promoting the implementation of the DSDA architecture

教您简单几步实现工业树莓派正确安装RS232转USB驱动

Complete mysql offline installation in 5 minutes

VRRP概述及实验
随机推荐
请问下通过flink sql读取hologres 的两张表的 binlog,然后如何进行join?
DevOps流程demo(实操记录)
config.js相关配置汇总
记录vue-页面缓存问题
link 和@improt的区别
The method of using ROS1 bag under ROS2
transport layer protocol
BIO,NIO,AIO实践学习笔记(便于理解理论)
用户和用户组管理、文件权限管理
reduce()方法的学习和整理
The hook of the operation of the selenium module
What is the website ICP record?
ev加密视频转换成MP4格式,亲测可用
Mina断线重连
Come, come, let you understand how Cocos Creator reads and writes JSON files
el-autocomplete use
selenium learning
干货!教您使用工业树莓派结合CODESYS配置EtherCAT主站
路由器和静态路由的配置
ROS2下使用ROS1 bag的方法