数据抽样算法 oracle,数据准备:利用ORACLE实现数据抽样

做数据分析的,免不了碰到记录数据量很大,怎么办?

做全面分析是不现实也没有必要。

介绍一下抽样方法及实现

几种常用的抽样方法:

1.简单随机抽样(simple random sampling)

将所有调查总体编号,再用抽签法或随机数字表随机抽取部分观察数据组成样本。

优点:操作简单,均数、率及相应的标准误计算简单。

缺点:总体较大时,难以一一编号。

2.系统抽样(systematic sampling)

又称机械抽样、等距抽样,即先将总体的观察单位按某一顺序号分成n个部分,再从第一部分随机抽取第k号观察单位,依次用相等间距从每一部分各抽取一个观察单位组成样本。

优点:易于理解、简便易行。

缺点:总体有周期或增减趋势时,易产生偏性。

3.整群抽样(cluster sampling)

先将总体依照一种或几种特征分为几个子总体(类.群),每一个子总体称为一层,然后从每一层中随机抽取一个子样本,将它们合在一起,即为总体的样本,称为分层样本

优点:便于组织、节省经费。

缺点:抽样误差大于单纯随机抽样。

4.分层抽样(stratified sampling)

将总体样本按其属性特征分成若干类型或层,然后在类型或层中随机抽取样本单位,合起来组成样本。有按比例分配和最优分配(过度抽样是否就是最优分配方法?)两种方案。

特点:由于通过划类分层,增大了各类型中单位间的共同性,容易抽出具有代表性的调查样本。该方法适用于总体情况复杂,各类别之间差异较大(比如金融客户风险/非风险样本的差异),类别较多的情况。

优点:样本代表性好,抽样误差减少。

我们需要使用抽样的方法从总量用户中随机抽取100W个样本记录。

down到本机然后进行sas抽样,不可能!

直接sas联机抽样,更不可能!

直接提交服务器进行抽样,然后链接到本机进行分析

现在介绍一下ORACLE抽样方法:

Oracle取随机数据实现

随机查看前N条记录

SELECT * FROM (SELECT * FROM TB_PHONE_NO ORDER BY

SYS_GUID())

WHERE ROWNUM < 10;

SELECT * FROM (SELECT * FROM chifan ORDER BY

dbms_random.random) WHERE ROWNUM<=5

SQL> SELECT * FROM (SELECT * FROM A SAMPLE(0.01))

WHERE ROWNUM<=1;

注意每次取得的值都不同。

SAMPLE 是随机抽样,后面的数值是采样百分比。

另附SAS 抽样实现

DATA

COMMON.OTHER_200909(WHERE=(RANUNI(1)<.042>

SET COMMON.FIN_200909;

WHERE PV IS NULL;

RUN;

效率非常低,不推荐

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值