The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Title: Fit Univariate Distributions
Version: 0.6.2
Description: Wrapper for computing parameters for univariate distributions using MLE. It creates an object that stores d, p, q, r functions as well as parameters and statistics for diagnostics. Currently supports automated fitting from base and actuar packages. A manually fitting distribution fitting function is included to support directly specifying parameters for any distribution from ancillary packages.
URL: https://github.com/tomroh/fitur
BugReports: https://github.com/tomroh/fitur/issues
Depends: R (≥ 3.3.0)
Imports: stats, fitdistrplus, actuar, e1071, ggplot2, goftest, shiny (≥ 0.13), miniUI (≥ 0.1.1), rstudioapi (≥ 0.5), DT
Suggests: knitr, rmarkdown
License: MIT + file LICENSE
Encoding: UTF-8
VignetteBuilder: knitr
RoxygenNote: 7.1.1
NeedsCompilation: no
Packaged: 2021-10-06 16:07:23 UTC; troh
Author: Thomas Roh [aut, cre]
Maintainer: Thomas Roh <thomas@roh.engineering>
Repository: CRAN
Date/Publication: 2021-10-06 16:30:02 UTC

The Discrete Uniform Distribution

Description

The Discrete Uniform Distribution

Usage

ddunif(x, min = 0, max = 1)

pdunif(q, min = 0, max = 1)

qdunif(p, min = 0, max = 1)

rdunif(n, min = 0L, max = 1)

Arguments

x

vector of (non-negative integer) quantiles

min

minimum value of distribution (integer)

max

maximum value of distribution (integer)

q

vector of quantiles

p

vector of probabilities

n

number of random values to return

Value

ddunif gives the density, pdunif gives the distribution function, qdunif gives the quantile function, rdunif generates random deviates

Examples

ddunif(0:1)
pdunif(1)
qdunif(.5)
rdunif(10)

Wrappers to compute goodness of fit test froms distfun objects

Description

Wrappers to compute goodness of fit test froms distfun objects

Usage

ks_test(distfun, x, ...)

## S3 method for class 'distfun'
ad_test(distfun, x)

ad_test(distfun, x)

## S3 method for class 'distfun'
cvm_test(distfun, x)

cvm_test(distfun, x)

Arguments

distfun

a distfun object

x

numeric vector

...

arguments to be passed on to test function

Value

goodness of fit object

Examples

x <- rgamma(100, 1, 1)
fit <- fit_univariate(x, 'gamma')
ks_test(fit, x)
ad_test(fit, x)
cvm_test(fit, x)

Find Mode

Description

Find Mode

Usage

Mode(x)

Arguments

x

vector of data

Value

mode of data


Build Distribution Functions

Description

A wrapper for building function families given a numeric vector and the distribution

Usage

build_dist(x, distribution)

Arguments

x

numeric vector

distribution

distribution character name

Value

list of distribution functions for d, p, q, r, and parameters

Examples

fittedDists <- build_dist(rpois(100,5), 'pois')
dpois(x = 5, lambda = 5)
fittedDists$dpois(5)
ppois(5, 5)
fittedDists$ppois(5)
qpois(.5, 5)
fittedDists$qpois(.5)
set.seed(8257)
rpois(100, 5)
set.seed(8257)
fittedDists$rpois(100)
fittedDists$parameters

Calculate moments of a numeric vector

Description

Calculate moments of a numeric vector

Usage

calc_moments(x)

Arguments

x

a numeric vector

Value

a named vector of descriptive statistics

Examples

x <- rexp(1000, 2)
calc_moments(x)

Fit Univariate Distributions Addin

Description

Interactively submit a numeric vector and choose what distributions that you want to run fit diagnostics. Click done to have the desired distribution code put into your cursor position.

Usage

fit_dist_addin()

Fit Empirical Distribution

Description

Fit Empirical Distribution

Usage

fit_empirical(x)

Arguments

x

integer or double vector

Value

if integer vector then list of family functions for d, p, q, r, and parameters based on each integer value. if it is a double vector then list of family functions for d, p, q, r, and parameters based on Freedman-Diaconis rule for optimal number of histogram bins.

Examples

set.seed(562)
x <- rpois(100, 5)
empDis <- fit_empirical(x)

# probability density function
plot(empDis$dempDis(0:10),
     xlab = 'x',
     ylab = 'dempDis')
# cumulative distribution function
plot(x = 0:10,
     y = empDis$pempDis(0:10),
     #type = 'l',
     xlab = 'x',
     ylab = 'pempDis')
# quantile function
plot(x = seq(.1, 1, .1),
     y = empDis$qempDis(seq(.1, 1, .1)),
     type = 'p',
     xlab = 'x',
     ylab = 'qempDis')
# random sample from fitted distribution
summary(empDis$r(100))

empDis$parameters

set.seed(562)
x <- rexp(100, 1/5)
empCont <- fit_empirical(x)

# probability density function
plot(x = 0:10,
     y = empCont$dempCont(0:10),
     xlab = 'x',
     ylab = 'dempCont')
# cumulative distribution function
plot(x = 0:10,
     y = empCont$pempCont(0:10),
     #type = 'l',
     xlab = 'x',
     ylab = 'pempCont')
