In railways where trains run densely, once a delay occurs, the delay easily propagates to other trains. In order to make their timetables more robust, railway companies are taking various steps. However, to date they have not been interested in the analysis of drivers' operation, although this factor is closely related with the robustness. It would be useful to know the difference between “good driving”, which reduces delay and “poor driving”, which increases delay so that we can give advice to drivers for improvement of their driving. We have developed an algorithm to find the factors that differentiate between “good” and “poor” driving based on the decision tree. The inputs of our algorithm are track occupation records. The algorithm receives “good” examples and “poor” examples as the input, and then produces a decision tree from which we can determine the dominant factors to differentiate between the good examples and the poor examples. We have applied our algorithm to actual data and found a driving pattern that is common to poor drivers. Then based on the results, we improved signaling systems and learned that we succeeded in improving the robustness of the timetable.