David Winsemius
On Mar 7, 2009, at 9:54 AM, David Freedman wrote:
>
> Hi - I'd like to construct and plot the percents by year in a small
> data set
> (d) that has values between 1988 and 2007. I'd like to have a
> breakpoint
> (buy no discontinuity) at 1996. Is there a better way to do this
> than in
> the code below?
>
>> d
> year percent se
> 1 1988 30.6 0.32
> 2 1989 31.5 0.31
> 3 1990 30.9 0.30
> 4 1991 30.6 0.28
> 5 1992 29.3 0.25
> 6 1994 30.3 0.26
> 7 1996 29.9 0.24
> 8 1998 28.4 0.22
> 9 2000 27.8 0.22
> 10 2001 26.1 0.20
> 11 2002 25.1 0.19
> 12 2003 24.4 0.19
> 13 2004 23.7 0.19
> 14 2005 25.1 0.18
> 15 2006 23.9 0.20
>
> dput(d)
> structure(list(year = c(1988L, 1989L, 1990L, 1991L, 1992L, 1994L,
> 1996L, 1998L, 2000L, 2001L, 2002L, 2003L, 2004L, 2005L, 2006L,
> 2007L), percent = c(30.6, 31.5, 30.9, 30.6, 29.3, 30.3, 29.9,
> 28.4, 27.8, 26.1, 25.1, 24.4, 23.7, 25.1, 23.9, 23.9), se = c(0.32,
> 0.31, 0.3, 0.28, 0.25, 0.26, 0.24, 0.22, 0.22, 0.2, 0.19, 0.19,
> 0.19, 0.18, 0.2, 0.18)), .Names = c("year", "percent", "se"), class =
> "data.frame", row.names = c(NA,
> -16L))
>
> with(d,plot(year,percent,pch=16,xlim=c(1988,2007)))
> m=lm(percent~ year + I(year-1996):I(year <= 1996), weights=1/se,
> subset=year>=1988, da=d);
> points(d$year,predict(m,dafr(year=d$year)),type='l',lwd=2,col='red')
>
> thanks very much
> David Freedman
>
>
> --
> View this message in context: http://www.nabble.com/piecewise-linear-regression-tp22388118p22388118.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
David Winsemius, MD
Heritage Laboratories
West Hartford, CT