HARK.simulation¶
Functions for generating simulated data and shocks.

HARK.simulation.
drawBernoulli
(N, p=0.5, seed=0)¶ Generates arrays of booleans drawn from a simple Bernoulli distribution. The input p can be a float or a listlike of floats; its length T determines the number of entries in the output. The tth entry of the output is an array of N booleans which are True with probability p[t] and False otherwise.
Parameters: Returns: draws – Tlength list of arrays of Bernoulli draws each of size N, or a single array of size N (if sigma is a scalar).
Return type: np.array or [np.array]

HARK.simulation.
drawDiscrete
(N, P=[1.0], X=[0.0], exact_match=False, seed=0)¶ Simulates N draws from a discrete distribution with probabilities P and outcomes X.
Parameters:  P (np.array) – A list of probabilities of outcomes.
 X (np.array) – A list of discrete outcomes.
 N (int) – Number of draws to simulate.
 exact_match (boolean) – Whether the draws should “exactly” match the discrete distribution (as closely as possible given finite draws). When True, returned draws are a random permutation of the Nlength list that best fits the discrete distribution. When False (default), each draw is independent from the others and the result could deviate from the input.
 seed (int) – Seed for random number generator.
Returns: draws – An array draws from the discrete distribution; each element is a value in X.
Return type: np.array

HARK.simulation.
drawLognormal
(N, mu=0.0, sigma=1.0, seed=0)¶ Generate arrays of lognormal draws. The sigma input can be a number or listlike. If a number, output is a length N array of draws from the lognormal distribution with standard deviation sigma. If a list, output is a length T list whose tth entry is a length N array of draws from the lognormal with standard deviation sigma[t].
Parameters:  N (int) – Number of draws in each row.
 mu (float or [float]) – One or more means. Number of elements T in mu determines number of rows of output.
 sigma (float or [float]) – One or more standard deviations. Number of elements T in sigma determines number of rows of output.
 seed (int) – Seed for random number generator.
 Returns –
  –
 draws (np.array or [np.array]) – Tlength list of arrays of mean one lognormal draws each of size N, or a single array of size N (if sigma is a scalar).

HARK.simulation.
drawMeanOneLognormal
(N, sigma=1.0, seed=0)¶ Generate arrays of mean one lognormal draws. The sigma input can be a number or listlike. If a number, output is a length N array of draws from the lognormal distribution with standard deviation sigma. If a list, output is a length T list whose tth entry is a length N array of draws from the lognormal with standard deviation sigma[t].
Parameters:  N (int) – Number of draws in each row.
 sigma (float or [float]) – One or more standard deviations. Number of elements T in sigma determines number of rows of output.
 seed (int) – Seed for random number generator.
 Returns –
  –
 draws (np.array or [np.array]) – Tlength list of arrays of mean one lognormal draws each of size N, or a single array of size N (if sigma is a scalar).

HARK.simulation.
drawNormal
(N, mu=0.0, sigma=1.0, seed=0)¶ Generate arrays of normal draws. The mu and sigma inputs can be numbers or listlikes. If a number, output is a length N array of draws from the normal distribution with mean mu and standard deviation sigma. If a list, output is a length T list whose tth entry is a length N array with draws from the normal distribution with mean mu[t] and standard deviation sigma[t].
Parameters:  N (int) – Number of draws in each row.
 mu (float or [float]) – One or more means. Number of elements T in mu determines number of rows of output.
 sigma (float or [float]) – One or more standard deviations. Number of elements T in sigma determines number of rows of output.
 seed (int) – Seed for random number generator.
Returns: draws – Tlength list of arrays of normal draws each of size N, or a single array of size N (if sigma is a scalar).
Return type: np.array or [np.array]

HARK.simulation.
drawUniform
(N, bot=0.0, top=1.0, seed=0)¶ Generate arrays of uniform draws. The bot and top inputs can be numbers or listlikes. If a number, output is a length N array of draws from the uniform distribution on [bot,top]. If a list, output is a length T list whose tth entry is a length N array with draws from the uniform distribution on [bot[t],top[t]].
Parameters:  N (int) – Number of draws in each row.
 bot (float or [float]) – One or more bottom values. Number of elements T in mu determines number of rows of output.
 top (float or [float]) – One or more top values. Number of elements T in top determines number of rows of output.
 seed (int) – Seed for random number generator.
Returns: draws – Tlength list of arrays of uniform draws each of size N, or a single array of size N (if sigma is a scalar).
Return type: np.array or [np.array]

HARK.simulation.
drawWeibull
(N, scale=1.0, shape=1.0, seed=0)¶ Generate arrays of Weibull draws. The scale and shape inputs can be numbers or listlikes. If a number, output is a length N array of draws from the Weibull distribution with the given scale and shape. If a list, output is a length T list whose tth entry is a length N array with draws from the Weibull distribution with scale scale[t] and shape shape[t].
Note: When shape=1, the Weibull distribution is simply the exponential dist.
Mean: scale*Gamma(1 + 1/shape)
Parameters:  N (int) – Number of draws in each row.
 scale (float or [float]) – One or more scales. Number of elements T in scale determines number of rows of output.
 shape (float or [float]) – One or more shape parameters. Number of elements T in scale determines number of rows of output.
 seed (int) – Seed for random number generator.
 Returns –
  –
 draws (np.array or [np.array]) – Tlength list of arrays of Weibull draws each of size N, or a single array of size N (if sigma is a scalar).