在PostgreSQL中如何生成线性相关的测试数据

来源:互联网 发布:sdn网络控制器 编辑:程序博客网 时间:2024/05/20 18:46

生成线性相关的测试数据。
同样可以用到generate_series和随机数。
例子
生成10万条随机数字。

select trunc(10000 + 1000000*random()) id from generate_series(1,100000);  

根据刚才那组数据,加减5以内的随机数,生成另一组数字。

select id, trunc(id + 5-random()*10) from (select trunc(10000 + 1000000*random()) id from generate_series(1,100000)) t;

如下

postgres=# create table corr_test(c1 int, c2 int);CREATE TABLEpostgres=# insert into corr_test select id, trunc(id + 5-random()*10) from (select trunc(10000 + 1000000*random()) id from generate_series(1,100000)) t;INSERT 0 100000

线性相关性如下:

postgres=# select corr(id, trunc(id + 5-random()*10)) from (select trunc(10000 + 1000000*random()) id from generate_series(1,100000)) t;       corr        ------------------- 0.999999999954681(1 row)... ...postgres=# select corr(id, trunc(id + 5-random()*10)) from (select trunc(10000 + 1000000*random()) id from generate_series(1,100000)) t;       corr        ------------------- 0.999999999954898(1 row)

p元回归的测试数据也可以使用以上方法生成。

0 0
原创粉丝点击