基于R语言的数据分析和挖掘方法总结——均值检验

2.1 单组样本均值t检验(One-sample t-test)

2.1.1 方法简介

t检验,又称学生t(student t)检验,是由英国统计学家戈斯特(William Sealy Gosset, 1876-1937)所提出,student则是他的笔名。t检验是一种检验总体均值的统计方法,当数据中仅含单组样本且样本数较大时(通常样本个数≧30的样本可视为样本数较大),可用这种方法来检验总体均值是否大于、小于或等于某一特定数值。当数据中仅含单组样本但样本数较小时(通常样本个数<30的样本可视为样本数较小),建议改以单组样本秩和检验(Wilcoxon signed-rank test)检验总体中位数。
注:总体中位数经常和均值一样, 因此检验中位数即检验均值。

2.1.2 前提

适用于所有t检验:
大多数的t检定的统计量具有t = Z/k的形式,其中Z与k是已知资料的函数。Z通常被设计成对于对立假说有关的形式,而k是一个尺度参数使t服从于t分布。

  • Z 服从标准正态分布
  • (n - 1)k2 服从自由度(n - 1)的卡方分布
  • Z与k互相独立

2.1.3 公式

单样本t检验
检验零假说为一群来自常态分配独立样本xi之母体期望值μ为μ0可利用以下统计量

该统计量t在零假说:μ=μ0为真的条件下服从自由度为n-1的t分布。

适用条件

  • 已知一个总体均值μ_0
  • 可得到一个样本均值x ?及该样本的标准差S
  • 样本来自正态或近似正态总体

2.1.4 检验步骤

举例说明:
难产儿出生体重样本,,一般婴儿出生体重μ0=3.30(大规模调查获得),问在假定难产儿出生体重的标准差与一般儿童相同的情况下,出生体重与难产是否有关?
解:
1. 建立假设,确定检验水平α
要知道难产儿样本的出生体重是否与难产有关,还是和难产没关系,与全体婴儿一样,就得判断难产儿样本对应的总体均值μ和全体婴儿的总体均值μ0是否一样。详细来说,就是要判断这儿是下面两种可能性中的哪一种:
H0:μ = μ0 (无效假设,null hypothesis),说明x ?和μ0之间的差别仅是由于抽样误差造成的;
H1:μ ≠ μ0(备择假设,alternative hypothesis),说明x ?和μ0之间有差别(也包含抽样误差的影响)
双侧检验,确定假设的显著水平:α=0.05,即在无效假设H0成立的前提下,计算无效假设正确的概率,也称差异由误差引起的概率。
2. 计算检验统计量

3. 查相应界值表,确定P值,下结论
查表,t_(0.05⁄2.34)=2.032,t0.05,按α=0.05水准,不拒绝H0,两者的差异无统计学意义。
备注:
比较计算得到的t值和理论T值,推断发生的概率,依据下表给出的T值与差异显著性关系表作出判断。

2.1.5 R语言实现

1. 学生t检验(Student’s t-Test):t.test {stats}

a) 方法描述:
用于处理一组或两组样本的t检验。
b) 使用方法:t.test(x, …)

## 默认S3方法:
t.test(x, y = NULL,
alternative = c(“two.sided”, “less”, “greater”),
mu = 0, paired = FALSE, var.equal = FALSE,
conf.level = 0.95, …)
## 带formula的S3方法
t.test(formula, data, subset, na.action, …)

参数说明:

2. 范例:蜥蜴生长的研究

范例背景:

生物多样性对于人类来说是一个重要的议题,地球上的物种丰富,各种动植物都有,1992年联合国在巴西的地球高峰会议通过『生物多样性公约』,自此生物多样性的议题受到了全球的关注,而保育的观念也慢慢的深植于人心。台湾是一个美丽的宝岛,地处于亚热带与热带之间,四季温暖气候宜人且雨量充沛,在峻岭高山中蕴含着丰富的物种。但由于高度的经济开发与都市建设,许多物种的栖息地被破坏殆尽,造成野生动植物数量大量减少,甚至于消失殆尽,鉴于此,许多动物保育学家需进入山林里从事动物保育的工作,以避免一些台湾的特有品种绝种。 蜥蜴是野外常见的小型爬虫类,非常的不起眼,但却是自远古时代就存在的物种,因此引起许多的动物学家的研究兴趣。有一位保育学家对于研究台湾特有种的短肢攀蜥相当热衷,想了解该物种的生长速度,花了两年的时间在中海拔的山区测量该品种蜥蜴的身长并记录的,第一年捕获的蜥蜴共50只,每只都记录身长并于身上加以编号后放生,并于第二年再记录这群蜥蜴的身长,两年前的记录显示该地区该品种蜥蜴的平均身长为18厘米,而一年前与今年所测量的数据共有50笔列于表中。

