JMP数据分析论坛

标题: 如何在JMP中快速拆分现有数据集 [打印本页]

作者: admin    时间: 2020-11-4 15:46
标题: 如何在JMP中快速拆分现有数据集
​​在日常分析数据的过程中,我们往往只需要整个数据集中的一部分,比如只关注一部分观测/行(男性或女性、某个年龄段的患者或者是患有某种疾病的患者)或者一部分变量/列等等这些可以称之为子集的数据集,而拆分原始数据的过程也同时是生成子集的过程。那么在JMP中如何快速拆分这些数据集呢?如何选择符合条件的观测值?如何一键拆分数据为多个子集?JMP中又有哪些简便快捷的随机抽样方法?今天就带大家一起学习数据清洗的一个重要部分——拆分数据的实用技巧,帮助你省时省力地提高分析的准确性。
为了帮助更多的临床医师学习如何运用JMP高效地开展数据分析,提高日常工作和发表论文的效率,2020年8月起,JMP资深用户、JMP特约专栏作者、资深统计学家冯国双博士及其团队将在JMP数据分析平台为大家分享一系列统计及数据分析、JMP实战操作等干货内容,每期一个经典话题,帮助大家掌握一个新技能。值得注意的是,这些话题并非仅针对临床医师,对所有运用JMP软件开展数据分析的小伙伴都适用本文为此系列文章的第四期。

在JMP中,生成子集的菜单位于【表】→【子集】,如图1。
[attach]4684[/attach]
图1 生成子集的主要操作页面

那么具体该如何拆分呢?这个对话框里的每个选项都有何意义?又该如何利用好这些选项呢?我们先从最简单的说起。

01 如果只需要一部分变量(列)
比如在下图的数据集里,只需要Y和年龄两个变量(当然实际情况不会是这样,一般情况下,除非变量特别多,都不需要单独把一些变量拎出来),你只需要在数据表上选中你想要的列,多列的时候记得按住Ctrl键,然后打开子集对话框,如图2操作。
[attach]4685[/attach]
图2 将部分列生成新的子集

这样就得到了由所有观测(行)和选定变量(列)组成的新数据集。

然而更多的时候,我们更想选择符合特定条件的观测(行),对变量不做要求,或者是选择一部分观测和一部分变量,那下面的几种拆分行的操作就能派上用场了。


02  如果只需要一部分观测(行)

“选择符合条件的行”
这个标题既是我们的目的,又是我们实现目的的操作。比如我们想选择数据集中年龄>40岁的观测,我们可以通过【行】→【行选择】→【选择符合条件的行】,然后编辑筛选观测的条件,点击确定,数据中符合条件的观测就会被选中。

本例中选中320行观测,如果希望将这些观测生成为新的子集,那么只需要点击【表】→【子集】,不需要做更改(当然,如果你在这之前已经选中了部分变量,那么需要选中【选定列】,而非【所有列】),点击确定即可将选中观测生成新的数据集,如图3。
[attach]4686[/attach]
图3 选择符合条件的行

选择符合多重条件的观测
很多时候我们需要选择的观测要满足≥2条规则,比如我们要选择大于40岁的女性,同样的流程,只是在编辑规则时稍稍复杂一点,见图4。条件之间的关系是“和(and)”时,选择【若符合所有条件】,是“或(or)”时,选择【若符合任意条件】。
[attach]4687[/attach]
图4 选择符合多重条件的观测

隐藏不想分析的行
上一个方法介绍的是如何将想要的观测生成新数据集,以便我们进行分析。这里介绍如何从另一个角度得到我们想要的行,那就是隐藏掉不想要的行。

同上面讲述的选择行的方法一样,你可以从【选择符合条件的行】选中你将要分析的行,然后反向选择进行【隐藏和排除】操作,见图5(图中已经完成了选择符合条件的行)。

