# Variable declaration
n = 100 # total person
x = 36
alpha = 0.05
# Calculation
from scipy import *
from pylab import *
p = float(x) / n # probability
Z = 1.96 # Z value corresponding to alpha/2
val = Z*( sqrt( p*(1-p)/n ) )
lower = p - val
upper = p + val
# Result
print "95% confidence interval: (",round(lower,3),",",round(upper,3),")"
# Variable declaration
n = 400 # total person
x = 136 # number of person answering yes
# Calculation
from scipy import *
from pylab import *
p = float(x) / n # probability
Z = 2.575 # Z value corresponding to alpha/2
max_err = Z*( sqrt( p*(1-p)/n ) ) # maximum error
max_err = round(max_err,3)
# Result
print "Maximum error with 99% confidence interval: ",max_err
# Variable declaration
E = 0.04 # Maximum Error
alpha = 0.05
Z = 1.96 # Z value corresponding to alpha/2
# Calculation
from scipy import *
from pylab import *
# Part-A
n1 = pow((Z/E),2)/4 # Sample size
n1 = int(math.ceil(n1))
# Part-B
p = 0.12
n2 = pow((Z/E),2)*p*(1-p) # Sample size
n2 = int(math.ceil(n2))
# Result
print "Part(A): sample size:",n1
print "Part(B): sample size:",n2
# Variable declaration
alpha = 0.05 # level of significance
x = 48
n = 60
p0 = 0.70
# Calculation
from scipy import *
from pylab import *
# null hypothesis: if p=0.70 , Alternative hypothesis if p>0.70
Z_thr = 1.645 # theoritical value of Z
Z_prt = (x - n*p0)/ sqrt(n*p0*(1-p0)) # practical value of Z
Z_prt = round(Z_prt,3)
# Result
print "Practical Z value: ",Z_prt
if(Z_thr > Z_prt):
print "null hypothesis can not be rejected"
print "Proportion of good transceivers is not greater than 0.70"
else:
print "null hypothesis must be rejected"
print "Proportion of good transceivers is greater than 0.70"
# Variable declaration
alpha = 0.05 # level of significance
# Calculation
from scipy import *
from pylab import *
chi_sq_thr = 5.991 # theoritical value of chi square at alpha = 0.05 with v = 2
l = array([[41,27,22],[79,53,78]])
crum = l[0,0:3] # list of crumbled
rem_int = l[1,0:3 ] # list of remained intact
e11 = sum(crum)*sum(l[0:2,0]) / (sum(crum)+sum(rem_int))
e12 = sum(crum)*sum(l[0:2,1]) / (sum(crum)+sum(rem_int))
e13 = sum(crum)*sum(l[0:2,2]) / (sum(crum)+sum(rem_int))
e21 = sum(rem_int)*sum(l[0:2,0]) / (sum(crum)+sum(rem_int))
e22 = sum(rem_int)*sum(l[0:2,1]) / (sum(crum)+sum(rem_int))
e23 = sum(rem_int)*sum(l[0:2,2]) / (sum(crum)+sum(rem_int))
q = [e11,e12,e13,e21,e22,e23] # list of expected frequency
p = [41,27,22,79,53,78] # list of entries
chi_sq_prt = 0
for i in range(0,6):
chi_sq_prt = chi_sq_prt + pow( p[i]-q[i] ,2.0) / q[i]
chi_sq_prt = round(chi_sq_prt,3) # practical value of chi square
# Result
print "Practical chi square value: ",chi_sq_prt
if(chi_sq_thr > chi_sq_prt):
print "null hypothesis can not be rejected"
print "data don't refute to hypothesis"
else:
print "null hypothesis must be rejected"
print "data refute to hypothesis"
# Variable declaration
alpha = 0.05 # level of significance
semi = []
failures = []
# Calculation
from scipy import *
from pylab import *
%matplotlib inline
# null hypothesis: if p1=p2=p3=p4 , Alternative hypothesis if p1,p2,p3,p4 all are not equal
chi_sq_thr = 7.815 # theoritical value of chi square at alpha = 0.05 with v = 3
l = array([[31,42,22,25],[19,8,28,25]])
semi = l[0,0:4] # list of semiconductors
failures = l[1,0:4] # list of failures
e11 = sum(semi)*sum(l[0:2,0]) / float(sum(semi)+sum(failures))
e12 = sum(semi)*sum(l[0:2,1]) / float(sum(semi)+sum(failures))
e13 = sum(semi)*sum(l[0:2,2]) / float(sum(semi)+sum(failures))
e14 = sum(semi)*sum(l[0:2,3]) / float(sum(semi)+sum(failures))
e21 = sum(failures)*sum(l[0:2,0]) / float(sum(semi)+sum(failures))
e22 = sum(failures)*sum(l[0:2,1]) / float(sum(semi)+sum(failures))
e23 = sum(failures)*sum(l[0:2,2]) / float(sum(semi)+sum(failures))
e24 = sum(failures)*sum(l[0:2,3]) / float(sum(semi)+sum(failures))
q = [e11,e12,e13,e14,e21,e22,e23,e24] # list of expected frequency
p = [31,42,22,25,19,8,28,25] # list of entries
chi_sq_prt = 0
for i in range(0,8):
chi_sq_prt = chi_sq_prt + pow( p[i]-q[i] ,2) / q[i]
# Result
print "Practical chi square value: ",chi_sq_prt
if(chi_sq_thr > chi_sq_prt):
print "null hypothesis can not be rejected"
print "data dont refute to hypothesis"
else:
print "null hypothesis must be rejected"
print "data refute to hypothesis"
a1 = [0.62,0.84,0.44,0.50]
a2 = [1.0,1.1,1.2,1.3]
err1 = [0.13,0.10,0.14,0.14]
err2 = [0,0,0,0]
ylim(0.9,1.5)
errorbar(a1,a2,xerr=err1,yerr=err2,fmt='bo')
title("Confidence intervals")
# Variable declaration
n1 = 200 # sample-1 size
n2 = 400 # sample-2 size
x1 = 16
x2 = 14
alpha = 0.01 # level of significance
Z_thr = 2.33 # Z value
# Calculation
from scipy import *
from pylab import *
p = (x1+x2)/float(n1+n2)
Z_prt = (x1/float(n1) - x2/float(n2)) / (sqrt( (p*(1-p))*(1.0/n1 + 1.0/n2))) # Lower limit
Z_prt = round(Z_prt,2)
# Result
print "Practical Z value: ",Z_prt
if(Z_thr > Z_prt):
print "null hypothesis can not be rejected"
print "Proportion of tractors is greater for first."
else:
print "null hypothesis must be rejected"
print "Proportion of tractors is greater for first."
# Variable declaration
n1 = 200 # sample-1 size
n2 = 400 # sample-2 size
p1 = 16.0/200
p2 = 14.0/400
alpha = 0.01 # level of significance
Z = 1.96 # Z value at alpha/2
# Calculation
from scipy import *
from pylab import *
# we need to find confidence interval for p1-p2
y1 = (p1-p2) - (Z* (sqrt( (p1*(1-p1))/n1 + (p2*(1-p2))/n2 ))) # Lower limit
y2 = (p1-p2) + (Z* (sqrt( (p1*(1-p1))/n1 + (p2*(1-p2))/n2 ))) # Upper limit
y1 = round(y1,3)
y2 = round(y2,3)
# Result
print "95% confidence interval for (p1-p2) : ( ",y1,",",y2,")"
# Variable declaration
l = array([[78,56,54],[15,30,31],[7,14,15]])
# Calculation
from scipy import *
from pylab import *
r1 = l[0,0:3]
r2 = l[1,0:3 ]
r3 = l[2,0:3 ]
e11 = sum(r1)*sum(l[0:3,0]) / float(sum(r1)+sum(r2)+sum(r3))
e12 = sum(r1)*sum(l[0:3,1]) / float(sum(r1)+sum(r2)+sum(r3))
e13 = sum(r1)*sum(l[0:3,2]) / float(sum(r1)+sum(r2)+sum(r3))
e21 = sum(r2)*sum(l[0:3,0]) / float(sum(r1)+sum(r2)+sum(r3))
e22 = sum(r2)*sum(l[0:3,1]) / float(sum(r1)+sum(r2)+sum(r3))
e23 = sum(r2)*sum(l[0:3,2]) / float(sum(r1)+sum(r2)+sum(r3))
e31 = sum(r3)*sum(l[0:3,0]) / float(sum(r1)+sum(r2)+sum(r3))
e32 = sum(r3)*sum(l[0:3,1]) / float(sum(r1)+sum(r2)+sum(r3))
e33 = sum(r3)*sum(l[0:3,2]) / float(sum(r1)+sum(r2)+sum(r3))
q = [e11,e12,e13,e21,e22,e23,e31,e32,e33] # list of expected frequency
for i in range(0,9):
q[i] = round(q[i],2)
# Result
print q
# Variable declaration
l = array([[23,60,29],[28,79,60],[9,49,63]])
alpha = 0.01
n = 400
chi_sq_thr = 13.277
# Calculation
from scipy import *
from pylab import *
r1 = l[0,0:3]
r2 = l[1,0:3 ]
r3 = l[2,0:3 ]
e11 = sum(r1)*sum(l[0:3,0]) / float(n)
e12 = sum(r1)*sum(l[0:3,1]) / float(n)
e13 = sum(r1)*sum(l[0:3,2]) / float(n)
e21 = sum(r2)*sum(l[0:3,0]) / float(n)
e22 = sum(r2)*sum(l[0:3,1]) / float(n)
e23 = sum(r2)*sum(l[0:3,2]) / float(n)
e31 = sum(r3)*sum(l[0:3,0]) / float(n)
e32 = sum(r3)*sum(l[0:3,1]) / float(n)
e33 = sum(r3)*sum(l[0:3,2]) / float(n)
q = [e11,e12,e13,e21,e22,e23,e31,e32,e33] # list of expected frequency
p = [23,60,29,28,79,60,9,49,63] # list of entries
chi_sq_prt = 0
for i in range(0,9):
chi_sq_prt = chi_sq_prt + pow( p[i]-q[i] ,2) / q[i]
# Result
print "Practical chi square value: ",round(chi_sq_prt,3)
if(chi_sq_thr > chi_sq_prt):
print "null hypothesis can not be rejected"
print "Dependency between performance & success"
else:
print "null hypothesis must be rejected"
print "Dependency between performance & success"
# Variable declaration
l = array([[23,60,29],[28,79,60],[9,49,63]])
alpha = 0.01
n = 400
chi_sq_thr = 13.277
# Calculation
from scipy import *
from pylab import *
r1 = l[0,0:3]
r2 = l[1,0:3 ]
r3 = l[2,0:3 ]
e11 = sum(r1)*sum(l[0:3,0]) / float(n)
e12 = sum(r1)*sum(l[0:3,1]) / float(n)
e13 = sum(r1)*sum(l[0:3,2]) / float(n)
e21 = sum(r2)*sum(l[0:3,0]) / float(n)
e22 = sum(r2)*sum(l[0:3,1]) / float(n)
e23 = sum(r2)*sum(l[0:3,2]) / float(n)
e31 = sum(r3)*sum(l[0:3,0]) / float(n)
e32 = sum(r3)*sum(l[0:3,1]) / float(n)
e33 = sum(r3)*sum(l[0:3,2]) / float(n)
q = [e11,e12,e13,e21,e22,e23,e31,e32,e33] # list of expected frequency
p = [23,60,29,28,79,60,9,49,63] # list of entries
r = []
chi_sq_prt = 0
for i in range(0,9):
r.append(round(pow( p[i]-q[i] ,2) / q[i],3))
# Result
print r
# Variable declaration
alpha = 0.05
n = 400
chi_sq_thr = 16.919
# Calculation
from scipy import *
from pylab import *
q = [22.4,42.8,65.2,74.8,69.2,52.8,34.8,20.0,10.0,8.0] # list of expected frequency
p = [18,47,76,68,74,46,39,15,9,8] # list of entries
chi_sq_prt = 0
for i in range(0,10):
chi_sq_prt = chi_sq_prt + pow( p[i]-q[i] ,2) / q[i]
# Result
print "Practical chi square value: ",round(chi_sq_prt,3)
if(chi_sq_thr > chi_sq_prt):
print "null hypothesis can not be rejected"
print "Poisson distribution provides a good fit at level alphha=0.05"
else:
print "null hypothesis must be rejected"
print "Poisson distribution does not provide a good fit at level alphha=0.05"