# quantile function
plot(x = seq(.5, 1, .1),
     y = empCont$qempCont(seq(.5, 1, .1)),
     type = 'p',
     xlab = 'x',
     ylab = 'qempCont')
# random sample from fitted distribution
summary(empCont$r(100))

empCont$parameters

Fit Univariate Distribution

Description

Fit Univariate Distribution

Usage

fit_univariate(x, distribution, type = "continuous")

Arguments

x

numeric vector

distribution

character name of distribution

type

discrete or continuous data

Value

a fitted list object of d, p, q, r distribution functions and parameters, MLE for probability distributions, custom fit for empirical

Examples

# Fit Discrete Distribution
set.seed(42)
x <- rpois(1000, 3)
fitted <- fit_univariate(x, 'pois', type = 'discrete')
# density function
plot(fitted$dpois(x=0:10),
     xlab = 'x',
     ylab = 'dpois')
# distribution function
plot(fitted$ppois(seq(0, 10, 1)),
     xlab= 'x',
     ylab = 'ppois')
# quantile function
plot(fitted$qpois,
     xlab= 'x',
     ylab = 'qpois')
# sample from theoretical distribution
summary(fitted$rpois(100))
# estimated parameters from MLE
fitted$parameters

set.seed(24)
x <- rweibull(1000, shape = .5, scale = 2)
fitted <- fit_univariate(x, 'weibull')
# density function
plot(fitted$dweibull,
     xlab = 'x',
     ylab = 'dweibull')
# distribution function
plot(fitted$pweibull,
     xlab = 'x',
     ylab = 'pweibull')
# quantile function
plot(fitted$qweibull,
     xlab = 'x',
     ylab = 'qweibull')
# sample from theoretical distribution
summary(fitted$rweibull(100))
# estimated parameters from MLE
fitted$parameters

Fit Univariate Distributions by Specifying Parameters

Description

Fit Univariate Distributions by Specifying Parameters

Usage

fit_univariate_man(distribution, parameters)

Arguments

distribution

distribution character name

parameters

named vector of parameters to set

Value

list of distribution functions for d, p, q, r, and parameters

Examples

manFun <- fit_univariate_man('norm', c(mean = 2, sd = 5))
set.seed(5)
m1 <- mean(manFun$rnorm(100000))
set.seed(5)
m2 <- mean(rnorm(100000, 2, 5))
identical(m1, m2)

Generate Single Distribution Function

Description

Generate Single Distribution Function

Usage

gen_dist_fun(f, parameters, ...)

Arguments

f

one of distribution functions

parameters

new parameters for distribution

...

arguments to pass on to distribution function

Value

one of parameterized distribution functions in d, p, q, r


Goodness of Fit Testing

Description

Apply all goodness of fit tests and return a data.frame with the results

Usage

gof_tests(fits, x)

Arguments

fits

a list object produced from fit_univariate, fit_empirical, or fit_univariate_man

x

numeric vector of sample data

Value

a data.frame of test statistic results for each distribution

Examples

set.seed(84)
x <- rgamma(100, 1, 1)
dists <- c('gamma', 'lnorm', 'weibull')
multipleFits <- lapply(dists, fit_univariate, x = x)
gof_tests(multipleFits, x)

Test if object is a distfun object

Description

Test if object is a distfun object

Usage

is.distfun(x)

Arguments

x

an R object to be tested

Value

TRUE if x is a disfun object, FALSE otherwise


Density Comparison Plot

Description

Density Comparison Plot

Usage

plot_density(x, fits, nbins)

Arguments

x

numeric vector of sample data

fits

a list object produced from fit_univariate, fit_empirical, or fit_univariate_man

nbins

number of bins for histogram

Value

ggplot of empirical histogram of x compared to theoretical density distributions

Examples

library(ggplot2)
set.seed(37)
x <- rgamma(10000, 5)
dists <- c('gamma', 'lnorm', 'weibull')
fits <- lapply(dists, fit_univariate, x = x)
plot_density(x, fits, 30) +
theme_bw()

P-P Plot

Description

P-P Plot

Usage

plot_pp(x, fits)

Arguments

x

numeric vector of sample data

fits

a list object produced from fit_univariate, fit_empirical, or fit_univariate_man

Value

ggplot of percentile-percentile comparison of theoretical distribution

Examples

library(ggplot2)
set.seed(37)
x <- rgamma(10000, 5)
dists <- c('gamma', 'lnorm', 'weibull')
fits <- lapply(dists, fit_univariate, x = x)
plot_pp(x, fits) +
theme_bw()

Q-Q Plot

Description

Q-Q Plot

Usage

plot_qq(x, fits)

Arguments

x

numeric vector of sample data

fits

a list object produced from fit_univariate, fit_empirical, or fit_univariate_man

Value

ggplot of quantile-quantile comparison of theoretical distribution

Examples

library(ggplot2)
set.seed(37)
x <- rgamma(10000, 5)
dists <- c('gamma', 'lnorm', 'weibull')
fits <- lapply(dists, fit_univariate, x = x)
plot_qq(x, fits) +
theme_bw()

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.