我正在尝试对数据进行正态性测试。
# Method 1
import numpy as np
from scipy.stats import shapiro
data = [1874181.6503, 2428393.05517, 2486600.8183,...] # there are 146 data points
data = np.array(data)
stat, p = shapiro(data)
print('statistics=%.3f, p=%.3f' % (stat, p))
alpha = 0.05
if p > alpha:
print('its Gaussian ')
else:
print('not Gaussian')
----输出----
statistics=0.582, p=0.000
not Gaussian
当我运行它时,我得到的不是高斯,当我计算平均值和标准差并使用np.random.normal(mu,sigma,149)(如下所示)生成样本时,其显示为高斯>
# Method 2
import numpy as np
from scipy.stats import shapiro
data = [1874181.6503, 2428393.05517, 2486600.8183,...] # there are 146 data points
data = np.array(data)
d_mu = np.mean(data)
d_sig = np.std(data)
data = np.random.normal(d_mu,d_sig, 146)
stat, p = shapiro(data)
print('statistics=%.3f, p=%.3f' % (stat, p))
alpha = 0.05
if p > alpha:
print('its Gaussian ')
else:
print('not Gaussian')
------输出----
statistics=0.987, p=0.212
its Gaussian
我对数据分析非常陌生,如果有人可以帮助我解决以下疑问,这将很有帮助
我很难理解np.random.normal(d_mu,d_sig,146)函数。 docs中给出的定义是“从正态(高斯)分布中抽取随机样本”。但是,要生成什么数据样本,我们已经有数据(我的输入数据),并且已经计算出均值和标准差以绘制正态分布,并且该函数返回了其他一些数据样本,我的shapiro测试适用于此(我知道我完全错误地接受了它,但是无法确定哪一个是正确的)
我正在尝试对时间序列数据进行正态分布。任何人都可以建议的任何有用的文档链接...?做正态性测试和正态分布。任何能指导我正确方向的东西