text:
# ilu

Incomplete LU factorization

## Description

example

[L,U] = ilu(A) performs the incomplete LU factorization of a sparse matrix A with zero-fill, and returns the lower triangular matrix L and the upper triangular matrix U.

[L,U,P] = ilu(A) also returns the permutation matrix P such that L and U are incomplete factors of P*A or A*P. By default, P is an identity matrix for the incomplete LU factorization without pivoting.

example

W = ilu(A) returns the nonzeros of the LU factors. The output W is equal to L + U - speye(size(A)).

example

[___] = ilu(A,options) performs the incomplete LU factorization of A with options specified by the structure options.

For example, you can perform an incomplete LU factorization with pivoting by setting the type field of options to "ilutp". You can then specify a row-sum or column-sum preserving modified incomplete LU factorization by setting the milu field to "row" or "col". This combination of options returns the permutation matrix P such that L and U are incomplete factors of A*P for the "row" option (where U is column permuted), or L and U are incomplete factors of P*A for the "col" option (where L is row permuted).

## Examples

collapse all

The ilu function provides three types of incomplete LU factorizations: the zero-fill factorization (ILU(0)), the Crout version (ILUC), and the factorization with threshold dropping and pivoting (ILUTP).

By default, ilu performs the zero-fill incomplete LU factorization of a sparse matrix input. For example, find the complete and incomplete factorization of a sparse matrix with 7840 nonzeros. Its complete LU factors have 126,478 nonzeros, and its incomplete LU factors with zero-fill have 7840 nonzeros, the same number as A.

A = gallery("neumann",1600) + speye(1600);
n = nnz(A)
n = 7840
n = nnz(lu(A))
n = 126478
n = nnz(ilu(A))
n = 7840

Because the zero-fill factorization preserves the sparsity pattern of the input matrix in its LU factors, the relative error of the factorization is essentially zero on the pattern of nonzero elements of A.

[L,U] = ilu(A);
e = norm(A-(L*U).*spones(A),"fro")/norm(A,"fro")
e = 4.8874e-17

However, the product of these zero-fill factors is not a good approximation of the original matrix.

e = norm(A-L*U,"fro")/norm(A,"fro")
e = 0.0601

To improve the accuracy, you can use other types of incomplete LU factorization with fill-in. For example, use the Crout version with a 1e-6 drop tolerance.

options.droptol = 1e-6;
options.type = "crout";
[L,U] = ilu(A,options);

The Crout version of the incomplete factorization has 51,482 nonzeros in its LU factors (less than the complete factorization). With fill-in, the product of the incomplete LU factors is a better approximation of the original matrix.

n = nnz(ilu(A,options))
n = 51482
e = norm(A-L*U,"fro")./norm(A,"fro")
e = 9.3040e-07

For comparison, for the same input matrix A, the incomplete factorization with threshold dropping and pivoting gives results similar to the Crout version.

options.type = "ilutp";
[L,U,P] = ilu(A,options);
n = nnz(ilu(A,options))
n = 51541
norm(P*A-L*U,"fro")./norm(A,"fro")
ans = 9.4960e-07

Change the drop tolerance of incomplete LU factorization to factor a sparse matrix.

Load the west0479 matrix, which is a real-valued 479-by-479 nonsymmetric sparse matrix. Estimate the condition number of the matrix by using condest.

A = west0479;
c1 = condest(A)
c1 = 1.4244e+12

Improve the condition number of the matrix by using equilibrate. Permute and rescale the original matrix A to create a new matrix B = R*P*A*C, which has a better condition number and diagonal entries of only 1 and –1.

[P,R,C] = equilibrate(A);
B = R*P*A*C;
c2 = condest(B)
c2 = 5.1036e+04

Specify the options to perform the incomplete LU factorization of B with threshold dropping and pivoting that preserves the row sum. For comparison purposes, first specify a zero drop tolerance of fill-in, which produces the complete LU factorization.

options.type = "ilutp";
options.milu = "row";
options.droptol = 0;
[L,U,P] = ilu(B,options);

This factorization is very accurate in approximating the input matrix B, but the factors are significantly more dense than B.

e = norm(B*P-L*U,"fro")/norm(B,"fro")
e = 1.0345e-16
nLU = nnz(L)+nnz(U)-size(B,1)
nLU = 19118
nB = nnz(B)
nB = 1887

You can change the drop tolerance to obtain incomplete LU factors that are more sparse but less accurate in approximating B. For example, the following plots show the ratio of the density of the incomplete factors to the density of the input matrix plotted against the drop tolerance, and the relative error of the incomplete factorization.

ntols = 20;
tau = logspace(-6,-2,ntols);
e = zeros(1,ntols);
nLU = zeros(1,ntols);
for k = 1:ntols
options.droptol = tau(k);
[L,U,P] = ilu(B,options);
nLU(k) = nnz(L)+nnz(U)-size(B,1);
e(k) = norm(B*P-L*U,"fro")/norm(B,"fro");
end
figure
semilogx(tau,nLU./nB,LineWidth=2)
title("Ratio of nonzeros of LU factors with respect to B")
xlabel("drop tolerance")
ylabel("nnz(L)+nnz(U)-size(B,1)/nnz(B)",FontName="FixedWidth")

figure
loglog(tau,e,LineWidth=2)
title("Relative error of the incomplete LU factorization")
xlabel("drop tolerance")
ylabel("\$||BP-LU||_F\,/\,||B||_F\$",Interpreter="latex")

In this example, the relative error of the incomplete LU factorization with threshold dropping is on the same order of the drop tolerance (which does not always occur).

Use an incomplete LU factorization as a preconditioner for bicgstab to solve a linear system.

Load west0479, a real 479-by-479 nonsymmetric sparse matrix.

A = west0479;

Define b so that the true solution to $\mathit{Ax}=\mathit{b}$ is a vector of all ones.

b = full(sum(A,2));

Set the tolerance and maximum number of iterations.

tol = 1e-12;
maxit = 20;

Use bicgstab to find a solution at the requested tolerance and number of iterations. Specify five outputs to return information about the solution process:

• x is the computed solution to A*x = b.

• fl0 is a flag indicating whether the algorithm converged.

• rr0 is the relative residual of the computed answer x.

• it0 is the iteration number when x was computed.

• rv0 is a vector of the residual history at each half iteration for $‖\mathit{b}-\mathit{Ax}‖$.

[x,fl0,rr0,it0,rv0] = bicgstab(A,b,tol,maxit);
fl0
fl0 = 1
rr0
rr0 = 1
it0
it0 = 0

fl0 is 1 because bicgstab does not converge to the requested tolerance 1e-12 within the requested 20 iterations. In fact, the behavior of bicgstab is so poor that the initial guess x0 = zeros(size(A,2),1) is the best solution and is returned, as indicated by it0 = 0.

To aid with the slow convergence, you can specify a preconditioner matrix. Because A is nonsymmetric, use ilu to generate the preconditioner $\mathit{M}=\mathit{L}\text{\hspace{0.17em}}\mathit{U}$. Specify a drop tolerance to ignore nondiagonal entries with values smaller than 1e-6. Solve the preconditioned system ${\mathit{A}\text{\hspace{0.17em}}\mathit{M}}^{-1}\text{\hspace{0.17em}}\mathit{M}\text{\hspace{0.17em}}\mathit{x}=\mathit{b}$ by specifying L and U as inputs to bicgstab.

options = struct("type","ilutp","droptol",1e-6);
[L,U] = ilu(A,options);
[x_precond,fl1,rr1,it1,rv1] = bicgstab(A,b,tol,maxit,L,U);
fl1
fl1 = 0
rr1
rr1 = 5.9892e-14
it1
it1 = 3

The use of an ilu preconditioner produces a relative residual rr1 less than the requested tolerance of 1e-12 at the third iteration. The output rv1(1) is norm(b), and the output rv1(end) is norm(b-A*x1).

You can follow the progress of bicgstab by plotting the relative residuals at each half iteration. Plot the residual history of each solution with a line for the specified tolerance.

semilogy((0:numel(rv0)-1)/2,rv0/norm(b),"-o")
hold on
semilogy((0:numel(rv1)-1)/2,rv1/norm(b),"-o")
yline(tol,"r--");
legend("No preconditioner","ILU preconditioner","Tolerance",Location="East")
xlabel("Iteration number")
ylabel("Relative residual")

## Input Arguments

collapse all

Input matrix, specified as a sparse square matrix.

LU factorization options, specified as a structure with up to five fields:

Field NameSummaryDescription

type

Type of incomplete LU factorization

Valid values for type are:

• "nofill"(default) — Perform ILU factorization with 0 level of fill in, known as ILU(0). With type set to "nofill", only the milu option is used; all other fields are ignored.

• "crout" — Perform the Crout version of ILU factorization, known as ILUC. With type set to "crout", only the droptol and milu options are used; all other fields are ignored.

• "ilutp" — Perform ILU factorization with threshold and pivoting, known as ILUTP. Pivoting is performed only with this type.

The default value is "nofill".

droptol

Drop tolerance of the incomplete LU factorization

Valid value for droptol is any nonnegative scalar. The nonzero entries of U satisfy abs(U(i,j)) >= droptol*norm(A(:,j)), with the exception of the diagonal entries, which are retained regardless of if they satisfy this criterion. The entries of L are tested against the local drop tolerance before being scaled by the pivot, so the nonzero entries of L satisfy abs(L(i,j)) >= droptol*norm(A(:,j))/U(j,j).

The default value is 0, which produces the complete LU factorization.

milu

Type of modified incomplete LU factorization

Valid values for milu are:

• "off" — No modified incomplete LU factorization is produced.

• "row" — Produce the row-sum modified incomplete LU factorization. The diagonal elements of the upper triangular factor U are compensated so that row sums of the original matrix are preserved. That is, A*e = L*U*e, where e is the column vector of ones.

• "col" — Produce the column-sum modified incomplete LU factorization. The diagonal elements of the upper triangular factor U are compensated so that column sums of the original matrix are preserved. That is, e'*A = e'*L*U.

The default value is "off".

udiag

Whether to replace zero diagonal entries of U

Valid values for udiag are 0 and 1. If udiag is 1, then any zero diagonal entries of the upper triangular factor U are replaced by the local drop tolerance in an attempt to avoid a singular factor.

The default value is 0.

thresh

Pivot threshold

Valid values are between 0, where the algorithm selects the diagonal pivot, and 1, where the algorithm chooses the maximum magnitude entry in the column to be the pivot. Pivoting occurs when the diagonal entry in a column has a magnitude less than thresh times the magnitude of any subdiagonal entry in that column.

The default value is 1.

## Output Arguments

collapse all

Lower triangular factor, returned as a sparse square matrix.

• When options.type is specified as "nofill" (by default) or "crout", L is returned as a unit lower triangular matrix (that is, a lower triangular matrix with 1s on the main diagonal).

• When options.type is specified as "ilutp" and options.milu is specified as "col", L is returned as a row-permuted unit lower triangular matrix.

Upper triangular factor, returned as a sparse square matrix.

• When options.type is specified as "nofill" (by default) or "crout", U is returned as an upper triangular matrix.

• When options.type is specified as "ilutp" and options.milu is specified as "row", U is returned as a column-permuted upper triangular matrix.

Permutation matrix, returned as a sparse square matrix.

When options.type is specified as "nofill" (by default) or "crout", P is returned as an identity matrix of the same size as A because neither of these types performs pivoting.

Nonzeros of the LU factors, returned as a sparse square matrix, where W = L + U - speye(size(A)).

## Tips

• The incomplete factorizations returned by this function may be useful as preconditioners for a system of linear equations being solved by iterative methods, such as bicg, bicgstab, or gmres.

## References

[1] Saad, Y. "Preconditioning Techniques", chap. 10 in Iterative Methods for Sparse Linear Systems. The PWS Series in Computer Science. Boston: PWS Pub. Co, 1996.

## Version History

Introduced in R2007a


