You are on page 1of 4

The following matlab codes plot the sample variances of simulated exponential distribution ( = 20) sample under dierent

sample sizes (n = 10, 20, , 10000). The graph looks like this:

The program codes consist of two les. One is the main script. The other is the function which generates the simulated sample. In matlab, one cannot write a function in a script le.

This is the codes of the main script.

% Econ770, 2011 Fall, HW#2 Matlab Example % Sample variance simulation of an exponential distribution %% Clears leftovers clear all; clc;

%% Define Lambda and sample sizes % lambda for f(x) = (1/lambda)*exp{-x/lambda} lambda = 20; % all ns: 10, 20, ..., 10000 % this is a vector: (10,20,...,10000) sample_size = (10:10:10000);

%% Pre-allocate data structures % Pre-allocate the storage space for your simulations and results. % Create a zero vector whose size is the same as the vector "sample_size" % defined above sample_var = zeros(size(sample_size));

%% Loop over different sample sizes for i=1:length(sample_size) n = sample_size(i); % Generate a sample of size "n". % The data generating function is defind in the file "exp_dist.m" sample = exp_dist(lambda, sample_size(i)); % Compute the sample variance of the simulated sample 2

% sample_var(i) = var(sample); % The above code will compute the sample variance. % Read the matlab help for the functions to make sure they give % you the exact output you want. sample_mean = sum(sample) / n; sample_var(i) = sum((sample-sample_mean).^2) / (n-1); % Print the progress of the loop. i end %% Produce the graphs plot(sample_size, sample_var) xlabel(Sample size n) ylabel(Sample variance) title(Sample Variances for Exp(20), True value = 400,FontSize,12)

This is the code for the data generating function.

% Generate a simulation of exponential distribution with "lambda". % Econ770, 2011 Fall, HW#2 Matlab Example % Sample variance simulation of an exponential distribution function sim_sample = exp_dist(lambda, sample_size)

% rng(shuffle) seeds the random number generator based on the current time so th rng(shuffle) % Generate uniform distribution simulation sim_u = rand(sample_size,1); % set u = F(x) and solve for x sim_sample = -lambda* log(1-sim_u);

You might also like