Smooth pdqr-function
Smooth pdqr-function using random sampling and corresponding new_*() function.
form_smooth(f, n_sample = 10000, args_new = list())
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.
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")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.