The Problem
It is important to calculate the propagation of errors for combinations of variables. There are some good resources on the interenet for linear propagation of error including Wikipedia (here).
It is assumed the MTR z-spectral data has means and standard devations for positive offsets (mmp, ssp) and means and standard deviations for negative offsets (mmn, ssn). The asymmetry is calculated as [cci lang="matlab"] mm = (mmp – mmn) ./ mmp[/cci].
Code
Given a set of data, for example:
[cc lang="matlab"]
function [mm,ss] = calcasym(mmp, ssp, mmn, ssn)
mmn = fliplr(mmn);
ssn = fliplr(ssn);
%% Calculate the asymmetry
mm = (mmp – mmn) ./ mmp;
%% Calculate the error.
mean_num = mmp-mmn;
std_num = sqrt( ssp.^2 + ssn.^2 );
mean_denom = mmp;
std_denom = ssp;
ss = (mean_num./mean_denom) .* sqrt( (std_num ./ mean_num).^2 + (std_denom ./ mean_denom).^2 );
mm = mm * 100; ss = ss * 100;
[/cc]