利用 scipy.stats 产生随机变量:总体 X1 服从标准正态分布,总体 X2 服从均值为 2,方 差为 9 的正态分布;对 X1 和 X2 各取 10 个样本,求这两个总体样本之间的协方差矩阵和相 关系数矩阵。
时间: 2024-09-16 17:03:48 浏览: 71
在Python中,你可以使用`scipy.stats`库生成指定分布的随机变量,并计算样本间的协方差矩阵和相关系数矩阵。首先,我们需要导入所需的库:
```python
import numpy as np
from scipy.stats import norm, ttest_ind_from_stats
```
然后,我们可以创建两个正态分布的对象,一个代表标准正态分布(X1),另一个有特定均值和方差(X2):
```python
# 标准正态分布 (平均值=0, 方差=1)
dist_x1 = norm()
# 特定分布 (平均值=2, 方差=9)
dist_x2 = norm(loc=2, scale=3) # loc表示均值,scale表示标准差,两者共同决定方差
# 分别抽取10个样本
sample_size = 10
x1_samples = dist_x1.rvs(sample_size)
x2_samples = dist_x2.rvs(sample_size)
```
接下来,我们计算样本的协方差矩阵(covariance matrix)和相关系数矩阵(correlation matrix):
```python
# 协方差矩阵
cov_matrix = np.cov(x1_samples, x2_samples)
# 相关系数矩阵,因为它们都是正态分布,相关系数就是它们的协方差除以各自的标准差
corr_matrix = np.corrcoef(x1_samples, x2_samples)
```
在这里,`np.cov()`函数会返回一个二维数组,其中每个元素是对应两个维度上数据点的样本协方差,而`np.corrcoef()`则直接给出了对应元素的皮尔逊相关系数。
阅读全文