from math import sqrt data3=[13.04, 1.32, 22.65, 17.44, 29.54, 23.22, 17.65, 10.12, 26.73, 16.43] def mean(data): return sum(data)/len(data) def variance(data): mu=mean(data) return mean([(x-mu)**2 for x in data]) def stddev(data): sigma2 = variance(data) return sqrt(sigma2) print stddev(data3)
standard score(偏差値) = (data – mean)/standard deviation
xi…,xi…,xn
mean:5
variance:16
standard deviation:4
xi:9
multiply by 1.5
standard score:(9-5)/4 = 1
μ:7.5
σ:6
σ^2:36
yi:13.5
z:1
correction factor(補正率)
incremental mean
from __future__ import division def mean(oldmean, n, x): return (oldmean*n+x)/(n+1) currentmean=10 currentcount=5 new=4 print mean(currentmean, currentcount,new)
def likelihood(dist,data):
l = 1
for i in data:
l*dist[i]
return l
tests= [(({‘A’:0.2,’B’:0.2,’C’:0.2,’D’:0.2,’E’:0.2},’ABCEDDECAB’), 1.024e-07),(({‘Good’:0.6,’Bad’:0.2,’Indifferent’:0.2},[‘Good’,’Bad’,’Indifferent’,’Good’,’Good’,’Bad’]), 0.001728),(({‘Z’:0.6,’X’:0.333,’Y’:0.067},’ZXYYZXYXYZY’), 1.07686302456e-08),(({‘Z’:0.6,’X’:0.233,’Y’:0.067,’W’:0.1},’WXYZYZZZZW’), 8.133206112e-07)]
for t,l in tests:
if abs(likelihood(*t)/l-1)<0.01: print 'Correct'
else: print 'Incorrect'
[/python]