makeDistribution: Builds an empiric distribution from a sample

Description Usage Arguments Details Value Author(s) Examples

View source: R/makeDistribution.R

Description

Make a continuous distribution from a empiric sample.

Usage

1

Arguments

sample

data array to make the distribution.

minimum, maximum

values to be considered as minimum and maximum to make the distribution.

smooth

boolean, if its true then it would smooth data before make the distribution.

...

alrguments to pass on method smooth.spline.

Details

The default minimum is min(sample)-sd(sample), this is made to improve the results, but it can be changed by the real minimum declarating it in the inputs. Same for maximum.

Value

Returns a list with four functions.
pfun(q) Cumulative distribution function.
qfun(p) Quantile function of the distibution.
rfun(n) Generates random deviates.
dfun(x) Gives the density. It doesn't work by now, but will be improved in next updates.

Author(s)

Daniel Fischer

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
data1=rnorm(10000)
data2=runif(10000) #take 2 different samples  
dist1=makeDistribution(data1,minimum=min(data1),maximum=max(data1))
dist2=makeDistribution(data2,minimum=min(data2),maximum=max(data2)) #make distributions of them
quantiles=seq(0,1,by=0.1) #vector of deciles
probabilities= seq(0,1,by=0.001) #vector of probabilities

#Compare the empiric distributions with base version. 
require(ggplot2)
a=qplot(quantiles,pnorm(quantiles),main="Real pnorm")
b=qplot(probabilities,qnorm(probabilities),main="Real qnorm")
c=qplot(probabilities,dnorm(probabilities),main="Real dnorm")
d=qplot(quantiles,dist1$pfun(quantiles),main="makeDitribution-pnorm")
f=qplot(probabilities,dist1$qfun(probabilities),main="makeDitribution-qnorm")
g=qplot(probabilities,dist1$dfun(probabilities),main="makeDitribution-dnorm")  
h=qplot(quantiles,punif(quantiles),main="Real punif")
i=qplot(probabilities,qunif(probabilities),main="Real qunif")
j=qplot(probabilities,dunif(probabilities),main="Real dunif")
k=qplot(quantiles,dist2$pfun(quantiles),main="makeDitribution-punif")
l=qplot(probabilities,dist2$qfun(probabilities),main="makeDitribution-qunif")
m=qplot(probabilities,dist2$dfun(probabilities),main="makeDitribution-dunif")  
multiplot(a,b,c,d,f,g,h,i,j,k,l,m,cols=4)

danielfm123/dftools documentation built on July 17, 2021, 1 p.m.