My basic segmented linear regression R-scripts give me the error below.
2 years ago, the same scripts were working fine so I suspect some change in the package.
“Error in obj0$residuals : $ operator is invalid for atomic vectors”
Checking the examples of the ‘Segmented’ package manual just recently downloaded (v2.1-0), show the same error message.
The following basic example from ‘segmented’ package user manual (segmented() first example) gives me the same error. Apparently, segmented.arima() and segmented.glm() are working fine but not segmented() or segmented.lm()
Any explanation or alternative solution would be helpful.
require("segmented")
library(ggplot2)
library(segmented)
##################
set.seed(12)
xx<-1:100
zz<-runif(100)
yy<-2+1.5*pmax(xx-35,0)-1.5*pmax(xx-70,0)+15*pmax(zz-.5,0)+rnorm(100,0,2)
dati<-data.frame(x=xx,y=yy,z=zz)
out.lm<-lm(y~x,data=dati)
plot(dati$x,dati$y)
#the simplest example: the starting model includes just 1 covariate
#.. and 1 breakpoint has to be estimated for that
o<-segmented(out.lm) #1 breakpoint for x
#####################
o<-segmented(out.lm, seg.Z=~z)
o<-segmented.lm(out.lm) #1 breakpoint for x
Error in obj0$residuals : $ operator is invalid for atomic vectors