text:
2.5-1.0.5-5-5.3 2 $C_5$ 5 0 $[ 0; 5, 5, 5 ]$
2.5-1.0.5-5-5.4 2 $C_5$ 5 0 $[ 0; 5, 5, 5 ]$
2.5-1.0.5-5-5.1 2 $C_5$ 5 0 $[ 0; 5, 5, 5 ]$
2.5-1.0.5-5-5.2 2 $C_5$ 5 0 $[ 0; 5, 5, 5 ]$

format: plain


text:
Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.

# Re: Re: st: RE: dfuller: why do I get different results?

 From Yuval Arbel To statalist@hsphsun2.harvard.edu Subject Re: Re: st: RE: dfuller: why do I get different results? Date Sat, 19 Nov 2011 16:48:21 +0200

Thanks. I will try to put a drift and additional lags and let you
know. I also tried the pperron option and got the same results. For my
objectives, however, even if I have 9,500 non-stationary series and 47
stationary series - it will be good enough. I only need a result which
says that most panels are not-stationary

On Sat, Nov 19, 2011 at 4:22 PM, Christopher Baum <kit.baum@bc.edu> wrote:
> <>
> On Nov 19, 2011, at 2:33 AM, Yuval wrote:
>
>> Fisher-type unit-root test for reduct_per
>> Based on augmented Dickey-Fuller tests
>> - -----------------------------------------
>> Ho: All panels contain unit roots           Number of panels       =   9547
>> Ha: At least one panel is stationary        Avg. number of periods =  53.19
>>
>> AR parameter: Panel-specific                Asymptotics: T -> Infinity
>> Panel means:  Included
>> Time trend:   Not included
>> Drift term:   Not included                  ADF regressions: 1 lag
>> - ------------------------------------------------------------------------------
>>                                  Statistic      p-value
>> - ------------------------------------------------------------------------------
>> Inverse chi-squared(19060)P      8814.2739       1.0000
>> Inverse normal            Z        60.7097       1.0000
>> Inverse logit t(46659)    L*       55.5908       1.0000
>> Modified inv. chi-squared Pm      -52.4767       1.0000
>> - ------------------------------------------------------------------------------
>> P statistic requires number of panels to be finite.
>> Other statistics are suitable for finite or infinite number of panels.
>> - ------------------------------------------------------------------------------
>>
>> .
>> I'm happy with the results, because they show that tenants could not
>> anticipate a long-run mean reduction rates.
>
> I would not draw great comfort from these findings. The huge number of panels in the test, based on T->\infty rather than N->\infty, leads to a p-value of 1.0 for all forms of the test statistic. All that means is that the data cannot possibly reject the null that ALL panels have unit roots. That could well result from a sample in which 9,500 panels did and 47 panels didn't, but the test does not have the power to reject.
>
> I would run the test -- with a drift term, and probably more than one lag in the DF -- for a relatively small number of panels, perhaps chosen at random. If you look at the example in the xtunitroot fisher help file, a rejection arises when the Z-stat or L*-stat takes on negative values (just as with the standard D-F regression). It might well be if you looked at, say, 150 panels you would find that the test has some power. I am always suspicious of p-values of 1.0000.
>
> Kit
>
> Kit Baum   |   Boston College Economics & DIW Berlin   |   http://ideas.repec.org/e/pba1.html
>                             An Introduction to Stata Programming  |   http://www.stata-press.com/books/isp.html
>  An Introduction to Modern Econometrics Using Stata  |   http://www.stata-press.com/books/imeus.html
>
>
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
>

--
Dr. Yuval Arbel


text:
# Homework Help: Integration of exponential

1. Dec 7, 2011

### matt222

1. The problem statement, all variables and given/known data

integrate the function F(t)=1-exp(-∫1/t+2 dt) limit of integration from 0 to t

2. Relevant equations

3. The attempt at a solution

F(t)=1-exp(-ln(t+2)+ln2)
=1-exp(ln(2-t))*exp(ln2)
=1+2t-4
=2t-3

what do you think about my solutions?

2. Dec 7, 2011

### LCKurtz

I think it is full of mistakes. For one thing, it isn't clear whether your original exponential is$$e^{-\int {\frac 1 t + 2}\, dt}\hbox{ or } e^{-\int \frac{1}{t+2}\,dt}$$ In your first step you have treated it both ways and you are careless with your - signs and simplification. Try again.

Share this great discussion with others via Reddit, Google+, Twitter, or Facebook


text:
# [Tex/LaTex] TikZ – Rounded closed polygon

tikz-pgf

I would like to produce rounded closed polygon like in the following uggly draw. This shape will be defined by giving positions of the vertex. This will be used on sudoku grids.

Assuming you are using the Sudoku code of question TikZ: “Zig-Zag” lines, for example, this code is drawn in such a way that each cell is 1 unit wide, so this makes very easy to draw this kind of shapes, since the vertex will have integer units.

Moreover, if you use relative coordinates (++ syntax) you can specify each point of the polygon as an increment of ++(1,0), ++(0,1), ++(-1,0) or ++(0,-1) with respect of the last drawn point, so you only need to give absolute coordinates for the first point of the path, and this kind of relative coordinates for the remaining ones.

So, for example, your shape would be (assuming that I guessed right the units from your distorted drawing):

\draw[ultra thick, red, rounded corners] (first point) --
++(1, 0) -- ++(0,-1) -- ++(1, 0)  -- ++(1,0) -- ++(0,-1) --
++(0,-1) -- ++(-1,0) -- ++(0,-1) -- ++(-1,0) -- ++(0, 1) --
++(-1,0) -- ++(0, 1) -- ++(0, 1) --  cycle;

Where (first point) can be for example (3,6) to give this:


text:
How this COM communication should look like?

I am trying to rewrite a small utility tool for my bike computer Mio 105. Unfortunately there is not any API to do that, so the only thing left is reverse engeneering. So I have set up a USB sniffer and used orginal software to communicate with the device. I managed then to write a piece of code which was able to communicate too, the port was set up correctly, but there is a problem how it works. In original soft data is being transfered in bigger packages (up to 4kB) but in my code I had to read one byte by one. So here is the question: how to achieve something like this packages automatically?

I used Serial Port Monitor to watch a USB port. Here's an example of data being sent: https://pastebin.com/SdePj58x When I manually open the port using this program I can see that RTS and DTR are turned on. Sending one particular hex code results in the same answer from device like given before. Is this communication somehow standarized or these hex-code commands are specific for this device and I need then to hardcode them inside my program?

• You should post a sample of the comms capture into your question using the {code} button to format it correctly. You'd probably need to add some comments. Other than that I'm afraid I can't help. Welcome to EE.SE. – Transistor May 17 '18 at 7:32

The host messages always start with 0x02, followed by two bytes of length (big-endian, most often 0x00 0x01 = 1). This is followed by length bytes of data (some sort of command byte or register address, sometimes with additional data) and a one-byte checksum of some sort.


text:
Thank you for visiting nature.com. You are using a browser version with limited support for CSS. To obtain the best experience, we recommend you use a more up to date browser (or turn off compatibility mode in Internet Explorer). In the meantime, to ensure continued support, we are displaying the site without styles and JavaScript.

# A signal-to-noise paradox in climate science

## Abstract

We review the growing evidence for a widespread inconsistency between the low strength of predictable signals in climate models and the relatively high level of agreement they exhibit with observed variability of the atmospheric circulation. This discrepancy is particularly evident in the climate variability of the Atlantic sector, where ensemble predictions using climate models generally show higher correlation with observed variability than with their own simulations, and higher correlations with observations than would be expected from their small signal-to-noise ratios, hence a ‘signal-to-noise paradox’. This unusual behaviour has been documented in multiple climate prediction systems and in the response to a number of different sources of climate variability. However, we also note that the total variance in the models is often close in magnitude to the observed variance, and so it is not a simple matter of models containing too much variability. Instead, the proportion of Atlantic climate variance that is predictable in climate models appears to be too weak in amplitude by a factor of two, or perhaps more. In this review, we provide a range of examples from existing studies to build the case for a problem that is common across different climate models, common to several different sources of climate variability and common across a range of timescales. We also discuss the wider implications of this intriguing paradox.

## Introduction

The idea that there is unpredictable variability in the weather and climate has been demonstrated in the seminal papers by Ed Lorenz1,2 and is popularised as ‘chaos’ and the ‘butterfly effect’: whereby a tiny disturbance such as the flap of a butterfly’s wings can grow into large-scale differences in future weather patterns. This leads to inherent uncertainty in any practical meteorological forecast and suggests fundamental limits on the predictability of the climate system. This sensitivity to initial conditions led to the ideas behind the development of ensemble weather prediction involving multiple numerical realisations;3 an approach that was subsequently extended to longer range forecasts4 and is now routinely used in seasonal predictions5 and longer climate projections.6 In these ensemble prediction systems, individual member simulations differ by small perturbations, which grow with time due to unpredictable variability7 or ‘chaos’, limiting predictability but also allowing the ensemble to capture the uncertainty in the future state of the system that arises due to uncertainty in initial conditions and/or model formulation. Although the underlying equations in climate and weather prediction models are fundamentally deterministic, and are therefore not random, the range of outputs from ensemble predictions is often treated probabilistically when either measuring the skill of retrospective predictions8,9 or expressing the outcome of a particular forecast.10

Estimates of the time horizon for predictability of individual weather events is typically 2 weeks for the mid-latitude atmosphere.11,12 However, some components of the climate system are predictable well beyond these timescales. For example, the Madden Julian Oscillation,13 El Niño-Southern Oscillation,14 Atlantic Multidecadal Variability15,16 and the Quasi-Biennial Oscillation17 are all predictable at monthly, seasonal or even longer timescales. Importantly, these sources of predictable variability also have remote teleconnections,18,19 leading to predictability in mid-latitude surface climate (i.e., average weather conditions) at seasonal and decadal lead times.

Given this, in the following section we assess the predictability for both observed (O) and model ensemble member (M) regional climate by dividing the temporal variability into predictable (signal, S) and unpredictable (noise, N) components:20,21

$$O = S_{o} + N_{o},\quad\quad M = S_{m} + N_{m},$$
(1)

## A signal-to-noise paradox in climate predictions

In order to demonstrate the existence of a signal-to-noise paradox we now compare the signal and noise components of observations and models. Climate model predictions, initialised with observational analyses and using fully coupled ocean–atmosphere models, now show potentially useful levels of prediction skill for year to year variations in the winter North Atlantic Oscillation (NAO). This implies predictability of European and North American winter climate out to a season or even longer ahead.20,22,23,24,25,26,27,28,29

All of these studies use ensembles and create an ensemble mean model prediction M to reduce the level of unpredictable noise:

$${\mathbf{M}} = S_m + N_m{\mathrm{/}}\surd n,$$
(2)

where n is the number of ensemble members.

If the ensembles are run for a number of historical cases, for example, a series of past winters, then the squared correlation rmo,2 between the year to year variability in the model ensemble mean M(t) (where time t denotes a particular year) and the observed variability O(t) provides an estimate of the predictable fraction of the observed variance30:

$$r_{mo}^2 = \sigma _{So}^2{\mathrm{/}}\left( {\sigma _{So}^2 + \sigma _{No}^2} \right),$$
(3)

where σSo2 and σNo2 are the variances of the signal and noise components of the observations, respectively.

In the limit of a large ensemble (n → ∞), Eq. (2) implies that the model noise vanishes and the ensemble mean consists of only the modelled predictable signal Sm. The proportion of modelled variance that is predictable may therefore be obtained as the variance of Sm divided by the total variance of individual model members. Eade et al.20 used these definitions of observed and modelled predictability to define the ratio of predictable components (RPC) between observations and model:

$${\mathrm {RPC}}^2 = \sigma _{So}^2{\mathrm{/}}\left( {\sigma _{So}^2 + \sigma _{No}^2} \right){\mathrm{/}}\left( {\sigma _{Sm}^2/\left( {\sigma _{Sm}^2 + \sigma _{Nm}^2} \right)} \right) = r_{mo}^2{\mathrm{/}}\left( {\sigma _{Sm}^2/\left( {\sigma _{Sm}^2 + \sigma _{Nm}^2} \right)} \right),$$
(4)

