Difference between revisions of "Documentation:Monte Carlo Equilibration"

From ALPS
Jump to: navigation, search
(Monte Carlo equilibration)
(Equilibration in Monte Carlo simulations)
Line 1: Line 1:
 
= Equilibration in Monte Carlo simulations =
 
= Equilibration in Monte Carlo simulations =
 +
 +
== Implementation in Python ==
 +
 +
=== Synposis ===
 +
 +
pyalps.checkSteadyState(outfile, observables, confidenceInterval=0.95, simplified=False, includeLog=False)
 +
 +
=== Arguments ===
 +
 +
{| border="1" cellpadding="5" cellspacing="0" align="center"
 +
|| argument
 +
|| default
 +
|| type
 +
|| remark
 +
|-
 +
|| outfile
 +
|| -
 +
|| Python str
 +
|| ALPS hdf5 output file(name)
 +
|-
 +
|| observables
 +
|| -
 +
|| (list of ) Python str
 +
|| (list of) measurement observable(s)
 +
|-
 +
||  confidenceInterval
 +
|| 0.95
 +
|| Python float
 +
|| confidence interval in which steady state has been reached
 +
|-
 +
|| simplified
 +
|| False
 +
|| Python bool
 +
|| shall we combine the checks of all observables as 1 final boolean answer?
 +
|-
 +
|| includeLog
 +
|| False
 +
|| Python bool
 +
|| shall we print the detailed log?
 +
|}
 +
  
 
== Theory <div id="link_equilibration_theory"> ==
 
== Theory <div id="link_equilibration_theory"> ==
Line 97: Line 138:
 
</math>
 
</math>
  
== Implementation in Python ==
 
 
=== Synposis ===
 
 
pyalps.checkSteadyState(outfile, observables, confidenceInterval=0.95, simplified=False, includeLog=False)
 
 
=== Arguments ===
 
 
{| border="1" cellpadding="5" cellspacing="0" align="center"
 
|| argument
 
|| default
 
|| type
 
|| remark
 
|-
 
|| outfile
 
|| -
 
|| Python str
 
|| ALPS hdf5 output file(name)
 
|-
 
|| observables
 
|| -
 
|| (list of ) Python str
 
|| (list of) measurement observable(s)
 
|-
 
||  confidenceInterval
 
|| 0.95
 
|| Python float
 
|| confidence interval in which steady state has been reached
 
|-
 
|| simplified
 
|| False
 
|| Python bool
 
|| shall we combine the checks of all observables as 1 final boolean answer?
 
|-
 
|| includeLog
 
|| False
 
|| Python bool
 
|| shall we print the detailed log?
 
|}
 
  
  
 
&copy; 2013 by Matthias Troyer, Ping Nang Ma
 
&copy; 2013 by Matthias Troyer, Ping Nang Ma

Revision as of 10:26, 16 September 2013

Equilibration in Monte Carlo simulations

Implementation in Python

Synposis

pyalps.checkSteadyState(outfile, observables, confidenceInterval=0.95, simplified=False, includeLog=False)

Arguments

argument default type remark
outfile - Python str ALPS hdf5 output file(name)
observables - (list of ) Python str (list of) measurement observable(s)
confidenceInterval 0.95 Python float confidence interval in which steady state has been reached
simplified False Python bool shall we combine the checks of all observables as 1 final boolean answer?
includeLog False Python bool shall we print the detailed log?


Theory

We have a timeseries of N measurements obtained from a Monte Carlo simulation, i.e. y_0,y_1,\cdots,y_{N-1}.

Suppose \bar{y}_i = \beta_0 + \beta_1 x_i (s.t. i = 0, 1, \cdots, N-1) is the least-squares best fitted line, we attempt to minimize  S = \sum_i (y_i - \bar{y}_i)^2 w.r.t. \beta_0 and  \beta_1.

\frac{\partial S}{\partial \beta_0 } = 0 , \frac{\partial S}{\partial \beta_1 } = 0  :


\Rightarrow \left( 
\begin{array}{cc} 
N               & \sum_i x_i     \\
\sum_i x_i & \sum_i x_i^2
\end{array}
\right)
\left(
\begin{array}{c}
\beta_0 \\ 
\beta_1
\end{array}
\right) =
\left(
\begin{array}{c}
\sum_i y_i  \\ 
\sum_i x_i y_i 
\end{array}
\right)


\Rightarrow \left(
\begin{array}{c}
\beta_0 \\ 
\beta_1
\end{array}
\right) =
\frac{1}{N\sum_i x_i^2 - (\sum_i x_i)^2}
\left( 
\begin{array}{cc} 
\sum_i x_i^2 & -\sum_i x_i     \\
-\sum_i x_i     & N
\end{array}
\right)
\left(
\begin{array}{c}
\sum_i y_i  \\ 
\sum_i x_i y_i 
\end{array}
\right)


\Rightarrow \beta_1 = \frac{N \sum_i x_i y_i - \sum_i x_i \sum_i y_i}{N\sum_i x_i^2 - (\sum_i x_i)^2}


Slope of best-fitted line


\Rightarrow \beta_1 = \frac{\sum_i (x_i - \bar{x}_i)( y_i - \bar{y}_i) }{\sum_i (x_i - \bar{x}_i)^2}  \,\,\,\,\, \left( = \frac{s_{xy}}{s_{xx}} \right)


Error in slope of best-fitted line


\mathrm{Var}({\beta_1}) 
= \mathrm{Var} \left( \frac{\sum_i (x_i - \bar{x}_i)( y_i - \bar{y}_i) }{\sum_i (x_i - \bar{x}_i)^2} \right)
= \frac{\sum_i (x_i - \bar{x}_i)^2 \mathrm{Var}(y_i) }{(\sum_i (x_i - \bar{x}_i)^2)^2}


Denoting \mathrm{Var}(y_i) = \sigma_{y}^2 , we have:

 \Rightarrow \mathrm{Var}({\beta_1}) = \sigma_{\beta_1}^2 = \frac{\sigma_y^2}{\sum_i (x_i - \bar{x}_i)^2}

 \Rightarrow \mathrm{Var}({\beta_1}) = \sigma_{\beta_1}^2 = \frac{ 12 \, \sigma_y^2 }{ N(N^2 - 1) }


Hypothesis testing


 
\begin{array}{l}
H_0 : \beta_1 = 0 \\
H_1 : \beta_1 \ne 0 
\end{array}


Using the standard z-test, we reject H_0 at confidence interval \alpha if


\left| \frac{\beta_1 - 0 }{ \sigma_{\beta_1} } \right| > z_{\frac{1-\alpha}{2}}


© 2013 by Matthias Troyer, Ping Nang Ma