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】:

这是我的问题的简单解决方案。它只处理两个模型和两个变量,但您可以轻松拥有包含分类器名称和要分析的指标的列表。出于我的目的,我只是分别更改了COIROI_1ROI_2 的值。

注意:此解决方案也可推广。 如何?只需更改COIROI_1ROI_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检验如何进行的主要内容,如果未能解决你的问题,请参考以下文章

怎么用SPSS进行t检验

t检验 公式

使用 plyr 进行成对 t 检验

如何使用任何 t 检验比较数据集上的分类器?

spss独立样本t分类变量??

利用python库stats进行t检验