raster工具包提供的方法中,栅格数据可以直接用于非空间模型和空间模型预测,本篇主要介绍前者。

空间模型是指使用了空间位置作为隐式自变量(implicit independent variables)的模型,如克里金插值;非空间模型则指除此之外的其他模型,如线型模型、主成分分析、随机森林模型等。

在基础包中,用于模型预测的函数predict()函数,使用语法为predict(object, newdata, ...),其中object参数表示模型对象,newdata表示用于执行预测的数据。

raster中,用于栅格数据的非空间模型预测的函数也被命名为predict(),使用语法为predict(object, model, ...),其中object参数表示栅格对象,即执行预测的栅格数据,model为模型对象。它的完整语法如下:

predict(object, model, filename = "",fun = predict, ext = NULL,const = NULL, index = 1,na.rm = TRUE, inf.rm = FALSE,factors = NULL, format, datatype,overwrite = FALSE, progress = '', ...)

默认功能

  • 线性模型

先使用常规数据拟合一个线性模型:

data("mtcars")
mod <- lm(mpg ~ wt + qsec + I(wt^2),data = mtcars)
mod
## Call:
## lm(formula = mpg ~ wt + qsec + I(wt^2), data = mtcars)
##
## Coefficients:
## (Intercept)           wt         qsec      I(wt^2)
##     32.6418     -12.4331       0.8599       1.0730

再定义一个多图层栅格对象,每个图层对应着一个模型中的自变量,图层名称必须与自变量名完全一致:

library(raster)
wt <- raster(vals = 1:9, nrows = 3, ncols = 3)
qsec <- raster(vals = 9:1, nrows = 3, ncols = 3)
r <- brick(wt, qsec)
names(r) <- c("wt", "qsec")
plot(r)

将栅格对象用于模型预测:

r.pred <- predict(r, mod)
plot(r.pred)

  • 随机森林模型

除基础包中的模型外,predict()函数也支持其他一些非空间模型,如随机森林模型:

library(randomForest)
rdfmod <- randomForest(mpg ~ wt + qsec + I(wt^2),data = mtcars)r.pred2 <- predict(r, rdfmod)
plot(r.pred2)

fun参数

predict()函数的fun参数默认值为predict,此处指的是基础包中的predict()函数,即返回的是因变量预测值。该参数支持自定义函数。

## 预测的标准误
pred.se <- function(model, data) {v <- predict(model, data, se.fit=TRUE)se = as.vector(v$se.fit)
}r.predse <- predict(r, mod, fun = pred.se)
plot(r.predse)

index参数

fun参数指定的函数返回的预测变量不止一个时,可以通过index指定所要保留的变量索引。默认情况下index = 1表示只保留第一个变量。

以主成分分析为例,它输出的主成分与参与模型的变量数目一致。默认情况下,prdeict()函数只输出第一个主成分:

mod.pca <- prcomp(~ wt + qsec, data = mtcars)r.pca <- predict(r, mod.pca)
plot(r.pca)

设置index = 1:2可以将两个主成分得分都输出出来,因此返回的栅格对象是多图层的:

r.pca2 <- predict(r, mod.pca, index = 1:2)
plot(r.pca2)