In principle, the RPC should be 1, as the observations and model should contain the same proportion of predictable variance and the squared correlation should match the predictable proportion of variance in the model.

If the RPC is less than one, then the correlation of the model ensemble mean with observations (rmo) is smaller than would be expected from the predictable fraction of variance in the model. RPC values below 1 are commonly found in climate predictions, especially in tropical seasonal predictions.20,31 This can be caused by several factors, including too few ensemble members to eliminate unpredictable noise, a lack of spread in the forecast ensemble, systematic errors in predicted signals such as poorly structured teleconnections or imperfect initialisation leading to ‘shocks’ in the forecasts.

If on the other hand, RPC is greater than one, then the correlation is higher than would be expected from the proportion of signal in the ensemble variance. RPC values above 1 were not generally expected, but this second possibility has been considered32 and examples have now been found in a number of different ensemble seasonal predictions, particularly in winter predictions of the NAO and Arctic Oscillation.21,23,25,28,29 For example, in the seasonal forecasts of the NAO reported by Scaife et al.,23 the predictable ensemble mean signal was around 2 hPa, the total ensemble variability was around 8 hPa and the correlation was around 0.6 so the RPC = 0.6/(2./8.) > 2. The high correlation score is therefore inconsistent with the small predictable signal in the model and it has been shown that the discrepancy is highly statistically significant21, hence a ‘signal-to-noise paradox’.26

An interesting consequence of the signal-to-noise paradox comes from the alternate form of Eq. (4) based on correlations alone:

$${\mathrm {RPC}}^2 = r_{mo}^2{\mathrm{/ }}r_{mm}^2.$$
(5)

If RPC > 1, then Eq. (5) implies that the correlation between the model ensemble mean and the observations (rmo) exceeds the average correlation between the model ensemble mean and a single ensemble member (rmm). In this case we arrive at the counterintuitive result that the model is better at predicting the real world than it is at predicting itself.20 Figure 1 illustrates this explicitly for a set of seasonal predictions of the NAO. The correlation of the modelled NAO (black line) climbs with ensemble size due to the suppression of unpredictable noise (Eq. (2)), asymptoting at the predictable limit where a very large ensemble has suppressed all noise. If we replace the observations with a single ensemble member (without replacement in the ensemble mean so as to avoid artificially high correlations between members with the same realisation of noise), then the resulting correlation should ideally be the same, as each ensemble forecast member is meant to represent an alternate, but perfectly viable version of the observed evolution.

However, as shown in Fig. 1, in practise the correlation between the ensemble mean and observations (rmo) is higher than the correlation between the ensemble mean and individual ensemble members (rmm), yielding an RPC value in excess of 2 as explained above, and suggesting that the model is better able to predict the real world than it is able to predict itself. Now as the total ensemble standard deviation (σSm2 + σNm2) is close to the observed variability of 8 hPa, the only remaining term in Eq. (4) is the signal standard deviation (σSm) which must therefore be at least two times too small. Note that independent sets of ensemble predictions give a similar result26 and other climate models show similar effects in their predictions of the NAO and AO.22,25,28,29

Note also that practical calculations of the RPC are expected to be underestimates of the true value.20 This is because any practical ensemble is finite in size and so the correlation with observations (rmo) will likely be lower than that of an infinite ensemble. Furthermore, the ensemble mean variance (σSm2) will likely be higher than that of an infinite ensemble due to incomplete suppression of noise. According to Eq. (4), the RPC from any practical ensemble is therefore also likely to be an underestimate. We deduce that ensemble mean signals are likely more than two times too small for the NAO and recommend use of Eq. (5) to calculate the RPC as it is an unbiased estimate.

Finally, as noted above, the signal-to-noise paradox is not only limited to the NAO. Although it is clearest in and around the Atlantic basin, it also occurs in parts of the Pacific and the southern hemisphere (Fig. 2) where it occurs in predictions of the Southern Annular Mode.33 Similar situations have been found on longer timescales in both interannual and decadal predictions20,26,34,35 and in other predicted variables such as surface temperature,20 wind,28 and rainfall.20,36

## A signal-to-noise paradox in atmosphere-only models

So far we have seen that initialised climate predictions of the atmospheric circulation in the Atlantic sector exhibit a signal-to-noise paradox, where they are better at predicting the real world than they are at predicting themselves. In this section we show that this idea could potentially explain a number of earlier results from atmosphere-only climate models forced by specified ocean conditions, and that the signal-to-noise paradox appears to have been present in generations of previous climate models.

Early studies of NAO variability and its potential predictability, given specified ocean surface conditions, gave moderate, but highly significant correlations with observations if enough ensemble members were used to eliminate unpredictable variability in the model.37,38,39 This important result suggested that their might be significant long-range predictability of the winter NAO (as has since been demonstrated), but it was inconclusive at the time because these were not actual forecasts. The specified ocean conditions in these experiments contained information from the future and in particular, this contained information about the subsequent behaviour of the NAO, as the NAO leaves a tripolar imprint in ocean temperatures40 which could feedback to the atmosphere. Careful arguments were put forward to suggest that reproducibility of the observed NAO variability in atmosphere-only model experiments might therefore be due to the limitations of the experiment in specifying the future ocean conditions, and that this could give a misleading overestimate of actual predictability.41 Despite this limitation, ensembles of these atmospheric simulations appear to have contained the same paradoxical result found in long-range forecasts and discussed in the previous section. Figure 3 shows the skill of reproducing NAO variability in one such ensemble of atmospheric model simulations. The same slow climb of correlation skill with ensemble size occurred (blue curve), and the correlation between the ensemble mean and the observed NAO, although modest, ultimately rose to a level exceeding the typical correlation with single ensemble members (black dots). Given the striking similarity between these results and results from the coupled model predictions in Fig. 1, it appears that that these early simulations were subject to the same signal-to-noise paradox.

Other atmosphere model experiments suggest that the signal-to-noise paradox might also be present on multidecadal timescales. Although it has since declined,42 the large multidecadal increase of the NAO from its low values in the 1960s to its very high values in the early 1990s has been the subject of many studies. The mechanisms behind this shift are still only partly understood and studies have linked it to changes in the Indian ocean basin,43 changes in the stratosphere,44 changes in the tropics,45,46 simple internal variability,47 coupled ocean–atmosphere cycles,48 or even climate change.49,50 However, there is a common thread to many of these studies, in that (apart from very rare exceptions) these experiments consistently reproduce only a fraction of the observed low frequency variability, even when multiple models and multiple ensemble members are considered.51 Although it is difficult to assess the significance of such results because the period of rapid NAO increase has been preselected from the observational record, this underestimation of multidecadal variability of the NAO in atmosphere-only (and coupled ocean–atmosphere52) model experiments is consistent with the weak reproduction of NAO variability in the signal-to-noise paradox.

Numerous other studies also show weak modelled signals in simulations of the atmospheric circulation in the Atlantic sector. The NAO-like response to the stratospheric quasi-biennial oscillation in winter appears to be underestimated in climate simulations17,53,54 as is the NAO-like response to tripolar Atlantic SST anomalies55,56 and the apparent response to Arctic sea ice perturbations.57

In summary, it appears that the signal-to-noise paradox has been present in atmospheric climate models for some time and it may occur across a wide range of timescales and in the Atlantic response to a wide range of phenomena.

## A signal-to-noise paradox in the response to external climate forcing?

A first line of evidence for a signal-to-noise paradox in the climate response to external forcing comes from the simulated response to tropical volcanic eruptions. Analysis of historical climate data in post eruption winters again suggests a response in sea level pressure that projects strongly on to the winter Arctic Oscillation or NAO,58,59 see Fig. 4, left panel.

However, when volcanic aerosol forcing is added to climate models, the response in the AO or NAO is of the correct sign but invariably weak (Fig. 4, noting the different scale bars) and much weaker than observed for both multimodel and individual model studies.59,60,61,62 For example, Stenchikov et al.59 state that: “…associated dynamic perturbations and winter surface warming over Northern Europe and Asia in the post-volcano winters is much weaker in the models than in observations”. Furthermore, it has also been shown that the observed response appears to be too large to be easily reconciled as chance aliasing of internal variability of the Arctic Oscillation onto post volcanic winters.60,62,63 In contrast, the mean global cooling response to volcanic eruptions in climate models does not show this feature and may even be too strong,64,65 so it is likely that in this case, the global irradiance forcing is sufficient and it is again the regional response in the north Atlantic that appears to lack amplitude. Several studies also point out a prolonged response to volcanic forcing, with a second winter response that is similar to that in the winter immediately following the eruption58 but this lagged response is not generally reproduced in climate models either.59,62 The weak model response in the two winters following explosive tropical volcanic eruptions may therefore be another example of the signal-to-noise paradox, with a similar pattern but weaker amplitude Atlantic sector response than is found in observations.

A second line of evidence for a signal-to noise paradox in the external response to climate forcing comes from a number of studies that point out that the surface response to solar variability may be too weak in climate model experiments.66,67,68 Recent modelling studies have confirmed a regional response in sea level pressure that maps onto the Arctic Oscillation and NAO,67,69,70 as has previously been repeatedly suggested from analysis of historical climate observations.71,72,73 A connection with the signal-to-noise paradox described here comes from the observed response to the 11-year solar cycle reaching its maximum not at the peak of the solar cycle, but rather at a lag of a few (2–4) years.69,74 In climate model experiments,69 the transient response to a step change in solar forcing, grows year on year in association with a growing tripolar anomaly in the North Atlantic sea surface temperature. This tripolar SST pattern is known to feed positively back onto the atmospheric circulation associated with the NAO,37,38,40,55,75 so the integrating effect of the ocean due to the relatively long decay time of oceanic anomalies and the annual re-emergence of the solar induced heat content anomaly in the Atlantic could give rise to a delay in the maximum response69,74 as shown in Fig. 5.

Viewing the solar cycle as a boundary condition with an 11-year sinusoidal period, and viewing the response as an ocean integrated (cosine) wave with the same period, then we expect a lag of π/2 radians (one quarter cycle) in the timing of the maximum response. This is approximately 3 years for the 11-year solar cycle, as observed. In contrast, when taken as a whole, the reported responses to the 11-year solar cycle in current climate models appear to be weak and most model simulations show no clear lag.68,70,74,76,77 Scaife et al.74 showed that this could result from too weak a feedback in the surface climate response to solar variability. We should of course note that the strength of observational estimates of solar irradiance variations continue to be refined78 and this uncertainty in forcing may contribute to uncertainty in the amplitude of the solar response in surface climate. Nevertheless, the existence of a lag in the observed response and the apparent difficulty in simulating this lag in climate models is additional evidence of a weak response of the atmospheric circulation in the north Atlantic sector to external forcing which is again consistent with the signal-to-noise paradox in climate predictions.

Our last example of the possible effects of the signal-to-noise paradox is in the tropospheric climate response to the development of the ozone hole. While some studies report successful simulation of the temporal evolution,79 a number of studies have noted a weaker then observed response in the Southern Annular Mode (SAM)80,81,82,83 which is often then attributed to coincidental internal variability. While this coincidental alignment of forced and internal variability in the SAM is perfectly possible, we again note that the common tendency for models to simulate weaker than observed changes is consistent with a signal-to-noise paradox in the forced response of the SAM in models. Indeed, this has recently been found in seasonal climate predictions of the SAM.33

In summary, the signal-to-noise paradox may therefore also apply to a range of responses to external forcing, including volcanic forcing, solar variability, and ozone depletion.

## Implications

If the signal-to-noise ratio is underestimated by climate model simulations and predictions, then each model ensemble member cannot be regarded as an equivalent realisation of the real climate system to that seen in the observations as it contains a smaller proportion of predictable variance than the observations. This has a number of important implications:

1. 1.

Many measures will give inaccurate estimates of the forecast skill that is potentially available. These include error measures such as root-mean-squared error and mean-squared-skill-score,84 as well as probabilistic measures, including reliability and Brier skill score, that are based on the distribution of ensemble members.30 Errors in the signal-to-noise ratio can be corrected in forecasts by a postprocessing step that amplifies the predictable signal20,85 but measures that assess the raw model data without such a correction will be misleading. Note that anomaly correlation is not affected by the magnitude of the ensemble mean signal and is therefore unaffected, so it should be routinely included in any skill assessment, providing that a large enough ensemble is used to accurately estimate the predictable (ensemble mean) signal.

2. 2.

Seasonal forecasts of tropical regions are typically overconfident and their statistical properties may be improved by techniques such as stochastic physics86 that often increase the ensemble spread. However, such techniques could potentially exacerbate problems where the signal-to-noise ratio is too small and the models are under-confident.

3. 3.

Predictability is often estimated from model ensembles, for example, by assessing the skill of predicting a single model member instead of the observations.87,88,89 This has often been regarded as an upper limit of the skill that could be achieved using a particular model90 because it mimics the situation in which each ensemble member is initialised with perfect observations. However, if the signal-to noise ratio were too large, then the additional predictability in the model ensembles would be an overestimate, rather than representing potential for future improvement. Similarly, if the modelled signal-to-noise ratio is too small, as found here, then the real world is more predictable than the model (Fig. 1) and this approach will underestimate the true predictability.

4. 4.

Event attribution91,92 seeks to quantify the change in the probability of weather events due to human influences. One approach is to compare a large ensemble of model simulations driven by observed SSTs with another ensemble driven by counterfactual SSTs—obtained by removing the anthropogenic signal. This relies on the model correctly simulating the amplitude of the response to SSTs and will give incorrect results, especially in the North Atlantic sector, where the signal-to-noise ratio is too small.

5. 5.

Large ensembles of model simulations suggest that natural internal variability is the major source of uncertainty in regional climate change projections over the coming decades.93 This approach relies on the models correctly responding to external forcing, including greenhouse gases, anthropogenic aerosols and ozone. If the signal-to-noise paradox also applies to the response to these forcing factors, then the role of internal variability will be overestimated by this technique.

6. 6.

Although the signal-to-noise paradox highlights a potentially serious problem with climate models, its discovery helps to reveal that skilful forecasts are now possible for some phenomena, including the NAO,23 including some of the most extreme cases94 that were previously thought to be unpredictable.95 We note that a large ensemble is required in order to extract the maximum predictable signal (Fig. 1), and postprocessing is needed to boost its magnitude.20

7. 7.

Resolving the signal-to-noise paradox and correcting it in climate models could increase the strength of the model response to a whole host of phenomena and would settle longstanding debates about whether various teleconnections are real. It would also enable smaller ensembles to be used for detection, attribution and prediction, and could increase the skill of climate forecasts and climate services.

## Conclusions

We have provided a wide range of evidence for a ‘signal-to-noise paradox’ in climate science. The paradox lies in the fact that climate models are better able to predict observed climate variability than would be expected from their low signal-to-noise ratio. However, in many cases, the total amount of variability found in ensemble member simulations closely matches that found in observations, and so it is not just a simple case of models being too ‘noisy’ or containing too much variability. We instead conclude that the amplitude of predictable signals in response to boundary conditions or external forcing may be much too weak, especially in the Atlantic sector. This helps to explain why so many climate modelling studies show clear relationships between model and observations only after anomalies are ‘standardised’. These anomalously weak signals in predictions hamper the use of seasonal and decadal predictions, inhibit the validity of probabilistic and ensemble approaches and prevent the accurate estimation of forced climate variability in the Atlantic sector.

The signal-to-noise paradox appears to be ubiquitous across timescales: it appears on timescales of seasons20,23,24,25,36,38 years20,26,39 and multi-decades.43,50,51 It may even be present on multi-century timescales in the Atlantic sector as there is proxy observational evidence for negative NAO and associated European cooling in the Little Ice Age96,97 but numerous studies have noted only weak model responses in the NAO98 and associated temperatures.99

The signal-to-noise paradox also appears to be ubiquitous across different climate models, spanning many years of model development and using a wide variety of ensemble generation techniques.23,25,27,28,29,38,39,43,55

The signal-to-noise paradox appears to be robust across different experimental procedures. It appears as weak signals in ensemble forecasts20,23,25,26,28,36 in atmosphere-only simulations forced by prescribed ocean conditions29,38,39,51,55 and in models subjected to changes in radiative forcing.59,61,62,74,99

While this review cannot provide absolute proof, it summarises a growing body of evidence for a signal-to-noise paradox in initialised climate predictions. A chance alignment of unpredictable and predictable variability could in principle lead to an apparent paradox in this context but this is very unlikely.21 Instead we suggest evidence that it may arise from an underestimate in the strength of a wide variety of North Atlantic teleconnections in climate models. The reasons for this remain unclear but there are a number of obvious candidates including: lack of extratropical ocean–atmosphere coupling, weak eddy feedback in current resolution models, errors in remote teleconnections, or errors in parametrised processes such as atmospheric convection. Some of the further supporting evidence given here may eventually be explained by other means, but there is also evidence that the signal-to-noise paradox may be present in the modelled response of the Atlantic sector to external radiative forcing. We do not yet know whether it applies to the regional response to anthropogenic greenhouse gases, but of course that is an important question for future research, as it could imply large changes in regional climate that are currently unrepresented in climate model projections.

### Data Availability

Data sharing not applicable to this article as no datasets were generated or analysed during the current study.

## References

1. 1.

Lorenz, E. N. Deterministic nonperiodic flow. J. Atmos. Sci. 20, 130–141 (1963).

2. 2.

Lorenz, E. N. The predictability of a flow which possesses many scales of motion. Tellus 21, 289–307 (1969).

3. 3.

Epstein, E. S. Stochastic dynamic prediction. Tellus 21, 739–759 (1969).

4. 4.

Murphy, J. & Palmer, T. N. Experimental monthly long-range forecasts for the United Kingdom. Part II. A real-time long-range forecast by an ensemble of numerical integrations. Meteorol. Mag. 115, 337–349 (1986).

5. 5.

MacLachlan, C. et al. Global seasonal forecast system version 5 (GloSea5): a high-resolution seasonal forecast system. Q. J. R. Meteorol. Soc. 141, 1072–1084 (2015).

6. 6.

Lambert, S. & Boer, G. CMIP1 evaluation and intercomparison of coupled climate models. Clim. Dyn. 17, 83 (2001).

7. 7.

Slingo, J. & Palmer, T. Uncertainty in weather and climate prediction. Philos. Trans. R. Soc. A 369, 4751–4767 (2011).

8. 8.

Alessandri, A. et al. Evaluation of probabilistic quality and value of the ENSEMBLES multimodel seasonal forecasts: comparison with DEMETER. Mon. Weather Rev. 139, 581–607 (2011).

9. 9.

Weisheimer, A. & Palmer, T. On the reliability of seasonal climate forecasts. J. R. Soc. Interface 11, 20131162 (2014).

10. 10.

Mason, S. J. et al. The IRI seasonal climate prediction system and the 1997/98 El Niño event. Bull. Am. Meteor. Soc. 80, 1853–1873 (1999).

11. 11.

Simmons, A. J. & Hollingsworth, A. Some aspects of the improvement in skill of numerical weather prediction. Q. J. R. Meteorol. Soc. 128, 647–677 (2002).

12. 12.

Domeisen, D. I. V., Badin, G. & Koszalka, I. M. How predictable are the Arctic and North Atlantic oscillations? Exploring the variability and predictability of the northern hemisphere. J. Clim. 31, 997–1014 (2018).

13. 13.

Vitart, F. Madden-Julian oscillation prediction and teleconnections in the S2S database. Q. J. R. Meteorol. Soc. 143, 2210–2220 (2017).

14. 14.

Luo, J., Masson, S., Behera, S. K. & Yamagata, T. Extended ENSO predictions using a fully coupled ocean–atmosphere model. J. Clim. 21, 84–93 (2008).

15. 15.

Doblas-Reyes, F. J. et al. Initialized near-term regional climate change prediction. Nat. Commun. 4, 1715 (2013).

16. 16.

Hermanson, L. et al. Forecast cooling of the Atlantic subpolar gyre and associated impacts. Geophys. Res. Lett. 41, 5167–5174 (2014).

17. 17.

Scaife, A. A. et al. Predictability of the quasi-biennial oscillation and its northern winter teleconnection on seasonal to decadal timescales. Geophys. Res. Lett. 41, 1752–1758 (2014).

18. 18.

Smith, D. M., Scaife, A. A. & Kirtman, B. What is the current state of scientific knowledge with regard to seasonal and decadal forecasting? Environ. Res. Lett. 7, 015602 (2012).

19. 19.

Sun, C., Li, J. & Zhao, S. Remote influence of Atlantic multidecadal variability on Siberian warm season precipitation. Sci. Rep. 5, 16853 (2015).

20. 20.

Eade, R. et al. Do seasonal to decadal climate predictions underestimate the predictability of the real world? Geophys. Res. Lett. 41, 5620–5628 (2014).

21. 21.

Siegert, S. et al. A Bayesian framework for verification and recalibration of ensemble forecasts: how uncertain is NAO predictability? J. Clim. 29, 995–1012 (2016).

22. 22.

Riddle, E. E., Butler, A. H., Furtado, J. C., Cohen, J. L. & Kumar, A. CFSv2 ensemble prediction of the wintertime Arctic Oscillation. Clim. Dyn. 41, 1099–1116 (2013).

23. 23.

Scaife, A. A. et al. Skilful long range prediction of European and North American winters. Geophys. Res. Lett. 41, 2514–2519 (2014).

24. 24.

Kang, D. et al. Prediction of the Arctic oscillation in boreal winter by dynamical seasonal forecasting systems. Geophys. Res. Lett. 41, 3577–3585 (2014).

25. 25.

Stockdale, T. N., Molteni, F. & Ferranti, L. Atmospheric initial conditions and the predictability of the Arctic oscillation. Geophys. Res. Lett. 42, 1173–1179 (2015).

26. 26.

Dunstone, N. et al. Skilful predictions of the winter North Atlantic Oscillation one year ahead. Nat. Geosci. https://doi.org/10.1038/NGEO2824 (2016).

27. 27.

Athanasiadis, P. J. et al. A multisystem view of wintertime NAO seasonal predictions. J. Clim. 30, 1461–1475 (2017).

28. 28.

Saito, N., et al. Seasonal predictability of the North Atlantic Oscillation and zonal mean fields associated with stratospheric influence in JMA/MRI-CPS2. SOLA 13, 209–213 (2017).

29. 29.

Kumar A. & M. Chen. Causes of skill in seasonal predictions of the Arctic Oscillation. Clim. Dyn. https://doi.org/10.1007/s00382-017-4019-9 (2017).

30. 30.

Wilks, D. S. Statistical Methods in the Atmospheric Sciences 3rd edn (Academic Press, Oxford, Waltham, MA, 2011).

31. 31.

Shi, W., Schaller, N., MacLeod, D., Palmer, T. N. & Weisheimer, A. Impact of hindcast length on estimates of seasonal climate predictability. Geophys. Res. Lett. 42, 1554–1559 (2015).

32. 32.

Kumar, A., Peng, P. & Chen, M. Is there a relationship between ptential and actual skill? Mon. Weather Rev. 142, 2220–2227 (2014).

33. 33.

Seviour, W. J. et al. Skillful seasonal prediction of the Southern annular mode and Antarctic ozone. J. Clim. 27, 7462–7474 (2014).

34. 34.

Ho, C. K. et al. Examining reliability of seasonal to decadal sea surface temperature forecasts: The role of ensemble dispersion. Geophys. Res. Lett. 40, 5770–5775 (2013).

35. 35.

Sheen, K. L. et al. Skilful prediction of Sahel summer rainfall on inter-annual and multi-year timescales. Nat. Commun. 8, 14966 (2017).

