Pseudo Random Numbers (2014)

A sequence of Pseudo Random Numbers is generated by a deterministic algorithm and should simulate a sequence of independent and uniformly distributed random variables on the interval [0, 1]. Every random experiment results in two or more outcomes.

A variable whose values depend upon the outcomes of a random experiment is called a random variable denoted by capital letters $X, Y$, or $Z$ and their values by the corresponding small letters $x, y$, or $z$.

Pseudo Random Numbers and their Generation

Random numbers are a sequence of digits from the set {0,1,2,⋯,9} so that, at each position in the sequence, each digit has the same probability 0.1 of being selected irrespective of the actual sequence, so far constructed.

The simplest ways of achieving such numbers are games of chance such as dice, coins, and cards, or by repeatedly drawing numbered slips out of a jar. These are usually grouped purely for the convenience of reading but this would become very tedious for long runs of each digit. Fortunately, tables of random digits are widely available now.

Pseudo Random Numbers and Their Process

pseudo random process is a process that appears to be random but actually, it is not. Pseudo random sequences typically exhibit statistical randomness while being generated by an entirely deterministic causal process. Such a process is easier to produce than a genuinely random one and has the benefit that it can be used again and again to produce the same numbers and they are useful for testing and fixing software.

For implementation on computers to provide a sequence of such digits easily, and quickly, the most common methods are called Pseudo Random Technique.

