我生成一个随机数据样本并使用 scipy.stats.norm.fit 绘制其 pdf 以生成我的 loc 和 scale 参数。
我想看看如果我只是使用 numpy 计算均值和标准差而不进行任何实际拟合,我的 pdf 会是什么样子。令我惊讶的是,当我绘制两个 pdf 并打印两组 mu 和 std 时,我得到的结果完全相同。所以我的问题是,如果我可以计算样本的均值和标准差并仍然得到相同的结果,那么 norm.fit 的意义何在?
这是我的代码:
import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt
data = norm.rvs(loc=0,scale=1,size=200)
mu1 = np.mean(data)
std1 = np.std(data)
print(mu1)
print(std1)
mu, std = norm.fit(data)
plt.hist(data, bins=25, density=True, alpha=0.6, color='g')
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 100)
p = norm.pdf(x, mu, std)
q = norm.pdf(x, mu1, std1)
plt.plot(x, p, 'k', linewidth=2)
plt.plot(x, q, …Run Code Online (Sandbox Code Playgroud)