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.

Statistics of Fuzzy Random Variables – A Short Tour

Fuzzy numbers and samples

A fuzzy number is the alpha-cut envelope [X^-(alpha), X^+(alpha)] with a non-decreasing lower and non-increasing upper endpoint.

tri <- triangular_fuzzy(0, 1, 2)
trap <- trapezoidal_fuzzy(-1, 0, 1, 3)
plot(tri)

A FuzzySample is an (n, m, 2) array of cuts for n i.i.d. fuzzy random variables observed on m alpha levels.

s <- FuzzySample(replicate(60, triangular_fuzzy(0, 1, 2), simplify = FALSE))
plot(s)

Level-wise moments

expectation(s)
#> <FuzzyNumber>
#>   levels: 51  (alpha 0 .. 1)
#>   support : [ 0 , 2 ]
#>   core    : [ 1 , 1 ]
variance(s)
#> <FuzzyCovariance>
#>   type    : variance
#>   levels  : 51
#>   scalar  : 0
#>   at levels alpha = 0, 0.5, 1:
#>     Var(lo) Cov(lo,up) Cov(up,lo) Var(up)
#> 0.0       0          0          0       0
#> 0.5       0          0          0       0
#> 1.0       0          0          0       0
correlation(s, FuzzySample(replicate(60, triangular_fuzzy(1, 2, 3),
                                  simplify = FALSE)))
#> <FuzzyCorrelation>
#>   levels : 51
#>   scalar : 0
#>   at levels alpha = 0, 0.5, 1:
#>       [,1] [,2] [,3]
#> lower   NA   NA   NA
#> upper   NA   NA   NA

Empirical distribution and goodness of fit

The empirical CDFs and a level-wise Kolmogorov–Smirnov test against a reference distribution:

fe <- fuzzy_ecdf(s, alpha = c(0, 0.5, 1))
plot(fe)

ks_test(s, p0 = "pnorm")
#> <FuzzyKS>
#> Level-wise one-sample KS test (p0 = pnorm) 
#>   levels: 51
#>   D (max(lower, upper)) at selected levels: 0.9772499 0.9331928 0.8413447 
#>   scalar p-value (min over levels): 3.38829e-50

The fuzzy normal and the central limit theorem

fuzzy_normal() builds a level-wise bivariate-normal fuzzy number. clt() applies the level-wise CLT to a sample, and simulate() draws from it:

cl <- clt(s)
summary(cl)
#> <summary FuzzyCLT>
#>  alpha mean_lower mean_upper var_lower var_upper cov_cross scalar scalar_limit
#>   0.00       0.00       2.00         0         0         0      0            0
#>   0.02       0.02       1.98         0         0         0      0            0
#>   0.04       0.04       1.96         0         0         0      0            0
#>   0.06       0.06       1.94         0         0         0      0            0
#>   0.08       0.08       1.92         0         0         0      0            0
#>   0.10       0.10       1.90         0         0         0      0            0
#>   0.12       0.12       1.88         0         0         0      0            0
#>   0.14       0.14       1.86         0         0         0      0            0
#>   0.16       0.16       1.84         0         0         0      0            0
#>   0.18       0.18       1.82         0         0         0      0            0
#>   0.20       0.20       1.80         0         0         0      0            0
#>   0.22       0.22       1.78         0         0         0      0            0
#>   0.24       0.24       1.76         0         0         0      0            0
#>   0.26       0.26       1.74         0         0         0      0            0
#>   0.28       0.28       1.72         0         0         0      0            0
#>   0.30       0.30       1.70         0         0         0      0            0
#>   0.32       0.32       1.68         0         0         0      0            0
#>   0.34       0.34       1.66         0         0         0      0            0
#>   0.36       0.36       1.64         0         0         0      0            0
#>   0.38       0.38       1.62         0         0         0      0            0
#>   0.40       0.40       1.60         0         0         0      0            0
#>   0.42       0.42       1.58         0         0         0      0            0
#>   0.44       0.44       1.56         0         0         0      0            0
#>   0.46       0.46       1.54         0         0         0      0            0
#>   0.48       0.48       1.52         0         0         0      0            0
#>   0.50       0.50       1.50         0         0         0      0            0
#>   0.52       0.52       1.48         0         0         0      0            0
#>   0.54       0.54       1.46         0         0         0      0            0
#>   0.56       0.56       1.44         0         0         0      0            0
#>   0.58       0.58       1.42         0         0         0      0            0
#>   0.60       0.60       1.40         0         0         0      0            0
#>   0.62       0.62       1.38         0         0         0      0            0
#>   0.64       0.64       1.36         0         0         0      0            0
#>   0.66       0.66       1.34         0         0         0      0            0
#>   0.68       0.68       1.32         0         0         0      0            0
#>   0.70       0.70       1.30         0         0         0      0            0
#>   0.72       0.72       1.28         0         0         0      0            0
#>   0.74       0.74       1.26         0         0         0      0            0
#>   0.76       0.76       1.24         0         0         0      0            0
#>   0.78       0.78       1.22         0         0         0      0            0
#>   0.80       0.80       1.20         0         0         0      0            0
#>   0.82       0.82       1.18         0         0         0      0            0
#>   0.84       0.84       1.16         0         0         0      0            0
#>   0.86       0.86       1.14         0         0         0      0            0
#>   0.88       0.88       1.12         0         0         0      0            0
#>   0.90       0.90       1.10         0         0         0      0            0
#>   0.92       0.92       1.08         0         0         0      0            0
#>   0.94       0.94       1.06         0         0         0      0            0
#>   0.96       0.96       1.04         0         0         0      0            0
#>   0.98       0.98       1.02         0         0         0      0            0
#>   1.00       1.00       1.00         0         0         0      0            0
plot(simulate(cl, nsim = 80))

lln() studies the shrinkage of the sample-mean width against sample size:

w <- lln(s)
plot(w)
#> Warning in xy.coords(x, y, xlabel, ylabel, log): 8 y values <= 0 omitted from
#> logarithmic plot
#> Warning in plot.window(...): nonfinite axis=2 limits [GScale(-inf,-inf,..);
#> log=TRUE] -- corrected now

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.