Przydatne wzory (dla rozkładu normalnego):
\alpha - poziom istotności
u - kwantyl standardowego rozkładu normalnego
t - kwantyl rozkładu t-studenta z n-1 stopniami swobody
\chi^2 - kwantyl rozkładu \chi^2 z n-1 stopniami swobody
Dane potrzebne do sądów (przedziały ufności dla \mu oraz \sigma^2):
drx@drx-laptok:~/ii/2009_letni/ws$ python lista4.py Zadanie 1 (29.342058549219409, 30.657941450780591) Zadanie 2 (27.919406448497771, 32.080593551502233) Zadanie 3 (25.919406448497771, 30.080593551502229) Zadanie 4 (27.555866666666667, 32.444133333333333) Zadanie 5 (104.53476513852934, 105.46523486147066) (102.63219954770994, 103.36780045229006) Zadanie 6 (104.20663450912882, 105.79336549087118) (102.33429117368885, 103.66570882631115) Zadanie 8 (20.335223303080035, 32.566436771384836) Zadanie 10 (20.363760087685264, 35.150285037359438)
Wygenerowane przez:
from scipy.special import erfinv from scipy.stats import chi2 from math import sqrt, factorial, exp def probit(p): return sqrt(2) * erfinv(2*p - 1) #mu confidence interval - large dataset def ci_mu_large(n, sigma_sq, X_m, alpha): temp = probit(1-alpha/2)*sqrt(sigma_sq/n) return (X_m - temp, X_m + temp) #mu confidence interval - small dataset def ci_mu_small(n, sigma_sq, X_m, t): temp = t*sqrt(sigma_sq/(n-1)) return (X_m - temp, X_m + temp) #variance confidence interval - large dataset def ci_var_large(n, s_sq, X_m, alpha): u = probit(1-alpha/2) v = sqrt(s_sq * 2 * n) 22 return ((v / (sqrt(2*n-3) + u))**2, (v / (sqrt(2*n-3) - u))**2) #variance confidence interval - small dataset def ci_var_small(n, s_sq, X_m, alpha): return (s_sq * sqrt(n/chi2.isf(alpha/2, n-1)), s_sq*sqrt(n/chi2.isf(1-alpha/2, n-1))) # zadanie 1 sigma_sq = 16.0 n = 100 X_m = 30.0 alpha = 0.1 print "Zadanie 1\n", ci_mu_large(n, sigma_sq, X_m, alpha), "\n" # zadanie 2 sigma_sq = 16.0 n = 10 X_m = 30.0 alpha = 0.1 print "Zadanie 2\n", ci_mu_large(n, sigma_sq, X_m, alpha), "\n" # zadanie 3 sigma_sq = 16.0 n = 10 X_m = 28.0 alpha = 0.1 print "Zadanie 3\n", ci_mu_large(n, sigma_sq, X_m, alpha), "\n" # zadanie 4 sigma_sq = 16.0 n = 10 X_m = 30.0 t = 1.8331 #octave:1> tinv (0.95, 9) #ans = 1.8331 print "Zadanie 4\n", ci_mu_small(n, sigma_sq, X_m, t), "\n" # zadanie 5 sigma_sq_1, sigma_sq_2 = 4.0, 2.0 n_1, n_2 = 50, 40 X_m_1, X_m_2 = 105.0, 103.0 alpha = 0.1 print "Zadanie 5\n", ci_mu_large(n_1, sigma_sq_1, X_m_1, alpha) print ci_mu_large(n_2, sigma_sq_2, X_m_2, alpha), "\n" # zadanie 6 sigma_sq_1, sigma_sq_2 = 4.0, 2.0 n_1, n_2 = 20, 15 X_m_1, X_m_2 = 105.0, 103.0 t_1, t_2 = 1.7291, 1.7613 #octave:3> tinv (0.95, 19), tinv(0.95, 14) #ans = 1.7291 #ans = 1.7613 print "Zadanie 6\n", ci_mu_small(n_1, sigma_sq_1, X_m_1, t_1) print ci_mu_small(n_2, sigma_sq_2, X_m_2, t_2), "\n" # zadania 8-10 X_m = 10.0 S_sq = 25.0 n = 100.0 alpha = 0.1 print "Zadanie 8\n", ci_var_large(n, S_sq, X_m, alpha), "\n" n = 20.0 print "Zadanie 10\n", ci_var_small(n, S_sq, X_m, alpha)
%`