| form_smooth | R Documentation |
Smooth pdqr-function using random sampling and corresponding new_*() function.
form_smooth(f, n_sample = 10000, args_new = list())
f |
A pdqr-function. |
n_sample |
Number of elements to sample. |
args_new |
List of extra arguments for new_*() to control
|
General idea of smoothing is to preserve "sampling randomness" as much as reasonably possible while creating more "smooth" probability mass or density function.
At first step, sample of size n_sample is generated from distribution
represented by f. Then, based on the sample, "continuous" d-function is
created with new_d() and arguments from args_new list. To account for
density()'s default behavior of "stretching range" by
adding small tails, support of d-function is forced to be
equal to f's support (this is done with form_resupport() and method
"reflect"). Output represents a "smooth" version of f as d-function.
Final output is computed by modifying "y" or "prob" column of f's "x_tbl" metadata to be proportional to values of "smooth" output at
corresponding points from "x" column. This way output distribution has
exactly the same "x" grid as f but "more smooth" nature.
A smoothed version of f with the same class and
type.
Other form functions:
form_estimate(),
form_mix(),
form_regrid(),
form_resupport(),
form_retype(),
form_tails(),
form_trans()
set.seed(101)
# Type "discrete"
bad_dis <- new_d(
data.frame(x = sort(runif(100)), prob = runif(100)),
type = "discrete"
)
smoothed_dis <- form_smooth(bad_dis)
plot(bad_dis)
lines(smoothed_dis, col = "blue")
# Type "continuous"
bad_con <- new_d(
data.frame(x = sort(runif(100)), y = runif(100)),
type = "continuous"
)
smoothed_con <- form_smooth(bad_con)
plot(bad_con)
lines(smoothed_con, col = "blue")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.