// $Id: Statistics.doxygen 2119 2009-12-12 23:11:43Z peter $
//
// Copyright (C) 2005 Peter Johansson
// Copyright (C) 2006 Jari Häkkinen, Peter Johansson, Markus Ringnér
// Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson
//
// This file is part of the yat library, http://dev.thep.lu.se/yat
//
// The yat library is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software Foundation; either version 3 of the
// License, or (at your option) any later version.
//
// The yat library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with yat. If not, see .
/**
\page weighted_statistics Weighted Statistics
\section Introduction
There are several different reasons why a statistical analysis needs
to adjust for weighting. In literature reasons are mainly diveded in
to groups.
The first group is when some of the measurements are known to be more
precise than others. The more precise a measurement is, the larger
weight it is given. The simplest case is when the weight are given
before the measurements and they can be treated as deterministic. It
becomes more complicated when the weight can be determined not until
afterwards, and even more complicated if the weight depends on the
value of the observable.
The second group of situations is when calculating averages over one
distribution and sampling from another distribution. Compensating for
this discrepency weights are introduced to the analysis. A simple
example may be that we are interviewing people but for economical
reasons we choose to interview more people from the city than from the
countryside. When summarizing the statistics the answers from the city
are given a smaller weight. In this example we are choosing the
proportions of people from countryside and people from city being
intervied. Hence, we can determine the weights before and consider
them to be deterministic. In other situations the proportions are not
deterministic, but rather a result from the sampling and the weights
must be treated as stochastic and only in rare situations the weights
can be treated as independent of the observable.
Since there are various origins for a weight occuring in a statistical
analysis, there are various ways to treat the weights and in general
the analysis should be tailored to treat the weights correctly. We
have not chosen one situation for our implementations, so see specific
function documentation for what assumtions are made. Though, common
for implementations are the following:
- Setting all weights to unity yields the same result as the
non-weighted version.
- Rescaling the weights does not change any function.
- Setting a weight to zero is equivalent to removing the data point.
The last point implies that a data point with zero weight is ignored
also when the value is NaN.
An important case is when weights are binary (either 1 or 0). Then we
get the same result using the weighted version as using the data with
weight not equal to zero and the non-weighted version. Hence, using
binary weights and the weighted version missing values can be treated
in a proper way.
\section AveragerWeighted
\subsection Mean
For any situation the weight is always designed so the weighted mean
is calculated as \f$ m=\frac{\sum w_ix_i}{\sum w_i} \f$, which obviously
fulfills the conditions above.
In the case of varying measurement error, it could be motivated that
the weight shall be \f$ w_i = 1/\sigma_i^2 \f$. We assume measurement error
to be Gaussian and the likelihood to get our measurements is
\f$ L(m)=\prod
(2\pi\sigma_i^2)^{-1/2}e^{-\frac{(x_i-m)^2}{2\sigma_i^2}} \f$. We
maximize the likelihood by taking the derivity with respect to \f$ m \f$ on
the logarithm of the likelihood \f$ \frac{d\ln L(m)}{dm}=\sum
\frac{x_i-m}{\sigma_i^2} \f$. Hence, the Maximum Likelihood method yields
the estimator \f$ m=\frac{\sum w_i/\sigma_i^2}{\sum 1/\sigma_i^2} \f$.
\subsection Variance
In case of varying variance, there is no point estimating a variance
since it is different for each data point.
Instead we look at the case when we want to estimate the variance over
\f$f\f$ but are sampling from \f$ f' \f$. For the mean of an observable \f$ O \f$ we
have \f$ \widehat O=\sum\frac{f}{f'}O_i=\frac{\sum w_iO_i}{\sum
w_i} \f$. Hence, an estimator of the variance of \f$ X \f$ is
\f$
s^2 = -^2=
\f$
\f$
= \frac{\sum w_ix_i^2}{\sum w_i}-\frac{(\sum w_ix_i)^2}{(\sum w_i)^2}=
\f$
\f$
= \frac{\sum w_i(x_i^2-m^2)}{\sum w_i}=
\f$
\f$
= \frac{\sum w_i(x_i^2-2mx_i+m^2)}{\sum w_i}=
\f$
\f$
= \frac{\sum w_i(x_i-m)^2}{\sum w_i}
\f$
This estimator fulfills that it is invariant under a rescaling and
having a weight equal to zero is equivalent to removing the data
point. Having all weights equal to unity we get \f$ \sigma=\frac{\sum
(x_i-m)^2}{N} \f$, which is the same as returned from Averager. Hence,
this estimator is slightly biased, but still very efficient.
\subsection standard_error Standard Error
The standard error squared is equal to the expexted squared error of
the estimation of \f$m\f$. The squared error consists of two parts, the
variance of the estimator and the squared bias:
\f$
^2=+-\mu>^2=
\f$
\f$
>^2+(-\mu)^2
\f$.
In the case when weights are included in analysis due to varying
measurement errors and the weights can be treated as deterministic, we
have
\f$
Var(m)=\frac{\sum w_i^2\sigma_i^2}{\left(\sum w_i\right)^2}=
\f$
\f$
\frac{\sum w_i^2\frac{\sigma_0^2}{w_i}}{\left(\sum w_i\right)^2}=
\f$
\f$
\frac{\sigma_0^2}{\sum w_i},
\f$
where we need to estimate \f$ \sigma_0^2 \f$. Again we have the likelihood
\f$
L(\sigma_0^2)=\prod\frac{1}{\sqrt{2\pi\sigma_0^2/w_i}}\exp{(-\frac{w_i(x-m)^2}{2\sigma_0^2})}
\f$
and taking the derivity with respect to
\f$\sigma_o^2\f$,
\f$
\frac{d\ln L}{d\sigma_i^2}=
\f$
\f$
\sum -\frac{1}{2\sigma_0^2}+\frac{w_i(x-m)^2}{2\sigma_0^2\sigma_o^2}
\f$
which
yields an estimator \f$ \sigma_0^2=\frac{1}{N}\sum w_i(x-m)^2 \f$. This
estimator is not ignoring weights equal to zero, because deviation is
most often smaller than the expected infinity. Therefore, we modify
the expression as follows \f$\sigma_0^2=\frac{\sum w_i^2}{\left(\sum
w_i\right)^2}\sum w_i(x-m)^2\f$ and we get the following estimator of
the variance of the mean \f$\sigma_0^2=\frac{\sum w_i^2}{\left(\sum
w_i\right)^3}\sum w_i(x-m)^2\f$. This estimator fulfills the conditions
above: adding a weight zero does not change it: rescaling the weights
does not change it, and setting all weights to unity yields the same
expression as in the non-weighted case.
In a case when it is not a good approximation to treat the weights as
deterministic, there are two ways to get a better estimation. The
first one is to linearize the expression \f$\left<\frac{\sum
w_ix_i}{\sum w_i}\right>\f$. The second method when the situation is
more complicated is to estimate the standard error using a
bootstrapping method.
\section AveragerPairWeighted
Here data points come in pairs (x,y). We are sampling from \f$f'_{XY}\f$
but want to measure from \f$f_{XY}\f$. To compensate for this decrepency,
averages of \f$g(x,y)\f$ are taken as \f$\sum \frac{f}{f'}g(x,y)\f$. Even
though, \f$X\f$ and \f$Y\f$ are not independent \f$(f_{XY}\neq f_Xf_Y)\f$ we
assume that we can factorize the ratio and get \f$\frac{\sum
w_xw_yg(x,y)}{\sum w_xw_y}\f$
\subsection Covariance
Following the variance calculations for AveragerWeighted we have
\f$Cov=\frac{\sum w_xw_y(x-m_x)(y-m_y)}{\sum w_xw_y}\f$ where
\f$m_x=\frac{\sum w_xw_yx}{\sum w_xw_y}\f$
\subsection Correlation
As the mean is estimated as
\f$
m_x=\frac{\sum w_xw_yx}{\sum w_xw_y}
\f$,
the variance is estimated as
\f$
\sigma_x^2=\frac{\sum w_xw_y(x-m_x)^2}{\sum w_xw_y}
\f$.
As in the non-weighted case we define the correlation to be the ratio
between the covariance and geometrical average of the variances
\f$
\frac{\sum w_xw_y(x-m_x)(y-m_y)}{\sqrt{\sum w_xw_y(x-m_x)^2\sum
w_xw_y(y-m_y)^2}}
\f$.
This expression fulfills the following
- Having N equal weights the expression reduces to the non-weighted expression.
- Adding a pair of data, in which one weight is zero is equivalent
to ignoring the data pair.
- Correlation is equal to unity if and only if \f$x\f$ is equal to
\f$y\f$. Otherwise the correlation is between -1 and 1.
\section Score
\subsection Pearson
\f$\frac{\sum w(x-m_x)(y-m_y)}{\sqrt{\sum w(x-m_x)^2\sum w(y-m_y)^2}}\f$.
See AveragerPairWeighted correlation.
\subsection ROC
An interpretation of the ROC curve area is the probability that if we
take one sample from class \f$+\f$ and one sample from class \f$-\f$, what is
the probability that the sample from class \f$+\f$ has greater value. The
ROC curve area calculates the ratio of pairs fulfilling this
\f$
\frac{\sum_{\{i,j\}:x^-_i)^N\f$, where
\f$\f$ is the linear kernel (usual scalar product). For the weighted
case we define the linear kernel to be
\f$=\frac{\sum {w_xw_yxy}}{\sum{w_xw_y}}\f$ and the
polynomial kernel can be calculated as before
\f$(1+)^N\f$.
\subsection gaussian_kernel Gaussian Kernel
We define the weighted Gaussian kernel as \f$\exp\left(-N\frac{\sum
w_xw_y(x-y)^2}{\sum w_xw_y}\right)\f$.
\section Regression
\subsection Naive
\subsection Linear
We have the model
\f$
y_i=\alpha+\beta (x-m_x)+\epsilon_i,
\f$
where \f$\epsilon_i\f$ is the noise. The variance of the noise is
inversely proportional to the weight,
\f$Var(\epsilon_i)=\frac{\sigma^2}{w_i}\f$. In order to determine the
model parameters, we minimimize the sum of quadratic errors.
\f$
Q_0 = \sum \epsilon_i^2
\f$
Taking the derivity with respect to \f$\alpha\f$ and \f$\beta\f$ yields two conditions
\f$
\frac{\partial Q_0}{\partial \alpha} = -2 \sum w_i(y_i - \alpha -
\beta (x_i-m_x)=0
\f$
and
\f$ \frac{\partial Q_0}{\partial \beta} = -2 \sum
w_i(x_i-m_x)(y_i-\alpha-\beta(x_i-m_x)=0
\f$
or equivalently
\f$
\alpha = \frac{\sum w_iy_i}{\sum w_i}=m_y
\f$
and
\f$ \beta=\frac{\sum w_i(x_i-m_x)(y-m_y)}{\sum
w_i(x_i-m_x)^2}=\frac{Cov(x,y)}{Var(x)}
\f$
Note, by having all weights equal we get back the unweighted
case. Furthermore, we calculate the variance of the estimators of
\f$\alpha\f$ and \f$\beta\f$.
\f$
\textrm{Var}(\alpha )=\frac{w_i^2\frac{\sigma^2}{w_i}}{(\sum w_i)^2}=
\frac{\sigma^2}{\sum w_i}
\f$
and
\f$
\textrm{Var}(\beta )= \frac{w_i^2(x_i-m_x)^2\frac{\sigma^2}{w_i}}
{(\sum w_i(x_i-m_x)^2)^2}=
\frac{\sigma^2}{\sum w_i(x_i-m_x)^2}
\f$
Finally, we estimate the level of noise, \f$\sigma^2\f$. Inspired by the
unweighted estimation
\f$
s^2=\frac{\sum (y_i-\alpha-\beta (x_i-m_x))^2}{n-2}
\f$
we suggest the following estimator
\f$ s^2=\frac{\sum w_i(y_i-\alpha-\beta (x_i-m_x))^2}{\sum
w_i-2\frac{\sum w_i^2}{\sum w_i}} \f$
*/