rmk

$$rmk(k)=\sqrt[k]\sum_{i=1}^N x_i^k$$

In [2]:
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gmean
In [3]:
#simulace dat
mu=7
sigma=1
ndata=10
data=np.random.normal(mu,sigma,ndata)
In [4]:
krange=200 #rozsah hodnot k
rmkp=np.empty(krange) #rmk pro kladné k
rmkm=np.empty(krange) #rmk pro záporné k
rmkp[0]=gmean(data) #rmk pro k=0 je geometrický průměr
rmkm[0]=gmean(data)
for k in range(1,krange,1):
    rmkp[k]=(np.mean(data**k))**(1/k)
    rmkm[k]=(np.mean(data**(-k)))**(-1/k)
In [8]:
x_plot=np.arange(0,krange)
fig,ax=plt.subplots()
ax.scatter(x_plot,rmkp,s=5,c='blue')
ax.scatter(-x_plot,rmkm,s=5,c='blue')
ax.plot([-krange,krange],[np.max(data),np.max(data)],ls='dashed',c='red')
ax.plot([-krange,krange],[np.min(data),np.min(data)],ls='dashed',c='red')
ax.plot([0,0],[np.min(data),np.max(data)],ls='dashed',c='black')
ax.scatter(0,rmkp[0],label='geometrický průměr')
#ax.scatter(-1,rmkm[1],label='harmonický průměr')
#ax.scatter(1,rmkp[1],label='aritmetický průměr')
#ax.scatter(2,rmkp[2],label='rms')
ax.set_xlabel('k')
ax.set_ylabel('rmk(k)')
ax.legend()
plt.show()
fig.savefig("rmk-geom.jpg",dpi=1200)
No description has been provided for this image
In [ ]: