Průměry a míry rozptylu¶

In [130]:
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gmean,hmean 
In [131]:
data=np.array([1.656,1.589,1.719,1.648,1.636,1.711,1.642,1.597,1.675,1.690]) #naměřená data

zjištění počtu dat

In [132]:
ndata=np.size(data)
print("počet dat:",ndata)
počet dat: 10

Míry polohy

aritmetický průměr:
$\frac{1}{N}\sum_{i=1}^N x_i$

In [133]:
#míry polohy
mean=np.mean(data) #aritmetický průměr

medián $x_m$:
$P(x\le x_m) = P(x\ge x_m)$

In [134]:
median=np.median(data) #medián

geometrický průměr:
$\sqrt[N]{\prod_{i=1}^N x_i}$

In [135]:
gmean=gmean(data) #geometrický průměr

harmonický průměr:
$\left (\frac{1}{N}\sum_{i=1}^N\frac{1}{x_i}\right )^{-1}$

In [136]:
hmean=hmean(data)

root mean square (rms):
$\sqrt{\frac{1}{N}\sum_{i=1}^N x_i^2}$

In [137]:
rms=np.sqrt(np.mean(data**2))
In [138]:
print("míry polohy")
print(f"aritmetický průměr: {mean:8.5f}")
print(f"            medián: {median:8.5f}")
print(f"geometrický průměr: {gmean:8.5f}")
print(f" harmonický průměr: {hmean:8.5f}")
print(f"  root mean square: {rms:8.5f}")
míry polohy
aritmetický průměr:  1.65630
            medián:  1.65200
geometrický průměr:  1.65578
 harmonický průměr:  1.65526
  root mean square:  1.65682
In [139]:
Fig,ax=plt.subplots()
x=np.arange(ndata)
ax.scatter(x,data,label='data')
ax.plot([0,ndata],[mean,mean],c='red',label='aritmetický průměr')
ax.plot([0,ndata],[median,median],c='green',ls='dashed',label='medián')
ax.set_xlabel("číslo měření") 
ax.set_ylabel("y") 
ax.legend()
plt.show()
No description has been provided for this image

míry rozházenosti

rozsah (maximální chyba):
$x_{max}-x_{min}$

In [140]:
rozsah=np.max(data)-np.min(data)

průměrná odchylka:
$\frac{1}{N}\sum_{i=1}^N (x_i-\overline{x})$

In [141]:
mean_dev=np.mean(data-np.mean(data))

absolutní průměrná odchylka:
$\frac{1}{N}\sum_{i=1}^N\left |(x_i-\overline{x})\right |$

In [142]:
abs_dev=np.mean(abs(data-np.mean(data)))

standardní odchylka:
$\frac{1}{N}\sum_{i=1}^N(x_i-\overline{x})^2$

In [143]:
stdev=np.std(data)

standardní odchylka (nepředpojatý odhad):
$\frac{1}{N-1}\sum_{i=1}^N(x_i-\overline{x})^2$

In [144]:
stdevn=np.std(data,ddof=1)
In [145]:
print("míry rozházenosti")
print(f"             rozsah: {rozsah:8.5f}")
print(f"   střední odchylka: {mean_dev}")
print(f" absolutní odchylka: {abs_dev:8.5f}")
print(f"standardní odchylka: {stdev:8.5f}")
print(f"standardní odchylka: {stdevn:8.5f} (nepředpojatý odhad)")
míry rozházenosti
             rozsah:  0.13000
   střední odchylka: -3.552713678800501e-16
 absolutní odchylka:  0.03396
standardní odchylka:  0.04140
standardní odchylka:  0.04364 (nepředpojatý odhad)
In [151]:
Fig,ax=plt.subplots()
x=np.arange(ndata)
ax.scatter(x,data,label='data')
ax.plot([0,ndata],[mean,mean],c='red',label='aritmetický průměr')
ax.plot([0,ndata],[mean-stdevn,mean-stdevn],c='pink',ls='dashed',label='aritmetický průměr-stdev')
ax.plot([0,ndata],[mean+stdevn,mean+stdevn],c='pink',ls='dashed',label='aritmetický průměr+stdev')
ax.set_xlabel("číslo měření") 
ax.set_ylabel("y") 
ax.set_ylim(1.5,1.8)
#ax.legend()
plt.show()
No description has been provided for this image
In [ ]: