# Nassim Taleb on the signal to noise ratio (and why you shouldn't read the news)

Nassim Taleb has made the point that by sampling an information source very frequently you will end up seeing more noise than signal.

In particular, in *Fooled by Randomness* (2nd edition, p 65), he wrote:

A 15% return with a 10% volatility (or uncertainty) per annum translates into a 93% probability of success in any given year. But seen at a narrow time scale, this translates into a mere 50.02% probability of success over any given second as shown in Table 3.1.

This is shown in the output of the following *R* function. The vector
`time`

contains the number of units into which one year is broken.
Thus, the 15% return is broken into 15%/4 each quarter, while the
standard deviation over the same interval is divided by the *square
root* of the number of quarters (because the variance should be
divided by the number of intervals, and the standard deviation is the
square root of the variance).

fbr.table31 <- function(){ mean <- 15 # 15% return sd <- 10 # 10% error rate per annum time <- c(1, 4, 12, 365, 365*24, 365*24*60, 365*24*60*60) label <- c("year", "quarter", "month", "day", "hour", "minute", "second") ### what fraction of distribution is > 0? data.frame(year.fraction = time, probability = pnorm(0, mean=mean/time, sd=sd/sqrt(time), lower.tail=FALSE), row.names = label) }

fbr.table31()

year.fraction probability year 1 0.9331928 quarter 4 0.7733726 month 12 0.6674972 day 365 0.5312902 hour 8760 0.5063934 minute 525600 0.5008254 second 31536000 0.5001066

Similarly, in *Antifragility* (p 126), he wrote:

Assume further that for what you are observing, at a yearly frequency, the ratio of signal to noise is about one to one (half noise, half signal)—this means that about half the changes are real improvements or degradations, the other half come from randomness. This ratio is what you get from yearly observations. But if you look at the very same data on a daily basis, the composition would change to 95 percent noise, 5 percent signal. And if you observe data on an hourly basis, as people immersed in the news and market price variations do, the split becomes 99.5 percent noise to 0.5 percent signal.

af.p126 <- function(){ time <- c(1, 365, 365*24) label <- c("year", "day", "hour") data.frame(year.fraction = time, noise = 1 - sqrt(1/time), row.names = label) }

af.p126()

year.fraction noise year 1 0.0000000 day 365 0.9476576 hour 8760 0.9893157