# Predicting the year computers will be able to do 1 exaFLOPS using historical data (time series forcasting using prediction interval)

Put simply, I need to make a prediction interval (or confidence interval?) for the x value when y reaches a certain number given historical data for x versus y.

Long Version: I have data on the speed of computers in FLOPS from the 1950s up until 2012 and need to make a prediction interval for the predicted year we should reach an exaflop (10^18 FLOPS). My problem is that prediction intervals require means and standard errors, and all I have is a single year that my initial regression predicted along with the data used to predict that value. Now, It's clear that that single predicted value is not sufficient to make any significant statistical inferences on. So, what I think I need to do is use my historical data to construct a confidence interval for the year a computer should reach an exaflop so that I can run a hypothesis test, where the Null Hypothesis is that the year we should reach an exaflop is 2020 and the Alternative Hypothesis is that the year we should reach an exaflop is >2020.

The sort of end result I'm thinking of is something along the lines of being able to say "I am 95% Confident that the true year a computer should be able to do an exaflop is between 2020 and 2035", in addition to the statements for the hypothesis test.

My issue now is that what I THINK I need to do is construct many regression lines on the data to get a mean predicted year for the exaflop and the accompanying standard error so that I can do the prediction interval. Is this possible? If so how do I do it?

If there exists a better, easier way to predict the year of an exaflop given my historical data please let me know what it is and how to do it. Help is greatly appreciated.

EDIT: After researching time series forecasting, I've become aware that what I'm trying to do is construct a prediction interval on a time series. I haven't found a reasonable and accepted way to carry this out yet. Help is still needed and appreciated.

Many years late, but FWIW:

The simple solution here is to construct a linear regression of speed or log(speed) vs time. With this fitted model, you can construct a prediction interval. Here's an example with some made-up numbers:

#Time in years
time <- seq(1970, 2015, 5)

#flops on log base 10 scale
logflops <- c(0.96, 2.02, 3.1, 4.3, 4.97, 6.05, 7.1, 8.01 ,8.96, 9.98)

#construct linear model
lm_logflops <- lm(logflops ~ time)

#define time point at which we want a prediction
newdata <- data.frame(time = 2020)

#generate prediction with prediction interval
predict(lm_logflops, newdata, interval = 'predict')

fit      lwr      upr
11.00467 10.70386 11.30547


This makes some simplifying assumptions that I think are reasonable in this case: the trend is linear (with log-transformed flops), and there is no periodicity. You could construct more complex models if either of those assumptions is violated.