I am using the forecast function in R written by Rob Hyndman. I am trying to determine the best way to determine confidence intervals for the historical fitted values. I would like to plot how often the historical forecast exceeded the 95% confidence interval at that time.

Presumably you mean prediction intervals rather than confidence intervals.

The fitted values are in-sample one-step forecasts. Assuming normally distributed errors, 95% prediction intervals are given by

           yt±1.96σ^

where σ^2 is the estimated variance of the residuals.

Here is an example using R:

library(forecast)
fit <- auto.arima(Nile)
upper <- fitted(fit) + 1.96*sqrt(fit$sigma2)
lower <- fitted(fit) - 1.96*sqrt(fit$sigma2)
plot(Nile, type="n", ylim=range(lower,upper))
polygon(c(time(Nile),rev(time(Nile))), c(upper,rev(lower)), 
   col=rgb(0,0,0.6,0.2), border=FALSE)
lines(Nile)
lines(fitted(fit),col='red')
out <- (Nile < lower | Nile > upper)
points(time(Nile)[out], Nile[out], pch=19)

LS0tDQp0aXRsZTogIkZpdHRlZCBDb25maWRlbmNlIEludGVydmFscyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCkkgYW0gdXNpbmcgdGhlIGZvcmVjYXN0IGZ1bmN0aW9uIGluIFIgd3JpdHRlbiBieSBSb2IgSHluZG1hbi4gSSBhbSB0cnlpbmcgdG8gZGV0ZXJtaW5lIHRoZSBiZXN0IHdheSB0byBkZXRlcm1pbmUgY29uZmlkZW5jZSBpbnRlcnZhbHMgZm9yIHRoZSBoaXN0b3JpY2FsIGZpdHRlZCB2YWx1ZXMuIEkgd291bGQgbGlrZSB0byBwbG90IGhvdyBvZnRlbiB0aGUgaGlzdG9yaWNhbCBmb3JlY2FzdCBleGNlZWRlZCB0aGUgOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgYXQgdGhhdCB0aW1lLg0KDQpQcmVzdW1hYmx5IHlvdSBtZWFuIHByZWRpY3Rpb24gaW50ZXJ2YWxzIHJhdGhlciB0aGFuIGNvbmZpZGVuY2UgaW50ZXJ2YWxzLg0KDQpUaGUgZml0dGVkIHZhbHVlcyBhcmUgaW4tc2FtcGxlIG9uZS1zdGVwIGZvcmVjYXN0cy4gQXNzdW1pbmcgbm9ybWFsbHkgZGlzdHJpYnV0ZWQgZXJyb3JzLCA5NSUgcHJlZGljdGlvbiBpbnRlcnZhbHMgYXJlIGdpdmVuIGJ5DQoNCiAgICAgICAgICAgICAgIHl0wrExLjk2z4NeDQoNCndoZXJlIM+DXjIgaXMgdGhlIGVzdGltYXRlZCB2YXJpYW5jZSBvZiB0aGUgcmVzaWR1YWxzLg0KDQpIZXJlIGlzIGFuIGV4YW1wbGUgdXNpbmcgUjoNCg0KDQpgYGB7cn0NCmxpYnJhcnkoZm9yZWNhc3QpDQpmaXQgPC0gYXV0by5hcmltYShOaWxlKQ0KdXBwZXIgPC0gZml0dGVkKGZpdCkgKyAxLjk2KnNxcnQoZml0JHNpZ21hMikNCmxvd2VyIDwtIGZpdHRlZChmaXQpIC0gMS45NipzcXJ0KGZpdCRzaWdtYTIpDQpwbG90KE5pbGUsIHR5cGU9Im4iLCB5bGltPXJhbmdlKGxvd2VyLHVwcGVyKSkNCnBvbHlnb24oYyh0aW1lKE5pbGUpLHJldih0aW1lKE5pbGUpKSksIGModXBwZXIscmV2KGxvd2VyKSksIA0KICAgY29sPXJnYigwLDAsMC42LDAuMiksIGJvcmRlcj1GQUxTRSkNCmxpbmVzKE5pbGUpDQpsaW5lcyhmaXR0ZWQoZml0KSxjb2w9J3JlZCcpDQpvdXQgPC0gKE5pbGUgPCBsb3dlciB8IE5pbGUgPiB1cHBlcikNCnBvaW50cyh0aW1lKE5pbGUpW291dF0sIE5pbGVbb3V0XSwgcGNoPTE5KQ0KYGBgDQoNCg0K