前言
R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX,Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R还有以下特点:
1.R是自由软件。这意味着它是完全免费,开放源代码的。可以在它的网站及其镜像中下载任何有关的安装程序、源代码、程序包及其源代码、文档资料。标准的安装文件身自身就带有许多模块和内嵌统计函数,安装好后可以直接实现许多常用的统计功能。
2.R是一种可编程的语言。作为一个开放的统计编程环境,语法通俗易懂,很容易学会和掌握语言的语法。而且学会之后,我们可以编制自己的函数来扩展现有的语言。这也就是为什么它的更新速度比一般统计软件,如,SPSS,SAS等快得多。大多数最新的统计方法和技术都可以在R中直接得到。 [1]
3. 所有R的函数和数据集是保存在程序包里面的。只有当一个包被载入时,它的内容才可以被访问。一些常用、基本的程序包已经被收入了标准安装文件中,随着新的统计分析方法的出现,标准安装文件中所包含的程序包也随着版本的更新而不断变化。在另外版安装文件中,已经包含的程序包有:base一R的基础模块、mle一极大似然估计模块、ts一时间序列分析模块、mva一多元统计分析模块、survival一生存分析模块等等.
4.R具有很强的互动性。除了图形输出是在另外的窗口处,它的输入输出窗口都是在同一个窗口进行的,输入语法中如果出现错误会马上在窗口口中得到提示,对以前输入过的命令有记忆功能,可以随时再现、编辑修改以满足用户的需要。输出的图形可以直接保存为JPG,BMP,PNG等图片格式,还可以直接保存为PDF文件。另外,和其他编程语言和数据库之间有很好的接口。
5.如果加入R的帮助邮件列表一,每天都可能会收到几十份关于R的邮件资讯。可以和全球一流的统计计算方面的专家讨论各种问题,可以说是全世界最大、最前沿的统计学家思维的聚集地.

数据处理
数据(Data)是对事实、概念或指令的一种表达形式,可由人工或自动化装置进行处理。数据经过解释并赋予一定的意义之后,便成为信息。数据处理(data processing)是对数据的采集、存储、检索、加工、变换和传输。数据处理的基本目的是从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说是有价值、有意义的数据。数据处理是系统工程和自动控制的基本环节。数据处理贯穿于社会生产和社会生活的各个领域。数据处理技术的发展及其应用的广度和深度,极大地影响了人类社会发展的进程。

数据挖掘
数据挖掘是人工智能和数据库领域研究的热点问题,所谓数据挖掘是指从数据库的大量数据中揭示出隐含的、先前未知的并有潜在价值的信息的非平凡过程。数据挖掘是一种决策支持过程,它主要基于人工智能、机器学习、模式识别、统计学、数据库、可视化技术等,高度自动化地分析企业的数据,作出归纳性的推理,从中挖掘出潜在的模式,帮助决策者调整市场策略,减少风险,作出正确的决策。知识发现过程由以下三个阶段组成:①数据准备;②数据挖掘;③结果表达和解释。数据挖掘可以与用户或知识库交互。
数据挖掘是通过分析每个数据,从大量数据中寻找其规律的技术,主要有数据准备、规律寻找和规律表示三个步骤。数据准备是从相关的数据源中选取所需的数据并整合成用于数据挖掘的数据集;规律寻找是用某种方法将数据集所含的规律找出来;规律表示是尽可能以用户可理解的方式(如可视化)将找出的规律表示出来。数据挖掘的任务有关联分析、聚类分析、分类分析、异常分析、特异群组分析和演变分析等。

1.数据处理与分析

1.1在列表中显示缺失值

在获得数据集后首先观察数据,数据中总共61个数据,但在部分样本的部分属性存在空值,需要对这些值进行分析和处理,能否直接去除,是否会影响对于该数据集分析结果。
导入VIM 和 mice包
library(VIM)
library(mice)
data(sleep,package = “VIM”)
md.pattern(sleep)
获得了包含缺失值的一个矩阵
表中1和0显示了缺失值模式,第一列表示各缺失值模式的实例个数,最后一列表示各模式中有缺失值的变量的个数。此处可以看到,有42个实例没有缺失值,仅2个实例缺失了Span。数据集包含了总共 38个缺失值。最后一行给出了每个变量中缺失值的数目。

1.2 整体缺失情况与变量缺失情况

aggr(sleep,prop=False,number=TRUE)

