美文网首页数据-R语言-图表-决策-Linux-Python
基于R实现统计中的检验方法---T检验

基于R实现统计中的检验方法---T检验

作者: 天善智能 | 来源:发表于2019-02-26 10:46 被阅读5次

    欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!

    对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。

    作者:徐涛,19年应届毕业生,专注于珊瑚礁研究,喜欢用R各种清洗数据。

    知乎:

    https://www.zhihu.com/people/parkson-19/posts

    前言

    T检验,亦称student t检验(Student's t test),主要用于样本含量较小(例如n < 30),总体标准差σ未知的正态分布。T检验是用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著。

    1.适用条件

    已知一个总体均数;可得到一个样本均数及该样本标准差;样本来自正态或近似正态总体。

    备注:若是单独样本T检验,必须给出一个标准值或总体均值,同时,提供一组定量的观测结果,应用t检验的前提条件是该组资料必须服从正态分布;若是配对样本T检验,每对数据的差值必须服从正态分布;若是独立样本T检验,个体之前相互独立,两组资料均取自正态分布的总体,并满足方差齐性。之所以需要这些前提条件,是因为必须在这样的前提下所计算出的t统计量才服从t分布,而t检验正是以t分布作为其理论依据的检验方法。后面的方差分析,其独立样本T检验的前提条件是相同的,即正态性额方差齐性。(参考:t检验和方差分析的前提条件及应用误区_百度文库(链接见文末)说的非常详细)

    2.分类

    单总T检验(单独样本T检验),双总T检验(一是独立样本T检验,另一是配对样本T检验)

    备注:单独样本T检核与独立样本T检验的区别。单独样本T检验(One-Samples T Test)用于进行样本所在总体均数与已知总体均数的比较,独立样本T检验(Independent-Samples T Test)用于进行两样本均数的比较。

    3.R实例

      1—————————#单样本T检验#——————————————
     2#某鱼塘水的含氧量多年平均值为4.5mg/L,现在该鱼塘设10点采集水样,测定水中含氧量(单位:mg/L)分别为:
     3#4.33,4.62,3.89,4.14,4.78,4.64,4.52,4.55,4.48,4.26,问该次抽样的水中含氧量与多年平均值是否有显著差异?
     4Sites<-c(4.33,4.62,3.89,4.14,4.78,4.64,4.52,4.55,4.48,4.26)
     5t.test(sites,mu=4.5)
     6        One Sample t-test
     7
     8data:  sites
     9t = -0.93574, df = 9, p-value = 0.3738
    10alternative hypothesis: true mean is not equal to 4.5
    1195 percent confidence interval:
    12 4.230016 4.611984
    13sample estimates:
    14mean of x 
    15    4.421 
    16p=0.3738>0.05,认为所抽样水体的含氧量与多年平均值无显著差异
    17
    18—————————#独立样本T检验#——————————————
    19#有两种情况,一种是两个总体方差齐性,另一种是两个总体方差不齐。
    20#################两样本方差齐性
    21#用高蛋白和低蛋白两种饲料饲养1月龄的大白鼠,饲养3个月后,测定两组大白鼠的增重量(g),两组数据分别如下所示:
    22#高蛋白组:134,146,106,119,124,161,107,83,113,129,97,123
    23#低蛋白组:70,118,101,85,107,132,94
    24#试问两种饲料养殖的大白鼠增重量是否有显著差异?
    25High<-c(134,146,106,119,124,161,107,83,113,129,97,123)
    26Low<-c(70,118,101,85,107,132,94)
    27Group<-c(rep(1,12),rep(0,7))#1表示High,0表示Low
    28x<-c(High,Low)
    29DATA<-data.frame(x,Group)
    30DATA$Group<-as.factor(DATA$Group)
    31#bartlett.test方差齐性检验
    32bartlett.test(x~Group)
    33        Bartlett test of homogeneity of variances
    34
    35data:  x by Group
    36Bartlett's K-squared = 0.0066764, df = 1, p-value = 0.9349
    37
    38#var.test方差齐性检验
    39var.test(x~Group)
    40 F test to compare two variances
    41
    42data:  x by Group
    43F = 0.94107, num df = 6, denom df = 11, p-value = 0.9917
    44alternative hypothesis: true ratio of variances is not equal to 1
    4595 percent confidence interval:
    46 0.2425021 5.0909424
    47sample estimates:
    48ratio of variances 
    49          0.941066 
    50
    51#leveneTest方差齐性检验(也是SPSS的默认方差齐性检验方法)
    52library(car)
    53leveneTest(DATA$x,DATA$Group)
    54Levene's Test for Homogeneity of Variance (center = median)
    55      Df F value Pr(>F)
    56group  1  0.0088 0.9264
    57      17              
    58#前两者是对原始数据的方差进行检验的,leveneTest是对方差模型的残差进行组间齐性检验.一般认为是要求残差的方差齐,所以一般的统计软件都做的是leveneTest
    59#结果说明两独立样本数据方差齐性,可以进行独立样本T检验。
    60t.test(High,Low,paired=FALSE)
    61        Welch Two Sample t-test
    62
    63data:  High and Low
    64t = 1.9319, df = 13.016, p-value = 0.07543
    65alternative hypothesis: true difference in means is not equal to 0
    6695 percent confidence interval:
    67 -2.263671 40.597005
    68sample estimates:
    69mean of x mean of y 
    70 120.1667  101.0000 
    71结果表明两种饲料养殖的大白鼠增重量无显著差异。
    72
    73#################两样本方差不齐
    74#有人测定了甲乙两地区某种饲料的含铁量(mg/kg),结果如下:
    75#甲地:5.9,3.8,6.5,18.3,18.2,16.1,7.6
    76#乙地:7.5,0.5,1.1,3.2,6.5,4.1,4.7
    77#试问这种饲料含铁量在两地间是否有显著差异?
    78JIA<-c(5.9,3.8,6.5,18.3,18.2,16.1,7.6)
    79YI<-c(7.5,0.5,1.1,3.2,6.5,4.1,4.7)
    80Content<-c(JIA,YI)
    81Group<-c(rep(1,7),rep(2,7))#1表示甲地,2表示乙地
    82data<-data.frame(Content,Group)
    83data$Group<-as.factor(Group)
    84
    85#bartlett.test方差齐性检验
    86bartlett.test(Content~Group)
    87 Bartlett test of homogeneity of variances
    88
    89data:  Content by Group
    90Bartlett's K-squared = 3.9382, df = 1, p-value = 0.0472
    91
    92#var.test方差齐性检验
    93var.test(Content~Group)
    94 F test to compare two variances
    95
    96data:  Content by Group
    97F = 5.9773, num df = 6, denom df = 6, p-value = 0.04695
    98alternative hypothesis: true ratio of variances is not equal to 1
    9995 percent confidence interval:
    100  1.02707 34.78643
    101sample estimates:
    102ratio of variances 
    103            5.9773 
    104#结果说明两独立样本数据方差不齐,对齐进行方差不齐分析
    105t.test(Content,Group,paired=FALSE,var.equal=FALSE)
    106Welch Two Sample t-test
    107
    108data:  Content and Group
    109t = 3.7511, df = 13.202, p-value = 0.002362
    110alternative hypothesis: true difference in means is not equal to 0
    11195 percent confidence interval:
    112 2.519419 9.337724
    113sample estimates:
    114mean of x mean of y 
    115 7.428571  1.500000 
    116#方差齐性检验表明,方差不等,因此设定var.equal=FALSE,此时p=0.0023<0.05,
    117#表明该饲料在两地的含铁量有显著差异。
    118
    119
    120—————————#配对样本T检验#——————————————
    121#某人研究冲水对草鱼产卵率的影响, 获得冲水前后草鱼产卵率(%),如下:
    122#冲水前:82.5,85.2,87.6,89.9,89.4,90.1,87.8,87.0,88.5,92.4
    123#冲水后:91.7,94.2,93.3,97.0,96.4,91.5,97.2,96.2,98.5,95.8
    124#问:冲水前后草鱼亲鱼产卵率有无差异?
    125Before<-c(82.5,85.2,87.6,89.9,89.4,90.1,87.8,87.0,88.5,92.4)
    126After<-c(91.7,94.2,93.3,97.0,96.4,91.5,97.2,96.2,98.5,95.8)
    127t.test(Before,After,paired=T)
    128        Paired t-test
    129
    130data:  Before and After
    131t = -7.8601, df = 9, p-value = 2.548e-05
    132alternative hypothesis: true difference in means is not equal to 0
    13395 percent confidence interval:
    134 -9.1949 -5.0851
    135sample estimates:
    136mean of the differences 
    137                  -7.14 
    138结果表明,p=2.548e-05<0.01,表明冲水前后,草鱼亲鱼的产卵率有非常显著差异。
    139
    140------------------------备注---------------------------
    1411)会有很多同学疑惑(Professionals don't laugh),为什么独立样本T检验有方差相等/不相等之分,而配对样本T检验/单样本T检验没有?
    1422)t.test(x,y,alternative=c("two.sided","less","greater"),mu=0,paired=FALSE,
    143var.equal=FALSE,conf.level=0.95......)
    144如果只提供x,则作单个正态总体的均值检验,如果提供x,y则作两个总体的均值检验),alternative表示被则假设,
    145two.sided(缺省),双边检验,less表示单边检验,greater表示单边检验,mu表示原假设μ0,若 paired=T,为配对检验,
    146则必须指定x和y,并且它们必须是相同的长度。默认删除缺失值(如果配对为TRUE,则成对配对),var.equal是逻辑变量,
    147var.equal=TRUE表示两样品方差相同,var.equal=FALSE(缺省)表示两样本方差不同,conf.level置信水平,即1-α,通常是0.95,。

    参考

    [1]顾志峰,叶乃好,石耀华.实用生物统计学[M].北京:科学出版社,2012年.

    [2]t检验和方差分析的前提条件及应用误区_百度文库

    https://wenku.baidu.com/view/c3f1e06b5727a5e9846a6117.html

    往期精彩:

  1. 基于R实现统计中的检验方法---卡方检验


  2. 基于R实现统计中的检验方法---方差分析


  3. R语言:以多列标准筛选特定行

  4. 用R语言实现信息度量

  5. 公众号后台回复关键字即可学习

    回复 爬虫            爬虫三大案例实战
    回复 Python       1小时破冰入门
    回复 数据挖掘     R语言入门及数据挖掘
    回复 人工智能     三个月入门人工智能
    回复 数据分析师  数据分析师成长之路 
    回复 机器学习     机器学习的商业应用
    回复 数据科学     数据科学实战
    回复 常用算法     常用数据挖掘算法

    相关文章

      网友评论

        本文标题:基于R实现统计中的检验方法---T检验

        本文链接:https://www.haomeiwen.com/subject/txaoyqtx.html