无法有趣地计算 R 中光栅堆栈上的像素级回归

2024-03-14

我正在处理栅格,我有一个带有 7n 层的 RasterStack。我想使用下面的公式计算像素级回归。我试图这样做raster::calc,但我的功能失败并显示消息:

' lm.fit(x, y, 偏移量 = 偏移量, 奇异.ok = 奇异.ok, 中的错误, ...) : 0 (非 NA) 案例。'

但所有栅格都可以,并且包含数字(不仅是 NA),我可以绘制它, 我可以用公式计算一般线性回归

 cr.sig=lm (raster::as.array(MK_trend.EVI.sig_Only) ~ raster::as.array(stack.pet)+raster::as.array(stack.tmp)+raster::as.array(stack.vap)+raster::as.array(stack.pre)+raster::as.array(stack.wet)+raster::as.array(stack.dtr))

但是当我堆叠图层时

allData = stack(MK_trend.EVI.sig_Only,stack.dtr,stack.wet,stack.pre,stack.vap,stack.tmp,stack.pet)

并尝试 calc 函数

    # Regression Function, R2
lmFun=function(x){
    x1=as.vector(x);
    if (is.na(x1[1])){
        NA 
    } else {
        m = lm(x1[1] ~ x1[2]+x1[3]+x1[4]+x1[5]+x1[6]+x1[7])
        return(summary(m)$r.squared)
    }
}

我看到错误消息。
我对 R 和编程还很陌生,所以,也许有一些愚蠢的错误? 为了使处理工作顺利进行,我将不胜感激。


您可以使用calc对于像素级(局部)回归,但您的公式似乎表明您想要其他东西(全局模型)。

如果回归是按像素进行的,则每个单元格的 x 和 y 值数量相同,您可以使用calc. See ?calc举些例子。

相反,每个单元格有 1 个 y(独立)和 6 个 x(因)变量值。这表明您想要一个全球模型。为此,您可以执行以下操作:

library(raster)
# example data
r <- raster(nrow=10, ncol=10)
set.seed(0) 
s <- stack(lapply(1:7, function(i) setValues(r, rnorm(ncell(r), i, 3))))  
x <- values(s)

# model
m <- lm(layer.1 ~ ., data=data.frame(x))

# prediction
p <- predict(s, m)

这需要将所有值加载到内存中。如果你做不到这一点,你可以采取大量的常规样本。看sampleRegular

并说明为什么你的方法不起作用:

testFun=function(x1){
    lm(x1[1] ~ x1[2]+x1[3]+x1[4]+x1[5]+x1[6]+x1[7])
}

# first cell
v <- s[1]
v
#      layer.1  layer.2   layer.3  layer.4  layer.5  layer.6  layer.7
#[1,] 4.788863 4.345578 -0.137153 3.626695 3.829971 4.120895 1.936597

m <- testFun(v)
m
#Call:
#lm(formula = x1[1] ~ x1[2] + x1[3] + x1[4] + x1[5] + x1[6] + x1[7])

#Coefficients:
#(Intercept)        x1[2]        x1[3]        x1[4]        x1[5]        x1[6]        x1[7]  
#      4.789           NA           NA           NA           NA           NA           NA  


summary(m)$r.squared
# 0

即使我没有收到您报告的错误消息(但所有 R^2 值均为零)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法有趣地计算 R 中光栅堆栈上的像素级回归 的相关文章

