gpt4 book ai didi

带 lapply 的稳健线性回归

转载 作者:行者123 更新时间:2023-12-04 11:03:24 30 4
gpt4 key购买 nike

我在对数据帧列表运行稳健的线性回归模型(使用 MASS 库中的 rlm)时遇到问题。

可重现的示例:

var1 <- c(1:100)
var2 <- var1*var1
df1 <- data.frame(var1, var2)
var1 <- var1 + 50
var2 <- var2*2
df2 <- data.frame(var1, var2)
lst1 <- list(df1, df2)

线性模型(有效):

lin_mod <- lapply(lst1, lm, formula = var1 ~ var2)
summary(lin_mod[[1]])

我的稳健模型代码:

rob_mod <- lapply(lst1, MASS::rlm, formula = var1 ~ var2)

出现以下错误:

Error in rlm.default(X[[i]], ...) : 
argument "y" is missing, with no default

我该如何解决这个问题?

我的实际数据错误是:

Error in qr.default(x) : NA/NaN/Inf in foreign function call (arg 1)
In addition: Warning message:
In storage.mode(x) <- "double" : NAs introduced by coercion

最佳答案

您还可以尝试 purrr:map 解决方案:

library(tidyverse)
map(lst1, ~rlm(var1 ~ var2, data=.))

或者正如乔兰评论的那样

map(lst1, MASS:::rlm.formula, formula = var1 ~ var2)

正如你在这里看到的?lm只提供了一个公式方法。相反,?rlm 提供了(formulax, y)。因此,您必须指定 data= 来表示 rlm 才能显式使用公式方法。否则,rlm 需要 x 和 y 作为输入。

关于带 lapply 的稳健线性回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51521987/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com