Lineer dağılımlı ağırlıklandırılmış bir gözlem çiftine ilişkin herhangi bir kütüphane kullanılmadan oluşturulmuş Ki-Kare testi
list=[]
sigmaCi = []
sigma1 = []
Wi = []
lst = []
wixi = []
WX = []
wici = []
WC = []
wixi2 = []
WX2 = []
wixici = []
WXC = []
parent = []
chikarevek = []
dosya = open("veri.txt","r")
for satir in dosya:
list.append([float(x) for x in satir.split()])
Xi = [x[0] for x in list]
Ci = [x[1] for x in list]
n = len (Xi)
def esitle(esitlenen, esitlenecek):
for num in range(n):
esitlenecek.append(esitlenen[num])
def sigma(Ci,sigmaCi):
for num in range(n):
sigma1.append(Ci[num]**(0.5))
esitle(sigma1,sigmaCi)
return
def wi(Ci,Wi):
for num in range(n):
lst.append(1/((sigmaCi[num])*(sigmaCi[num])))
esitle(lst, Wi)
return
def WiXi(Wi,Xi,wixi):
for num in range(n):
WX.append(Wi[num]*Xi[num])
esitle(WX,wixi)
return
def WiCi(Wi,Ci,wici):
for num in range(n):
WC.append(Wi[num]*Ci[num])
esitle(WC,wici)
return
def WiXi2(Wi,Xi,wixi2):
for num in range(n):
WX2.append(Wi[num]*(Xi[num]**2))
esitle(WX2,wixi2)
return
def WiXiCi(Wi,Xi,Ci,wixici):
for num in range(n):
WXC.append(Wi[num]*Xi[num]*Ci[num])
esitle(WXC,wixici)
return
def straightline(akts, bkts, xdeg):
for num in range(n):
parent.append(akts + bkts * xdeg[num])
return
def chisquare(meas, parent, sig):
for num in range(n):
chikarevek.append(((meas[num] - parent[num]) / sig[num]) * ((meas[num] - parent[num]) / sig[num]))
return
sigma(Ci,sigmaCi)
wi(Ci,Wi)
WiXi(Wi,Xi,wixi)
WiCi(Wi,Ci,wici)
WiXi2(Wi,Xi,wixi2)
WiXiCi(Wi,Xi,Ci,wixici)
Wisum = sum (Wi)
WiXi2sum = sum (wixi2)
WiXisum = sum (wixi)
WiCisum = sum (wici)
WiXiCisum = sum (wixici)
delta = (Wisum*WiXi2sum)-(WiXisum*WiXisum)
a = ((WiCisum*WiXi2sum)-(WiXisum*WiXiCisum))/delta
b = ((Wisum*WiXiCisum)-(WiXisum*WiCisum))/delta
sigma2a = WiXi2sum/delta
sigma2b = Wisum/delta
sigmaa= sigma2a**0.5
sigmab= sigma2b**0.5
straightline(a,b,Xi)
chisquare(Ci,parent,sigmaCi)
chikare = sum(chikarevek)
print(chikare)