Marginplot(sleep[c(“Sleep”,”Dream”)],pch=c(20),col=c(“darkgray”,”red”,”blue”))

在图中,可以观察到数据的整体分布比较散,且存在数据间跨度较大的问题,在本次分析中,选择直接去除空值对研究结果不造成影响
sleep<-na.exclude(sleep)
获得干净的sleep数据集

2.建立数据模型

2.1数据集说明

本次选用的数据集为哺乳动物睡眠数据sleep,其中包含43个有效数据,每个数据共10个属性,说明如下:
第一列:BodyWgt 体重
第二列:BrainWgt 脑重
第三列:NonD 不睡觉时间
第四列:Dream 做梦时间
第五列:Sleep 睡眠时长
第六列:Span 寿命
第七列:Gest 妊娠期
第八列:Pred 物种被捕食的程度
第九列:Exp 睡眠时暴露的程度
第十列:Danger 面临的总危险程度

2.2决策树的构建


1.数据处理


在本次实验中,所选用的实验环境为RStudio,首先我们使用Sleep来查看sleep中所含有的数据集,可以观察到,该数据集中有许多对象的数值为NA,此时我们需要对这些数据进行处理,以免空白值会对研究结果产生影响。在本次研究中,第一步已对空白值进行了处理。

2.决策树模型构建

在对sleep数据集进行数据处理与清洗后,将开始使用数据集进行决策树的构建。在将处理后的数据分成训练集和测试集,其中70%作为数据的训练集吗,剩余30%作为测试集,代码如下:

n<-0.3*nrow(sleep)
test.index<-sample(0:nrow(sleep),n)
sleep.train<-sleep[-test.index,]
sleep.test<-sleep[test.index,]
dim(sleep)

使用dim(sleep)查看此时sleep数据集包含的维度大小

从中可以看到有42条有效数据,10个属性值

同时已经将这些有效数据分成了大约7:3的训练集和测试集
在之后导入C50包对这些数据进行决策树的构建

install.packages("C50")
library(C50)
sleep.tree<-C5.0(as.factor(Pred)~.,data=sleep.train)
sleep.tree
summary(sleep.tree)
plot(sleep.tree)

在sleep.train中选取Pred(被捕食程度)作为研究对象,进行模型构建

对sleep.tree进行分类上的总结与输出
可以观察到,在训练集的31个数据中,只存在3个数据有错误,分类的正确率达到了90.3%。

在决策树中可以分析出:
在不同物种所对应的10种属性中,对Pred进行分类,从Danger属性开始,当物种的危险总程度高于2时,以系数为4作为新的分界节点,在本数据集种,即危险总程度为5,有4条数据,该类物种被捕食的程度是极高的。当危险总程度小于等于4时,通过对物种的不做梦时长进行了划分,在不做梦时长小于等于6.3h时,大约3h左右时,占据100%(4条数据)。在不做梦时长大于6.3时,又对物种的脑重进行划分,大于50.4时该物种被捕食程度为80%,小于等于50.4时又可分为三类,被捕食程度分别为60%、80%、100%,其中三者的占比分别为20%、20%、60%。
当物种的危险总程度小于等于2且大于1时,物种被捕食程度为40%、60%,占比分别为90%、10%。当危险总程度小于等于1时,又对Span(寿命)属性进行分类,当物种寿命高于7.6年时,该类物种被捕食的程度仅为20%,当物种寿命小于等于7.6年时,物种被捕食程度为40%。从决策树种可以看出,对于一类物种被捕食的程度,影响最大的是危险总程度,在根据危险程度,不睡眠程度对物种之间进行分类,来找寻对该类物种被捕食的影响程度。

3.数据聚类分析

3.1. kmeans分析(均值聚类)

1.选取数据
在对数据集sleep进行聚类分析时,不需要使用过多的属性,在之前的决策树中我们可以选取几个较为重要的属性进行分析,在本次中我们选取
Dream,Sleep,Span,Gest,Pred,Exp,Danger
这几个属性进行聚类分析
数据集命名为sleep2

sleep2<-sleep[,4:10]
sleep.kmeans<-kmeans(sleep2,20)  //选取20个数据进行分析
sleep.kmeans


2.聚类分析

***

在简单的观察完数据后,选择将分类和中心点可视化

