Re: [R] Piecewise Regression with a known slope

2007-07-31 Thread vmuggeo
Dear Jarrett,

If I understand correctly your post, your constraints may be achieved
straightforwardly in segmented. See the code below.

 The error is also most likely gamma distributed..[SNIP]
The 'error' component can be specified in the 'initial' model by means of
the family argument in the glm() function

 I have attempted to use the segmented package, specifying something
 close to the visually estimated breakpoint as the value of psi, but
 it continues to return fits with a breakpoint that occurs somewhere
 in the middle of the linear portion of the line, ..[SNIP]

Mhmm..you can specify different starting values and to assess the
differences in the 'final' estimates. However if you says ..it continues
to return fits with a breakpoint that occurs somewhere in the middle..
probably the ML estimate of the breakpoint is really in the middle.

Hope this helps you,

best,
vito



simulate data
n-50
x-1:n/n
y- 0-pmin(x-.5,0)+rnorm(50)*.03
plot(x,y) #This should be your scatterplot..
abline(0,0,lty=2)

o-lm(y~x) #or glm(y~x,family=..)
o1-segmented(o,seg.Z=~x,psi=list(x=.3))
slope(o1) #get the slope
points(x,fitted(o1),col=2)

#a parsimonious modelling: constrain right slope=0
o-lm(y~1)
xx- -x
o2-segmented(o,seg.Z=~xx,psi=list(xx=-.3))
slope(o2)
points(x,fitted(o2),col=2)

#now constrain \hat{\mu}(x)=0 for xpsi

o-lm(y~0)
o3-segmented(o,seg.Z=~xx,psi=list(xx=-.3))
slope(o3)
points(x,fitted(o3),col=3)

 Hey, all.  I'm working on a data set with a broken stick linear
 regression where I know one of the two slopes.  It is a negative
 linear function until the line intersects with the x-axis, at which
 point it becomes 0.  It is not a nonlinear asymptotic function, and,
 indeed, using negative exponential or logistic types of fits as an
 approximation has tended to lead to an under or overestimation of
 values.  I am also very interested to know just what the breakpoint
 in the data is.

 Essentially

 if xpsi y = a + bx + error, where b is negative
 else y=0+error

 and I want to know the value of psi, as well as a and b.  The error
 is also most likely gamma distributed, as values0 are not possible
 (nutrient concentrations).

 I have attempted to use the segmented package, specifying something
 close to the visually estimated breakpoint as the value of psi, but
 it continues to return fits with a breakpoint that occurs somewhere
 in the middle of the linear portion of the line, and the slope and
 intercept of the second half of the regression is not 0.

 Is there either a package that exists that will allow me to estimate
 such a model, or a function that I can use for optim or nlm (I admit,
 I am a rank novice at coding such functions).

 Thanks so much!

 -Jarrett

 __
 R-help@stat.math.ethz.ch 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.



__
R-help@stat.math.ethz.ch 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.


[R] Piecewise Regression with a known slope

2007-07-30 Thread Jarrett Byrnes
Hey, all.  I'm working on a data set with a broken stick linear  
regression where I know one of the two slopes.  It is a negative  
linear function until the line intersects with the x-axis, at which  
point it becomes 0.  It is not a nonlinear asymptotic function, and,  
indeed, using negative exponential or logistic types of fits as an  
approximation has tended to lead to an under or overestimation of  
values.  I am also very interested to know just what the breakpoint  
in the data is.

Essentially

if xpsi y = a + bx + error, where b is negative
else y=0+error

and I want to know the value of psi, as well as a and b.  The error  
is also most likely gamma distributed, as values0 are not possible  
(nutrient concentrations).

I have attempted to use the segmented package, specifying something  
close to the visually estimated breakpoint as the value of psi, but  
it continues to return fits with a breakpoint that occurs somewhere  
in the middle of the linear portion of the line, and the slope and  
intercept of the second half of the regression is not 0.

Is there either a package that exists that will allow me to estimate  
such a model, or a function that I can use for optim or nlm (I admit,  
I am a rank novice at coding such functions).

Thanks so much!

-Jarrett

__
R-help@stat.math.ethz.ch 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.