这里建议大家直接选择【隐藏和排除】,因为只是被【隐藏】的观测同样会进入到后续的统计分析中,只是在作图表时不出现,而只是被【排除】的观测不会进入到后续的统计分析中,但会在作图时出现。一般情况下,对于这些不符合筛选条件的观测,我们既不想让它们出现在图表中,也不想让它们参与后面的统计分析,所以直接选择【隐藏和排除】就好啦。
[attach]4688[/attach]
图5 隐藏和排除不想分析的行

另一种方法就是直接反向编辑选择条件,直接筛选出不想纳入分析的行,再点击【隐藏和排除】。再次点击【隐藏和排除】即可取消。

一键拆分成多个子集
如果出于分析需要,我们想根据某变量的不同值将数据拆分成多个数据集,例如拆成男、女两个数据集,或根据示例数据中的Y(有序型)拆成high、medium和low三个数据集,这在JMP里的操作有多简单呢?

我们以后者为例,见图6。在勾选【取子集依据】后弹出的变量名列表里选择你想拆分数据集的依据,本例以Y(有序型)为依据,JMP将数据集自动拆成三个子集,分别是Y(有序型)=low,Y(有序型)=medium以及Y(有序型)=high三个子集。
[attach]4689[/attach]
图6 按照变量值拆分子集

以变量为依据,JMP会将变量中的每一个值单独生成一个新的子集。举例来说,如果你不小心将连续型的年龄变量作为拆分依据,那你的屏幕将会弹出上百个子集,每个子集的观测具有相同的年龄,这点要小心哦。

随机抽样
作为拆分数据集的一个特例,随机抽样其实也可以看作是数据集的拆分,相当于把随机选中的观测拆分出来,就形成了随机抽取的样本。

在JMP中进行随机抽样有多种方式,这里介绍的是最简单的一种随机抽样方式,你只需要告诉软件,想抽取多少人,或抽取总例数的多大比例,其余就都交给软件就行了。具体更详细的随机抽样方法我们会在后面文章中有专门介绍。

这种方式仍然在【表】→【子集】的对话框中,如图7所示,红框内的部分就是进行随机抽样操作的关键选项,两种方式任选其一,一种是指定抽样的比例【随机-抽样率】,另一种是直接指定抽取的样本量【随机-样本大小】。
[attach]4690[/attach]
图7 随机抽样

图7所示,表示随机抽取全部观测的50%,或者从全部观测中随机抽取221例形成新的数据集(注意这里的随机抽样是无放回抽样哦,也就是说每个观测至多只能被抽取一次。点击“确定”后,你会发现一个新的数据集就出现了,这就是你想要的随机抽取的样本数据。这大概是史上最简单的随机抽样方式了,有了这一工具,还用担心什么抽样问题呢?

当然,这种随机抽样只是简单随机抽样,实际中的随机抽样方式也有多种,如分层随机抽样等,这在JMP中实现起来也非常容易,我们将在之后随机抽样的文章中专门介绍。敬请期待!
​​​​




作者: 小白应用统计学    时间: 2020-11-4 18:57
辛苦啦
小小的建议,可以把样本集(模拟的也可以)让大家来复现
作者: admin    时间: 2020-11-6 09:11
小白应用统计学 发表于 2020-11-4 18:57
辛苦啦
小小的建议,可以把样本集(模拟的也可以)让大家来复现

好提议。版主回头问问作者团队是否可以提供下数据集~
作者: 小白应用统计学    时间: 2020-11-6 13:36
admin 发表于 2020-11-6 09:11
好提议。版主回头问问作者团队是否可以提供下数据集~

给了锤子,再配套一个钉子,要么两边都会干着急的
^V^
作者: nanfeng36    时间: 2020-11-8 10:08
Diabetes.jmp
这是软件自带的数据文件.
作者: 小白应用统计学    时间: 2020-11-8 10:57
nanfeng36 发表于 2020-11-8 10:08
Diabetes.jmp
这是软件自带的数据文件.

好尴尬,结果已经搜索到啦,给力




欢迎光临 JMP数据分析论坛 (http://www.jmpforum.net/) X3