On Monday I outlined an all-encompassing player evaluation model that allows us to evaluate every forward, defenseman and goalie under the same methodology. In short, the system compares how many goals are scored for and against while a player is on the ice and compares it to how many goals scored for/against one should expect based on the quality of his line mates and opposition. That model, I believe, makes a reasonable attempt at evaluating a players performance, but it can be improved.
The first method of improvement is to utilize the additional information we have about the quality of a players line mates and opposition once we have run the model. Initially I use the goals for and against performance of his line mates and opposition when the player being evaluated is not on the ice at the same time as his line mates and opposition. But now that we have run the model we, at least theoretically, have a better understanding of the quality of his team mates and opposition. I can then take the output of the first model run and use it as the input of the second model run to get new and better results. I can then continue doing this iteratively and the good news is that after every iteration the difference between the player rating from that iteration and the previous iteration trends towards zero which is a very nice result.