论文中p值计算方法与临界差异图的绘制
前言
最近在阅读的论文过程中,有时看到论文中实验结果表格中出现p值的比较,如下图所示:
p值的计算
对于配对设计的连续性变量在两组间的差异,可以选用配对t检验或Wilcoxon signed-rank检验(Wilcoxon符号秩检验)。接下来以STCN表格中的数据为例,使用这两种方法计算p值。
t检验
适用条件:两组差值近似服从正态分布的数据
方法一:python代码
import numpy as np
from scipy import statsA=[1,2,4,5,2]
B=[2,3,4,1,1]A=np.array(A)
B=np.array(B)t,p=stats.ttest_ind(A,B)
print("t:",t,"\t p:",p)
方法二:EXCEL公式
以STCN表格中的数据为例:依次点击 公式 -> 其他函数 -> 统计 -> T.TEST,如下图所示:
点击Array1中的输入框,再框住第一列数据(模型1的数据),点击Array2中的输入框,再框住第二列数据(模型2的数据),Tails和type都输入2(参数含义已经提示了)
点击确定,就可以获得了t检验下的p值
多组数据对比直接修改公式中的列号就行了
方法三:EXCEL数据分析
依次点击数据 -> 数据分析
选择 t-检验:双样本等方差假设,再输入变量1的区域和变量2的区域,设置A值为0.05(默认),选择输出区域:
确定之后即可获得一下结果可以看到单侧p值和双侧p值。同理可得到t-检验:双样本异方差假设的结果:
Wilcoxon符号秩检验
说明:在Self-Supervised Time Series Clustering With Model-Based Dynamics这篇论文中使用的便是Wilcoxon符号秩检验方法,具体细节他是参考论文Statistical Comparisons of Classifiers over Multiple Data Sets的,下面我就根据论文中的原始数据,实现AVG RANK 和P值的计算。
论文中的数据如图所示:
利用OCR工具获得原始论文中的数据,如下图所示:
利用rank()方法计算各方法在数据集上的排名,python程序如下:
# -*- coding: utf-8 -*-
# @Time :
# @Author :
# @Email :
# @File : import pandas as pddef count_avg(source_csv_file,target_csv_file):df=pd.read_csv(source_csv_file,index_col=None)df_head=df.columnsresult_df=[]#读取每一行数据for i in range(len(df)):one_row_df=df.iloc[i]#获得每一行的排名rank_one_row=one_row_df.rank(ascending=False, method='average')best_result = rank_one_row.valuesresult_df.append(best_result)result=pd.DataFrame(result_df,columns=df_head,index=None) result.to_csv(target_csv_file,mode='w',index=False)
source_csv_file = './file/STCN原始数据.csv'
target_csv_file='./file/STCN原始数据_RANK_NMI.csv'
count_avg(source_csv_file,target_csv_file)
运行程序,结果如图所示:
求平均值,即可获得各算法的AVG RANK
与原论文一致:
- 在RANk(即上一步获得的rank表格,而不是原始数据)上计算p值,调用stats.wilcoxon()方法即可进行Wilcoxon符号秩检验,python程序如下:
# -*- coding: utf-8 -*-
# @Time :
# @Author :
# @Email :
# @File :
import pandas as pd
import numpy as np
from scipy import statssource_csv_file = './file/STCN原始数据.xlsx'
def get_p_value(source_csv_file):df = pd.read_excel(io=source_csv_file,index_col=None,header=None)p_list=[]# B_index默认最后一列last_index=df.shape[1]-1B_index=last_indexfor i in range(last_index):A=df.iloc[:,i].valuesB=df.iloc[:,B_index].valuesA=np.array(A)B=np.array(B)# Wilcoxon符号秩检验t,p_value=stats.wilcoxon(A, B, correction=False, alternative='two-sided')# t,p=stats.ttest_ind(A,B)# print("t:", t, "\t p_value:", p_value)p_list.append(p_value)print(p_list)
get_p_value(source_csv_file)
计算结果如图所示:
与原论文一致:
- 绘制CD(临界差异)图,python程序如下:
# -*- coding: utf-8 -*-
# @Time :
# @Author :
# @Email :
# @File :
import Orange
import matplotlib.pyplot as plt#算法名字
names = ['k-means', 'SC', 'UDFS', 'NDFS', 'RUFS', 'RSFS', 'KSC', 'KDBA', 'K-shape', 'u-shapelet', 'USSL', 'STCN']
#各算法的平均排名
avranks = [9.6528,7.9583,8.7778,6.8889,6.2083,6.2222,6.4306,6.6389,7.0417,7.3333,2.5139,2.3333]
#数据集大小
datasets_num = 35
#利用Nemenyi检验计算Critical difference
CD = Orange.evaluation.scoring.compute_CD(avranks, datasets_num, alpha='0.05', test='nemenyi')
Orange.evaluation.scoring.graph_ranks(avranks, names, cd=CD, width=8, textspace=1.5, reverse=True)
plt.show()
结果如图:
参考文章
SPSS详细教程:配对样本的非参数检验『Wilcoxon符- 号秩检验』
秩和检验及其两两比较的思路与解析
P值
论文中p值计算方法与临界差异图的绘制相关推荐
- LC滤波器简单设计法 - 一文读懂LC滤波器简单设计方法及原理介绍,LC值计算方法...
LC滤波器概述 LC滤波器也称为无源滤波器,是传统的谐波补偿装置.LC滤波器之所以称为无源滤波器,顾名思义,就是该装置不需要额外提供电源.LC滤波器一般是由滤波电容器.电抗器和电阻器适当组合而成,与谐 ...
- LC滤波器简单设计法 - 一文读懂LC滤波器简单设计方法及原理介绍,LC值计算方法
LC滤波器简单设计法 - 一文读懂LC滤波器简单设计方法及原理介绍,LC值计算方法 LC滤波器概述 LC滤波器也称为无源滤波器,是传统的谐波补偿装置.LC滤波器之所以称为无源滤波器,顾名思义,就是该装 ...
- lc滤波器是利用电感的感抗_LC滤波器简单设计法 - 一文读懂LC滤波器简单设计方法及原理介绍,LC值计算方法...
LC滤波器概述 LC滤波器也称为无源滤波器,是传统的谐波补偿装置.LC滤波器之所以称为无源滤波器,顾名思义,就是该装置不需要额外提供电源.LC滤波器一般是由滤波电容器.电抗器和电阻器适当组合而成,与谐 ...
- 训练集与测试集的阳性阴性p值计算方法Python实现
训练集与测试集的阳性阴性p值计算方法Python实现 在机器学习领域,常常需要将数据划分为训练集和测试集.其中,阳性和阴性样本的比例也是非常重要的指标之一.在模型训练和测试过程中,我们需要了解阳性和阴 ...
- fir1截止频率计算_LC滤波器简单设计法 - 一文读懂LC滤波器简单设计方法及原理介绍,LC值计算方法...
LC滤波器概述 LC滤波器也称为无源滤波器,是传统的谐波补偿装置.LC滤波器之所以称为无源滤波器,顾名思义,就是该装置不需要额外提供电源.LC滤波器一般是由滤波电容器.电抗器和电阻器适当组合而成,与谐 ...
- 核苷酸pi值计算方法
核苷酸pi值计算方法 哈喽,今天小编给大家分享的是核苷酸pi值计算方法,主要是介绍序列比对(MEGA和MZAFFT版的两种方法)计算pi值(dnasp)的两个步骤,有兴趣大家可以瞅瞅. 一.序列比对 ...
- R语言使用pROC包在同一图中绘制两条ROC曲线并通过假设检验检验ROC曲线的AUC或者偏AUC的差异(输出p值)
R语言使用pROC包在同一图中绘制两条ROC曲线并通过假设检验检验ROC曲线的AUC或者偏AUC的差异(输出p值) 目录
- 从二值检索到层次竞买图——让搜索广告关键词召回焕然新生
丨目录: · 背景 · 广告改写的历史与新目标 · 从两阶段到一段式:二值海选 · 从一段式到联合召回:层次竞买图 · 关键词召回的业务思考 本文主要分享过去一年我们在搜索广告召回的传统领域--关键词 ...
- mysql使用psm登录_倾向匹配得分教程(附PSM操作应用、平衡性检验、共同取值范围、核密度函数图)...
原标题:倾向匹配得分教程(附PSM操作应用.平衡性检验.共同取值范围.核密度函数图) 本文主要包括倾向匹配得分命令简介.语法格式.倾向匹配得分操作步骤 思路,涉及倾向匹配得分应用.平衡性检验.共同取 ...
最新文章
- windows目录内打开CMD的几种方法
- 分布式搜索引擎ElasticSearch+Kibana (Marvel插件安装详解)
- Java黑皮书课后题第5章:**5.25(计算π)使用下面的数列可以近似计算π:4(1-1/3+1/5-1/7+……+(Math.pow(-1, i+1)/(2*i-1))
- 修改.html 打开方式 注册表,windows 注册表修改资料打开方式
- texlive写论文源代码_Texlive 2020 编译胡伟《latex2e完全学习手册》后记字体右倾90度...
- mysql数据存储和函数_MySQL数据库——存储和函数
- linux内核Kconfig语法
- python 魔法方法之:__getitem__ __setitem__ __delitem__
- 打孔屏+屏下指纹!这届iPhone全是安卓玩剩下的
- 以WinGrub 引导安装Fedora 4.0 为例,详述用WinGrub来引导Linux的安装
- centos7下发邮件给自己的QQ邮箱
- 深度分析《英雄联盟》游戏运营商背后的大数据支撑体系
- Excel函数公式大全—VLOOKUP函数
- JS使用递归遍历json对象进行操作
- android 主题颜色意义
- the little schemer 笔记(4)
- poi excel密码加密
- eclipse修改自定义皮肤
- 【MySQL基本查询】Create(创建), Retrieve(读取),Update(更新),Delete(删除)
- java 个人通讯录_java个人通讯录管理系统