R 分段:有没有办法强制断点

  • 本文关键字:断点 分段 有没有 r
  • 更新时间 :
  • 英文 :


我正在尝试通过 R 中的分段进行年度百分比变化分析。我已经知道我希望断点出现在哪里,但我似乎找不到一种方法来强制 Segmented 使用这些点。

我有 166 周的每周费率数据,并将它们分为 3 个周期。有两个断点将这三个周期划分为第 52 周和第 53 周以及第 115 周和第 116 周。

据我所知,断点的唯一输入是"psi ="参数。但是,这只允许我输入起点,Segmented 将从这些起点估计它认为最合适的断点。

相反,我已经知道我希望断点出现的位置,并且我希望在模型中设置这些断点。

weekly <- read.csv("data.csv")
lm <- lm(Rate ~ Week, data = weekly)
summary(lm)
segment <- segmented(lm,
                     seg.Z = ~ Week,
                     psi = list(Week = c(53, 116)))
fitted <- fitted(segment)
model <- data.frame(Week = weekly$Week, Rate = fitted)

这最终给了我一个模型,拟合到发现的估计值,而不是 53 和 116 处的预期断点。

有没有办法强制分段在每个断点处使用某些断点,或者是否有另一个包可以做到这一点?

也许你可以尝试使用:

weekly <- as.factor(cut(weekly$week, c(0, 53, 116))
levels(weekly$week) 
0-53, 53-116, 116+
lm <- lm(Rate ~ Week, data = weekly)

现在每周$周是一个因素,其水平等于 0-53、53-116、116+

然后,您应该能够将这些级别添加到您的 lm 中。

最新更新