【发布时间】:2016-05-26 06:16:11
【问题描述】:
我正在尝试拟合glm 模型,其中y, x1 + x2....xn 是rasterStack 对象中的层。我尝试将光栅堆栈转换为dataframeobject,但出现矢量大小错误,如下所示。相反,我想尝试使用栅格图层作为输入来拟合回归模型 - 考虑到文件大小和内存错误,无需将图层转换为数据框。这可能吗?您将如何配置它?
我要拟合的模型是自然的:m1<-glm(y1~x1 + x2, family=binomial(), data=layers),但我没有达到这一点,因为我无法将数据转换为数据框以进行模型拟合。
dat<-as.data.frame(stack(layers[c(y1,x1,x2)]))
Error: cannot allocate vector of size 40GB
【问题讨论】:
-
数据似乎太大了。您是否尝试使用一小部分数据进行测试?您有什么数据类型(例如 csv、...)?
-
数据的一小部分可以工作。数据类型是
rasterStack,有 5 层,尝试将rasterStacks转换为数据框时出现错误。但也许我不必转换并且可以直接将模型拟合到rasterStacks? -
我从未使用过光栅。那么 dat1
-
我明白你的意思。然而,单独加载 1-n 层作为数据帧似乎并不能解决内存问题。我的解决方法是直接馈入栅格图层而无需转换..因此我的问题。
-
有道理,马丁。我使用几个不同的范围对栅格进行了子集化,并在这些范围上单独运行 glm。然后我在
MuMIn包中的模型选择和平均框架中运行这些模型。