36. 36.

Dunstone, N. J. et al. Skilful seasonal predictions of Summer European rainfall. Geophys. Res. Lett. https://doi.org/10.1002/2017GL076337 (2018).

37. 37.

Rodwell, M. J., Rowell, D. P. & Folland, C. K. Oceanic forcing of the wintertime North Atlantic Oscillation and European climate. Nature 398, 320–323 (1999).

38. 38.

Mehta, V. M., Suarez, M. J., Manganello, J. V. & Delworth, T. L. Oceanic influence on the North Atlantic Oscillation and associated northern hemisphere climate variations: 1959–1993. Geophys. Res. Lett. 27, 121–124 (2000).

39. 39.

Latif, M., Arpe, K. & Roeckner, E. Oceanic control of decadal North Atlantic sea level pressure variability in winter. Geophys. Res. Lett. 27, 727–730 (2000).

40. 40.

Visbeck, M., et al. in The North Atlantic Oscillation : Climate Significance and Environmental Impact. Eds Hurrell, J., Kushnir, Y., Ottersen, G. & Visbeck, M., American Geophysical Union Monograph. https://doi.org/10.1029/GM134 (2003)..

41. 41.

Bretherton, C. S. & Battisti, D. S. An interpretation of the results from atmospheric general circulation models forced by the time history of the observed sea surface temperature distribution. Geophys. Res. Lett. 27, 767–770 (2000).

42. 42.

Hanna, E., Cropper, T. E., Jones, P. D., Scaife, A. A. & Allan, R. Recent seasonal asymmetric changes in the NAO (a marked summer decline and increased winter variability) and associated changes in the AO and Greenland Blocking Index. Int. J. Climatol. 35, 2540–2554 (2015).

43. 43.

Hoerling, M. P. et al. Twentieth century North Atlantic climate change. Part II: Understanding the effect of Indian Ocean warming. Clim. Dyn. 23, 391 (2004).

44. 44.

Scaife, A. A., Knight, J. R., Vallis, G. K. & Folland, C. K. A stratospheric influence on the winter NAO and North Atlantic surface climate. Geophys. Res. Lett. 32, L18715 (2005).

45. 45.

Greatbatch, R. J., Gollan, G., Jung, T. & Kunz, T. Factors influencing Northern Hemisphere winter mean atmospheric circulation anomalies during the period 1960/61 to 2001/02. Q. J. R. Meteorol. Soc. 138, 1970–1982 (2012).

46. 46.

Kucharski, F., Molteni, F. & Bracco, A. Decadal interactions between the western tropical Pacific and the North Atlantic Oscillation. Clim. Dyn. 26, 79–91 (2005).

47. 47.

Semenov, V. A., Latif, M., Jungclaus, J. H. & Park, W. Is the observed NAO variability during the instrumental record unusual? Geophys. Res. Lett. 35, L11701 (2008).

48. 48.

Sun, C., Li, J. & Jin, F.-F. A delayed oscillator model for the quasi-periodic multidecadal variability of the NAO. Clim. Dyn. 45, 2083–2099 (2015).

49. 49.

Shindell, D. T., Schmidt, G. A., Miller, R. L. & Rind, D. Northern hemisphere winter climate response to greenhouse gas, ozone, solar, and volcanic forcing. J. Geophys. Res. 106(D7), 7193–7210 (2001).

50. 50.

Gillett, N. P., Zwiers, F. W., Weaver, A. J. & Stott, P. A. Detection of human influence on sea-level pressure. Nature 422, 292–294 (2003).

51. 51.

Scaife, A. A. et al. The CLIVAR C20C project: selected twentieth century climate events. Clim. Dyn. 33, 603–614 (2009).

52. 52.

Wang, X., Li, J., Sun, C. & Liu, T. NAO and its relationship with the Northern Hemisphere mean surface temperature in CMIP5 simulations. J. Geophys. Res. Atmos. 122, 4202–4227, https://doi.org/10.1002/2016JD025979.

53. 53.

Marshall, A. G. & Scaife, A. A. Impact of the QBO on surface winter climate. J. Geophys. Res. 114, D18110 (2009).

54. 54.

Anstey, J. A., Shepherd, T. G. & Scinocca, J. F. Influence of the quasi-biennial oscillation on the extratropical winter stratosphere in an stmospheric heneral virculation model and in reanalysis data. J. Atmos. Sci. 67, 1402–1419 (2010).

55. 55.

Rodwell, M. J. & Folland, C. K. Atlantic air–sea interaction and seasonal predictability. Q. J. R. Meteorol. Soc. 128, 1413–1443 (2002).

56. 56.

Gastineau, G., D’Andrea, F. & Frankignoul, C. Atmospheric response to the North Atlantic Ocean variability on seasonal to decadal time scales. Clim. Dyn. 40, 2311 (2013).

57. 57.

Mori, M., Watanabe, M., Shiogama, H., Inoue, J. & Kimoto, M. Robust Arctic sea-ice influence on the frequent Eurasian cold winters in past decades. Nat. Geosci. 7, 869–873 (2014).

58. 58.

Robock, A. & Mao, J. The volcanic signal in surface temperature observations. J. Clim. 8, 1086–1103 (1995).

59. 59.

Stenchikov, G. et al. Arctic Oscillation response to volcanic eruptions in the IPCC AR4 climate models. J. Geophys. Res. 111, D07107 (2006).

60. 60.

Marshall, A. G., Scaife, A. A. & Ineson, S. Enhanced seasonal prediction of European winter warming following volcanic eruptions. J. Clim. 22, 6168–6180 (2009).

61. 61.

Driscoll, S., Bozzo, A., Gray, L. J., Robock, A. & Stenchikov, G. Coupled Model Intercomparison Project 5 (CMIP5) simulations of climate following volcanic eruptions. J. Geophys. Res. 117, D17105 (2012).

62. 62.

Swingedouw, D. et al. Impact of explosive volcanic eruptions on the main climate variability modes. Glob. Planet. Change 150, 24–45 (2017).

63. 63.

Christiansen, B. Volcanic eruptions, large-scale modes in the Northern Hemisphere, and the El Niño-Southern Oscillation. J. Clim. 21, 910–922 (2008).

64. 64.

Schurer, A. P., Hegerl, G. C., Mann, M. E., Tett, S. F. B. & Phipps, S. J. Separating forced from chaotic climate variability over the past millennium. J. Clim. 26, 6954–6973 (2013).

65. 65.

Smith, D. M. et al. Role of volcanic and anthropogenic aerosols in recent slowdown in global surface warming. Nat. Clim. Change 6, 936–940 (2016).

66. 66.

Stott, P. A., Jones, G. S. & Mitchell, J. F. Do models underestimate the solar contribution to recent climate change? J. Clim. 16, 4079–4093 (2003).

67. 67.

Matthes, K., Langematz, U., Gray, L. L., Kodera, K. & Labitzke, K. Improved 11-year solar signal in the Freie Universität Berlin Climate Middle Atmosphere Model (FUB-CMAM). J. Geophys. Res. 109, D06101 (2004).

68. 68.

Gray, L. J. et al. A lagged response to the 11 year solar cycle in observed winterAtlantic/European weather patterns. J. Geophys. Res. Atmos. 118, 13,405–13,420 (2013).

69. 69.

Ineson, S. et al. Solar forcing of winter climate variability in the Northern Hemisphere. Nat. Geosci. 4, 753–757 (2011).

70. 70.

Thiéblemont, R., Matthes, K., Omrani, N.-E., Kodera, K. & Hansen, F. Solar forcing synchronizes decadal North Atlantic climate variability. Nat. Commun. 6, 8268 (2015).

71. 71.

Kodera, K. & Kuroda, Y. Dynamical response to the solar cycle. J. Geophys. Res. 107(D24), 4749 (2002).

72. 72.

Lockwood, M., Harrison, R. G., Woollings, T. & Solanki, S. K. Are cold winters in Europe associated with low solar activity? Environ. Res. Lett. 5, 024001 (2010).

73. 73.

Woollings, T., Lockwood, M., Masato, G., Bell, C. & Gray, L. Enhanced signature of solar variability in Eurasian winter climate. Geophys. Res. Lett. 37, L20805 (2010).

74. 74.

Scaife, A. A. et al. A mechanism for lagged North Atlantic climate response to solar variability. Geophys. Res. Lett. 40, https://doi.org/10.1002/grl.50099 (2013).

75. 75.

Yukimoto, S. & Kodera, K. Annular modes forced from the stratosphere and interactions with the ocean. J. Meteorol. Soc. Jpn. 85, 943–952 (2000).

76. 76.

Andrews, M. B., Knight, J. R. & Gray, L. J. A simulated lagged response of the North Atlantic Oscillation to the solar cycle over the period 1960–2009. Env. Res. Lett. 10, 5 (2015).

77. 77.

Misios, S. et al. Solar signals in CMIP-5 simulations: effects of atmosphere–ocean coupling. Q. J. R. Meteorol. Soc. 142, 928–941 (2016).

78. 78.

Matthes et al. Solar forcing for CMIP6 (v3.2). Geosci. Model Dev. 10, 2247–2302 (2016).

79. 79.

Thompson, D. W. J. et al. Signatures of the Antarctic ozone hole in Southern Hemisphere surface climate change. Nat. Geosci. 4, 741–749 (2011).

80. 80.

Karpechko, A. Y., Gillett, N. P., Marshall, G. J. & Scaife, A. A. Stratospheric influence on circulation changes in the Southern Hemisphere troposphere in coupled climate models. Geophys. Res. Lett. 35, L20806 (2008).

81. 81.

Dall’Amico, M. et al. Impact of stratospheric variability on tropospheric climate change. Clim. Dyn. 34, 399–417 (2010).

82. 82.

Morgenstern, O. et al. Direct and ozone-mediated forcing of the Southern Annular Mode by greenhouse gases. Geophys. Res. Lett. 41, 9050–9057 (2014).

83. 83.

Seviour, W. J., Waugh, D. W., Polvani, L. M., Correa, G. J. & Garfinkel, C. I. Robustness of the simulated tropospheric response to ozone depletion. J. Clim. 30, 2577–2585 (2017).

84. 84.

Goddard, L., et al. A verification framework for interannual-to-decadal predictions experiments. Clim. Dyn. https://doi.org/10.1007/s00382-012-1481-2 (2012).

85. 85.

Sansom, P. G., Ferro, C. A. T., Stephenson, D. B., Goddard, L. & Mason, S. J. Best practices for postprocessing ensemble climate forecasts. Part I: Selecting appropriate recalibration methods. J. Clim. 29, 7247 (2016).

86. 86.

Weisheimer, A., Palmer, T. N. & Doblas-Reyes, F. J. Assessment of representations of model uncertainty in monthly and seasonal forecast ensembles. Geophys. Res. Lett. 38, L16703 (2011).

87. 87.

Griffies, S. & Bryan, K. A predictability study of simulated North Atlantic multidecadal variability. Clim. Dyn. 13, 459–487 (1997).

88. 88.

Koenigk, T. & Mikolajewicz, U. Seasonal to interannual climate predictability in mid and high northern latitudes in a global coupled model. Clim. Dyn. 32, 783 (2009).

89. 89.

Branstator, G. & Teng, H. Two limits of initial-value decadal predictability in a CGCM. J. Clim. 23, 6292–6310 (2010).

90. 90.

Boer, G. J., Kharin, V. V. & Merryfield, W. J. Decadal predictability and forecast skill. Clim. Dyn. 41, 1817–1833 (2013).

91. 91.

Stott, P. A. et al. Attribution of extreme weather and climate-related events. WIREs Clim. Change 7, 23–41 (2016).

92. 92.

Schaller, N. et al. Human influence on climate in the 2014 southern England winter floods and their impacts. Nat. Clim. Change 6, 627–634 (2016).

93. 93.

Deser, C., Phillips, A., Bourdette, V. & Teng, H. Uncertainty in climate change projections: the role of internal variability. Clim. Dyn. 38, 527–547 (2012).

