对t-test生成的结果进行可视化
时间: 2024-02-12 20:08:48 浏览: 112
t4t-stats:基于 MCPLOTs 数据的 Test4Theory 排行榜
我们可以通过可视化来更好地展示t-test的结果。下面是一个使用Python进行t-test结果可视化的示例代码:
```python
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
# 生成两个样本数据,分布为正态分布
sample1 = np.random.normal(loc=5, scale=2, size=50)
sample2 = np.random.normal(loc=7, scale=2, size=50)
# 计算两个样本的均值和标准差
mean1, mean2 = np.mean(sample1), np.mean(sample2)
std1, std2 = np.std(sample1, ddof=1), np.std(sample2, ddof=1)
# 计算t值和p值
t, p = stats.ttest_ind(sample1, sample2)
# 输出结果
print("Sample 1: Mean={}, Std={}".format(mean1, std1))
print("Sample 2: Mean={}, Std={}".format(mean2, std2))
print("t-value={}, p-value={}".format(t, p))
# 绘制两个样本的分布图
plt.hist(sample1, bins=20, alpha=0.5, label='Sample 1')
plt.hist(sample2, bins=20, alpha=0.5, label='Sample 2')
plt.legend()
plt.show()
# 绘制t-test结果的可视化
x = np.linspace(-5, 15, 1000)
y1 = stats.norm.pdf(x, loc=mean1, scale=std1)
y2 = stats.norm.pdf(x, loc=mean2, scale=std2)
plt.plot(x, y1, label='Sample 1')
plt.plot(x, y2, label='Sample 2')
plt.fill_between(x, y1, y2, where=(x > mean1 and x < mean2), alpha=0.5)
plt.legend()
plt.show()
```
该代码使用了NumPy、SciPy和Matplotlib库。首先,通过`np.random.normal()`函数生成两个正态分布的样本数据。然后,使用`np.mean()`和`np.std()`函数计算两个样本的均值和标准差。接下来,使用`stats.ttest_ind()`函数计算t值和p值。然后,使用Matplotlib绘制两个样本的分布图。最后,使用Matplotlib绘制t-test结果的可视化,其中包括两个样本的概率密度函数和t-test的显著性区域。
阅读全文