t检验如何进行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了t检验如何进行相关的知识,希望对你有一定的参考价值。
我要在EXCEL里进行T检验。对两组数据进行检验后,我想得出有显著性差异,我该怎么弄呢?
这个不用spss,只用excel就可以啊。以excel2007为例,先把数据分为两列输入,选择“数据”、“数据分析”,先进行方差齐性检验,选“f检验:双样本方差",弹出对话框中,“变量1的区域”用鼠标拖动的方法选中a列数据(包括“a”那个单元格),“变量2的区域”选中b列数据(包括b那个单元格),击选“标志”,显著性水平默认为“0.05”,点击“确定”。结果中,如果p小于0.05,说明方差不齐性,,用“数据分析”中的“t检验:双样本异方差假设”,如果p大于0.05,说明方差齐性,用“数据分析”里的“t检验:双样本等方差假设”,对话框的操作与上面的f检验大体相同。
如果你的excel是2003,在“工具”菜单下可找到“数据分析”命令
如果没有找到“数据分析”命令,需要加载宏,将“分析数据库”加载上就可以了。具体操作可以在网上查一下,很容易的。
祝你成功!
office2007太大了,我这边网速太慢,传的话比较麻烦,建议你从网上直接下载,很容易下载到的。我刚才随便搜了一下,搜到个网址http://hi.baidu.com/zrt765996/blog/item/a6117517567d90dff6039e08.html
你先试试这个,应该没问题。安装了以后一般需要加载宏。excel2007加载宏的办法是:点击excel2007最左上角那个大的圆按钮,弹出菜单,选择下方的“excel选项”,弹出对话框,选择左侧一列的“加载项”,在下方“管理”下拉列表中选择“excel加载项”,点击后面的“转到…”,弹出加载宏对话框,在里面选择“分析工具库”,确定就可以加载了。
关于t检验,分为相关样本t检验和独立样本t检验两种,你说的独立样本t检验适用于分析两组不相关的数据,比如说分析男生与女生身高的差异就用这种方法。相关样本t检验适用于两组存在相关的数据的比较,比如分析40名同学语文和数学成绩的差异。
对于独立样本t检验,首先要看方差是否齐性,也就是看两组数据方差有没有差异。方差齐性与不齐性方法不一样,上面的f检验就是为了看一下两组不相关的数据方差是否齐性。方差齐性表明两组数据方差没有差异,用相应的一种方法;方差不齐性,表明两组数据方差存在显著差异,要用另一种方法,相应的方法我都给你在第一次回答的时候列出来了,这里就不再重复了,这样分析出来就行了。
祝你成功!
三组数据比较的话用单因素方差分析。这个用excel也可以实现。也是在“数据”、“数据分析”下面,操作方式与t检验相同,你可以用一下。
另外,我看楼下的朋友给你说了用spss的做法,也可以用一下。我是觉得用spss的话你可能更不熟悉,所以推荐你用excel。 参考技术A T检验不是在SPSS里面可以方便的使用吗?
建议你安装一个SPSS统计软件试一下,
非常简单的!
假如你实在想用EXCEL的话,方法是:
1.打开EXCEL电子表格
2.在工具栏里面点击“帮助”--“Microsoft Excel帮助”
3.在帮助窗口中,搜索框中输入“T检验”,这是就会出现“microsoft excel online”,也就是从网上下载帮助文件,即可出现TTEST(也就是你所需要的T检验)
希望这个能对阁下有所帮助
excel里面有T检验!
1)在“工具”菜单上,单击“数据分析”。
如果没有“数据分析”,则请加载“分析工具库”加载宏。
操作方法:
在“工具”菜单上,单击“加载宏”。
在“可用加载宏”列表中,选中“分析工具库”框,再单击“确定”。
如果必要,请按安装程序中的指示进行操作。
2)在“数据分析”对话框中,单击“t-检验”,再单击“确定”。
3)在出现的对话框中,设置所需的参数。本回答被提问者采纳
如何对多个变量和多个模型执行(修改)t 检验
【中文标题】如何对多个变量和多个模型执行(修改)t 检验【英文标题】:How to perform (modified) t-test for multiple variables and multiple models 【发布时间】:2019-08-25 11:12:14 【问题描述】:我使用 WEKA 创建并分析了大约 16 个机器学习模型。现在,我有一个 CSV 文件,其中显示了模型的指标(例如 percent_correct、F-measure、recall、precision 等)。我正在尝试对这些模型进行(修改后的)学生 t 检验。我可以进行一项(根据此链接),其中我只比较两个模型共有的一个变量。我想一次使用 MULTIPLE 变量和 MULTIPLE 模型执行一个(或多个)t 检验。
如前所述,我只能在两个模型(比如决策表和神经网络)中使用一个变量(比如 F-measure)进行测试。
这是代码。我正在执行 Kolmogorov-Smirnov 测试(修改后的 t):
from matplotlib import pyplot
from pandas import read_csv, DataFrame
from scipy.stats import ks_2samp
results = DataFrame()
results['A'] = read_csv('LMT (f-measure).csv', header=None).values[:, 0]
results['B'] = read_csv('LWL (f-measure).csv', header=None).values[:, 0]
print(results.describe())
results.boxplot()
pyplot.show()
results.hist()
pyplot.show()
value, pvalue = ks_2samp(results['A'], results['B'])
alpha = 0.05
print(value, pvalue)
if pvalue > alpha:
print('Samples are likely drawn from the same distributions (fail to reject H0)')
else:
print('Samples are likely drawn from different distributions (reject H0)')
有什么想法吗?
【问题讨论】:
【参考方案1】:这是我的问题的简单解决方案。它只处理两个模型和两个变量,但您可以轻松拥有包含分类器名称和要分析的指标的列表。出于我的目的,我只是分别更改了COI
、ROI_1
和ROI_2
的值。
注意:此解决方案也可推广。
如何?只需更改COI
、ROI_1
和ROI_2
的值并在df = pandas.read_csv("FILENAME.csv, ...)
中加载任何选定的数据集。如果您想要另一个可视化,只需更改接近末尾的pyplot
设置。
关键是将新的DataFrame
分配给原来的DataFrame
并实现.loc["SOMESTRING"]
方法。它会删除数据中的所有行,但指定为参数的行除外。
但是,请记住,在阅读文件时包含index_col=0
或使用其他方法设置DataFrame
的索引。如果不这样做,您的row
值将只是来自0 to MAX_INDEX
的索引。
# Written: April 4, 2019
import pandas # for visualizations
from matplotlib import pyplot # for visualizations
from scipy.stats import ks_2samp # for 2-sample Kolmogorov-Smirnov test
import os # for deleting CSV files
# Functions which isolates DataFrame
def removeColumns(DataFrame, typeArray, stringOfInterest):
for i in range(0, len(typeArray)):
if typeArray[i].find(stringOfInterest) != -1:
continue
else:
DataFrame.drop(typeArray[i], axis = 1, inplace = True)
# Get the whole DataFrame
df = pandas.read_csv("ExperimentResultsCondensed.csv", index_col=0)
dfCopy = df
# Specified metrics and models for comparison
COI = "Area_under_PRC"
ROI_1 = "weka.classifiers.meta.AdaBoostM1[DecisionTable]"
ROI_2 = "weka.classifiers.meta.AdaBoostM1[DecisionStump]"
# Lists of header and row in dataFrame
# `rows` may act strangely
headers = list(df.dtypes.index)
rows = list(df.index)
# remove irrelevant rows
df1 = dfCopy.loc[ROI_1]
df2 = dfCopy.loc[ROI_2]
# remove irrelevant columns
removeColumns(df1, headers, COI)
removeColumns(df2, headers, COI)
# Make CSV files
df1.to_csv(str(ROI_1 + "-" + COI + ".csv"), index=False)
df2.to_csv(str(ROI_2 + "-" + COI) + ".csv", index=False)
results = pandas.DataFrame()
# Read CSV files
# The CSV files can be of any netric/measure, F-measure is used as an example
results[ROI_1] = pandas.read_csv(str(ROI_1 + "-" + COI + ".csv"), header=None).values[:, 0]
results[ROI_2] = pandas.read_csv(str(ROI_2 + "-" + COI + ".csv"), header=None).values[:, 0]
# Kolmogorov-Smirnov test since we have Non-Gaussian, independent, distinctive variance datasets
# Test configurations
value, pvalue = ks_2samp(results[ROI_1], results[ROI_2])
# Corresponding confidence level: 95%
alpha = 0.05
# Output the results
print('\n')
print('\033[1m' + '>>>TEST STATISTIC: ')
print(value)
print(">>>P-VALUE: ")
print(pvalue)
if pvalue > alpha:
print('\t>>Samples are likely drawn from the same distributions (fail to reject H0 - NOT SIGNIFICANT)')
else:
print('\t>>Samples are likely drawn from different distributions (reject H0 - SIGNIFICANT)')
# Plot files
df1.plot.density()
pyplot.xlabel(str(COI + " Values"))
pyplot.ylabel(str("Density"))
pyplot.title(str(COI + " Density Distribution of " + ROI_1))
pyplot.show()
df2.plot.density()
pyplot.xlabel(str(COI + " Values"))
pyplot.ylabel(str("Density"))
pyplot.title(str(COI + " Density Distribution of " + ROI_2))
pyplot.show()
# Delete Files
os.remove(str(ROI_1 + "-" + COI + ".csv"))
os.remove(str(ROI_2 + "-" + COI + ".csv"))
【讨论】:
以上是关于t检验如何进行的主要内容,如果未能解决你的问题,请参考以下文章