I'm trying to simulate the tail values from a multivariate distribution using copulas. I'm using Vine Copula package of R to derive the suitable copula for my data and I generate random samples out of the derived copula fit. After that by using the inverse CDF of the model (Piecewise Distribution with Pareto tails) that i fit to data I convert the quantiles back to their original form. Finally I sum the result since I'm interested in the sum of the dependent values. Basically in R what i did is:

U = cbind(data1 = pobs(mydata1), data2 = pobs(mydata2)) #Convert marginals to uniform

RVM <- RVineStructureSelect(U, c(1:6)) #Fit a suitable copula to the data

simulateddata <- RVineSim(1000000, RVM) #Generate simulated data out of the copula

tails_data1 <- spdfit(mydata1, upper = 0.9, lower = 0.1) #Fit GPD to both tails
tails_data2 <- spdfit(mydata2, upper = 0.9, lower = 0.1)

real_values = cbind(qspd(simulateddata[,1], tails_data1), 
                    qspd(simulateddata[,2], tails_data2))

real_values = rowSums(real_values)

real_values corresponds to the generated sum of dependent random variables with monte carlo method(i suppose?)

However, what i desire is that the generation phase to skew to the tails, not the center. How can i derive such a result ?



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.