def sigma(n,ff):
z1=y1[n]-alpha[1]-beta[1]*ff
z2=y2[n]-alpha[1]-beta[2]*ff
z3=y3[n]-alpha[1]-beta[3]*ff
z4=y4[n]-alpha[1]-beta[4]*ff
z5=y5[n]-alpha[1]-beta[5]*ff
z6=y6[n]-alpha[1]-beta[6]*ff
e=0
e=e+z1*z1+z2*z2+z3*z3+z4*z4
e=e+z5*z5+z6*z6
return e
def ols(yy,xx):
global a,b
a11=100
a12=0
for x2 in xx:
a12=a12+x2
a21=a12
a22=0
for x2 in xx:
a22=a22+x2*x2
b1=0
b2=0
for i in range(100):
b1=b1+yy[i]
b2=b2+yy[i]*xx[i]
z=a21/a11
a22=a22-z*a12
b2=b2-z*b1
z=a12/a22
b1=b1-z*b2
a=b1/a11
b=b2/a22
f = open('data.csv', 'r',encoding='UTF-8')
x=[]
for line in f:
x.append(line)
f.close()
y1=[]
y2=[]
y3=[]
y4=[]
y5=[]
y6=[]
for x1 in x:
x2=x1.split(",")
c=int(x2[0])
y1.append(c)
c=int(x2[1])
y2.append(c)
c=int(x2[2])
y3.append(c)
c=int(x2[3])
y4.append(c)
c=int(x2[4])
y5.append(c)
d=x2[5].replace("\n","")
c=int(d)
y6.append(c)
f=[]
for i in range(100):
f1=y1[i]+y2[i]+y3[i]
f1=f1+y4[i]+y5[i]+y6[i]
f.append(f1/6)
alpha=[]
beta=[]
alpha.append(0)
beta.append(0)
ols(y1,f)
alpha.append(a)
beta.append(b)
ols(y1,f)
alpha.append(a)
beta.append(b)
ols(y2,f)
alpha.append(a)
beta.append(b)
ols(y3,f)
alpha.append(a)
beta.append(b)
ols(y4,f)
alpha.append(a)
beta.append(b)
ols(y5,f)
alpha.append(a)
beta.append(b)
ols(y6,f)
alpha.append(a)
beta.append(b)
for tr in range(5):
for i in range(100):
mink=9999999
sxs=0
for j in range(200):
k=sigma(i,j)
if k<mink:sxs=j
if k<mink:mink=k
f[i]=sxs
sumf=0
for fx in f:
sumf=sumf+fx
for i in range(100):
f[i]=(5000*f[i])/sumf
print(f)
ols(y1,f)
alpha[1]=a
beta[1]=b
ols(y2,f)
alpha[2]=a
beta[2]=b
ols(y3,f)
alpha[3]=a
beta[3]=b
ols(y4,f)
alpha[4]=a
beta[4]=b
ols(y5,f)
alpha[5]=a
beta[5]=b
ols(y6,f)
alpha[6]=a
beta[6]=b
最終更新:2018年05月29日 03:14