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