我有每天 24 小时每分钟测量一次的辐照度数据文件。因此,如果有一天天空上没有任何云,数据会显示出漂亮的连续钟形曲线。当寻找数据中没有任何云的一天时,我总是用 gnuplot 月复一月地绘制并检查漂亮的钟形曲线。
我想知道是否有 python 方法来检查,如果辐照度测量形成连续的钟形曲线。不知道这个问题是否太模糊,但我只是在寻找有关该任务的一些想法:-)
我有每天 24 小时每分钟测量一次的辐照度数据文件。因此,如果有一天天空上没有任何云,数据会显示出漂亮的连续钟形曲线。当寻找数据中没有任何云的一天时,我总是用 gnuplot 月复一月地绘制并检查漂亮的钟形曲线。
我想知道是否有 python 方法来检查,如果辐照度测量形成连续的钟形曲线。不知道这个问题是否太模糊,但我只是在寻找有关该任务的一些想法:-)
对于正态分布,有正态性检验。
简而言之,我们滥用了一些关于正态分布的知识来识别它们。
任何正态分布的峰度都是 3。计算数据的峰度,它应该接近 3。
更一般地,您可以计算参考分布并使用Bregman Divergence来评估分布之间的差异(散度)。对您的数据进行分类,创建直方图,然后从 Jensen-Shannon 散度开始。
使用散度方法,您可以与任意分布进行比较。您可能会记录一千个晴天,并检查晴天与测量天之间的差异是否低于某个阈值。
只是用一个代码示例来补充给定的答案:可以使用Kolmogorov-Smirnov 测试来获得两个分布之间“距离”的度量。SciPy 为此提供了一个简洁的界面,称为kstest
:
from scipy import stats
import numpy as np
data = np.random.normal(size=100) # Our (synthetic) dataset
D, p = stats.kstest(data, "norm") # Perform a one-sided Kolmogorov-Smirnov test
在上面的例子中,表示我们和高斯正态 ( ) 分布D
之间的距离(越小越好),并表示相应的 p 值。其他发行版可以通过替换为.data
norm
p
norm
scipy.stats