Here, the digit will eventually reappear in the same order (cycle. For a good technique, the cycle might be tens of thousands of digits long. Of course, the pseudorandom numbers/digits are not truly random. They are completely deterministic but they do exhibit most of the properties of random digits. Generally, their methods involve the recursive formula e.g.

\[X_{n+1}= a x_n +b\, mod\, m; n=0, 1, 2, …\]

$a, b$, and $n$ are suitably chosen integer constants and the seed $x_0$ (a starting number i.e. n = 0) is an integer. (Note mode $m$ means that if the result from the formula is greater than m, divide it by m and keep the remainder as a random number.

Use of this formula gives rise to a sequence of integers each of which is in the random 0 to $m-1$.

Example (Pseudorandom Numbers Generation)

let a = 13, b=5, and m = 1000, Generate 500 random numbers.

Solution

\[x_{n+1}=a \, x_n + \,b\, mod\, 1000; n=0,1,2,…\]

let seed $x_0=5$, then for $n=0$ we have

\begin{align*}
x_{0+1}&=13 \times 5 +5\, mod\, 1000=70\\
x_{1+1}&=13 \times 70 + 5\, mod\, 1000=915
\end{align*}

Pseudo Random Numbers

Application of Random Variables

The random numbers have wide applicability in the simulation techniques (also called Monte Carlo Methods) which have been applied to many problems in the various sciences and one useful in situations where direct experimentation is not possible, the cost of experimenting is very high or the experiment takes too much time.

R code to Generate Random Number

# store the pseudo random output
a = 13
b = 5
m = 1000
sim = 500
x <- numeric (sim)
x[0] = 5
for (i in 1: sim){
  x[i+1] <- (a * x[i] + b ) %% 1000
}
x[2:sim]
Pseudo Random Numbers Generation

Pseudo random numbers (PRNs) are a cornerstone of computer simulations and many other applications. However, computers cannot generate true randomness and PRNs are used extensively in many fields, including:

  • Simulations: Modeling complex systems like Financial market analysis, weather patterns, or traffic flow often relies on PRNs.
  • Games: From card shuffles to enemy movement in computer video games, PRNs add an element of chance and keep things interesting.
  • Cryptography: While not the only source, PRNs are used to generate encryption keys that appear random and improve security.

Read more about Pseudo Random Process | Random Number Generation and Linear Congruential Generator (LCG)

Read more on Wikipedia: Pseudo Randon Numbers generator

Generate Binomial Random Numbers in R

What is Pseudo Random Process (2012)

Pseudo Random Process

A pseudo random refers to a process that generates a sequence of numbers or events that appears random but actually, is not and is determined by a fixed set of rules. Pseudorandom sequences typically exhibit statistical randomness while being generated by an entirely deterministic causal process. Such a process is easier to produce than a genuinely random one and has the benefit that it can be used again and again to produce the same numbers and they are useful for testing and fixing software.

The generation of random numbers has many uses (mostly in Statistics, Random Sampling, and Simulation, Computer Modeling, Markov Chains, and Experimental Design). Before modern computing, researchers requiring random numbers would either generate them through various means like a coin, dice, cards, roulette wheels, card shuffling, etc., or use existing random number tables.

Pseudo Random Process

A pseudo-random variable is a variable that is created by a deterministic procedure (often a computer program or subroutine is used) which (generally) takes random bits as input. The pseudo random string will typically be longer than the original random string, but less random (less entropic, in the information-theory sense). This can be useful for randomized algorithms.

Pseudo-random numbers are computer-generated random numbers and they are not truly random because there is an inherent pattern in any sequence of pseudo numbers.

A question arises here why do we use something that is not truly random? The reasons behind the use of pseudo random process are:

  • Speed and Efficiency: Generating pseudo-random numbers is much faster and more efficient than using true random sources like physical processes.
  • Reproducibility: Using the same seed, one can reproduce the same sequence of pseudo-random numbers. which is useful for debugging or comparing simulations.

Read more about Random Number Process, Pseudo-Random Number Generation, and Linear Congruential Generator (LCG)

Read more about Pseudo-Random Number Generator

Generate Binomial Random Numbers in R

Linear Congruential Generator (LCG)

A linear congruential generator (LCG) is an old algorithm that results in a sequence of pseudo-randomized numbers. Though, the algorithm of linear congruential generator is the oldest but best-known pseudorandom number generator method.

The building block of a simulation study is the ability to generate random numbers where a random number represents the value of a random variable uniformly distributed on (0,1).

The recurrence relation defines the generator:

\[X_{i+1}=(aX_i+C) \text{ Modulo } m\]

where $a$ and $m$ are given positive integers, $X_i$ is either $0,1, \dots, m-1$ and quantity $\frac{X_i}{m}$ is pseudo random number.

Conditions for Linear Congruential Generator

Some conditions are:

  1. $m>0$;  $m$ is usually large
  2. $0<a<m$;  ($a$ is the multiplier)
  3. $0\le c<m$ ($c$ is the increment)
  4. $0\le X_0 <m$ ($X_0$ is seed value or starting value)
  5. $c$ and $m$ are relatively prime numbers (there is no common factor between $c$ and $m$).
  6. $a-1$ is a multiple of every prime factor $m$
  7. $a-1$ is multiple of 4 if $m$ is multiple of 4
Linear Congruential Generator
Source: https://en.wikipedia.org/wiki/Linear_congruential_generator

“Two modulo-9 LCGs show how different parameters lead to different cycle lengths. Each row shows the state evolving until it repeats. The top row shows a generator with $m=9, a=2, c=0$, and a seed of 1, which produces a cycle of length 6. The second row is the same generator with a seed of 3, which produces a cycle of length 2. Using $a=4$ and $c=1$ (bottom row) gives a cycle length of 9 with any seed in [0, 8]. “

If  $c=0$, the generator is often called a multiplicative congruential method, or Lehmer RNG. If $c\neq0$ the generator is called a mixed congruential generator.

FAQs about linear congruential generator (LCG)

  1. What is meant by a linear congruential generator?
  2. How are random numbers generated?
  3. What are the conditions for linear congruential generators?
  4. What is meant by a multiplicative or mixed congruential generator?
statistics help: https://itfeature.com

Read more about the pseudo-random process and Random number Generation

Read from Wikipedia about Linear Congruential Generator (LCG)

Statistical Simulation: Introduction and Issues (2012)

In this article, you will learn about statistical simulation introduction, use in various fields, and issues.

Simulation is used before an existing system is altered or a new system is built, to reduce the chances of failure to meet specifications, eliminate unforeseen bottlenecks, prevent under or over-utilization of resources, and optimize system performance. Simulation is used in many contexts, such as simulation of technology for performance optimization, safety engineering, training testing, education, and video games. Often, computer experiments are used to study simulation models. Models are simulated versions/results.

Uses of Statistical Simulations

Statistical simulations are widely used in many fields:

  • Science: Scientists use statistical simulations to model complex systems, such as the climate or the spread of disease.
  • Business: Businesses use statistical simulations to forecast sales, evaluate the risks of new investments, and design logistics networks.
  • Government: Governments use simulations to model the effects of economic policies, assess the risks of natural disasters, and plan for future events.
  • Gambling: Casinos use simulations to design games that are fair and profitable.

Statistical Simulation depends on unknown (or external/ impositions/ factors) parameters and statistical tools depend on estimates. In statistics, simulation is used to assess the performance of a method, typically when there is a lack of theoretical background. With simulations, the statistician knows and controls the truth.

Monte Carlo Simulation Application: Statistical Simulations

Statistical Assumptions about Simulated Data

In simulation, data is generated artificially to test out a hypothesis or statistical method. Whenever a new statistical method is developed (or used), some assumptions need to be tested and verified (or confirmed). Statisticians use simulated data to test these assumptions.

  • The simulation follows finite sample properties (have to specify $n$)
  • The reasoning of statistical simulation can’t be proofed mathematically)
  • Simulation is used to illustrate things.
  • Simulation is used to check the validity of methods.
  • Simulation is a technique of representing the real world via a computer program.
  • A simulation is an act of initiating the behavior of some situation or some process utilizing something suitably analogous. (especially for study or some personal training)
  • A simulation is a representation of something (usually on a smaller scale).
  • Simulation is the act of giving a false/artificial appearance.

In summary, statistical simulation is a technique used to imitate the behavior of a system or process under various conditions. It involves creating a computer model of the system and running the model repeatedly with different inputs. The outputs of the model are then analyzed to learn about the behavior of the real system.

Statistical Simulation

Issues In Statistical Simulation

  • What distribution does the random variable have?
  • How do we generate these random variables for simulation?
  • How do we analyze the output of simulations?
  • How many simulation runs do we need?
  • How do we improve the efficiency of the simulation?

FAQS about Statistical Simulations

  1. What is meant by simulation in statistics?
  2. What random data is generated using simulation?
  3. What are the uses of simulations?
  4. What are the issues in Statistical simulations?
  5. What are statistical assumptions about generated data?

See more about Statistical Simulation

Introduction to R Programming

Online MCQs Test Website