我正在尝试通过Segmented in R进行年度百分比变化分析。我已经知道我要在哪里出现断点,但是我似乎找不到找到一种方法来强迫Segmented使用这些点。
我有166周的每周费率数据,并将其分为3个周期。有两个断点将这三个时段划分为52和53周以及115和116周。
据我所知,断点的唯一输入是“ psi =”参数。但是,这只能让我输入起点,根据该起点,分段可以估算出最合适的断点。
相反,我已经知道断点出现在什么地方,并且我希望在模型中设置这些断点。
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的预期断点。
是否有一种方法可以强制分段使用每个断点,或者是否有另一个软件包可以做到这一点?
答案 0 :(得分:0)
也许您可以尝试使用:
weekly <- as.factor(cut(weekly$week, c(0, 53, 116))
levels(weekly$week)
0-53, 53-116, 116+
lm <- lm(Rate ~ Week, data = weekly)
现在每周$ week是一个因素,其水平将等于0-53、53-116、116 +
然后您应该能够将这些级别添加到lm中。