Making Good Prediction: A Theoretical Framework