94. 94.

Fereday D., A. Maidens, A. Arribas, A.A. Scaife & J.R. Knight. Seasonal forecasts of Northern Hemisphere Winter 2009/10. Env. Res. Lett. 7, https://doi.org/10.1088/1748-9326/7/3/034031 (2012).

95. 95.

Jung, T., Vitart, F., Ferranti, L. & Morcrette, J.-J. Origin and predictability of the extreme negative NAO winter of 2009/10. Geophys. Res. Lett. 38, L07701 (2011).

96. 96.

Trouet, V. et al. Persistent positive North Atlantic Oscillation mode dominated the Medieval Climate Anomaly. Science 324, 78–80 (2009).

97. 97.

Leijonhufvud, L. et al. Five centuries of Stockholm winter/spring temperatures reconstructed from documentary evidence and instrumental observations. Clim. Change 101, 109–141 (2010).

98. 98.

Moreno-Chamarro, E., Zanchettin, D., Lohmann, K., Luterbacher, J. & Jungclaus, J. H. Winter amplification of the European Little Ice Age cooling by the subpolar gyre. Sci. Rep. 7, 9981 (2017).

99. 99.

Owens, M. J. et al. The Maunder minimum and the Little Ice Age: an update from recent reconstructions and climate simulations. J. Space Weather Space Clim. 2017, A33 (2017).

## Acknowledgements

This work was supported by the Joint DECC/Defra Met Office Hadley Centre Climate Programme (GA01101).

## Author information

Authors

### Contributions

Both authors researched, collated and wrote the manuscript.

## Ethics declarations

### Competing interests

The authors declare no competing interests.

Publisher's note: Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

## Rights and permissions

Reprints and Permissions

Scaife, A.A., Smith, D. A signal-to-noise paradox in climate science. npj Clim Atmos Sci 1, 28 (2018). https://doi.org/10.1038/s41612-018-0038-4

• Revised:

• Accepted:

• Published:

• ### Skilful predictions of the Asian summer monsoon one year ahead

• Yuhei Takaya
• Yu Kosaka
• Shuhei Maeda

Nature Communications (2021)

• ### Multi-annual prediction of drought and heat stress to support decision making in the wheat sector

• Balakrishnan Solaraju-Murali
• Nube Gonzalez-Reviriego
• Francisco J. Doblas-Reyes

npj Climate and Atmospheric Science (2021)

• ### NAO predictability from external forcing in the late 20th century

• Jeremy M. Klavans
• Mark A. Cane
• Lisa N. Murphy

npj Climate and Atmospheric Science (2021)

• ### Seasonal predictability of baroclinic wave activity

• Gan Zhang
• Hiroyuki Murakami
• Liping Zhang

npj Climate and Atmospheric Science (2021)

• ### Sea surface temperature predictability in the North Pacific from multi-model seasonal forecast

• Emi Yati
• Shoshiro Minobe

Journal of Oceanography (2021)


text:
# How would you convert y=2sin(x-π)+5 into a cosine function?

Jul 8, 2017

$y = - 2 \sqrt{1 - {\cos}^{2} x} + 5$

#### Explanation:

We use the identities $\sin \left(- A\right) = - \sin A$ and $\sin \left(\pi - A\right) = \sin A$

As such $y = 2 \sin \left(x - \pi\right) + 5$

$= 2 \sin \left(- \left(\pi - x\right)\right) + 5$

$= - 2 \sin \left(\pi - x\right) + 5$

$= - 2 \sin x + 5$

$= - 2 \sqrt{1 - {\cos}^{2} x} + 5$


text:
AIMS Mathematics

2021, Issue 2:1624-1633. doi: 10.3934/math.2021097
Research article

Global injectivity of differentiable maps via W-condition in $\mathbb{R}^2$

• Received: 13 September 2020 Accepted: 16 November 2020 Published: 25 November 2020
• MSC : 14A25, 14R15, 26B10

• In this paper, we study the intrinsic relations between the global injectivity of the differentiable local homeomorphism map $F$ and the rate of the Spec$(F)$ tending to zero, where Spec$(F)$ denotes the set of all (complex) eigenvalues of Jacobian matrix $JF(x)$, for all $x\in \mathbb{R}^2$. They depend deeply on the $W$-condition which extends the $*$-condition and the $B$-condition. The $W$-condition reveals the rate that tends to zero of the real eigenvalues of $JF$, which can not exceed $\displaystyle O\Big(x\ln x(\ln \frac{\ln x}{\ln\ln x})^2\Big)^{-1}$ by the half-Reeb component method. This improves the theorems of Gutiérrez [16] and Rabanal [27]. The $W$-condition is optimal for the half-Reeb component method in this paper setting. This work is related to the Jacobian conjecture.

Citation: Wei Liu. Global injectivity of differentiable maps via W-condition in $\mathbb{R}^2$[J]. AIMS Mathematics, 2021, 6(2): 1624-1633. doi: 10.3934/math.2021097

Related Papers:

• In this paper, we study the intrinsic relations between the global injectivity of the differentiable local homeomorphism map $F$ and the rate of the Spec$(F)$ tending to zero, where Spec$(F)$ denotes the set of all (complex) eigenvalues of Jacobian matrix $JF(x)$, for all $x\in \mathbb{R}^2$. They depend deeply on the $W$-condition which extends the $*$-condition and the $B$-condition. The $W$-condition reveals the rate that tends to zero of the real eigenvalues of $JF$, which can not exceed $\displaystyle O\Big(x\ln x(\ln \frac{\ln x}{\ln\ln x})^2\Big)^{-1}$ by the half-Reeb component method. This improves the theorems of Gutiérrez [16] and Rabanal [27]. The $W$-condition is optimal for the half-Reeb component method in this paper setting. This work is related to the Jacobian conjecture.

 [1] A. Belov, L. Bokut, L. Rowen, J. T. Yu, Automorphisms in Birational and Affine Geometry, Vol. 79, Springer International Publishing Switaerland, 2014. [2] H. Bass, E. Connell, D. Wright, The Jacobian conjecture: Reduction of degree and formal expansion of the inverse, Bull. Amer. Math. Soc., 2 (1982), 287-330. [3] M. de Bondt, A. van den Essen, A reduction of the Jacobian conjecture to the symmetric case, Proc. Amer. Math. Soc., 8 (2005), 2201-2205. [4] F. Braun, J. Venato-Santos, Half-Reeb components, Palais-Smale condition and global injectivity of local diffeomorphisms in $\mathbb{R}^3$, Publ. Mat., 58 (2014), 63-79. [5] M. Chamberland, G. Meisters, A mountain pass to the Jacobian conjecture, Canad. Math. Bull., 41 (1998), 442-451. doi: 10.4153/CMB-1998-058-4 [6] A. Cima, A. Gasull, F. Manosas, The discrete Markus-Yamabe problem, Nonlinear Anal. Theory Methods Appl., 35 (1999), 343-354. doi: 10.1016/S0362-546X(97)00715-3 [7] A. Cima, A. van den Essen, A. Gasull, E. Hubbers, F. Manosas, A polynomial counterexample to the Markus-Yamabe conjecture, Adv. Math., 131 (1997), 453-457. doi: 10.1006/aima.1997.1673 [8] S. L. Cynk, K. Rusek, Injective endomorphisms of algebraic and analytic sets, Ann. Polo. Math., 1 (1991), 31-35. [9] A. van den Essen, Polynomial Automorphisms and the Jacobian Conjecture, Berlin: Birkhäuser, 2000. [10] A. van den Essen, The amazing image conjecture, Image, 1 (2010), 1-24. [11] A. Fernandes, C. Gutiérrez, R. Rabanal, Global asymptotic stability for differentiable vector fields of $\mathbb{R}^2$, J. Diff. Equat., 206 (2004), 470-482. doi: 10.1016/j.jde.2004.04.015 [12] R. Fessler, A proof of the two dimensional Markus-Yamabe stability conjecture and a generalization, Ann. Polon. Math., 62 (1995), 45-74. doi: 10.4064/ap-62-1-45-74 [13] C. Gutiérrez, A solution to the bidimensional global asymptotic stability conjecture, Ann. Inst. Henri Poincaré, 12 (1995), 627-671. doi: 10.1016/S0294-1449(16)30147-0 [14] C. Gutiérrez, C. Maquera, Foliations and polynomial diffeomorphisms of $\mathbb{R}^3$, Math. Z., 162 (2009), 613-626. [15] C. Gutiérrez, B. Pires, R. Rabanal, Asymototic stability at infinity for differentiable vector fields of the plane, J. Diff. Equat., 231 (2006), 165-181. doi: 10.1016/j.jde.2006.07.025 [16] C. Gutiérrez, N. Van. Chau, A remark on an eigenvalue condition for the global injectivity of differentiable maps of $\mathbb{R}^2$, Disc. Contin. Dyna. Syst., 17 (2007), 397-402. doi: 10.3934/dcds.2007.17.397 [17] C. Gutiérrez, R. Rabanal, Injectivity of differentiable maps $\mathbb{R}^2$ → $\mathbb{R}^2$ at infinity, Bull. Braz. Math. Soc. New Series, 37 (2006), 217-239. doi: 10.1007/s00574-006-0011-4 [18] C. Gutiérrez, A. Sarmiento, Injectivity of C1 maps $\mathbb{R}^2$ → $\mathbb{R}^2$ at infinity, Asterisque, 287 (2003), 89-102. [19] O. H. Keller, Ganze gremona-transformation, Monatsh. Math., 47 (1929), 299-306. [20] A. Belov-Kanel, M. Kontsevich, The Jacobian conjecture is stably equivalent to the Dixmier conjecture, Mosc. Math. J., 7 (2007), 209-218. doi: 10.17323/1609-4514-2007-7-2-209-218 [21] W. Liu, Q. Xu, A minimax principle to the injectivity of the Jacobian conjecture, arXiv.1902.03615, 2019. [22] W. Liu, A minimax method to the Jacobian conjecture, arXiv.2009.05464, 2020. [23] C. Maquera, J. Venato-Santos, Foliations and global injectivity in $\mathbb{R}^n$, Bull. Braz. Math. Soc. New Series, 44 (2013), 273-284. doi: 10.1007/s00574-013-0013-y [24] L. Markus, H. Yamabe, Global stability criteria for differential system, Osaka Math. J., 12 (1960), 305-317. [25] S. Pinchuk, A counterexamle to the strong real Jacobian conjecture, Math. Z., 217 (1994), 1-4. doi: 10.1007/BF02571929 [26] R. Rabanal, An eigenvalue condition for the injectivity and asymptotic stability at infinity, Qual. Theory Dyn. Syst., 6 (2005), 233-250. doi: 10.1007/BF02972675 [27] R. Rabanal, On differentiable area-preserving maps of the plane, Bull. Braz. Math. Soc. New Series, 41 (2010), 73-82. doi: 10.1007/s00574-010-0004-1 [28] P. Rabier, Ehresmann fibrations and Palais-Smale conditions for morphisms of Finsler manifolds, Ann. Math., 146 (1997), 647-691. doi: 10.2307/2952457 [29] P. Rabier, On the Malgrange condition for complex polynomials of two variables, Manuscr. Math., 109 (2002), 493-509. doi: 10.1007/s00229-002-0322-8 [30] B. Smyth, F. Xavier, Injectivity of local diffeomorphisms from nearly spectral conditions, J. Diff. Equat., 130 (1996), 406-414. doi: 10.1006/jdeq.1996.0151 [31] W. Zhao, New proofs for the Abhyankar-Gurjar inversion formula and the equivalence of the Jacobian conjecture and the vanishing conjecture, Proc. Amer. Math. Soc., 139 (2011), 3141-3154. doi: 10.1090/S0002-9939-2011-10744-5
通讯作者: 陈斌, bchen63@163.com
• 1.

沈阳化工大学材料科学与工程学院 沈阳 110142

0.882 0.9


