We're using extreme value theory to model tail risks on our portfolio. After we choose the threshold, we fit generalized Pareto distribution to our data over the threshold. The expected value of GPD is quite larger (10%) than the average value of our losses over the threshold. My question is, is this to be expected? Or does that mean that the GPD is a bad fit to the data and that we've chosen the wrong threshold? Also, is there a good way to check whether the GPD is a good fit?
It is known that GPD can generate (significantly) more negative outcomes than realized. Whether that's a "bug" or "feature" is debated.
I tend to think of GPD as an "extrapolation" method. Using empirical distribution, the worst case scenario your model can produce is the worst historical observation. Of course, we know we are frequently been surprised by "unprecedented" events in the market. GPD can generates much more extreme cases, effectively allowing you to extrapolate into "unknown territory". Whether the resulting value is economically sensible requires judgement. But in my mind, this is the whole point of using GPD.
When using EVT and fitting the GPD the threshold level is a choice, and there is no definitive level at which it should be set, though people commonly initially try the most extreme 10% of the data. You should check that your result is not highly sensitive to the threshold, and note that there is no definitive level of sensitivity that is "correct." But this lack of sensitivity to threshold level is an indication of the appropriateness of using the GPD. It is not surprising that the expected value of your GPD is 10% higher than the average value of losses over the threshold, and that in itself does not mean the GPD is a bad fit.
I can answer the second question :
You can use the following command to see if the GPD fits well the exceedances
XFitGPD<-gpdFit(X,u= ...) plot(XFitGPD)