Sunday, June 15, 2008

Muti-list merge in Python


from heapq import heappush, heappop

alist = []

l = [('A',1),('B',2),('F',6)]
alist.append(l)

l = [('C',3),('D',4),('H',8)]
alist.append(l)

l = [('E',5),('G',7)]
alist.append(l)

#print alist


heap = []

index = 0
for lst in alist:
if lst:
item = lst.pop(0);
heappush(heap, (item, index))
index = index + 1

while heap:
ituple = heappop(heap)
item = ituple[0]
index = ituple[1]
lst = alist[index]
if lst:
newitem = lst.pop(0)
heappush(heap, (newitem, index))

print item

Tuesday, June 03, 2008

Matlab statistical commands

x, y
n=length(x)
mean(x)
std(x)
hist(x,7)
prctile(x,5)
stairs(sort(x),(1:n)/n)
normplot(x)
qqplot(x,y)
median(x)
trimmean(x)
iqr(x)
median(abs(x-median(x)))
x(random('unid',n,n,1000))
regress(y,[ones(n,1),x])
two data columns
sample size
sample mean
sample standard deviation
histogram with 7 bins
5% sample quantile
empirical cdf
normal probability plot
QQ-plot
median
10% trimmed mean
interquartile range
MAD
1000 samples resampled from x
regression line y=a+bx

Chi-square test of homogeneity and independence:


x=contingency table;
e=sum(x')'*sum(x)/sum(sum(x));
X2=(x-e).^2./e
X2=sum(sum(X2))
df=prod(size(x)-[1,1])
P=1-chi2cdf(X2,df)


More statistical commands:

matlab -> helpwin -> toolbox/stats ->
  • probability density functions
  • cumulative distribution functions
  • critical values of distribution functions
  • random number generators
  • descriptive statistics
  • linear models
  • statistical plotting

Source: http://www.math.chalmers.se/Stat/Grundutb/CTH/mve155/0708/matlab.html