text:
<img src="https://d5nxst8fruw4z.cloudfront.net/atrk.gif?account=iA1Pi1a8Dy00ym" style="display:none" height="1" width="1" alt="" />

# Similar Solids

## Topographic maps and distance conversions

Estimated1 minsto complete
%
Progress
Practice Similar Solids
Progress
Estimated1 minsto complete
%
Understand Three-Dimensional Scale Models and Designs

Nicholas is studying volcanoes. He is trying to determine the height of the volcano by looking at a contour map. Looking at the contour map, Nicholas counts 17 contour lines map scale indicates that a contour interval is equivalent to 400 feet. How can he find the height?

In this concept, you will learn to understand three-dimensional scale models and designs.

### Three-Dimensional Figures

There are many different types of maps and models. If you work on interpreting two-dimensional maps, such as scale drawings and floor plans, you will use a scale to interpret measurements the actual dimensions and the scale dimensions. Two–dimensional representations mean that the things being represented can be easily shown in a flat plane.

You can also have a three–dimensional method of display. A three–dimensional figure contains the length, width and height or depth. A scale model is a model used to represent a three–dimensional space.

In order to find the actual dimensions from a scale model, you can set up and solve a proportion. The scale given in the model is the first ratio. The unknown length and the scale length is the second ratio. You compare the scale in the first ratio and you compare the two lengths in the second ratio.

Let’s look at an example.

Brianna is making a scale model of the White House using the scale \begin{align*}1\ cm = 0.5\ m\end{align*}. If the height of Brianna’s model is 42 cm, what is the height of the actual White House?

First, set up a proportion. The scale in the drawing says that \begin{align*}1\ cm = 0.5\ m\end{align*}, therefore the proportion is: \begin{align*}\frac{1\ cm}{0.5\ m}\end{align*}

Next, write the second ratio. You know the scale length is 42 cm. The unknown length is \begin{align*}x\end{align*}.

\begin{align*}\frac{1\ cm}{0.5\ m} = \frac{42\ cm}{x\ m} \end{align*}Then, cross-multiply to solve for \begin{align*}x\end{align*}.

\begin{align*}\begin{array}{rcl} \frac{1}{0.5} &=& \frac{42}{x} \\ 1x &=& 42 \times 0.5 \\ x &=& 21 \end{array}\end{align*}The answer is 21.

The height of the actual White House is 21 m.

When you want to show a map in a three-dimensional way, you use a topographic map. A topographic map is a type of map that shows not only the distances on the ground, but also the relief features of the area, such as mountains. The map uses contour lines to show the elevation of the area. Each contour line is a line of equal elevation or height. When contour lines are spread farther apart, the elevation is not as steep. Where contour lines are bunched close together, the elevation is steeper. Contour lines show the general shape of the terrain or land.

Topographic maps may also use colors to represent different features. Blue represents water, green represents vegetation, and brown lines represent topographic contours.

You can interpret these maps by using the scale. There will be a scale to show what each distance on the map represents, just like other maps. There will also be a scale to tell you what each contour line represents.

Let’s look at an example.

This map below shows a mountain from a national park in California. What is the height of the mountain?

First, look at the map scale. It states that the contour interval is 40 feet. That means that each contour line represents 40 feet of elevation.

Next, count the number of contour lines that make up the mountain. There are 10 contour lines. Write a proportion to find the height of the mountain.

\begin{align*}\frac{\text{1 line}}{\text{40 feet}}= \frac{\text{10 lines}}{\text{x feet}} \end{align*}

Then, cross-multiply to solve for \begin{align*}x\end{align*}.

\begin{align*} \begin{array}{rcl} \frac{1}{40} &=& \frac{10}{x} \\ 1x &=& 10 \times 40 \\ x &=& 400 \end{array}\end{align*}

The mountain is 400 feet high.

### Examples

#### Example 1

Earlier, you were given a problem about Nicholas and his volcanoes.

Nicholas is trying to determine the height of the volcano by looking at a contour map. He knows the map scale and the number of contour lines.

First, from the map scale it states that the contour interval is 400 feet. That means that each contour line represents 400 feet of elevation.

Next, write the proportion to find the height of the mountain for the 17 contour lines Nicholas counted.

\begin{align*}\frac{\text{1 line}}{\text{400 feet}} = \frac{\text{17 lines}}{\text{x feet}} \end{align*}Then, cross-multiply to solve for ‘\begin{align*}x\end{align*}’.

\begin{align*} \begin{array}{rcl} \frac{1}{400} &=& \frac{17}{x} \\ lx&=& 17 \times 400 \\ x &=& 6800 \end{array}\end{align*}

The volcano is 6800 feet high.

#### Example 2

Mike is building a scale model of an airplane using the scale \begin{align*}\frac{1}{4} \text{ inch} = 1\text{ foot}\end{align*}. If the actual length of the airplane is 150 feet, what will the length of the scale model be?

First, set up a proportion. The scale for the model is \begin{align*}\frac{1}{4}\text{ inch}= 1\text{ foot}\end{align*}.

\begin{align*}\frac{0.25 \text{ inches}}{1 \text{ foot}} = \frac{x \text{ inches}}{150 \text{ feet}} \end{align*}

Next, cross-multiply to solve for \begin{align*}x\end{align*}

\begin{align*}\begin{array}{rcl} \frac{0.25}{1} &=& \frac{x}{150} \\ 1x &=& 0.25 \times 150 \\ x &=& 37.5 \end{array}\end{align*}

The scale model is 37.5 inches long.

Use the contour lines in the diagram below to answer each question.

#### Example 3

What height would be represented by 5 contour lines?

First, look at the map scale. It states that the contour interval is 40 feet. That means that each contour line represents 40 feet of elevation.

Next, write the proportion to find the height of 5 contour lines.

\begin{align*}\frac{1 \text{ line}}{40 \text{ feet}} = \frac{5 \text{ lines}}{x \text{ feet}} \end{align*}

Then, cross-multiply to solve for \begin{align*}x \end{align*}.

\begin{align*}\begin{array}{rcl} \frac{1}{40} &=& \frac{5}{x} \\ 1x &=& 5 \times 40 \\ x &=& 200 \end{array}\end{align*}The answer is 200.

The height is 200 feet.

#### Example 4

What height would be represented by 8 contour lines?

First, look at the map scale. It states that the contour interval is 40 feet. That means that each contour line represents 40 feet of elevation.

Next, write the proportion to find the height of 8 contour lines.

\begin{align*}\frac{1 \text{ line}}{40 \text{ feet}} = \frac{8 \text{ lines}}{x \text{ feet}} \end{align*}

Then, cross-multiply to solve for \begin{align*}x\end{align*}.

\begin{align*}\begin{array}{rcl} \frac{1}{40} &=& \frac{8}{x} \\ 1x &=& 8 \times 40 \\ x &=& 320 \end{array}\end{align*}

The height is 320 feet.

#### Example 5

What height would be represented by 3 contour lines?

First, look at the map scale. It states that the contour interval is 40 feet. That means that each contour line represents 40 feet of elevation.

Next, write the proportion to find the height of 3 contour lines.

\begin{align*}\frac{1 \text{ line}}{40 \text{ feet}} = \frac{3 \text{ lines}}{x \text{ feet}} \end{align*}

Then, cross-multiply to solve for \begin{align*}x\end{align*}.

\begin{align*} \begin{array}{rcl} \frac{1}{40} &=& \frac{3}{x} \\ 1x &=& 3 \times 40 \\ x &=& 120 \end{array}\end{align*}

The height is 120 feet.

### Review

Kevin built a scale model of a pool. He used the scale \begin{align*}\frac{1}{2} \text{ inch}= 5 \text{ feet}\end{align*}. Use this information to answer the following questions.

1. The width of the pool on the scale model measures 1.5 inches. What is the actual width of the pool?

2. The length of the pool on the scale model measures 2.5 inches. What is the actual length of the pool?

3. The depth of the pool on the scale model measures 0.5 inches. What is the actual volume of the pool.

This is a map of a national park. Use this information to answer the following questions.

4. The map distance of the length of the distance across the lake is 1.5 cm. What is the actual distance across the lake?

5. Explain why the contour lines on the map are closer together at some points and farther apart at other points.

Answer each of the following questions as true or false.

6. A topographic map would include lakes and rivers.

7. A two–dimensional map could also be a topographic map.

8. Three–dimensions means including length, width and height.

9. Depending on what you are measuring, height might be replaced by depth.

10. There is a proportional relationship between length and the area of a figure.

11. A two–dimensional map also includes contour lines.

12. Contour lines can be different sizes if there is a different elevation involved.

13. Elevation also means height.

14. A topographic map can be built in three dimensions.

15. Two –dimensional maps and three–dimensional maps both include the same information.

### Notes/Highlights Having trouble? Report an issue.

Color Highlighted Text Notes

### Vocabulary Language: English

Contour Lines

Contour line are drawn on a map to show elevation. Each contour line represents the same measure of elevation.

Elevation

Elevation is the measure of height.

Scale Model

A scale model is a model that represents a three-dimensional space.

Terrain

The terrain on a map is the land.

Three – Dimensional

A figure drawn in three dimensions is drawn using length, width and height or depth.

Topographic Map

A topographic map is a map that not only shows distances on the ground, but also features of the area such as mountains.

Two – Dimensional

A figure drawn in two dimensions is only drawn using length and width.


text:
# Introduction

After my last post on random number generation I think that it is good to add one more thing that Chris Rackauckas pointed out to me as relevant to show a complete picture. If you are working with pseudo random number generators it is good to know that Julia has an excellent RandomNumbers.jl package that offers a wide array of different random number generators to choose from. So in this post I will use xoroshiro128** generator.

The post was tested under Julia 1.5.3 and packages DataFrames.jl 0.22.1, Distributions.jl 0.23.8, FreqTables.jl 0.4.2, Pipe.jl 1.3.0, RandomNumbers.jl 1.4.0, PyPlot.jl 2.9.9 and intends to present a pretty complete work-flow of investigating a sample data science problem.

# A/B testing

In the post we will investigate several simple options how A/B tests can be performed.

In our scenario we assume that we have to choose from $$n$$ alternatives. Each alternative $$i\in[n]$$ has an unknown probability of success $$p_i$$. Assume that e.g. we have $$n$$ different ways to promote a product to a customer and $$p_i$$ is a probability that customer buys after seeing a promotion.

Initially we do not know which of the options is the best, i.e. has the highest $$p_i$$, but we are allowed to present them to customers and collect their responses to learn the unknown probabilities.

The most simple way to run such an experiment is to present each option to the customer with the same probability $$1/n$$. Such an approach focuses purely on exploration of the alternatives. However, intuitively we feel that it is wasteful. If after some trials we see that some option is very bad and has marginal chances of being the best then it is not worth showing it to the customer. We are not only losing money (we present something that we know is not very good), but additionally we will not learn much in terms of choosing the best option.

Another approach would be to always show our customer an option that we currently believe is best. Such a strategy focuses purely on exploitation. Similarly to the uniform sampling described above, we can see that it does not have to lead to good outcomes. We can get stuck with sub-optimal solution, as we do not give ourselves a chance to learn that maybe some alternative that is currently not considered the best is actually superior.

So how can we balance the exploration with exploitation? There are many approaches that can be considered, but one of the simplest, yet very efficient, is Thompson sampling. In this approach we do the following. We constantly keep information about the distribution of our beliefs about the quality of each alternative. Denote the random variable corresponding to the distribution of these beliefs as $$P_i$$ for alternative $$i$$. Now in each step we independently sample a value from each distribution $$P_i$$ and choose to measure the option that has the highest value of the sample. Now why does this heuristic work? Note that we will tend to sample the alternatives that have a high value of beliefs (so we do not waste time on sampling very bad options) but at the same time we will also from time to time sample options that have a high variance of $$P_i$$ distribution (so the options about which we do not know much; even if at the moment of sampling we believe they are not so good our beliefs show us that actually they could turn out good if we collect more evidence on them).

