Как я могу получить переменные наклона и перехвата, созданные сегментированным пакетом, и поместить их в кадр данных, используя r?

Может кто-нибудь рассказать мне, как вывести наклоны и перехваты, созданные сегментированным пакетом, и поместить их во фрейм данных? В конечном итоге это будет использоваться для выравнивания склонов и перехвата обратно к их первоначальному значению. Смотрите данные (которые я взял из другого поста) ниже.

#load пакеты библиотека (сегментированная) библиотека (tidyverse)

#set seed and develop data
set.seed(1)
Y<-c(13,21,12,11,16,9,7,5,8,8)
X<-c(74,81,80,79,89,96,69,88,53,72)
age<-c(50.45194,54.89382,46.52569,44.84934,53.25541,60.16029,50.33870,
   51.44643,38.20279,59.76469)
dat=data.frame(Y=Y,off.set.term=log(X),age=age)

#run initial GLM
glm.fit=glm(Y~age+off.set.term,data=dat,family=poisson)
summary(glm.fit)

#run segmented glm
glm.fitted.segmented <- segmented(glm.fit, seg.Z=~age + off.set.term, psi = 
list(age = c(50,53), off.set.term = c(4.369448)))

#Get summary, slopes and intercepts
summary(glm.fitted.segmented)
slope(glm.fitted.segmented)
intercept(glm.fitted.segmented)

1 ответ

Решение
library(broom)
library(dplyr)
library(tidyr)
library(stringr)

slopes <-
  bind_rows(lapply(slope(glm.fitted.segmented), tidy), .id = "variable") %>%
  mutate(type = str_extract(.rownames, "^[a-z]+"),
         model = str_extract(.rownames, "[0-9]+$")) %>%
  select(variable, model, type, estimate = "Est.")
intercepts <-
  bind_rows(lapply(intercept(glm.fitted.segmented), tidy), .id = "variable") %>%
  mutate(type = str_extract(.rownames, "^[a-z]+"),
         model = str_extract(.rownames, "[0-9]+$")) %>%
  select(variable, model, type, estimate = "Est.")

bind_rows(slopes, intercepts) %>%
  spread(type, estimate)

С использованием tidy функция, вы можете легко извлечь data.frame для каждой переменной, а затем извлечь модель и тип единицы. Свяжите все это вместе и распределите тип и оценочное значение так, чтобы оно заканчивалось переменной, моделью, перехватом и наклоном.

Другие вопросы по тегам