plot(sleep2$Danger,sleep2$NonD,col=sleep.kmeans$cluster,pch="*")
points(sleep.kmeans$centers,pch="X",cex=1.5,col=4)


可以看出,通过对Danger程度和NonD程度的分析后,大多数聚类在NonD:4左右,而危险程度分布的还是比较散的。

3.2 K-Mediods分析

在K-Mediods分析中,将使用pam、clara、pamk三种分析方式对数据集进行聚类分析
1.pam聚类
在K-Mediods分析中,要使用到cluster库,将其导入

install.packages("cluster")
library(cluster)

观察数据时,只选用后三项
Pred 物种被捕食程度
Exp 睡眠时暴露程度
Danger 面临的危险总程度

sleep3<-sleep[,8:10]
sleep3.pam<-pam(sleep3,20)
table(sleep$Danger,sleep3.pam$clustering)

plot(sleep3.pam)


在经过聚类pam处理后,发现大致分成了五类,但由于物种的多样性,以及样本的差异过大,选择减小数据类型以及数量再进行分析。

2.clara聚类

sleep4<-sleep[,8:9]
sleep4.clara<-clara(sleep4,3)
table(sleep$Danger,sleep4.clara$clustering)
layout(matrix(c(1,2),1,2))
plot(sleep4.clara)
layout(matrix(1))


在进行选取后,对Danger进行的聚类分析已较为集中,数据可视化后也更加清晰

3.pamk聚类

sleep4.pamk<-pamk(sleep4)
table(sleep4.pamk$pamobject$clustering,sleep4.pamk$Danger)
layout(matrix(c(1,2),1,2))
plot(sleep4.pamk$pamobject)a
layout(matrix(1))

3.3层次聚类分析Hcluster

在选用层次聚类分析时,将每一个数据样本作为一类,规定某种度量作为样本之间距离以及类距离之间的度量,将距离最短的两个合并为一个类,重复2-3,即不断合并最近的两个类,每次减少一个类,直到所有的样本合并为一个类。

idx<-sample(1:dim(sleep)[1],40)
sleep3<-sleep[idx,-5]
sleep3<-sleep3[,1:3]
sleep3
hc<-hclust(dist(sleep3),method = "ave")
plot(hc,hang=-1,labels=sleep$Danger[idx])
rect.hclust(hc,k=3)
groups<-cutree(hc,k=3)

4.结论

在本次研究中,是对数据集哺乳动物睡眠数据sleep进行的研究,首先是对数据进行处理,对于空值的处理能否舍弃,以及对研究结果是否产生影响。其次是处理完数据后的模型建立,数据挖掘中使用到的决策树,是一种很好的分类工具,可以将复杂多样化的数据根据样本的属性,来进行分类研究,可以直观的看出哪一种属性对于哺乳动物的生存率影响最大。在分析完属性后,又继续进行聚类分析,通过不同的聚类算法,来对数据集的情况进行聚类处理和分析。

参考文献
[1] 李仁钟等编著,零基础学 R 语言数据分析,清华大学出版社,2018.10
[2] Ronald K.Pearson, Exploratory Data Analysis Using R,CRC Press
[3] Tilman M. Davies , R语言之书:编程与统计
[4] Winston Chang,R数据可视化手册