In the codes below I compare these three strategies of running A/B tests. I call them respectively:

1. Uniform: sample each alternative with probability $$1/n$$;
2. Greedy: sample the alternative with the highest $$E(P_i)$$;
3. Thompson: sample the alternative with the highest value of a single independent sample from $$P_i$$.

Before we turn to coding one last thing should be discussed. How should we represent our beliefs $$P_i$$? Fortunately here Bayesian statistics comes handy. As our experiments are Bernoulli trials, we know that if we represent the prior beliefs as Beta distributed then the posterior beliefs are also going to follow the same distribution. Formally we say that the Beta distribution is a conjugate prior of Bernoulli distribution. If our beliefs have $$Beta(\alpha, \beta)$$ distribution and we see a success then the distribution of beliefs becomes $$Beta(\alpha+1, \beta)$$. On the other hand if we see a failure it becomes $$Beta(\alpha, \beta+1)$$. As you can see it is very easy to implement.

# Setting up the stage

In a fresh Julia session we first load the required packages:

using DataFrames
using Distributions
using FreqTables
using Pipe
using RandomNumbers
using PyPlot
using LinearAlgebra

Next define a function that updates the beliefs about the quality of some alternative:

update_belief(b::Beta, r::Bool) = Beta(b.α + r, b.β + !r)

Finally define the three decision rules that we want to compare: uniform, greedy, and Thompson:

abstract type ABRule end

struct Greedy <: ABRule end
struct Thompson <: ABRule end
struct Unif <: ABRule end

function decide(options::Vector{<:Beta}, ::Unif)
return rand(axes(options, 1))
end

function decide(options::Vector{<:Beta}, ::Greedy)
m = mean.(options)
mm = maximum(m)
return rand(findall(==(mm), m))
end

function decide(options::Vector{<:Beta}, ::Thompson)
m = rand.(options)
mm = maximum(m)
return rand(findall(==(mm), m))
end

One technical aspect of our implementations of decision making rule for greedy and Thompson sampling is that we have to take into consideration that more than one option can have the same evaluation. That is why we need first to find which option has maximum mean with mm = maximum(m) and then randomly select one of the options that are best with rand(findall(==(mm), m)).

Now we are ready to run the experiment.

# Implementing the experimenter

Here is an implementation of the function that runs the experiments:

function coupled_run!(n::Int, steps::Int, rng::AbstractRNG,
results::DataFrame, runid::Int)
truep = rand(rng, n)
bestp = argmax(truep)
streams = [rand(rng, Bernoulli(p), steps) for p in truep]

for alg in (Greedy(), Unif(), Thompson())
options = [Beta(1, 1) for i in 1:n]
loc = fill(1, n)
for i in 1:steps
d = decide(options, alg)
options[d] = update_belief(options[d], streams[d][loc[d]])
loc[d] += 1
end
push!(results, (runid=runid, alg=string(typeof(alg)),
correct=mean(options[bestp]) == maximum(mean.(options)),
payoff=sum(x -> x.α - 1, options)))
end
end

The coupler_run! takes five arguments: k is number of alternatives to consider, steps is the length of A/B test experiment, rng is random number generator we will use (remember that we want to test RandomNumbers.jl library), results is a data frame that we will update and store the experiment results in, finally runid is experiment number.

Let us comment on several crucial parts of the above code. Note that we sample unknown true probabilities of success in the experiment with truep = rand(rng, n). As they are uniformly distributed we set our initial beliefs about options to also follow a uniform distribution in this line: options = [Beta(1, 1) for i in 1:n].

The next notable thing is that we want the experiments for all algorithms we consider to be coupled, that is: each alternative should generate the same sequence of successes and failures for each option. Therefore, for simplicity, we pre-populate the results of the trials in this line streams = [rand(rng, Bernoulli(p), steps) for p in truep] and then just tack in loc vector which random number for each option should be picked. Such an approach will reduce noise when comparing the alternatives. (note that we could have implemented it more efficiently, but I did not want to over-complicate the code).

Finally note that we are collecting two informations:

• correct: if what we think is best at the end of the experiment is best indeed.
• payoff: how much payoff we have collected when running the experiment.

Note that both of them are desirable. Everyone probably agrees that it would be best to have correct near to one (so that after running the experiment we are confident that we know what is best). At the same time it is also desirable to ensure that the experiment itself is not wasteful, so that we collect as big payoff as possible.

We will compare the three considered A/B testing rules using these two criteria.

# Analyzing the experiment results

First run the experiment (it should take under 20 seconds):

julia> results = DataFrame()
0×0 DataFrame

julia> rng = Xorshifts.Xoroshiro128StarStar(1234)
RandomNumbers.Xorshifts.Xoroshiro128StarStar(0x9e929e92000004d2, 0xda409a400013489a)

julia> @time foreach(runid -> coupled_run!(10, 500, rng, results, runid), 1:20_000)
18.736959 seconds (143.71 M allocations: 8.944 GiB, 6.78% gc time)

julia> results
60000×4 DataFrame
Row │ runid  alg       correct  payoff
│ Int64  String    Bool     Float64
───────┼───────────────────────────────────
1 │     1  Greedy      false    451.0
2 │     1  Unif         true    354.0
3 │     1  Thompson     true    486.0
4 │     2  Greedy       true    468.0
5 │     2  Unif         true    264.0
⋮   │   ⋮       ⋮         ⋮        ⋮
59997 │ 19999  Thompson     true    464.0
59998 │ 20000  Greedy      false    472.0
59999 │ 20000  Unif         true    394.0
60000 │ 20000  Thompson     true    462.0
59991 rows omitted

We have run the sampling 20,000 times in under 20 seconds. We have 60,000 rows in our DataFrame as for each sampling we produced three rows corresponding to three alternatives we consider. In our experiment we considered 10 alternatives and a budget of 500 samples for testing.

First we collect some initial statistics about the alternatives:

julia> @pipe groupby(results, :alg) |>
combine(_, [:correct, :payoff] .=> mean)
3×3 DataFrame
Row │ alg       correct_mean  payoff_mean
│ String    Float64       Float64
─────┼─────────────────────────────────────
1 │ Greedy         0.38145      405.997
2 │ Unif           0.8031       250.394
3 │ Thompson       0.87955      431.31

We see that Thompson sampling has both best probability of being correct and the best cumulative payoff. Interestingly greedy strategy has low probability of being correct, but relatively high payoff. The opposite holds for uniform sampling strategy.

Now we investigate correct selection probability in more detail:

julia> correct_wide = unstack(results, :runid, :alg, :correct)
20000×4 DataFrame
Row │ runid  Greedy  Unif   Thompson
│ Int64  Bool?   Bool?  Bool?
───────┼────────────────────────────────
1 │     1   false   true      true
2 │     2    true   true      true
3 │     3   false   true      true
4 │     4   false   true      true
5 │     5   false  false     false
⋮   │   ⋮      ⋮       ⋮       ⋮
19997 │ 19997   false   true      true
19998 │ 19998   false  false      true
19999 │ 19999   false   true      true
20000 │ 20000   false   true      true
19991 rows omitted

julia> proptable(correct_wide, :Greedy, :Unif)
2×2 Named Array{Float64,2}
Greedy ╲ Unif │   false     true
──────────────┼─────────────────
false         │ 0.14145   0.4771
true          │ 0.05545    0.326

julia> proptable(correct_wide, :Greedy, :Thompson)
2×2 Named Array{Float64,2}
Greedy ╲ Thompson │   false     true
──────────────────┼─────────────────
false             │  0.0907  0.52785
true              │ 0.02975   0.3517

julia> proptable(correct_wide, :Unif, :Thompson)
2×2 Named Array{Float64,2}
Unif ╲ Thompson │   false     true
────────────────┼─────────────────
false           │  0.0893   0.1076
true            │ 0.03115  0.77195

Observe that Thompson and uniform sampling give quite similar results most of the time , with Thompson sampling having a slight edge when they disagree. Greedy strategy is much worse. It is easy to understand these findings. Greedy strategy is not doing enough exploration. Both Thompson and uniform sampling do explore. The edge of Thompson sampling is that it does not waste time testing very bad alternatives (so it can focus on the good ones and better discriminate between them).

Similarly we can investigate which alternative gives the best payoff (remember that we made sure to have the scenarios coupled):

julia> function find_best(alg, payoff)
best_idxs = findall(==(maximum(payoff)), payoff)
best_algs = alg[best_idxs]
sort!(best_algs)
return join(best_algs, '|')
end
find_best (generic function with 1 method)

julia> alg_freq = @pipe groupby(results, :runid) |>
combine(_, [:alg, :payoff] => find_best => :best) |>
groupby(_, :best, sort=true) |>
combine(_, nrow)
3×2 DataFrame
Row │ best             nrow
│ String           Int64
─────┼────────────────────────
1 │ Greedy            9736
2 │ Greedy|Thompson    120
3 │ Thompson         10144

We observe that uniform sampling for 20,000 simulations was never the best, while Thompson sampling has a slight edge over greedy sampling in the probability of being best (there is also a small probability of a tie).

As an exercise let us check, sticking to Bayesian approach, what is the probability that Thompson sampling has higher probability of being best than greedy one. Here we use the fact that the Dirichlet distribution is a conjugate prior for the Categorical distribution, and set uniform a priori beliefs:

julia> posterior = Dirichlet(alg_freq.nrow .+ 1)
Dirichlet{Float64}(alpha=[9737.0, 121.0, 10145.0])

julia> posterior_dis = rand(rng, posterior, 100_000)
3×100000 Array{Float64,2}:
0.484744    0.486453    0.492359    …  0.494059   0.484432    0.482332
0.00632059  0.00692795  0.00563844     0.0076129  0.00706873  0.00782947
0.508936    0.506619    0.502002       0.498328   0.508499    0.509838

julia> mean(x -> x[1] < x[3], eachcol(posterior_dis))
0.99707

We can see that given the sample size of 20,000 this probability is greater than 99%.

However, we see that the considered fractions actually do not differ that much:

julia> transform(alg_freq, :nrow => (x -> x ./ sum(x)) => :freq)
3×3 DataFrame
Row │ best             nrow   freq
│ String           Int64  Float64
─────┼─────────────────────────────────
1 │ Greedy            9736   0.4868
2 │ Greedy|Thompson    120   0.006
3 │ Thompson         10144   0.5072

and the difference in average payoffs we observed above was relatively higher. Let us dig into this. First we plot a distribution of difference between payoffs with Thompson and greedy sampling:

payoff_wide = unstack(results, :runid, :alg, :payoff)
Δpayoff = payoff_wide.Thompson .- payoff_wide.Greedy
hist(Δpayoff, 25)
xlabel("Δpayoff: Thompson-Greedy")

getting the following plot:

Now we see what is going on. If Thompson sampling is worse than greedy sampling it is worse only slightly. On the other hand greedy sampling can be much worse than Thompson sampling (and we understand when: this is a scenario when greedy algorithm gets stuck at some sub-optimal alternative).

We also quickly check the distribution of estimator of the difference in payoffs using Bayesian bootstrapping (to keep to the style we use in this post):

julia> dd = Dirichlet(length(Δpayoff), 1);
julia> boot = [dot(Δpayoff, rand(rng, dd)) for _ in 1:10_000];

julia> quantile(boot, 0:0.25:1)
5-element Array{Float64,1}:
23.427965439713827
24.64825057737705
24.911299035010433
25.17170629935465
26.513561155964837

and we see, that, as expected the distribution of the difference is very significantly greater than zero (we could probably easily detect this significance even with a much smaller number of tests than 20,000).

# Conclusion

That was a long post, so let me finish at this point. I hope you enjoyed it and could also appreciate the data wrangling capabilities that JuliaData ecosystem offers you. I also encourage you to run some more experiments on your own to chcek how the considered A/B testing strategies behave under different parameterizations.

And a usual caveat – performance geeks (are there any in the Julia community?) can find several spots in my codes that I left sub-optimal to keep them simple. Feel free to experiment with improving the execution speed of my examples.