Skip to content

Commit bf8e10d

Browse files
committed
update week 8
1 parent afd118e commit bf8e10d

14 files changed

Lines changed: 2709 additions & 260 deletions
1 Byte
Binary file not shown.

doc/pub/week8/ipynb/week8.ipynb

Lines changed: 209 additions & 211 deletions
Large diffs are not rendered by default.

doc/pub/week8/pdf/week8-beamer.pdf

26.5 KB
Binary file not shown.

doc/pub/week8/pdf/week8.pdf

16.7 KB
Binary file not shown.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
\begin{MintedVerbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
3+
\PYG{o}{\PYGZpc{}}\PYG{n}{matplotlib} \PYG{n}{inline}
4+
5+
\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{numpy}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{o}{*}
6+
\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{numpy}\PYG{n+nn}{.}\PYG{n+nn}{random}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{randint}\PYG{p}{,} \PYG{n}{randn}
7+
\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{time}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{time}
8+
\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{scipy}\PYG{n+nn}{.}\PYG{n+nn}{stats}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{norm}
9+
\PYG{k+kn}{import}\PYG{+w}{ }\PYG{n+nn}{matplotlib}\PYG{n+nn}{.}\PYG{n+nn}{pyplot}\PYG{+w}{ }\PYG{k}{as}\PYG{+w}{ }\PYG{n+nn}{plt}
10+
11+
\PYG{c+c1}{\PYGZsh{} Returns mean of bootstrap samples}
12+
\PYG{k}{def}\PYG{+w}{ }\PYG{n+nf}{stat}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}\PYG{p}{:}
13+
\PYG{k}{return} \PYG{n}{mean}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}
14+
15+
\PYG{c+c1}{\PYGZsh{} Bootstrap algorithm}
16+
\PYG{k}{def}\PYG{+w}{ }\PYG{n+nf}{bootstrap}\PYG{p}{(}\PYG{n}{data}\PYG{p}{,} \PYG{n}{statistic}\PYG{p}{,} \PYG{n}{R}\PYG{p}{)}\PYG{p}{:}
17+
\PYG{n}{t} \PYG{o}{=} \PYG{n}{zeros}\PYG{p}{(}\PYG{n}{R}\PYG{p}{)}\PYG{p}{;} \PYG{n}{n} \PYG{o}{=} \PYG{n+nb}{len}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}\PYG{p}{;} \PYG{n}{inds} \PYG{o}{=} \PYG{n}{arange}\PYG{p}{(}\PYG{n}{n}\PYG{p}{)}\PYG{p}{;} \PYG{n}{t0} \PYG{o}{=} \PYG{n}{time}\PYG{p}{(}\PYG{p}{)}
18+
19+
\PYG{c+c1}{\PYGZsh{} non\PYGZhy{}parametric bootstrap}
20+
\PYG{k}{for} \PYG{n}{i} \PYG{o+ow}{in} \PYG{n+nb}{range}\PYG{p}{(}\PYG{n}{R}\PYG{p}{)}\PYG{p}{:}
21+
\PYG{n}{t}\PYG{p}{[}\PYG{n}{i}\PYG{p}{]} \PYG{o}{=} \PYG{n}{statistic}\PYG{p}{(}\PYG{n}{data}\PYG{p}{[}\PYG{n}{randint}\PYG{p}{(}\PYG{l+m+mi}{0}\PYG{p}{,}\PYG{n}{n}\PYG{p}{,}\PYG{n}{n}\PYG{p}{)}\PYG{p}{]}\PYG{p}{)}
22+
23+
\PYG{c+c1}{\PYGZsh{} analysis}
24+
\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Runtime: }\PYG{l+s+si}{\PYGZpc{}g}\PYG{l+s+s2}{ sec}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZpc{}} \PYG{p}{(}\PYG{n}{time}\PYG{p}{(}\PYG{p}{)}\PYG{o}{\PYGZhy{}}\PYG{n}{t0}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;} \PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Bootstrap Statistics :}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}
25+
\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{original bias std. error}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}
26+
\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+si}{\PYGZpc{}8g}\PYG{l+s+s2}{ }\PYG{l+s+si}{\PYGZpc{}8g}\PYG{l+s+s2}{ }\PYG{l+s+si}{\PYGZpc{}14g}\PYG{l+s+s2}{ }\PYG{l+s+si}{\PYGZpc{}15g}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZpc{}} \PYG{p}{(}\PYG{n}{statistic}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}\PYG{p}{,} \PYG{n}{std}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}\PYG{p}{,}\PYGZbs{}
27+
\PYG{n}{mean}\PYG{p}{(}\PYG{n}{t}\PYG{p}{)}\PYG{p}{,} \PYGZbs{}
28+
\PYG{n}{std}\PYG{p}{(}\PYG{n}{t}\PYG{p}{)}\PYG{p}{)}\PYG{p}{)}
29+
\PYG{k}{return} \PYG{n}{t}
30+
31+
32+
\PYG{n}{mu}\PYG{p}{,} \PYG{n}{sigma} \PYG{o}{=} \PYG{l+m+mi}{100}\PYG{p}{,} \PYG{l+m+mi}{15}
33+
\PYG{n}{datapoints} \PYG{o}{=} \PYG{l+m+mi}{10000}
34+
\PYG{n}{x} \PYG{o}{=} \PYG{n}{mu} \PYG{o}{+} \PYG{n}{sigma}\PYG{o}{*}\PYG{n}{random}\PYG{o}{.}\PYG{n}{randn}\PYG{p}{(}\PYG{n}{datapoints}\PYG{p}{)}
35+
\PYG{c+c1}{\PYGZsh{} bootstrap returns the data sample t = bootstrap(x, stat, datapoints)}
36+
\PYG{c+c1}{\PYGZsh{} the histogram of the bootstrapped data}
37+
\PYG{n}{t} \PYG{o}{=} \PYG{n}{bootstrap}\PYG{p}{(}\PYG{n}{x}\PYG{p}{,} \PYG{n}{stat}\PYG{p}{,} \PYG{n}{datapoints}\PYG{p}{)}
38+
\PYG{c+c1}{\PYGZsh{} the histogram of the bootstrapped data}
39+
\PYG{n}{n}\PYG{p}{,} \PYG{n}{binsboot}\PYG{p}{,} \PYG{n}{patches} \PYG{o}{=} \PYG{n}{plt}\PYG{o}{.}\PYG{n}{hist}\PYG{p}{(}\PYG{n}{t}\PYG{p}{,} \PYG{n}{bins}\PYG{o}{=}\PYG{l+m+mi}{50}\PYG{p}{,} \PYG{n}{density}\PYG{o}{=}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{true}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,}\PYG{n}{histtype}\PYG{o}{=}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{bar}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{n}{color}\PYG{o}{=}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{red}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{n}{alpha}\PYG{o}{=}\PYG{l+m+mf}{0.75}\PYG{p}{)}
40+
41+
\PYG{c+c1}{\PYGZsh{} add a \PYGZsq{}best fit\PYGZsq{} line}
42+
\PYG{n}{y} \PYG{o}{=} \PYG{n}{norm}\PYG{o}{.}\PYG{n}{pdf}\PYG{p}{(} \PYG{n}{binsboot}\PYG{p}{,} \PYG{n}{mean}\PYG{p}{(}\PYG{n}{t}\PYG{p}{)}\PYG{p}{,} \PYG{n}{std}\PYG{p}{(}\PYG{n}{t}\PYG{p}{)}\PYG{p}{)}
43+
\PYG{n}{lt} \PYG{o}{=} \PYG{n}{plt}\PYG{o}{.}\PYG{n}{plot}\PYG{p}{(}\PYG{n}{binsboot}\PYG{p}{,} \PYG{n}{y}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{r\PYGZhy{}\PYGZhy{}}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{n}{linewidth}\PYG{o}{=}\PYG{l+m+mi}{1}\PYG{p}{)}
44+
\PYG{n}{plt}\PYG{o}{.}\PYG{n}{xlabel}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{Smarts}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}
45+
\PYG{n}{plt}\PYG{o}{.}\PYG{n}{ylabel}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{Probability}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}
46+
\PYG{n}{plt}\PYG{o}{.}\PYG{n}{axis}\PYG{p}{(}\PYG{p}{[}\PYG{l+m+mf}{99.5}\PYG{p}{,} \PYG{l+m+mf}{100.6}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mf}{3.0}\PYG{p}{]}\PYG{p}{)}
47+
\PYG{n}{plt}\PYG{o}{.}\PYG{n}{grid}\PYG{p}{(}\PYG{k+kc}{True}\PYG{p}{)}
48+
49+
\PYG{n}{plt}\PYG{o}{.}\PYG{n}{show}\PYG{p}{(}\PYG{p}{)}
50+
51+
52+
\end{MintedVerbatim}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
\begin{MintedVerbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{numpy}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{o}{*}
3+
\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{numpy}\PYG{n+nn}{.}\PYG{n+nn}{random}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{randint}\PYG{p}{,} \PYG{n}{randn}
4+
\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{time}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{time}
5+
6+
\PYG{k}{def}\PYG{+w}{ }\PYG{n+nf}{jackknife}\PYG{p}{(}\PYG{n}{data}\PYG{p}{,} \PYG{n}{stat}\PYG{p}{)}\PYG{p}{:}
7+
\PYG{n}{n} \PYG{o}{=} \PYG{n+nb}{len}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}\PYG{p}{;}\PYG{n}{t} \PYG{o}{=} \PYG{n}{zeros}\PYG{p}{(}\PYG{n}{n}\PYG{p}{)}\PYG{p}{;} \PYG{n}{inds} \PYG{o}{=} \PYG{n}{arange}\PYG{p}{(}\PYG{n}{n}\PYG{p}{)}\PYG{p}{;} \PYG{n}{t0} \PYG{o}{=} \PYG{n}{time}\PYG{p}{(}\PYG{p}{)}
8+
\PYG{c+c1}{\PYGZsh{}\PYGZsh{} \PYGZsq{}jackknifing\PYGZsq{} by leaving out an observation for each i}
9+
\PYG{k}{for} \PYG{n}{i} \PYG{o+ow}{in} \PYG{n+nb}{range}\PYG{p}{(}\PYG{n}{n}\PYG{p}{)}\PYG{p}{:}
10+
\PYG{n}{t}\PYG{p}{[}\PYG{n}{i}\PYG{p}{]} \PYG{o}{=} \PYG{n}{stat}\PYG{p}{(}\PYG{n}{delete}\PYG{p}{(}\PYG{n}{data}\PYG{p}{,}\PYG{n}{i}\PYG{p}{)} \PYG{p}{)}
11+
12+
\PYG{c+c1}{\PYGZsh{} analysis}
13+
\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Runtime: }\PYG{l+s+si}{\PYGZpc{}g}\PYG{l+s+s2}{ sec}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZpc{}} \PYG{p}{(}\PYG{n}{time}\PYG{p}{(}\PYG{p}{)}\PYG{o}{\PYGZhy{}}\PYG{n}{t0}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;} \PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Jackknife Statistics :}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}
14+
\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{original bias std. error}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}
15+
\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+si}{\PYGZpc{}8g}\PYG{l+s+s2}{ }\PYG{l+s+si}{\PYGZpc{}14g}\PYG{l+s+s2}{ }\PYG{l+s+si}{\PYGZpc{}15g}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZpc{}} \PYG{p}{(}\PYG{n}{stat}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}\PYG{p}{,}\PYG{p}{(}\PYG{n}{n}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{1}\PYG{p}{)}\PYG{o}{*}\PYG{n}{mean}\PYG{p}{(}\PYG{n}{t}\PYG{p}{)}\PYG{o}{/}\PYG{n}{n}\PYG{p}{,} \PYG{p}{(}\PYG{n}{n}\PYG{o}{*}\PYG{n}{var}\PYG{p}{(}\PYG{n}{t}\PYG{p}{)}\PYG{p}{)}\PYG{o}{*}\PYG{o}{*}\PYG{l+m+mf}{.5}\PYG{p}{)}\PYG{p}{)}
16+
17+
\PYG{k}{return} \PYG{n}{t}
18+
19+
20+
\PYG{c+c1}{\PYGZsh{} Returns mean of data samples}
21+
\PYG{k}{def}\PYG{+w}{ }\PYG{n+nf}{stat}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}\PYG{p}{:}
22+
\PYG{k}{return} \PYG{n}{mean}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}
23+
24+
25+
\PYG{n}{mu}\PYG{p}{,} \PYG{n}{sigma} \PYG{o}{=} \PYG{l+m+mi}{100}\PYG{p}{,} \PYG{l+m+mi}{15}
26+
\PYG{n}{datapoints} \PYG{o}{=} \PYG{l+m+mi}{10000}
27+
\PYG{n}{x} \PYG{o}{=} \PYG{n}{mu} \PYG{o}{+} \PYG{n}{sigma}\PYG{o}{*}\PYG{n}{random}\PYG{o}{.}\PYG{n}{randn}\PYG{p}{(}\PYG{n}{datapoints}\PYG{p}{)}
28+
\PYG{c+c1}{\PYGZsh{} jackknife returns the data sample}
29+
\PYG{n}{t} \PYG{o}{=} \PYG{n}{jackknife}\PYG{p}{(}\PYG{n}{x}\PYG{p}{,} \PYG{n}{stat}\PYG{p}{)}
30+
31+
32+
\end{MintedVerbatim}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
\begin{MintedVerbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
\PYG{c+c1}{\PYGZsh{} Common imports}
3+
\PYG{k+kn}{import}\PYG{+w}{ }\PYG{n+nn}{os}
4+
5+
\PYG{c+c1}{\PYGZsh{} Where to save the figures and data files}
6+
\PYG{n}{DATA\PYGZus{}ID} \PYG{o}{=} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Results/EnergyMin}\PYG{l+s+s2}{\PYGZdq{}}
7+
8+
\PYG{k}{def}\PYG{+w}{ }\PYG{n+nf}{data\PYGZus{}path}\PYG{p}{(}\PYG{n}{dat\PYGZus{}id}\PYG{p}{)}\PYG{p}{:}
9+
\PYG{k}{return} \PYG{n}{os}\PYG{o}{.}\PYG{n}{path}\PYG{o}{.}\PYG{n}{join}\PYG{p}{(}\PYG{n}{DATA\PYGZus{}ID}\PYG{p}{,} \PYG{n}{dat\PYGZus{}id}\PYG{p}{)}
10+
11+
\PYG{n}{infile} \PYG{o}{=} \PYG{n+nb}{open}\PYG{p}{(}\PYG{n}{data\PYGZus{}path}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Energies.dat}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}\PYG{p}{,}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{r}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}
12+
13+
\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{numpy}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{log2}\PYG{p}{,} \PYG{n}{zeros}\PYG{p}{,} \PYG{n}{mean}\PYG{p}{,} \PYG{n}{var}\PYG{p}{,} \PYG{n+nb}{sum}\PYG{p}{,} \PYG{n}{loadtxt}\PYG{p}{,} \PYG{n}{arange}\PYG{p}{,} \PYG{n}{array}\PYG{p}{,} \PYG{n}{cumsum}\PYG{p}{,} \PYG{n}{dot}\PYG{p}{,} \PYG{n}{transpose}\PYG{p}{,} \PYG{n}{diagonal}\PYG{p}{,} \PYG{n}{sqrt}
14+
\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{numpy}\PYG{n+nn}{.}\PYG{n+nn}{linalg}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{inv}
15+
16+
\PYG{k}{def}\PYG{+w}{ }\PYG{n+nf}{block}\PYG{p}{(}\PYG{n}{x}\PYG{p}{)}\PYG{p}{:}
17+
\PYG{c+c1}{\PYGZsh{} preliminaries}
18+
\PYG{n}{n} \PYG{o}{=} \PYG{n+nb}{len}\PYG{p}{(}\PYG{n}{x}\PYG{p}{)}
19+
\PYG{n}{d} \PYG{o}{=} \PYG{n+nb}{int}\PYG{p}{(}\PYG{n}{log2}\PYG{p}{(}\PYG{n}{n}\PYG{p}{)}\PYG{p}{)}
20+
\PYG{n}{s}\PYG{p}{,} \PYG{n}{gamma} \PYG{o}{=} \PYG{n}{zeros}\PYG{p}{(}\PYG{n}{d}\PYG{p}{)}\PYG{p}{,} \PYG{n}{zeros}\PYG{p}{(}\PYG{n}{d}\PYG{p}{)}
21+
\PYG{n}{mu} \PYG{o}{=} \PYG{n}{mean}\PYG{p}{(}\PYG{n}{x}\PYG{p}{)}
22+
23+
\PYG{c+c1}{\PYGZsh{} estimate the auto\PYGZhy{}covariance and variances}
24+
\PYG{c+c1}{\PYGZsh{} for each blocking transformation}
25+
\PYG{k}{for} \PYG{n}{i} \PYG{o+ow}{in} \PYG{n}{arange}\PYG{p}{(}\PYG{l+m+mi}{0}\PYG{p}{,}\PYG{n}{d}\PYG{p}{)}\PYG{p}{:}
26+
\PYG{n}{n} \PYG{o}{=} \PYG{n+nb}{len}\PYG{p}{(}\PYG{n}{x}\PYG{p}{)}
27+
\PYG{c+c1}{\PYGZsh{} estimate autocovariance of x}
28+
\PYG{n}{gamma}\PYG{p}{[}\PYG{n}{i}\PYG{p}{]} \PYG{o}{=} \PYG{p}{(}\PYG{n}{n}\PYG{p}{)}\PYG{o}{*}\PYG{o}{*}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{1}\PYG{p}{)}\PYG{o}{*}\PYG{n+nb}{sum}\PYG{p}{(} \PYG{p}{(}\PYG{n}{x}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{:}\PYG{p}{(}\PYG{n}{n}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{1}\PYG{p}{)}\PYG{p}{]}\PYG{o}{\PYGZhy{}}\PYG{n}{mu}\PYG{p}{)}\PYG{o}{*}\PYG{p}{(}\PYG{n}{x}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{:}\PYG{n}{n}\PYG{p}{]}\PYG{o}{\PYGZhy{}}\PYG{n}{mu}\PYG{p}{)} \PYG{p}{)}
29+
\PYG{c+c1}{\PYGZsh{} estimate variance of x}
30+
\PYG{n}{s}\PYG{p}{[}\PYG{n}{i}\PYG{p}{]} \PYG{o}{=} \PYG{n}{var}\PYG{p}{(}\PYG{n}{x}\PYG{p}{)}
31+
\PYG{c+c1}{\PYGZsh{} perform blocking transformation}
32+
\PYG{n}{x} \PYG{o}{=} \PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{p}{(}\PYG{n}{x}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{:}\PYG{p}{:}\PYG{l+m+mi}{2}\PYG{p}{]} \PYG{o}{+} \PYG{n}{x}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{:}\PYG{p}{:}\PYG{l+m+mi}{2}\PYG{p}{]}\PYG{p}{)}
33+
34+
\PYG{c+c1}{\PYGZsh{} generate the test observator M\PYGZus{}k from the theorem}
35+
\PYG{n}{M} \PYG{o}{=} \PYG{p}{(}\PYG{n}{cumsum}\PYG{p}{(} \PYG{p}{(}\PYG{p}{(}\PYG{n}{gamma}\PYG{o}{/}\PYG{n}{s}\PYG{p}{)}\PYG{o}{*}\PYG{o}{*}\PYG{l+m+mi}{2}\PYG{o}{*}\PYG{l+m+mi}{2}\PYG{o}{*}\PYG{o}{*}\PYG{n}{arange}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{p}{,}\PYG{n}{d}\PYG{o}{+}\PYG{l+m+mi}{1}\PYG{p}{)}\PYG{p}{[}\PYG{p}{:}\PYG{p}{:}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{p}{)}\PYG{p}{[}\PYG{p}{:}\PYG{p}{:}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{1}\PYG{p}{]} \PYG{p}{)} \PYG{p}{)}\PYG{p}{[}\PYG{p}{:}\PYG{p}{:}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{1}\PYG{p}{]}
36+
37+
\PYG{c+c1}{\PYGZsh{} we need a list of magic numbers}
38+
\PYG{n}{q} \PYG{o}{=}\PYG{n}{array}\PYG{p}{(}\PYG{p}{[}\PYG{l+m+mf}{6.634897}\PYG{p}{,}\PYG{l+m+mf}{9.210340}\PYG{p}{,} \PYG{l+m+mf}{11.344867}\PYG{p}{,} \PYG{l+m+mf}{13.276704}\PYG{p}{,} \PYG{l+m+mf}{15.086272}\PYG{p}{,} \PYG{l+m+mf}{16.811894}\PYG{p}{,} \PYG{l+m+mf}{18.475307}\PYG{p}{,} \PYG{l+m+mf}{20.090235}\PYG{p}{,} \PYG{l+m+mf}{21.665994}\PYG{p}{,} \PYG{l+m+mf}{23.209251}\PYG{p}{,} \PYG{l+m+mf}{24.724970}\PYG{p}{,} \PYG{l+m+mf}{26.216967}\PYG{p}{,} \PYG{l+m+mf}{27.688250}\PYG{p}{,} \PYG{l+m+mf}{29.141238}\PYG{p}{,} \PYG{l+m+mf}{30.577914}\PYG{p}{,} \PYG{l+m+mf}{31.999927}\PYG{p}{,} \PYG{l+m+mf}{33.408664}\PYG{p}{,} \PYG{l+m+mf}{34.805306}\PYG{p}{,} \PYG{l+m+mf}{36.190869}\PYG{p}{,} \PYG{l+m+mf}{37.566235}\PYG{p}{,} \PYG{l+m+mf}{38.932173}\PYG{p}{,} \PYG{l+m+mf}{40.289360}\PYG{p}{,} \PYG{l+m+mf}{41.638398}\PYG{p}{,} \PYG{l+m+mf}{42.979820}\PYG{p}{,} \PYG{l+m+mf}{44.314105}\PYG{p}{,} \PYG{l+m+mf}{45.641683}\PYG{p}{,} \PYG{l+m+mf}{46.962942}\PYG{p}{,} \PYG{l+m+mf}{48.278236}\PYG{p}{,} \PYG{l+m+mf}{49.587884}\PYG{p}{,} \PYG{l+m+mf}{50.892181}\PYG{p}{]}\PYG{p}{)}
39+
40+
\PYG{c+c1}{\PYGZsh{} use magic to determine when we should have stopped blocking}
41+
\PYG{k}{for} \PYG{n}{k} \PYG{o+ow}{in} \PYG{n}{arange}\PYG{p}{(}\PYG{l+m+mi}{0}\PYG{p}{,}\PYG{n}{d}\PYG{p}{)}\PYG{p}{:}
42+
\PYG{k}{if}\PYG{p}{(}\PYG{n}{M}\PYG{p}{[}\PYG{n}{k}\PYG{p}{]} \PYG{o}{\PYGZlt{}} \PYG{n}{q}\PYG{p}{[}\PYG{n}{k}\PYG{p}{]}\PYG{p}{)}\PYG{p}{:}
43+
\PYG{k}{break}
44+
\PYG{k}{if} \PYG{p}{(}\PYG{n}{k} \PYG{o}{\PYGZgt{}}\PYG{o}{=} \PYG{n}{d}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{1}\PYG{p}{)}\PYG{p}{:}
45+
\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Warning: Use more data}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}
46+
\PYG{k}{return} \PYG{n}{mu}\PYG{p}{,} \PYG{n}{s}\PYG{p}{[}\PYG{n}{k}\PYG{p}{]}\PYG{o}{/}\PYG{l+m+mi}{2}\PYG{o}{*}\PYG{o}{*}\PYG{p}{(}\PYG{n}{d}\PYG{o}{\PYGZhy{}}\PYG{n}{k}\PYG{p}{)}
47+
48+
49+
\PYG{n}{x} \PYG{o}{=} \PYG{n}{loadtxt}\PYG{p}{(}\PYG{n}{infile}\PYG{p}{)}
50+
\PYG{p}{(}\PYG{n}{mean}\PYG{p}{,} \PYG{n}{var}\PYG{p}{)} \PYG{o}{=} \PYG{n}{block}\PYG{p}{(}\PYG{n}{x}\PYG{p}{)}
51+
\PYG{n}{std} \PYG{o}{=} \PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{var}\PYG{p}{)}
52+
\PYG{k+kn}{import}\PYG{+w}{ }\PYG{n+nn}{pandas}\PYG{+w}{ }\PYG{k}{as}\PYG{+w}{ }\PYG{n+nn}{pd}
53+
\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{pandas}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{DataFrame}
54+
\PYG{n}{data} \PYG{o}{=}\PYG{p}{\PYGZob{}}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{Mean}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{:}\PYG{p}{[}\PYG{n}{mean}\PYG{p}{]}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{STDev}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{:}\PYG{p}{[}\PYG{n}{std}\PYG{p}{]}\PYG{p}{\PYGZcb{}}
55+
\PYG{n}{frame} \PYG{o}{=} \PYG{n}{pd}\PYG{o}{.}\PYG{n}{DataFrame}\PYG{p}{(}\PYG{n}{data}\PYG{p}{,}\PYG{n}{index}\PYG{o}{=}\PYG{p}{[}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{Values}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{]}\PYG{p}{)}
56+
\PYG{n+nb}{print}\PYG{p}{(}\PYG{n}{frame}\PYG{p}{)}
57+
58+
59+
\end{MintedVerbatim}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
\begin{MintedVerbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}]
2+
\PYG{c+c1}{\PYGZsh{} Common imports}
3+
\PYG{k+kn}{import}\PYG{+w}{ }\PYG{n+nn}{os}
4+
5+
\PYG{c+c1}{\PYGZsh{} Where to save the figures and data files}
6+
\PYG{n}{DATA\PYGZus{}ID} \PYG{o}{=} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Results/EnergyMin}\PYG{l+s+s2}{\PYGZdq{}}
7+
8+
\PYG{k}{def}\PYG{+w}{ }\PYG{n+nf}{data\PYGZus{}path}\PYG{p}{(}\PYG{n}{dat\PYGZus{}id}\PYG{p}{)}\PYG{p}{:}
9+
\PYG{k}{return} \PYG{n}{os}\PYG{o}{.}\PYG{n}{path}\PYG{o}{.}\PYG{n}{join}\PYG{p}{(}\PYG{n}{DATA\PYGZus{}ID}\PYG{p}{,} \PYG{n}{dat\PYGZus{}id}\PYG{p}{)}
10+
11+
\PYG{n}{infile} \PYG{o}{=} \PYG{n+nb}{open}\PYG{p}{(}\PYG{n}{data\PYGZus{}path}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Energies.dat}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}\PYG{p}{,}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{r}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}
12+
13+
\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{numpy}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{std}\PYG{p}{,} \PYG{n}{mean}\PYG{p}{,} \PYG{n}{concatenate}\PYG{p}{,} \PYG{n}{arange}\PYG{p}{,} \PYG{n}{loadtxt}\PYG{p}{,} \PYG{n}{zeros}\PYG{p}{,} \PYG{n}{ceil}
14+
\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{numpy}\PYG{n+nn}{.}\PYG{n+nn}{random}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{randint}
15+
\PYG{k+kn}{from}\PYG{+w}{ }\PYG{n+nn}{time}\PYG{+w}{ }\PYG{k+kn}{import} \PYG{n}{time}
16+
17+
18+
\PYG{k}{def}\PYG{+w}{ }\PYG{n+nf}{tsboot}\PYG{p}{(}\PYG{n}{data}\PYG{p}{,}\PYG{n}{statistic}\PYG{p}{,}\PYG{n}{R}\PYG{p}{,}\PYG{n}{l}\PYG{p}{)}\PYG{p}{:}
19+
\PYG{n}{t} \PYG{o}{=} \PYG{n}{zeros}\PYG{p}{(}\PYG{n}{R}\PYG{p}{)}\PYG{p}{;} \PYG{n}{n} \PYG{o}{=} \PYG{n+nb}{len}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}\PYG{p}{;} \PYG{n}{k} \PYG{o}{=} \PYG{n+nb}{int}\PYG{p}{(}\PYG{n}{ceil}\PYG{p}{(}\PYG{n+nb}{float}\PYG{p}{(}\PYG{n}{n}\PYG{p}{)}\PYG{o}{/}\PYG{n}{l}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
20+
\PYG{n}{inds} \PYG{o}{=} \PYG{n}{arange}\PYG{p}{(}\PYG{n}{n}\PYG{p}{)}\PYG{p}{;} \PYG{n}{t0} \PYG{o}{=} \PYG{n}{time}\PYG{p}{(}\PYG{p}{)}
21+
22+
\PYG{c+c1}{\PYGZsh{} time series bootstrap}
23+
\PYG{k}{for} \PYG{n}{i} \PYG{o+ow}{in} \PYG{n+nb}{range}\PYG{p}{(}\PYG{n}{R}\PYG{p}{)}\PYG{p}{:}
24+
\PYG{c+c1}{\PYGZsh{} construct bootstrap sample from}
25+
\PYG{c+c1}{\PYGZsh{} k chunks of data. The chunksize is l}
26+
\PYG{n}{\PYGZus{}data} \PYG{o}{=} \PYG{n}{concatenate}\PYG{p}{(}\PYG{p}{[}\PYG{n}{data}\PYG{p}{[}\PYG{n}{j}\PYG{p}{:}\PYG{n}{j}\PYG{o}{+}\PYG{n}{l}\PYG{p}{]} \PYG{k}{for} \PYG{n}{j} \PYG{o+ow}{in} \PYG{n}{randint}\PYG{p}{(}\PYG{l+m+mi}{0}\PYG{p}{,}\PYG{n}{n}\PYG{o}{\PYGZhy{}}\PYG{n}{l}\PYG{p}{,}\PYG{n}{k}\PYG{p}{)}\PYG{p}{]}\PYG{p}{)}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{:}\PYG{n}{n}\PYG{p}{]}\PYG{p}{;}
27+
\PYG{n}{t}\PYG{p}{[}\PYG{n}{i}\PYG{p}{]} \PYG{o}{=} \PYG{n}{statistic}\PYG{p}{(}\PYG{n}{\PYGZus{}data}\PYG{p}{)}
28+
29+
\PYG{c+c1}{\PYGZsh{} analysis}
30+
\PYG{n+nb}{print} \PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Runtime: }\PYG{l+s+si}{\PYGZpc{}g}\PYG{l+s+s2}{ sec}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZpc{}} \PYG{p}{(}\PYG{n}{time}\PYG{p}{(}\PYG{p}{)}\PYG{o}{\PYGZhy{}}\PYG{n}{t0}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;} \PYG{n+nb}{print} \PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{Bootstrap Statistics :}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}
31+
\PYG{n+nb}{print} \PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+si}{\PYGZpc{}8g}\PYG{l+s+s2}{ }\PYG{l+s+si}{\PYGZpc{}14g}\PYG{l+s+s2}{ }\PYG{l+s+si}{\PYGZpc{}15g}\PYG{l+s+s2}{\PYGZdq{}} \PYG{o}{\PYGZpc{}} \PYG{p}{(}\PYG{n}{statistic}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}\PYG{p}{,} \PYGZbs{}
32+
\PYG{n}{mean}\PYG{p}{(}\PYG{n}{t}\PYG{p}{)} \PYG{o}{\PYGZhy{}} \PYG{n}{statistic}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}\PYG{p}{,} \PYGZbs{}
33+
\PYG{n}{std}\PYG{p}{(}\PYG{n}{t}\PYG{p}{)} \PYG{p}{)}\PYG{p}{)}
34+
\PYG{k}{return} \PYG{n}{t}
35+
\PYG{c+c1}{\PYGZsh{} Read in data}
36+
\PYG{n}{X} \PYG{o}{=} \PYG{n}{loadtxt}\PYG{p}{(}\PYG{n}{infile}\PYG{p}{)}
37+
\PYG{c+c1}{\PYGZsh{} statistic to be estimated. Takes two args.}
38+
\PYG{c+c1}{\PYGZsh{} arg1: the data}
39+
\PYG{k}{def}\PYG{+w}{ }\PYG{n+nf}{stat}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}\PYG{p}{:}
40+
\PYG{k}{return} \PYG{n}{mean}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}
41+
\PYG{n}{t} \PYG{o}{=} \PYG{n}{tsboot}\PYG{p}{(}\PYG{n}{X}\PYG{p}{,} \PYG{n}{stat}\PYG{p}{,} \PYG{l+m+mi}{2}\PYG{o}{*}\PYG{o}{*}\PYG{l+m+mi}{12}\PYG{p}{,} \PYG{l+m+mi}{2}\PYG{o}{*}\PYG{o}{*}\PYG{l+m+mi}{10}\PYG{p}{)}
42+
43+
44+
\end{MintedVerbatim}

0 commit comments

Comments
 (0)