Ogrodnik eksperymentuje z nowym gatunkiem drzew. Posadził 20 sztuk i po dwóch latach zmierzył następujące średnice pni (w cm): 8.5, 7.6, 9.3, 5.5, 11.4, 6.9, 6.5, 12.9, 8.7, 4.8, 4.2, 8.1, 6.5, 5.8, 6.7, 2.4, 11.1, 7.1, 8.8, 7.2
import scipy.stats as st
import numpy as np
import pylab as py
def randsample(x,ile):
ind = st.randint.rvs(0,len(x),size = ile)
y = x[ind]
return y
def hist_z_przedzialem(x,hi,lo):
szer_binu = (hi-lo)/10
biny = np.arange(lo-10*szer_binu, hi+10*szer_binu, szer_binu)
(n,bin_x,patch) = py.hist(x,bins = biny )
py.plot([lo, lo] , [0, np.max(n)] ,'r' )
py.plot([hi,hi],[0, np.max(n)],'r')
X=np.array([8.5, 7.6, 9.3, 5.5, 11.4, 6.9, 6.5, 12.9, 8.7, 4.8, 4.2, 8.1, 6.5, 5.8, 6.7, 2.4, 11.1, 7.1, 8.8, 7.2])
alfa = 0.1
Nboot=int(1e5)
N=len(X)
print("Średnia próbki",np.mean(X))
print("Mediana próbki",np.median(X))
print("Liczebność próbki",N)
Sr=np.empty(Nboot)
Med=np.empty(Nboot)
for i in range(Nboot):
xb=randsample(X,N)
Med[i]=np.median(xb)
Sr[i]=np.mean(xb)
lo = st.scoreatpercentile(Sr, per = alfa/2*100)
hi = st.scoreatpercentile(Sr, per = (1-alfa/2)*100)
print('przedzial ufnosci dla średniej: %(lo).3f - %(hi).3f'%{'lo':lo,'hi':hi}) py.subplot(2,1,1)
hist_z_przedzialem(Sr,hi,lo)
lo = st.scoreatpercentile(Med, per = alfa/2*100)
hi = st.scoreatpercentile(Med, per = (1-alfa/2)*100)
print('przedzial ufnosci dla mediany: %(lo).3f - %(hi).3f'%{'lo':lo,'hi':hi}) py.subplot(2,1,2)
hist_z_przedzialem(Med,hi,lo)
py.show()