为什么线性回归需要很长时间才能在R中运行?

时间:2014-05-01 07:15:33

标签: r regression linear-regression

我在tiff图像上运行线性回归。图像尺寸是;

ncol=6350, nrow=2077, nlayers=26

在运行计算之前我所做的只是使用

读取R中的tiff图像
ndvi2000<-raster("img2000.tif") 

然后在R控制台窗口中编写以下脚本。计算过程需要很长时间超过20分钟且仍在运行。长时间拍摄大图片是否正常?回归的脚本是:

time<-sort(sample(97:297, nlayers(ndvi2000)))
t.lm.pred<-function(x) {if (is.na(x[1])) {NA} else{predict(lm(x~time))}}
f.pred<-calc(ndvi2000,t.lm.pred)

1 个答案:

答案 0 :(得分:3)

你拥有的价值数量非常大,所以我不会感到意外,因为它需要很长时间。只需将随机数列表设为tiff文件的大小:

x = runif(6350 * 2077 * 26)
object.size(x) / (1024 * 1024)
2616.216

超过2.5 Gb,这只是为了保存一个变量。根据经验,您需要的RAM大约是数据集大小的三倍。因此,假设您加载了更多图像,则需要超过10-20 Gb的RAM。如果您没有足够的RAM,您的操作系统将开始将内存交换到磁盘,这会使您的分析速度变慢。

我认为重新考虑您的分析或者租用64 Gb RAM EC2实例是个好主意。您只能查看时间平均值或空间平均值。只查看特定位置等等。只需使用数据中的所有值进行暴力破解可能不是最佳选择。