raster | 栅格对象如何用于非空间模型的预测?相关推荐

  1. raster | R语言中的空间栅格对象及其基本处理方法(Ⅰ)

    前面的系列推文已经完成了对R语言中的两个管理空间矢量数据的工具包(sf和sp)的介绍,以及空间自相关.空间插值等空间分析方法. 这里小编再推出一个系列来介绍R语言中管理空间栅格数据的工具包:raste ...

  2. raster | R语言中的空间栅格对象及其基本处理方法(Ⅳ):数据聚合、重采样

    本篇示例数据: library(raster) # 2015年中国人口空间分布公里网格数据集 # 数据来源:https://www.resdc.cn/DOI/DOI.aspx?DOIid=32 pop ...

  3. raster | R语言中的空间栅格对象及其基本处理方法(Ⅲ):切片/掩膜、图层叠加...

    本篇介绍如下处理方法: 根据矢量数据的范围对栅格数据进行裁剪: 通过对栅格数据进行运算得到新的栅格对象,如通过人口和GDP的栅格数据得到人均GDP的栅格数据. 示例的栅格数据是2015年中国人口和GD ...

  4. raster | R语言中的空间栅格对象及其基本处理方法(Ⅱ):投影、属性提取

    library(raster) 投影 设置投影 在使用raster()函数创建栅格对象时,调用crs参数可以定义其投影.投影参数具有默认值: r <- raster() crs(r) ## CR ...

  5. raster | 多图层栅格对象的一些处理方法

    本篇介绍一些关于多图层栅格数据的处理方法.在此之前,先定义3个单图层的栅格对象: library(raster) a <- raster(vals = 1:9, nrows = 3, ncols ...

  6. python地理数据处理 下载_python-doc/将Python用于地理空间数据处理.md at master · zhuxinyizhizun/python-doc · GitHub...

    毫无疑问,Python是当今最流行,最通用的编程语言之一.这有很多种强有力的原因,但在我看来,最重要的是:开源定义,语法简单,包括电池的理念(batteries included philosophy ...

  7. 面试必会系列 - 5.1 网络BIO、NIO、epoll,同步/异步模型、阻塞/非阻塞模型,你能分清吗?

    本文已收录至 Github(MD-Notes),若博客中图片模糊或打不开,可以来我的 Github 仓库,包含了完整图文:https://github.com/HanquanHq/MD-Notes,涵 ...

  8. Java虚拟机(二)对象的创建与OOP-Klass模型

    相关文章  Java虚拟机系列 前言 在前一篇文章中我们学习了Java虚拟机的结构原理与运行时数据区域,那么我们大概知道了Java虚拟机的内存的概况,那么内存中的数据是如何创建和访问的呢?这篇文章会给 ...

  9. 空间计量 python_一文读懂空间计量入门之空间数据、权重矩阵、空间统计、空间模型等简介...

    原标题:一文读懂空间计量入门之空间数据.权重矩阵.空间统计.空间模型等简介 来源:计量经济学服务中心编辑整理,转载请联系 1 前言 空间分析起源于地理学.空间经济学和相关学科.到目前为止,它被认为是专 ...

最新文章

  1. 太尴尬!百度某程序员向领导请假去面试,却在面试一楼大厅和领导相遇,网友:缘分啊!回去一起对对面试题!...
  2. 【控制】《多智能体系统一致性与复杂网络同步控制》郭凌老师-第9章-结论与展望
  3. html 调用main方法,ipcmain和ipcrenderer从index.html调用main.js函数
  4. Nginx代理功能与负载均衡详解
  5. php获取数据库不同,php – 从master数据库获取数据库凭据,然后连接到不同的数据库...
  6. js判断字符串包含某个字符_python str 字符串的逻辑判断用法
  7. 你经常使用计算机吗这样的问题其主要缺点是,2015年10月自考02326操作系统模拟试题及答案3...
  8. mysql 产品表 myisam好还是innodb好_mysql两种表存储结构myisam和innodb的性能比较测试...
  9. mysql ndb 命令_Mysql入门基础命令
  10. STM32学习心得三十一:485通信原理及实验
  11. 芬兰建筑师帕特里克•艾瑞克森先生一行再次到访云创
  12. 平衡二叉树(AVL树)深入解读
  13. 超好用的mac虚拟机软件:VM虚拟机 mac中文版
  14. RL基础算法优缺点总结
  15. MacOS 安装 brew (国内镜像源)
  16. (六)K8S中HostPath、EmptyDir、ConfigMap、Secret、Downward API用法
  17. 09.python常用数据类型—字典
  18. 【PTA-python】第7章-1 词频统计 (30 分)--sys.stdin.read()读入到特定字符截至,双重排序条件key=lambda item:(-item[1], item[0])
  19. BitComet的简介与下载
  20. 百信社区-社区服务一体化

热门文章

  1. Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8
  2. Android学习总结(2)——App客户端与服务器交互中的token
  3. 从C# 3.0到F#
  4. (键盘)代码 19:由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备 解决方法...
  5. 《树莓派实战秘籍》——1.14 技巧14初学GPIO
  6. 致敬各位10年阿里的前端开发
  7. pom.xml 如果使用 mvn exec:exec 命令运行项目
  8. u盘安装centos 7.2
  9. 用C#调用Windows API向指定窗口发送按键消息(转载)
  10. core Animation动画