python笔记:8.2.1 非参数检验的基本问题_中位数的检验

本文通过一个水质数据案例介绍了如何使用Python进行数据分析,包括中位数计算及Wilcoxon符号秩检验等统计方法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

# -*- coding: utf-8 -*-
"""
Created on Sun Jul 21 14:26:22 2019

@author: User
"""

# 《Python数据分析基础》中国统计出版社

import numpy as np
from scipy import stats
import pandas as pd
#import statsmodels.api as sm
#import statsmodels.formula.api as smf
#import matplotlib.pyplot as plt
#from statsmodels.stats.multicomp import pairwise_tukeyhsd
#from statsmodels.graphics.api import interaction_plot
from matplotlib.font_manager import FontProperties
myfont=FontProperties(fname='data\msyh.ttc')

water = pd.read_csv(u'data/ch8/water.csv',encoding = "gbk")

print(water['Net'].median())

def wilcoxon_signed_rank_test(samp, mu0=0):
    temp = pd.DataFrame(np.asarray(samp),columns=['origin_data'])
    temp['D'] = temp['origin_data'] - mu0
    temp['rank'] = abs(temp['D']).rank()
    posW = sum(temp[temp['D']>0]['rank'])
    negW = sum(temp[temp['D']<0]['rank'])
    n = temp[temp['D'] != 0]['rank'].count()
    Z = (posW-n*(n+1)/4)/np.sqrt((n*(n+1)*(2*n+1))/24)
    P = (1-stats.norm.cdf(abs(Z)))*2
    return Z,P

print(wilcoxon_signed_rank_test(water['Net'], mu0=600))

运行:


(-1.9940749174328372, 0.04614386788589431)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值