全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1847 1
2011-07-25
一个很诡异的问题。我有个比较大的数据集,400多万吧,其实也不算很大。
我写了个程序,先做回归,然后吧估计出来的线,画在观测值的图上。
程序很简单。

proc sgplot data=test;
scatter x=a  y=b;
reg x=a_reg y=b_reg;
run;

其中a,b是观测值,一共400多万条观测。
a_reg, b_reg是我从400多万条观测中挑选出来的,用以回归的观测值。因为一来数据集比较大,二来尾部有些观测值很差,我只需要中间一段,所以挑选了一下。
然后出现了一个奇怪的错误。
ERROR: Java virtual machine exception. java.lang.OutOfMemoryError: Java heap space.

看起来是memory不够了,但是我选取的,用以回归的观测值已经不多了,为啥还会这样呢?

我进一步用proc reg直接做回归,没有任何问题,回归的各项参数都能得到,但是就是画图这一步完成不了。

而当我改用另外一个较小的数据集,大约100万观测的时候,整个程序又没有任何问题了。看起来似乎是观测集的大小,影响了画图。但是我做回归线图的时候,并没有用到那么多观察值啊?
然后我再测试,单独只画观测值(400万)或者单独只画回归线,都没有任何问题,唯独画一起,就出现上面的错误了。。。

求高人指点~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-7-25 10:36:17
这种情况还没遇到过,是不是sGplot的运算过程比proc reg复杂?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群