Advertisement
edward4324

ml1

Apr 6th, 2021
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.65 KB | None | 0 0
  1. clc;
  2. clear;
  3. close;
  4. %1
  5. %генерация выборки по варианту
  6. N = 10000;
  7. a = 8;
  8. b = 12;
  9. X = random('Uniform', a, b, 1, N);
  10. %%2.1
  11. me = mean(X);
  12. d_i = var(X);
  13. d_ni = var(X, 1);
  14. vsr_i = sqrt(d_i);
  15. vsr_ni = sqrt(d_ni);
  16. X_min = min(X);
  17. X_max = max(X);
  18.  
  19. %%2.2 в тетради
  20.  
  21. %%2.3 тетрадь
  22.  
  23. %%2.4
  24. %Найти среднее от выборочного среднего и среднее от исправленной выборочной дисперсии по
  25. % 1000 штук выборочных реализаций объемом 10000. Сравнить полученные значения с
  26. % математическим ожиданием и дисперсией того распределения, из которого выборка
  27. % генерировалась.
  28.  
  29. X_1000 = zeros(1, N);
  30. me_1000 = zeros(1,1000);
  31. d_i_1000 = zeros(1,1000);
  32.  
  33. for i = 1:1000
  34.    
  35.     X_1000 = random('Uniform', a, b, 1, N);
  36.     me_1000(i) = mean(X_1000);
  37.     d_i_1000(i) = var(X_1000);
  38.    
  39.     clear X_1000;
  40.    
  41. end
  42.  
  43. me_1000_e = mean(me_1000);
  44. d_i_1000_e = mean(d_i_1000);
  45.  
  46. clear i;
  47. clear me_1000;
  48. clear d_i_1000;
  49.  
  50. %3 расчет гистограммы
  51.  
  52. r = floor(log2(N) + 1);
  53. h = (X_max - X_min) / r;
  54.  
  55. z = zeros(0,r);
  56.  
  57. for i = 0:r
  58.     z(i+1) = X_min + i*h;
  59. end
  60.  
  61. clear i;
  62.  
  63. z1 = zeros(1, r);
  64.  
  65. for i = 1:r
  66.     z1(i) = z(i+1) - h/2;
  67. end
  68.  
  69. clear i;
  70.  
  71. U = hist(X, z1);
  72.  
  73. H = U / (h*N);
  74.  
  75. x = (0:0.01:20);
  76. f = pdf('Uniform', x, a, b);
  77.  
  78. figure;
  79. bar(z1, H, 1);
  80. hold on
  81. plot(x,f);
  82. hold off
  83. title('Гистограмма относительных частот');
  84. legend({'Гистограмма относительных частот','График плотность вер. теор. распределения'},'Location','southwest')
  85.  
  86. %4
  87. % Выполнить расчет выборочного среднего и выборочной дисперсии по группированным данным
  88. % (использовать группированные данные, полученные при расчете гистограммы) и сравнить их со
  89. % значениями выборочных характеристик, полученными в п. 2.
  90.  
  91. me_gr = 0;
  92. for i=1 : r
  93.     me_gr = me_gr + z1(i) * U(i);
  94. end
  95. me_gr = me_gr / N;
  96.  
  97. d_gr = 0;
  98. for i=1 : r
  99.     d_gr = d_gr + (z1(i)^2-me_gr^2)*U(i);
  100. end
  101. d_gr = d_gr / N;
  102.  
  103. vsr_gr = sqrt(d_gr);
  104.  
  105. if (me_gr < me)
  106.     disp("Матожидание группированных значений меньше негруппированных");
  107. else
  108.     disp("Матожидание группированных значений больше негруппированных");
  109. end
  110.  
  111.  
  112. if (d_gr < d_i)
  113.     disp("Дисперсия группированных значений меньше негруппированных");
  114. else
  115.     disp("Дисперсия группированных значений больше негруппированных");
  116. end
  117.  
  118.  
  119. if (vsr_gr < vsr_i)
  120.     disp("Выборочное среднее группированных значений меньше негруппированных");
  121. else
  122.     disp("Выборочное среднее группированных значений больше негруппированных");
  123. end
  124.  
  125. %5 эмпирическая ф.р.
  126.  
  127. y = unifcdf(x, a, b);
  128.  
  129. figure;
  130. hold on
  131. sort(X);
  132. ecdf(X);
  133. ecdf(z1);
  134. plot(x,y);
  135. hold off
  136. title('Эмпирическая функция распределения');
  137. legend({'эмп. Ф.р. по негрупп. данным','эмп. Ф.р. по групп. данным', 'теор. ф.р.'},'Location','southwest')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement