% This figure shows empirical CDFs for a small and a large sample % from the gamma distribution to demonstrate their convergence to % the empirical CDF. % % Figure caption: Convergence of the empirical cdf to the % theoretical cdf. The left panel displays the empirical cdf for % a random sample of size 10 from the gamma distribution whose pdf % is the top right band panel of figure 3.3, together with the % gamma cdf. The right panel shows the empirical cdf for a random % sample of size 200, again with the gamma cdf. In the right % panel, the empirical cdf is quite close to the theoretical gamma % cdf. smallSample = gamrnd(2, 1, 10, 1); largeSample = gamrnd(2, 1, 200, 1); % ecdf returns the empirical cdf and the values at which it's % evaluated. [smallEmpiricalCDF, smallSampleXvalues] = ecdf(smallSample); [largeEmpiricalCDF, largeSampleXValues] = ecdf(largeSample); xValues = -.25:0.1:10; theoreticalCDF = gamcdf(xValues, 2, 1); figure set(gcf, 'Position', [200, 100, 800, 600]) %% Plot the smaller sample's empirical CDF. %% subplot(1, 2, 1) % stairs does most of our plotting, but we need to also draw lines % from 0 to the smallest sample, and from the largest sample out. stairs(smallSampleXvalues, smallEmpiricalCDF, 'k', 'LineWidth', 2) line([-0.25, min(smallSample)], [0, 0], 'Color', 'k', 'LineWidth', 2) line([max(smallSample), 10], [1, 1], 'Color', 'k', 'LineWidth', 2) % Set style parameters. set(gca, 'FontSize', 20, 'TickDir', 'out', ... 'XTick', 0:1:10, 'XLim', [-0.25, max(smallSample)+0.25], ... 'YTick', 0:0.2:1, 'YLim', [-0.05, 1.05]) hold on; % Add circles for the actual observations. plot(smallSampleXvalues, smallEmpiricalCDF, 'ok', 'MarkerSize', 5) % Add the theoretical CDF. plot(xValues, theoreticalCDF, '--', 'LineWidth', 2, ... 'Color', [0.6, 0.6, 0.6]) hold off; %% Plot the larger sample's empirical CDF. %% subplot(1, 2, 2) stairs(largeSampleXValues, largeEmpiricalCDF, 'k', 'LineWidth', 2) line([-0.25, min(largeSample)], [0, 0], 'Color', 'k', 'LineWidth', 2) line([max(largeSample), 10], [1, 1], 'Color', 'k', 'LineWidth', 2) set(gca, 'FontSize', 20, 'TickDir', 'out', ... 'XTick', 0:1:10, 'XLim', [-0.25, max(largeSample)+0.25], ... 'YTick', 0:0.2:1, 'YLim', [-0.05, 1.05]) hold on; % Add the theoretical CDF. We don't add circles at the points for % the large sample, since it would just clutter the figure. plot(xValues, theoreticalCDF, '--', 'LineWidth', 2, ... 'Color', [0.6, 0.6, 0.6]) hold off;