[R] Sharp turn in cdf?
David Winsemius
dwinsemius at comcast.net
Fri Aug 26 15:41:40 CEST 2011
On Aug 26, 2011, at 9:12 AM, David Winsemius wrote:
> This arrived without a refers to in its headers and was a follow up
> to:
>
> On Aug 25, 2011, at 9:33 PM, Jim Silverton wrote:
>>> Hi all,
>>> I have some data. I want to fit a smooth cdf to the data. Then I
>>> want to
>>> find both the value of x and the % on the y axis for which the
>>> the slope is
>>> 1 ( or the point where the slope change is the greatest...hummh
>>> well the
>>> part where you can identify where there is a point of
>>> inflection...for want
>>> of a better word. Any ideas?
> On Aug 26, 2011, at 12:59 AM, Jim Silverton wrote:
>
>> x = c(runif(1000, 0,2.5), runif(100, 2.5, 4))
>> plot(ecdf(x))
>>
>> You will notice a sharp turn around x = 2.5
>> How do I get that value of x using R?
>
> So you are not interested in a specific slope or in the inflection
> points (since there is no no inflection in this example but rather
> in the point at which the slope changes. The is a package,
> structcahange that looks at segmented models but in this simple
> instance I could not get it to return resuslts that I thought were
> consistent with the data.
Not one of my better speling efforts. The package name is 'strucchange'
http://finzi.psych.upenn.edu/R/library/strucchange/doc/strucchange-intro.pdf
These were my half-assed efforts that did not produce what seemed to
be an accurate estimate, but I'm not a user of htat package and maybe
someone can throw me a clue sincse that example seemed so "easy".
library(strucchange)
# After reading (skimming actually) the vignette and the help page for
Fstats
> fs.x <- Fstats(x ~ 1)
> plot(fs.x)
> breakpoints(fs.x)
Optimal 2-segment partition:
Call:
breakpoints.Fstats(obj = fs.x)
Breakpoints at observation number:
935
Corresponding to breakdates:
0.8490909
>
> In a sense it is like a statistical process control problem. Cusums
> are often used to follow measurements that have a random and
> systematic component and which may shift their behavior. This is a
> simple demonstration of the advantages of that approach. Just take
> the median value and track cumulative sums:
>
> csum.x <- cumsum(x-median(x))
> plot( csum.x)
> which.min(csum.x)
> #'[1] 999
>
> --
> David Winsemius, MD
> West Hartford, CT
>
> ______________________________________________
> 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
West Hartford, CT
More information about the R-help
mailing list