What kind of distribution in this chart?

82 Views Asked by At

Could you tell me what kind of distribution is this?

Chart

This is the data:

0.028047984
0.280480733
0.804808224
0.048083135
0.480832245
0.808323349
0.083234385
0.83234474
0.323448299
0.23448388
0.344839694
0.448397836
0.483979252
0.839793415
0.397935044
0.979351338
0.793514274
0.935143638
0.351437274
0.514373633
0.143737223
0.43737312
0.373732097
0.737321866
0.373219557
0.732196462
0.321965514
0.21965603
0.196561193
0.965612823
0.65612912
0.561292093
0.612921824
0.129219138
0.292192273
0.921923623
0.219237128
0.192372178
0.923722671
0.237227602
0.372276909
0.722769986
0.227700751
0.277008404
0.770084936
0.700850254
0.008503439
0.08503528
0.850353691
0.503537805
0.035378939
0.353790287
0.537903763
0.379038521
0.790386103
0.903861923
0.038620121
0.386202106
0.862021958
0.620220474
0.202205635
0.022057239
0.220573286
0.205733753
0.057338427
0.573385162
0.733852518
0.338526071
0.385261605
0.852616939
0.526170288
0.261703776
0.617038658
0.170387477
0.703875668
0.03875757
0.38757659
0.875766792
0.757668809
0.576688989
0.766890782
0.668908716
0.689088051
0.8908814
0.908814891
0.088149802
0.881498912
0.814990011
0.149901
0.499010891
0.9901098
0.901098889
0.010989787
0.109898766
0.098988551
0.989886401
0.898864907
0.988649962
0.886500517
0.865006065

I have 100 data from generating U(0,1) in Linear Congruential Generator. In Random Variate Generator, I want to solve for Probability Density Function to Cummulative Distribution Function with Inverse Transformation.

This is the formula: f(x) = 1/x^2 for 0 < x < 1 and f(x) = 0 for the other x

I need to find the inverse of f(x) to solve the random number generator LCG for U(0,1). The type of the distribution has a different formula.

2

There are 2 best solutions below

0
On BEST ANSWER

You must mean that you're to use a distribution with the density function is $f(x) = x^{-2},$ for $x > 1.$ This is a Pareto distribution. Then the cumulative distribution function is $F(x) = 1 - x^{-1},$ for $x > 1.$ [Note: I do not believe your formula for $0 < x < 1$ is a proper probability density function.]

For more on 'Pareto distributions', see the Wikipedia article; in their terminology, yours has $\alpha=1$ and $x_m = 1.$ In addition, this article shows the CDF and quantile function that I mention below (along with derivations).

You can use the 'inverse CDF' or 'quantile' function to generate random observations from this Pareto distriution. If $u = F(x) = 1 - x^{-1},$ then $x = F^{-1}(u) = 1/(1 - u),$ for $0 < u < 1$ is the quantile function.

One can show that if $U \sim Unif(0, 1)$ then $X = 1/(1 - U)$ has your Pareto distribution. Thus, using each of your 100 pseudorandom numbers as a realization of $U$, you should be able to simulate a sample of size 100 from the Pareto distribution.

Using R software, I generated 100 observations from $Unif(0,1)$ and plotted them in the upper panel of the figure below. They seem similar to the observations in your figure, which I believe (along with @DavidK) are also uniformly distributed. The bottom panel shows the 100 corresponding Pareto random variables. This Pareto distribution has a notoriously very heavy 'tail' towards high values; while many of the Pareto values are small, occasional ones are quite large.

enter image description here

0
On

Comment: I put your list of pseudorandom numbers into a couple of software packages. A 'runs' test finds them consistent with randomness. a Kolmogorov-Smirnov test finds them consistent with $Unif(0,1).$

Some really awful LCG's could produce 100 observations that 'pass' these tests and others. Vetting a pseudorandom generator of any kind is a task for specialists, and 100 observations would not be nearly enough output for powerful tests.

However, to answer the specific question in title of your Question (at long last), it seems reasonable to assume that the data you posted could be from $Unif(0,1).$

The details of the K-S test in R are shown below. At least this shows the data in a convenient format for R and other packages, in case someone wants to investigate further.

 u = c(0.028048, 0.280481, 0.804808, 0.048083, 0.480832, 0.808323, 0.083234,
 0.832345, 0.323448, 0.234484, 0.344840, 0.448398, 0.483979, 0.839793,
 0.397935, 0.979351, 0.793514, 0.935144, 0.351437, 0.514374, 0.143737,
 0.437373, 0.373732, 0.737322, 0.373220, 0.732196, 0.321966, 0.219656,
 0.196561, 0.965613, 0.656129, 0.561292, 0.612922, 0.129219, 0.292192,
 0.921924, 0.219237, 0.192372, 0.923723, 0.237228, 0.372277, 0.722770,
 0.227701, 0.277008, 0.770085, 0.700850, 0.008503, 0.085035, 0.850354,
 0.503538, 0.035379, 0.353790, 0.537904, 0.379039, 0.790386, 0.903862,
 0.038620, 0.386202, 0.862022, 0.620220, 0.202206, 0.022057, 0.220573,
 0.205734, 0.057338, 0.573385, 0.733853, 0.338526, 0.385262, 0.852617,
 0.526170, 0.261704, 0.617039, 0.170387, 0.703876, 0.038758, 0.387577,
 0.875767, 0.757669, 0.576689, 0.766891, 0.668909, 0.689088, 0.890881,
 0.908815, 0.088150, 0.881499, 0.814990, 0.149901, 0.499011, 0.990110,
 0.901099, 0.010990, 0.109899, 0.098989, 0.989886, 0.898865, 0.988650,
 0.886501, 0.865006)

 ks.test(u, punif, 0, 1)

 ##        One-sample Kolmogorov-Smirnov test
 ##
 ## data:  u 
 ## D = 0.0628, p-value = 0.8256
 ## alternative hypothesis: two.sided