====== Wnioskowanie Statystyczne - Lista 4. ======
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
* (1) $\mu$ - nieznane, $\sigma^2$ - znane; albo (2) $\mu, \sigma^2$ - nieznane, próbka jest liczebna \\ Przedział ufności dla $\mu$: $\displaystyle \left(\overline X - u(1 - \frac \alpha 2)\cdot \frac \sigma {\sqrt{n}} \; ; \; \overline X + u(1 - \frac \alpha 2)\cdot \frac \sigma {\sqrt{n}}\right)$ \\ W przypadku (2) przedział ufności dla $\sigma$: $\displaystyle \left(\frac {S\sqrt{2n}} {\sqrt{2n-3} + u(1-0.5\alpha)} \; ; \; \frac {S\sqrt{2n}} {\sqrt{2n-3} - u(1-0.5\alpha)}\right)$
* $\mu, \sigma^2$ - nieznane, próbka nie jest liczebna \\ Przedział ufności dla $\mu$: $\displaystyle \left(\overline X - t(1 - \frac \alpha 2)\cdot \frac S {\sqrt{n-1}} \; ; \; \overline X + t(1 - \frac \alpha 2)\cdot \frac S {\sqrt{n-1}}\right)$ \\ Przedział ufności dla $\sigma^2$: $\displaystyle (k(1-\alpha/2)S^2; k(\alpha/2)S^2)$, gdzie $\displaystyle k(\beta) = \sqrt{\frac n {\chi^2(\beta;n-1)}}$
===== Zadania 1.-10. =====
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)
{{tag>listy_zadan}}%`