gpt4 book ai didi

r - 具有自启动函数和 purrr 的非线性混合效应模型

转载 作者:行者123 更新时间:2023-12-04 10:58:01 27 4
gpt4 key购买 nike

我过去曾使用 nlme 来拟合和比较非线性模型。我现在想用它来拟合按多个标识符分组的数据的模型。如果我可以集成 dplyr、purrr 和 nlme,那就太好了。一件好事是使用 nlme 包中的自启动函数。我也有很多模型要运行。我只是不确定它们是否会组合在一起。

目前的 nlme 情况。这有效,但仅限于一个分组变量:

library(tidyverse)
library(nlme)
diamonds_grouped <- groupedData(price ~ carat | cut, data = diamonds)
nlsList(price ~ SSlogis(carat, Asym, xmid, scal), data = diamonds_grouped)

所需的工作流类型。不起作用,我已经走了多远:
fit_mod <- function(df) {  ### Not much faith in how I wrote this function
nlsList(price ~ SSlogis(carat, Asym, xmid, scal), data = .)
}

diamonds %>%
group_by(cut, color) %>%
nest() %>%
mutate(
model = map(data, fit_mod),
tidied = map(model, tidy)
)

不是故意的,或者我只是不知道该怎么做?

最佳答案

一种选择是引入一个新变量,以捕获跨多个变量的所有可能分组。使用您的示例:

diamonds2 <- diamonds %>% mutate( grp = str_c(cut, "_", color) )
diamonds2_grp <- groupedData( price ~ carat | grp, data = diamonds2 )
nlsList(price ~ SSlogis(carat, Asym, xmid, scal), data = diamonds2_grp )

# Call:
# Model: price ~ SSlogis(carat, Asym, xmid, scal) | grp
# Data: diamonds2_grp
#
# Coefficients:
# Asym xmid scal
# Fair_E 16565.84 1.409934 0.3833443
# Fair_D 16928.32 1.410986 0.4113035
# Fair_F 13905.28 1.335952 0.3877184
# Good_E 15894.55 1.253196 0.3245564
# Fair_I 17427.69 1.783398 0.5071487
# Good_J 17233.34 1.676204 0.4604250
# ...

关于r - 具有自启动函数和 purrr 的非线性混合效应模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59043394/

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