问题:

保育学家想了解在第一年所捕获的蜥蜴的平均身长是否有比前一年为长,该如何分析呢?
问题解析:因为在两年前的数据中显示当时所测量的蜥蜴平均身长为18厘米,若保育学家想了解第一年测量的平均身长是否大于前一年的数据,仅需讨论"一年前的蜥蜴身长平均是否大于18厘米?"。
统计方法:此问题中变量为蜥蜴身长,为单一变量(一个变量,建议选择单变量分析)。因仅一组样本且此组样本量大于30笔,可采用分析方法:单组样本均值t检验(one-sample t-test),检验一年前的蜥蜴身长平均是否大于18厘米?"。

解析:

  1. 此题可建立原假设为"一年前的蜥蜴平均身长小于等于18",即H0: μ第一年身长≦18。
  2. 建立数据文件上传,文件格式请参照上传文件说明。
  3. 按照分析步骤说明分析数据。

R语言程序:

> summary(S)
   Min. 1st Qu.  Median    Mean      3rd Qu.   Max.
  13.9   13.1    18.696      919.4   23.4      23.4
> t.test(S,mu=18,alternative=″greater″)
        One Sample t-test
data:  S
t = 1.8764, df = 49, p-value = 0.033281
alternative hypothesis: true mean is greater to 18
95 percent confidence interval:
 18.0741 Inf
sample estimates:
mean of x
   18.696

分析结果:

  • 分析方法:单组样本均值t检验
  • 数据名称:范例A-1
  • 变量名称:第一年身长
  • 显著水平:0.05
  • 检验均值:18
  • 检验方向:右尾检验
  • 计算时间:0.077秒
  • 样本描述统计量I:

    I:样本描述统计量都不包含缺失值
  • 单组样本均值t检验:
  • 分析结果建议:
    由于检验结果P-值(0.033281) < 显著水平0.05,因此可拒绝原假设。

2.2 (独立)两组样本均数的t检验(Two-sample t-test)

2.2.1 方法简介

此处使用的统计分析方法---t检验,又称学生t(student t)检验,是由英国统计学家戈斯特(William Sealy Gosset, 1876-1937)所提出,student则是他的笔名。t检验是一种检验总体平均数的统计方法,当数据中两组样本的样本数都较大时(通常样本个数≧30的样本可视为样本数较大),可用此方法检验两组样本间总体平均数的差异值是否大于、小于或等于某一特定数值。当数据中样本数较小时(通常样本个数<30的样本可视为样本数较小),建议改用(独立)两组样本秩和检验(Wilcoxon ranKolmogorov-Smirovum test)检验中位数差。
注:总体中位数往往和平均数一样, 因此检验中位数差即检验平均数差。

2.2.2 公式

1.样本数及变异数相等

若二群独立样本x1i与x2i具有相同之样本数n,并且彼此独立及来自二个变异数相等的常态分配,则二群母体之期望值差μ1 - μ2是否为μ0可利用以下统计量

2.样本数不相等但变异数相等

若二群独立样本x1i与x2i具有不相同之样本数n1与n2,并且彼此独立及来自二个变异数相等的常态分配,则二群母体之期望值差μ1 - μ2是否为μ0可利用以下统计量

该统计量t在零假说:μ1 -μ2 =μ0为真的条件下服从自由度为n1 + n2 − 2的t分布。

3.变异数皆不相等

若二群独立样本x1i与x2j具有相等或不相同之样本数n1与n2,并且彼此独立及来自二个变异数不相等的常态分配,则二群母体之期望值之差μ1 - μ2是否为μ0可利用以下统计量

2.2.3 R语言实现

范例A-11:新药效益的分析

问题描述:

药物对于国人来说使用率非常之高,从日常容易患的感冒、发烧、轻微皮肤疾病及足癣等,还有各种慢性病到严重的各种急症及致命的癌症等。药物种类有内服与外用,颗粒、胶囊与药膏、药布等,还有较特殊者需以针筒注射等各种不同形式的药品。虽然有这么多的药品种类,但对于药品的使用与上市,事实上是非常的严格的,必须经过多次的动物与人体试验及相关单位的审核及检验,才能得到上市的许可。在台湾,由于工作与经济上的压力,失眠困扰大多数人,根据台湾睡眠学会统计,全台有超过200万人睡不好,而保健局统计,台湾人一年口服13亿颗具有安眠或镇静效果的药丸,安眠药已经是台湾药物滥用榜排行第三的药品【服用药物请遵循医师指示】。而此问题正代表着安眠药具有很大市场,因此引起某药商的注意,想引进一款最新的安眠药,实行一系列的人体试验,在这试验中厂商准备了三组受试者,每组各有40人,第一组使用厂商引进的新药物,第二组则是使用坊间最受欢迎的药物(称为旧药物),最后一组则是给予安慰剂。在使用药物后记录每个受试者自服药后到入眠的时间长短(单位:分钟),所有受试者的数据列于下表中。

