In [ ]:
# https://plot.ly/python/normality-test/ 注意: 原文有些对p-value的理解是错误的

import plotly as py
import plotly.graph_objs as go
import plotly.figure_factory as ff

import numpy as np
import pandas as pd
import scipy

import warnings
warnings.filterwarnings("ignore", message="numpy.dtype size changed")
warnings.filterwarnings("ignore", message="numpy.ufunc size changed")

py.offline.init_notebook_mode(connected=True)

In [ ]:
wind_speed_df = pd.read_csv('./wind_speed_laurel_nebraska.csv')

wind_speed_df[:10]

In [ ]:
fig = ff.create_table(wind_speed_df[0:10])
py.offline.iplot(fig)

In [ ]:
avg_ss = wind_speed_df['10 Min Sampled Avg']

hist_trace = go.Histogram(
    x = avg_ss,
    autobinx = True, 
    marker = dict(
        color = '#00FF00'
    ),
)

layout = go.Layout(
    width = 600,
    title = 'Hist Fig',
)

hist_fig = go.Figure(data=[hist_trace], layout=layout)
py.offline.iplot(hist_fig)

In [ ]:
# 夏皮罗-威尔克 shapiro-wilk

sw_result_tup = scipy.stats.shapiro(x=avg_ss)
print(sw_result_tup)

sw_list = [
    ['', 'DF', 'W-Test', 'P-Value'],
    ['Sample Data', len(avg_ss) + 1, sw_result_tup[0], sw_result_tup[1]],
]

sw_tabel_fig = ff.create_table(table_text=sw_list)
py.offline.iplot(sw_tabel_fig)

In [ ]:
# Kolmogorov-Smirnov test 柯尔莫哥洛夫-斯米尔诺夫检验
# avg_ss = np.random.normal(size=1000)
ks_result_tup = scipy.stats.kstest(rvs=avg_ss, cdf='norm')

In [ ]:
anderson_results = scipy.stats.anderson(avg_ss)
print(anderson_results)

In [ ]:
dagostino_results = scipy.stats.mstats.normaltest(a=avg_ss)
dagostino_results