问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

正态性检验(Shapiro-Wilk test检验和kstest检验)

创作时间:
作者:
@小白创作中心

正态性检验(Shapiro-Wilk test检验和kstest检验)

引用
CSDN
1.
https://blog.csdn.net/qq_45932996/article/details/141689121

在数据分析和统计建模中,正态性检验是一个重要的步骤。本文将介绍两种常用的正态性检验方法:Shapiro-Wilk检验和Kolmogorov-Smirnov检验,并通过Python代码实现这些检验方法。

Shapiro-Wilk检验

Shapiro-Wilk检验是一种用于检验数据是否服从正态分布的统计方法。以下是使用Python实现Shapiro-Wilk检验的代码:

import pandas as pd
import numpy as np
from scipy import stats

data = pd.read_csv(r'数据4.1.csv')

def normality_check(data):
    for columnName, columnData in data.items():
        print("Shapiro test for {columnName}".format(columnName=columnName))
        res = stats.shapiro(columnData)
        pValue = round(res[1], 2)
        if pValue > alpha:
            print("pvalue = {pValue} > {alpha}. 不能拒绝原假设. {Ho}".format(pValue=pValue, alpha=alpha, Ho=Ho))
        else:
            print("pvalue = {pValue} <= {alpha}. 拒绝原假设. {Ha}".format(pValue=pValue, alpha=alpha, Ha=Ha))

Ho = '数据服从正态分布'
Ha = '数据不服从正态分布'
alpha = 0.05

normality_check(data)

根据Shapiro-Wilk检验结果,变量year、profit、labor服从正态分布,invest、rd不服从正态分布。

Kolmogorov-Smirnov检验

Kolmogorov-Smirnov检验也是一种用于检验数据是否服从正态分布的统计方法。以下是使用Python实现Kolmogorov-Smirnov检验的代码:

def normality_check(data):
    for columnName, columnData in data.items():
        print("kstest for {columnName}".format(columnName=columnName))
        res = stats.kstest(columnData,'norm')
        pValue = round(res[1], 2)
        if pValue > alpha:
            print("pvalue = {pValue} > {alpha}. 不能拒绝原假设. {Ho}".format(pValue=pValue, alpha=alpha, Ho=Ho))
        else:
            print("pvalue = {pValue} <= {alpha}. 拒绝原假设. {Ha}".format(pValue=pValue, alpha=alpha, Ha=Ha))

Ho = '数据服从正态分布'
Ha = '数据不服从正态分布'
alpha = 0.05

normality_check(data)

根据Kolmogorov-Smirnov检验结果,变量year、profit、invest、labor、rd均不服从正态分布。综合两种检验结果,我们可以认为year、profit、invest、labor、rd均不服从正态分布。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号