我有个问题。我在别处寻找答案,但解决不了我的问题。有人能帮我吗?
我有一个大约100万条记录的数据集,其中包含三个变量:n(数值)、X(因子)、E(数字)。变量X大约有100个级别。当我试图运行相同的代码时,用另一个协变量Y(只有4个级别)代替X,效果很好。也许它和变量X本身有关?例如,某些级别的X只有真正的低频率出现,而Y的情况并非如此。那么这是一个问题吗(因为较大的数据块划分为块,而不是每个块可能拥有所有级别的X)?
我的机器只有2GB内存。目标之一是在R中使用包,这样,当在更大的数据集中复制代码时,它仍然工作。
如果你需要更多的细节,问我,我会提供。
str(数据)给出了以下内容:
'data.frame' : 967821 obs. of 13 variables:
$ E : num 0.6694 0.418 0.0546 0.1612 0.071 ...
$ Y : Factor w/ 4 levels "1","2","3","4": 1 1 3 2 1 1 1 1 1 4 ...
$ ?? : Factor w/ 2 levels "??",..: 1 1 1 1 1 1 1 1 1 1 ...
$ ?? : Factor w/ 38 levels "??","??",..: 37 29 11 21 24 23 16 36 19 36 ...
$ ?? : num 77 43 66 72 96 43 45 78 53 65 ...
$ ?? : num 7.29 12.42 21.88 5.78 2.62 ...
$ ?? : Factor w/ 1150 levels "1000","1020",..: 494 1003 456 183 163 1055 881 128 1019 1041 ...
$ ?? : num 52.5 78 37.7 41.1 64.3 ...
$ ?? : Factor w/ 31 levels "1","2","3","4",..: 22 11 3 3 11 2 11 11 3 2 ...
$ ?? : num 34.2 48.9 12.2 19.8 44.3 ...
$ N : int 0 0 0 0 0 0 0 0 0 0 ...
$ ?? : Factor w/ 2 levels "1","2": 1 1 1 2 1 2 2 1 1 1 ...
$ X : Factor w/ 89 levels "18","19","20",..: 36 61 21 24 47 36 48 67 17 18 ...我的代码如下所示:
library(ffbase)
library(biglm)
data = as.ffdf(data)
regglm2=bigglm.ffdf(N~X+offset(log(E)),data=data, family=poisson(), maxit=100, chunksize=10000)错误如下:
警告消息:在bigglm.function中(公式=公式,data = datafun,.):迭代用完,收敛失败
发布于 2013-08-21 00:30:35
有两个问题,这两个问题都可以被认为是一个答案,取决于机器资源:
1)您是否增加了控件列表中的迭代次数?maxit控件,默认为小数目。试着增加到25
2)你确定你需要bigglm吗?你和glm试过吗?那不是一个非常大的物体。如果您在一台4GB的计算机上,那么一定要从启动配置中的最小程序和Windoze开始(无论在显示的较低边框上调用这些小程序是什么),并且不要沿着其他程序运行R。
https://stackoverflow.com/questions/18346102
复制相似问题