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

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)

%`