span8
span4
该夏皮罗 - 威尔克测试计算数据的随机样本是否来自一个正态分布。当p值小于或等于0.05(假定95%置信水平)的数据是不正常的。如果测试失败,您可以用95%信心地说,你的数据不符合正态分布。
本教程将进入的是如何建立一个可重复使用的定制变压器进行使用R或Python的统计测试的细节。如果您使用不同的统计检验创建自己的定制变压器,我们鼓励你把它发布到FME枢纽。
如果使用R:
[R安装 -如何安装R指令
sqldf包安装
如果使用Python:
SciPy的包安装
cat.csv(起始数据集)
RShapiroWilksCalculator.fmwt(已完成夏皮罗 - 威尔克定制变压器使用R)
PythonShapiroWilksCalculator.fmwt(使用Python完成夏皮罗 - 威尔克定制变压器)
1.添加数据
在一个空白工作区中的数据集来测试读取。对于这个例子,我们将使用cat.csv这仅仅是含有-1.7824和1.1977之间的值1000行随机生成的CSV文件。数据是正态分布的。你可以使用任何数据集,只要价值,你正在测试的数值。
添加一个CSV阅读到画布,浏览到cat.csv文件,默认参数都OK。
2.创建自定义变压器
在画布上任意位置单击右键,然后选择创建自定义变压器。命名变压器ShapiroWilkCalculator-R或ShapiroWilkCalculator-PY。如果你愿意,你可以输入描述细节。
3.创建输入参数
我们将需要使用一个属性从整个定制变压器我们的输入数据源,所以让我们做一个发布的参数做到这一点很容易。在自定义选项卡中的变压器,创建一个新发布的参数。然后设置如下:
类型 | 属性名称 |
名称 | 输入数据 |
提示 | 属性测试: |
发布时间 | 是 |
可选的 | 没有 |
属性赋值 | 离 |
input_data发布的参数设置
4.创建属性
为了能够重新使用这个定制的变压器容易,我们需要创建一个不不管是什么,我们正在评估属性被命名更改属性。添加AttributeManager变压器,并将其连接到自定义变压器内部的输入端口。新属性调用然后shapiro.x的属性值将其设置为:
@ real64(@Value($(input_data)))
我们封闭在@ real64()的参数值,以确保我们的价值观这是需要我们的统计计算的浮点数据类型。
AttributeManager参数创建常量属性shapiro.x
你与RCaller继续之前,请确保您有您的计算机上安装R,以及将R包sqldf。查看RCaller文档有关如何执行此操作。
5.设置夏皮罗 - 威尔克测试,使用R
现在,我们已经清理了的数据并创建了一个常量属性,我们可以设置RCaller变压器进行夏皮罗 - 威尔克测试。
添加RCaller变压器到画布上,并将其连接到AttrbuteManager。在参数改变输入表名称至R则列改变键入shapiro.x到浮动。单击确定接受的参数。你需要的表名更改后的RCaller重新连接到AttributeManager。
再次打开RCaller参数并粘贴下面的代码:
夏皮罗< - shapiro.test(R $ shapiro.x)fmeOutput <-data.frame(夏皮罗$统计量,夏皮罗$ p.value)
第一行建立一个命名对象Shapiro和正在执行的功能shapiro.test(这是夏皮罗 - 威尔克试验)在R表和shapiro.x柱。该列表中的目标函数的结果,所以夏皮罗成为一个列表。
两线被输出称为夏皮罗与元件统计和p.value到fmeOutput的数据帧。R使用$字符对象的访问元素。在这种情况下,它正在访问从一个列表中的元素。
在RCaller组的最后一个参数是属性揭露。单击椭圆形,并添加shapiro.statistic和shapiro.p.value作为属性暴露。这允许在RCaller后FME工作空间中使用这些属性。
对于夏皮罗Wilk检验RCaller参数
6.完成自定义变压器
为了完成定制变压器,其输出RCaller端口连接到输出端口自定义变压器。然后继续步骤10。
ShapiroWilk-R定制变压器的工作区
在继续之前,请确保您有SciPy的使用Python的相同版本所使用的FME安装。
7.保持shapiro.x
我们只需要shapiro.x属性,因此添加保留指定变压器到画布上,并将其连接到AttributeManager。这将删除从模式中的所有属性,除了一个我们感兴趣。在参数选择shapiro.x的属性保持。
8.安装使用Python夏皮罗 - 威尔克测试
现在,我们已经清理了的数据并创建了一个常量属性,我们可以设置PythonCaller变压器进行夏皮罗 - 威尔克测试。
一个PythonCaller变压器添加到画布,并将其连接到AttrbuteKeeper。在参数粘贴以下代码:
进口FME进口fmeobjects导入scipy.stats类FeatureProcessor(对象)的:def __init __(个体):self.x = [] DEF输入(个体,特征):self.x.append(浮子(feature.getAttribute('shapiro.x')))DEF接近(个体):结果= scipy.stats.shapiro(self.x)功能= fmeobjects.FMEFeature()feature.setAttribute(' shapiro.result '结果[0])feature.setAttribute(' 夏皮罗.pvalue”,结果[1])self.pyoutput(特征)
前三行导入不同的软件包。进口FME和进口fmeobjects将已经在PythonCaller当你第一次打开它,所以你只需要增加进口scipy.stats能够使用夏皮罗 - 威尔克测试。
self.x.append(feature.getAttribute( 'shapiro.x'))使用属性shapiro.x作为输入属性。
结果= scipy.stats.shapiro(self.x)要求从scipy.stats包夏皮罗功能
最后,最后四行创建的属性FME中使用。
关闭Python的调用者之前,单击省略号旁边的属性揭露并添加shapiro.result和shapiro.pvalue然后属性隐藏选择shapiro.x。
单击确定关闭PythonCaller。
PythonCaller参数夏皮罗,威尔克测试
9.完成自定义变压器
为了完成定制变压器,其输出PythonCaller端口连接到输出端口自定义变压器。
ShapiroWilk-PY定制变压器的工作区
10.运行翻译
开关返回到主标签并添加检查员到ShapiroWilk-R或ShapiroWilk-PY变压器的输出端口。打开参数定制变压器,并设置属性进行测试,以X,然后运行转换。
最终结果:
R:
蟒蛇:
11.解读
如果p值小于显着性水平(在这种情况下0.05,在95%置信区间),零假设,即所述数据是正态分布可以被拒绝。把用通俗易懂的语言,如果p值小于0.05,我们可以假设数据不是正态分布。所以对于我们的数据的p值是4.44,这是大于0.05,因此我们的数据是正态分布。
©2019安全亚搏在线软件公司|法律