问题:

厂商在推出新药物之前,须先了解效果是否较原贩卖的旧药物更佳,才能决定是否贩卖,请问厂商是否应贩卖新的药物呢?与旧药物相比较,新药是有效的吗?
问题解析:此处要了解新药的药效与旧药的药效相比是否有差异,即比较服用新药后的平均入眠时间是否少于服用旧药后的平均入眠时间,讨论问题"服用新药后的平均入眠时间减去服用旧药后的平均入眠时间是否小于0?"。
统计方法:此问题中,变量为受试者的入眠时间,为单一变量(一个变量,建议选择单变量分析);使用新药物与旧药物比较可视为有二组的数据,样本量为40,大于30;二组受试者之间并无关联,为独立样本;可采用分析方法:(独立)两组样本均值差异t检验(two-sample t-test),检验"服用新药后的平均入眠时间减去服用旧药后的平均入眠时间是否小于0?"。

解析:

  1. 此题可建立原假设为"服用新药后的平均入眠时间减去服用旧药后的平均入眠时间大于等于0",即H0: μ新药物- μ旧药物≧0。
  2. 建立数据文件上传,文件格式请参照上传文件说明。
  3. 按照分析步骤说明分析数据。

R语言程序:

p_value = function(x,y,z){
  x=data.frame(x)
  y=data.frame(y)
  c=nrow(x)
  d=nrow(y)
  colnames(x)=‘variable‘
  colnames(y)=‘variable‘
  a=data.frame(rep(‘A‘,c))
  b=data.frame(rep(‘B‘,d))
  colnames(a)=‘group‘
  colnames(b)=‘group‘
  data=data.frame(variable=rbind(x,y),group=rbind(a,b))
  if(leveneTest(variable~group,data)$Pr[1] ==‘NaN‘){
    print(NA)
  }else{
    if(leveneTest(variable~group,data)$Pr[1] >0.05){
      t.test(x,y,paired=z)$p.value
    }else{
      wilcox.test(data[1:c,1],data[(c+1):(c+d),1],paired=z)$p.value
    }
  }
}
> a=c(1,2,5,7,9,0)
> b=c(2,3,4,3,6,4)
> p_value(a,b,TRUE) #for unpaired data
[1] 0.8316408
> p_value(a,b,FALSE) #for paired data
[1] 0.9358497

分析结果:

  • 分析方法:(独立)两组样本均值差异t检验
  • 数据名称:范例A-11
  • 检验变量:_NEW_
  • 分组变量:_GROUP_(新药物, 旧药物)
  • 显著水平:0.05
  • 检验均值差异:0
  • 检验方向:左尾检验
  • 计算时间:0.094秒
  • 样本描述统计量I: I:样本描述统计量都不包含缺失值
  • 两组样本方差(标准差)齐性检验I: I:分组变量为_GROUP_ II:显著性代码:‘***’ : < 0.001, ‘**’ : < 0.01, ‘*’ : < 0.05, ‘#’ : < 0.1
  • 两组样本均值差异t检验(独立样本)I,II: I:分组变量为_GROUP_ II:根据两组样本方差检验结果,假设两总体具有相同方差进行两组样本均值差异t检验 III:显著性代码:‘***’ : < 0.001, ‘**’ : < 0.01, ‘*’ : < 0.05, ‘#’ : < 0.1
  • 分析结果建议: 由于检验结果P-值(3.5846e-08) < 显著水平0.05,因此可拒绝原假设。
时间: 2024-12-20 21:34:06

基于R语言的数据分析和挖掘方法总结——均值检验的相关文章

基于R语言的数据分析和挖掘方法总结——描述性统计

1.1 方法简介 描述性统计包含多种基本描述统计量,让用户对于数据结构可以有一个初步的认识.在此所提供之统计量包含: 基本信息:样本数.总和 集中趋势:均值.中位数.众数 离散趋势:方差(标准差).变异系数.全距(最小值.最大值).内四分位距(25%分位数.75%分位数) 分布描述:峰度系数.偏度系数 用户可选择多个变量同时进行计算,亦可选择分组变量进行多组别的统计量计算. 1.2 详细介绍 1.2.1 样本数和总和 1. R语言涉及的方法:length(x) 1.2.2 均值(Mean) 1.

逻辑回归算法实现_基于R语言

逻辑回归(Logistic Regression)模型和线性回归非常相似,可以说就是在逻辑回归的基础上加上了一步逻辑转换,也就是因为这个转换,使逻辑回归模型非常适用于二分类问题的概率预测.本文主要详述逻辑回归模型的基础以及逻辑回归模型的R语言实现. 一.逻辑回归模型原理 首先要讲一下线性回归在预测分类事件中的缺点:线性回归模型的泛化能力很差,如果训练集存在噪点,会导致模型的结果特别差,不同样本建立起来的模型分割点不同:下图中根据年龄预测是否成年的分类问题,斜线就是根据训练集拟合出来的线性回归模型

中文分词实践(基于R语言)

背景:分析用户在世界杯期间讨论最多的话题. 思路:把用户关于世界杯的帖子拉下来,然后做中文分词+词频统计,最后将统计结果简单做个标签云,效果如下: 后续:中文分词是中文信息处理的基础,分词之后,其实还有特别多有趣的文本挖掘工作可以做,也是个知识发现的过程,以后有机会再学习下. ================================================== * 中文分词常用实现: 单机:R语言+Rwordseg分词包 (建议数据量<1G) 分布式:Hadoop+Smallse

分享《深度学习精要(基于R语言)》+PDF+源码+Joshua F.Wiley+高蓉

下载:https://pan.baidu.com/s/14UlxD5VJRY92UpP7Wr6Taw 更多最新的资料:http://blog.51cto.com/14087171 <深度学习精要(基于R语言)>高清中文版PDF+高清英文版PDF+源代码 高清中文版PDF,带目录和书签,能够复制粘贴:高清英文版PDF,带目录和书签,能够复制粘贴:中英文两版可以对比学习. 配套源代码: 经典书籍,讲解详细: 其中高清中文版如图 原文地址:http://blog.51cto.com/14087171

R语言基因组数据分析可能会用到的data.table函数整理

R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快.包括两个方面,一方面是写的快,代码简洁,只要一行命令就可以完成诸多任务,另一方面是处理快,内部处理的步骤进行了程序上的优化,使用多线程,甚至很多函数是使用C写的,大大加快数据运行速度.因此,在对大数据处理上,使用data.table无疑具有极高的效率.这里主要介绍在基因组数据分析中可能会用到的函数. fread 做基因组数据分析时,常常需要读入处理大文件,这个时候我们就可以舍弃read.ta

R语言与数据分析之四:聚类算法1

前面和大家分享的分类算法属于有监督学习的分类算法,今天继续和小伙伴们分享无监督学习分类算法---聚类算法.聚类算法也因此更具有大数据挖掘的味道 聚类算法本质上是基于几何距离远近为标准的算法,最适合数据是球形的问题,首先罗列下常用的距离: 绝对值距离(又称棋盘距离或城市街区距离) Euclide距离(欧几里德距离,通用距离) Minkowski 距离(闵可夫斯基距离),欧几里德距离 (q=2).绝对值距离(q=1)和切比雪夫距离(q=无穷大),这些都是闵可夫斯基的特殊情况. Chebyshew(切

R语言与数据分析之四:聚类算法2

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">今天继续和小伙伴们分享聚类算法和R语言的实现,上篇和大家分享了聚类中的距离.类间距离和最古典的层次聚类法,今天和大家分享几个动态聚类算法.</span> 首先和大家分享被评为十大数据挖掘算法之一的K-means 算法(K为分类的个数,mean为平均值,该算法的难点即为K的指点

机器学习-线性回归(基于R语言)

基本概念 利用线性的方法,模拟因变量与一个或多个自变量之间的关系.自变量是模型输入值,因变量是模型基于自变量的输出值. 因变量是自变量线性叠加和的结果. 线性回归模型背后的逻辑——最小二乘法计算线性系数 最小二乘法怎么理解? 它的主要思想就是求解未知参数,使得理论值与观测值之差(即误差,或者说残差)的平方和达到最小.在这里模型就是理论值,点为观测值.使得拟合对象无限接近目标对象. 一元线性回归与多元线性回归 自变量只有一个的时候叫一元线性回归,自变量有多个时候叫多元线性回归. R语言实现 bik

基于R语言的梯度推进算法介绍

通常来说,我们可以从两个方面来提高一个预测模型的准确性:完善特征工程(feature engineering)或是直接使用Boosting算法.通过大量数据科学竞赛的试炼,我们可以发现人们更钟爱于Boosting算法,这是因为和其他方法相比,它在产生类似的结果时往往更加节约时间. Boosting算法有很多种,比如梯度推进(Gradient Boosting).XGBoost.AdaBoost.Gentle Boost等等.每一种算法都有自己不同的理论基础,通过对它们进行运用,算法之间细微的差别