随机推荐

  • 如何配置 GroovyConsole 以便我不必在启动时导入库?

    我有一个使用第三方库的常规脚本 每次我打开应用程序并尝试运行我的脚本时 我都必须导入正确的库 我希望能够打开 GroovyConsole 并运行我的应用程序 而无需导入库 在 Linux 中你也有 usr share groovy conf
  • NSString stringWithFormat 问题

    我正在尝试使用 NSString 构建一个小表 我似乎无法正确格式化字符串 这是我所拥有的 NSString stringWithFormat 8 6f e v 其中 e 是来自其他地方的 NSString v 是浮点数 我想要的是输出类似
  • Boost.Fusion运行时开关

    我正在从文件中读取对象的类型 enum class type index type index typeidx read file handle type index 根据类型索引 我想创建一个类型 从可能类型的列表中 并用它做一些通用的事
  • Pymongo 使用 $exists

    我是 pymongo 的新手 使用存在时遇到问题 使用时 collection find cwc exists True 我收到以下错误 Unsupported projection option exists 我想要完成的是找到所有 id
  • 可以使用反射访问方法变量吗?

    如何使用反射访问方法内定义的变量 我必须在 Hibernate 中创建标准 数据库是基于属性的 考虑一部电影 一部电影可以有多种语言和多种类型 例如 Movieid Property Value 1 Language Hindi 1 Lan
  • Gulp Typescript + Browserify;捆绑的 sourcemap 指向转译的 JS 而不是源 TS

    我正在开发一个 Typescript 项目 该项目被转换为 ES5 JS 然后通过 browserify 运行以创建单个 js 包和源映射 捆绑的源映射指向转译的 JS而不是源TS即使我生成的源映射在转换为 JS 时正确指向源 TS 这就好
  • 在内存中SQLite3共享数据库python

    我试图充分利用 aws 服务器 并想到跨多个线程使用内存数据库 在 python 中使用 SQLite 3 我在网上找到了这个命令 conn sqlite3 connect file memory cache shared 但后来我得到了这
  • 在Python中,如何在一行代码中创建一个包含n个字符的字符串?

    我需要在Python中生成一个包含n个字符的字符串 是否有一个简单的答案可以使用现有的 Python 库来实现这一目标 例如 我需要一串 10 个字母 string val abcdefghij 简单地重复同一个字母 10 次 string
  • xargs的默认分隔符可以更改吗?

    我想要以下行为 而不必使用选项显式指定它 xargs d n 与大多数命令不同 您不能只使用别名 因为管道无法识别别名 顺便说一句 为什么要这样设计 我也尝试创建自己的 bin xargs脚本 但我认为这并不像在脚本中读取 作为字符串那么简
  • D3 单击更新数据集并重新绘制条形图

    我是 d3 和 javascript 的新手 并且在更新数据集以及重新绘制条形时遇到问题 这是我到目前为止一直在查看的代码 http jsfiddle net TwEhT 2 http jsfiddle net TwEhT 2 我有一个函数
  • python 或 dask 并行生成器?

    是否有可能在Python中 也许使用dask 也许使用多重处理 将生成器 放置 在核心上 然后并行地单步执行生成器并处理结果 它需要特别是生成器 或带有 iter 生成器生成的所有生成元素的列表不适合内存 尤其 有了熊猫 我可以打电话rea
  • CSS margin vh 无法正常工作

    grenze background green height 96vh width 96vh baukasten background white height 86vh width 86vh margin 5vh border 1px s
  • 保持 CurrentCulture 处于异步/等待状态

    我有以下伪代码 string GetData var steps new List
  • 春季安全3.1

    当我尝试使用 Spring Security 的自定义登录表单时 无论我是否输入了正确的凭据 它都会将我返回到 admin login 页面 当我使用空的
  • joomla 将视图添加到另一个视图中

    我使用 joomla MVC 我想构建一个具有不同选项卡的表单 这些选项卡是表单的不同部分 其中包含输入 我需要包含一些与其他表单通用的选项卡 我希望能够从单独的文件或视图加载此常见内容 这样我就没有重复的代码 而且当我需要对表单进行更改时
  • 获取Enum值的名称

    我正在尝试创建一个函数 我们可以在其中获取枚举值的名称值 例如 Get Enum ValueName DayOfWeek 0 这将返回 Sunday 但我的代码不起作用 它说类型未定义 Private Function Get Enum V
  • Powershell 脚本可以记录已扫描的文件并在下次运行时忽略它们?

    我正在尝试编写一个脚本 该脚本将递归扫描目录 带有 Error 扩展名的本地文件 然后通过电子邮件向一群人发送文件列表 我计划通过 Control M 运行此脚本 并让它每 20 分钟运行一次 我希望脚本记录自上次运行以来已扫描的文件 而不
  • 输入组和表单组之间的区别

    css类之间的使用有什么区别input group and form group在引导程序中 输入组是扩展的表单控件 使用输入组 您可以轻松地将文本或按钮添加到基于文本的输入中 例如 您可以根据需要添加 符号 作为 Twitter 用户名或
  • 将符合 ISO 8601 的字符串转换为 java.util.Date

    我正在尝试转换ISO 8601 http en wikipedia org wiki ISO 8601格式化字符串为java util Date 我找到了模式yyyy MM dd T HH mm ssZ如果与区域设置一起使用 则符合 ISO
  • 无法有趣地计算 R 中光栅堆栈上的像素级回归

    我正在处理栅格 我有一个带有 7n 层的 RasterStack 我想使用下面的公式计算像素级回归 我试图这样做raster calc 但我的功能失败并显示消息 lm fit x y 偏移量 偏移量 奇异 ok 奇异 ok 中的错误 0 非