基于R语言对哺乳动物睡眠时间sleep数据集的分析相关推荐

  1. 【R语言实验】基于R语言的时间序列平稳性检验

    一.实验项目名称:基于R语言的时间序列平稳性检验 二.实验目的与要求: 平稳时间序列的概念,平稳性检验的时序图检验方法和自相关图检验方法. 三.实验原理: 时序图和自相关图检验时间序列的平稳性依据: ...

  2. 毕业论文知识点记录(六)——基于R语言优化maxent模型

    毕业论文知识点记录(六)--基于R语言优化maxent模型 第一步:R安装 这个网上都有很多详细的步骤,就不再详细介绍了. 第二步:R安装包 因为优化maxent模型需要用到kuenm程序包,但是官网 ...

  3. 基于R语言的Copula变量相关性分析及应用

    在工程.水文和金融等各学科的研究中,总是会遇到很多变量,研究这些相互纠缠的变量间的相关关系是各学科的研究的重点.虽然皮尔逊相关.秩相关等相关系数提供了变量间相关关系的粗略结果,但这些系数都存在着无法克 ...

  4. 基于R语言的多元线性回归--我国经济增长的定量研究

    基于R语言的多元线性回归--我国经济增长的定量研究 一.实验介绍 1.1 实验内容 经济增长一直以来都是我国宏观经济政策的目标之一,研究影响经济增长的因素对促进我国经济快速发展有着重要意义.本实验运用 ...

  5. python对电影进行预测评分_基于R语言构建的电影评分预测模型

    原标题:基于R语言构建的电影评分预测模型 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能BI.大数据分析 ...

  6. Protein Cell:基于R语言的微生物组数据挖掘最佳流程(大众评审截止14号晚6点)...

    Protein & Cell综述:基于R语言的微生物组数据挖掘的最佳流程 近日,中国农业科学院刘永鑫组联合南京农业大学袁军组在国际期刊 Protein & Cell (IF = 15. ...

  7. 基于R语言的代理模型(高斯过程、贝叶斯优化、敏感性分析、异方差性等)高级技术应用

    基于R语言的代理模型(高斯过程.贝叶斯优化.敏感性分析.异方差性等)高级技术应用 直播时间:10月30日-10月31日.11月6日-7日(4天+1周辅导练习) (上午9:30-12:00  下午14: ...

  8. R语言限制性立方样条(RCS, Restricted cubic spline)分析:基于logistic回归模型、南非心脏病数据集(South African Heart Disease)

    R语言限制性立方样条(RCS, Restricted cubic spline)分析:基于logistic回归模型.南非心脏病数据集(South African Heart Disease) 目录

  9. canoco5主成分分析步骤_基于R语言的主成分分析

    基于R语言的主成分分析 加入的SPSS群里有人问,怎么用SPSS进行主成分分析.确实没有注意到这种操作.很好奇,于是翻了翻孙振球的<医学统计学>,发现主成分分析这一块,竟使用了SAS!后来 ...

  10. r语言 线性回归 相关系数_基于R语言的lmer混合线性回归模型

    原文 基于R语言的lmer混合线性回归模型​tecdat.cn 混合模型适合需求吗? 混合模型在很多方面与线性模型相似.它估计一个或多个解释变量对响应变量的影响.混合模型的输出将给出一个解释值列表,其 ...

最新文章

  1. 【数据库】mysql移植
  2. 电信、联通、移动、其它路由表 2011-06-19更新
  3. QT的QDesignerPropertySheetExtension类的使用
  4. idea中查看类中所有方法列表(Alt+7)(亲测)
  5. css3半空心圆_15个超强悍的CSS3圆盘时钟动画赏析
  6. 职校计算机课堂评课标准,中职学校计算机专业课堂教学评价(共2323字).doc
  7. C#LeetCode刷题之#345-反转字符串中的元音字母​​​​​​​(Reverse Vowels of a String)
  8. JavaScript浏览器window对象→简介、消息对话框、计时器、history、打开新窗口及模式showModalDialog、location、navigator、screen、窗口位置尺寸
  9. H∞鲁棒控制问题的一般性描述
  10. 爬虫之requests模块
  11. 《秘密》读后感之秘密的揭露和法则
  12. 如何用PHP完整的开发一个网站?
  13. 闰秒及其对计算机系统影响,闰秒原理及其对计算机系统影响
  14. 词向量表示:word2vec与词嵌入
  15. 虚拟华尔街的最新资讯 虚拟经济体的最新经济体
  16. BIOS 工作流程解析
  17. 大数据分析师与数据分析师_非分析师的数据分析
  18. LibreOJ545. 「LibreOJ β Round #7」小埋与游乐场【网络流】
  19. 启用Hadoop集群垃圾箱配置
  20. meng-ui 中el-form 表单如何校验

热门文章

  1. 盘点:QuickTime Player 键盘快捷键和手势大全
  2. 南京信息工程大学python期末考试_南京信息工程大学的雷丁学院怎么样?
  3. 2022年MSI赛程安排时间表 MSI赛事规则
  4. Python从入门到PY交易,基础语法,散记(一)
  5. matlab将z域变为s域,时域、S域、Z域转换
  6. Spring的运行原理
  7. 从安卓手机ROOT提取微信聊天记录到利用Python进行词云分析全过程
  8. UGUI源码剖析(CanvasUpdateSystem 画布刷新系统)
  9. Crashing Balloon
  10. Reapp 混合应用 - 帮助构建前所未所的强大应用(Reapp Hybrid apps - help you build powerful apps like never before)