Advertisement
575

mean/median

575
Nov 6th, 2022 (edited)
656
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.97 KB | None | 1 0
  1. # Среднее арифметическое (выборочное среднее)
  2. def SampleMean(x):
  3.     SampleMean = 0
  4.  
  5.     for i in range(len(x)):
  6.         SampleMean += x[i]
  7.    
  8.     return SampleMean / len(x)
  9.  
  10. # Выборочная медиана
  11. def SampleMedian(x):
  12.     x_var = np.sort(x)
  13.  
  14.     if len(x_var) % 2 == 0:
  15.         return (x_var[int(len(x_var) / 2)] + x_var[int(len(x_var) / 2 + 1)]) / 2
  16.     else:
  17.         return x_var[int(len(x_var) / 2 + 1)]
  18.  
  19. tetaAcc = 6 # teta
  20. K = 50
  21.  
  22. # Оценки для распределений (выборочное среднее и медиана)
  23. SampleMeanN01 = np.array([])
  24. SampleMedianN01 = np.array([])
  25. SampleMeanE = np.array([])
  26. SampleMedianE = np.array([])
  27. SampleMeanK3 = np.array([])
  28. SampleMedianK3 = np.array([])
  29.  
  30. for i in range(K):
  31.     K3 = KA(3, 50)
  32.     yK = np.array([])
  33.  
  34.     for i in range(len(K3)):
  35.         yK = np.append(yK, tetaAcc + K3[i])
  36.    
  37.     SampleMeanK3 = np.append(SampleMeanK3, SampleMean(yK))
  38.     SampleMedianK3 = np.append(SampleMedianK3, SampleMedian(yK))
  39.  
  40. for i in range(K):
  41.     N = NStandart(K)
  42.     yN = np.array([])
  43.  
  44.     for i in range(len(N)):
  45.         yN = np.append(yN, tetaAcc + N[i])
  46.    
  47.     SampleMeanN01 = np.append(SampleMeanN01, SampleMean(yN))
  48.     SampleMedianN01 = np.append(SampleMedianN01, SampleMedian(yN))
  49.  
  50. for i in range(K):
  51.     E = Exp(-1, 1, K)
  52.     yR = np.array([])
  53.    
  54.     for i in range(len(E)):
  55.         yR = np.append(yR, tetaAcc + E[i])
  56.    
  57.     SampleMeanE = np.append(SampleMeanE, SampleMean(yR))
  58.     SampleMedianE = np.append(SampleMedianE, SampleMedian(yR))
  59.  
  60. # Среднеквадратическая погрешность
  61. def RootMeanSquare(x):
  62.     Mean = 0
  63.  
  64.     for i in range(len(x)):
  65.         Mean += x[i]
  66.    
  67.     Mean /= len(x)
  68.     s = 0
  69.    
  70.     for i in range(len(x)):
  71.         s += (x[i] - Mean) ** 2
  72.    
  73.     s /= len(x) * (len(x) - 1)
  74.     return np.sqrt(s)
  75.  
  76. # Среднеквадратические погрешности для оценок трех распределений
  77. ErrorSampleMeanN01 = RootMeanSquare(SampleMeanN01)
  78. ErrorSampleMedianN01 = RootMeanSquare(SampleMedianN01)
  79. ErrorSampleMeanE = RootMeanSquare(SampleMeanE)
  80. ErrorSampleMedianE = RootMeanSquare(SampleMedianE)
  81. ErrorSampleMeanK3 = RootMeanSquare(SampleMeanK3)
  82. ErrorSampleMedianK3 = RootMeanSquare(SampleMedianK3)
  83.  
  84. # Вывод результата
  85. print("N01")
  86. print("SampleMean")
  87. print(SampleMeanN01)
  88. print("SampleMedian")
  89. print(SampleMedianN01)
  90. print("E(-1, 1)")
  91. print("SampleMean")
  92. print(SampleMeanE)
  93. print("SampleMedian")
  94. print(SampleMedianE)
  95. print("K(3)")
  96. print("SampleMean")
  97. print(SampleMeanK3)
  98. print("SampleMedian")
  99. print(SampleMedianK3)
  100.  
  101. print("N(0,1): SampleMean = %.5f , SampleMedian = %.5f" %(ErrorSampleMeanN01, ErrorSampleMedianN01))
  102. print("E(-1, 1): SampleMean = %.5f , SampleMedian = %.5f" %(ErrorSampleMeanE, ErrorSampleMedianE))
  103. print("K(3): SampleMean = %.5f , SampleMedian = %.5f" %(ErrorSampleMeanK3, ErrorSampleMedianK3))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement