On Aug 22, 2011, at 3:50 PM, R. Michael Weylandt wrote:
Yes. The xCDF/yCDF objects that are returned by the ecdf function
can be
called like functions.
Because they _are_ functions.
> "function" %in% class(xCDF)
[1] TRUE
> is.function(xCDF)
[1] TRUE
For example:
x = rnrom(50); xCDF = ecdf(x); xCDF(0.3)
# This value tells you what fraction of x is less than 0.3
You can also assign this behavior to a function:
F <- function(z) { xCDF(z) }
F does not inherit xCDF directly though and looses the step-function-
ness of
the xCDF object. (Compare plots of F and xCDF to see one consequence)
Not correct. Steps are still there in the same locations.
So yes, you can do subtraction on this basis
x = rnrom(50); Fx = ecdf(x); Fx <- function(z) { xCDF(z) }
You are adding an unnecessary function "layer". Try (after correcting
the misspelling):
xCDF(seq(-2,2,by=0.02)) == Fx(seq(-2,2,by=0.02)) # => creating Fx is
superfluous
x <- function(x){function(x) x} <==> x <- function(x){ x}
"Turtles all the way down."
y = rnrom(50); yCDF = ecdf(x); Fy <- function(z) { yCDF(z) }
F <- function(z) {Fx(z) - Fy(z)}
# F <- function(z) {xCDF(z)-yCDF(z)} # Another way to do the same
thing
As this would have this:
F = function(z) xCDF(z)-yCDF(z)
plot(seq(-2,2,by=0.02), F(seq(-2,2,by=0.02)) ,type="l")
Interesting plot by the way. Unit steps at Gaussian random intervals.
I'm not sure my intuition would have gotten there all on its own. I
guess that arises from the discreteness of the sampling. I wasn't
think that ecdf was the inverse function but seem to remember someone
(some bloke named Weylandt, now that I check) saying as much earlier
in the day.
--
David.
Hope this helps,
Michael
On Mon, Aug 22, 2011 at 3:30 PM, Jim Silverton <jim.silver...@gmail.com
>wrote:
WHat about if you have two cdfs and you want to subtract them? Like
G(x) -
H(x)? Can ecdf do this?
On Mon, Aug 22, 2011 at 2:24 PM, R. Michael Weylandt <
michael.weyla...@gmail.com> wrote:
Number 1 can be done as follows:
x = rnorm(50); y = rnorm(50)
xCDF = ecdf(x); yCDF = ecdf(y)
plot(xCDF)
lines(yCDF,col=2)
For the other ones, you are going to have to be a little more
specific as
to how you want to do the approximation...but ?density might be a
place to
start for #4, assuming you meant density of the PDF. If you meant
CDF, it I
think that's implicit in number 2.
Michael Weylandt
On Mon, Aug 22, 2011 at 2:15 PM, Jim Silverton <jim.silver...@gmail.com
>wrote:
Hello all,
I have two columns of numbers. I would like to do the following:
(1) Plot both cdfs, F1 and F2 on the same graph.
(2) Find smoothed approximations of F1 and F2 lets call them
F1hat and
F2hat
(3) Find values for F1hat when we substitue a value of x in it.
(4) Find the corresponding densities of the cdfs.
Any ideas?
--
Thanks,
Jim.
[[alternative HTML version deleted]]
______________________________________________
R-help@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.
--
Thanks,
Jim.
[[alternative HTML version deleted]]
______________________________________________
R-help@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
______________________________________________
R-help@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.