在面对大规模数据时,对数据预处理,获取基本信息是十分必要的。今天分享的就是数据预处理的一些东西。
一、获取重要数据
在导入大规模数据时,我们通常需要知道数据中的关键内容:最值,均值,离差,分位数,原点矩,离差,方差等。在R中常用的函数与作用整理如下:
统计函数 |
作用 |
Max |
返回数据的最大值 |
Min |
返回数据的最小值 |
Which.max |
返回最大值的下标 |
Which.min |
返回最小值的下标 |
Mean |
求均值 |
Median |
求中位数 |
mad |
求离差 |
Var |
求方差(总体方差) |
Sd |
求标准差 |
Range |
返回【最小值,最大值】 |
Quantile |
求分位数 |
Summary |
返回五数概括与均值 |
Finenum |
五数概括(最值,上下四分位数,中位数) |
Sort |
排序(默认升序,decreasing=T时为降序) |
Order |
排序(默认升序,decreasing=T时为降序) |
Sum |
求和 |
length |
求数据个数 |
emm |
Actuar包中求k阶原点矩 |
skewness |
Fbasic包中求偏度 |
kurtosis |
Fbasics包中求峰度 |
注:对象为分组数据,矩阵时返回的不是整体的方差,均值,而是每一列(组)的方差均值其余变量类似。
二、直方图与频数统计
对于数据分布的认识,在大规模时有必要使用直方图。在R语言中,直方图的函数调用为:
hist(x, breaks = "Sturges",
freq = NULL, probability = !freq,
include.lowest = TRUE, right = TRUE,
density = NULL, angle = 45, col = NULL, border = NULL,
main= paste("Histogram of" , xname),
xlim = range(breaks), ylim = NULL,
xlab = xname, ylab,
axes = TRUE, plot = TRUE, labels = FALSE,
nclass = NULL, warn.unused = TRUE, ...)
这里值得一提的是,分组参数breaks默认使用史特吉斯(Sturges)公式,根据测定数n 来计算组距数k,公式为:k=1+3.32 logn。当然也可以自己设定一个数组来决定分组。(举例参见《R语言绘图学习笔记》)
说完频率分布直方图,我们还有频率分布直方表。对于数据的统计,函数table可以统计出数据中完全相同的数据个数。例如对《全宋词》中暴力拆解(两个相邻字算一词)词语使用数目的统计程序如下:
而对于一堆数,我们按区间做的时候,就还需要函数cut.调用格式如下:
cut(x, breaks, labels = NULL,
include.lowest = FALSE, right = TRUE, dig.lab = 3,
ordered_result = FALSE, ...)
举一个具体例子,某一款保险产品,假设保单到达的速率为10张/天,理赔发生的速率为1次/天。假设每张保单价格c=120,理赔额服从参数为v=1/1000 (以c*lambda1=1.2*lambda2/v设定)的指数分布。设定初始u=3000时,计算到第1000天为止发生破产的概率。(案例摘自《复合泊松过程模型的推广和在R语言环境下的随机模拟》 )
破产过程的R代码如下:
用R 语言模拟了1200 次,最终结果 1200 次中破产 628 次,破产率大概 52.3% 。输出各阶段破产时刻 频数和率结果如下:
区间 |
频数 |
|
|
|
|
(0,10] |
389 |
|
|
|
|
(10,20] |
89 |
|
|
|
|
(20,30] |
45 |
|
|
|
|
(30,40] |
28 |
|
|
|
|
(40,50] |
16 |
|
|
|
|
(50,100] |
36 |
|
|
|
|
(100,200] |
17 |
|
|
|
|
(200,300] |
6 |
|
|
|
|
(300,400] |
2 |
|
|
|
|
(400,500] |
0 |
|
|
|
|
(500,1000] |
0 |
|
|
|
|
(1000,1200] |
572 |
|
|
|
对于一些数据我们可能直接录入的是频率分布直方表,那么actuar包中提供了一个有用的数据结构grouped.data。调用格式:
grouped.data(..., right = TRUE, row.names = NULL, check.rows = FALSE,
check.names = TRUE)
运用举例:
对比一下下面的输出结果,我们发现分组数据的均值计算与总体数据计算方法是不一样的。
注:函数elev()可以计算有限期望值,可以避免mean(zz)不存在的尴尬。
当然对于数据的直观分析R提供的函数有许多,我们将常见的函数汇总如下:
三、正态检验与经验分布
对于数据的分布估计经验分布是一个非常好的估计。在actuar包中函数ogive给出的实现:
ogive(x, y = NULL, ...)
## S3 method for class 'ogive'
print(x, digits = getOption("digits") - 2, ...)
## S3 method for class 'ogive'
summary(object, ...)
## S3 method for class 'ogive'
knots(Fn, ...)
## S3 method for class 'ogive'
plot(x, main = NULL, xlab = "x", ylab = "F(x)", ...)
还是以上面的例子数据zz为例:
ogive(zz)
plot(ogive(zz))
输出结果:
Ogive forgrouped data
Call:ogive(zz)
x = -Inf, -3, -2, ..., 3, Inf
F(x) = 0, 0.0011, 0.0229, ...,0.9985, 1
由于大数定律的存在,很多情况下,正态性检验是十分有必要的一个分布检验,在R中提供的正态性检验可以汇总为下面的一个正态检验函数:
对于分布的检验还有卡方检验,柯尔莫哥洛夫检验等,在R中也有实现函数chisq.test()等。我们同样以一个例子来说明:
例子摘自:王兆军《数理统计讲义》习题6.3
解答如下:(结果以注释形式标明)
S3C2410 ARM板上构造gdb +gdbserver调试环境 远程调试环境由宿主机gdb和目标机调试stub共同构成,两者通过串口或TCP连接。使用GDB标准程串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调试功能。调试stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程序间的一个媒介而存在。 就目前而言,嵌入式Linux系统中,主要有
转自该处最近做项目需要将H264文件封装为mp4文件,从网上找到了MP4V2库,下载下来后不知道从何下手,官方网站https://code.google.com/p/mp4v2/在windows下的编译过程介绍的很简短,对刚刚开始使用VS2010做大型项目的人来说,实在是有些无力。于是从网上找到了下面几篇博客文章,亲测可用,留下来以备查看。1.mp4v2 库在VS2010下的编译过
PHP调用WebAPI接口该接口传入参数是JSON格式,传输方式是POST,用PHP调用WebAPI接口,获取返回参数。推荐一个Php在线测试工具,地址:https://www.dooccn.com/php/源码:$Url = “http://218.29.74.138:17252/api/Users/GetUserInfo”;//接口地址$sl_data=array(‘UserCode’=>...
RocksdbFlink提供基于流的有状态计算,除了提供实时数据流的处理能力,还需要将计算产生的状态存储起来。为了满足状态存取需求,提供了memory、flie system、rocksdb三种类型的状态存储机制。memory存取高效单空间有限,且可用性低;file system提供状态持久化能力但存取性能较低;rocksdb提供数据快速写入以及数据持久化的能力。本文介绍了Rocksdb设计的基本架构。RocksDB介绍Rocksdb 是基于Google LevelDB研发的高性能kv持久化存
Bubble就是一个事件可以从子节点向父节点传递,比如鼠标点击了一个TD,当前的event.srcElement就是这个TD,但是这种冒泡机制使你可以从TR或者Table处截获这个点击事件,但是如果你event.cancelBubble,则就不能上传事件。 例子: <html...
安装minifilter后,可以在注册表看到一些
用过FLEX中String类型的朋友可能知道,replace这个方法并不过替换所有内容。那么我们需要替换所有内容怎么办?只有自己动手,丰衣足食咯,呵呵。言归正专,有两种方法,一种是利用Array的方式,另一种是利用正则去替换。/** * StringReplaceAll * @param source:String 源数据 * @param find:String 替换对象 * @pa
pip安装报错 Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-SPz2QZ/cryptography 解决方法解决方式,去安装 setuptools命令:pip install --upgrade setuptools搞定 。 ...
--创建数据库create database EmpDBsgo--切换数据库use EmpDBsgo------------------------------------------------------------------------------------------------------------------创建表 tbDepart 部门表c
《单源最短路径 贪心算法》由会员分享,可在线阅读,更多相关《单源最短路径 贪心算法(3页珍藏版)》请在人人文库网上搜索。1、实验三 单源最短路径一、实验目的及要求掌握贪心算法的基本思想用c程序实现单源最短路径的算法二、实验环境Window下的vc2010三、实验内容1、有向图与单源点最短路径2、按路径长度非降的次序依次求各节点到源点的最短路径3、Dijkstra算法四、算法描述及实验步骤设给定源点...
效果图:官方文档:wx.setClipboardData(Object object)基础库 1.1.0 开始支持,低版本需做兼容处理。本接口从基础库版本1.9.6起支持在小程序插件中使用设置系统剪贴板的内容。调用成功后,会弹出 toast 提示"内容已复制",持续 1.5s参数Object object属性 类型 默认值 必填 说明 data string 是 剪贴板的内容 success f...
到目前为止我已经使用了套接字模式 . 刚刚在我的机器上通过cmd测试了管道:/usr/lib/openoffice/program/soffice.bin -accept='pipe,name=foo;urp;StarOffice.ServiceManager' -nologo -headless -nofirststartwizard -invisible$ lsof -c soffice|eg...