# [R-SIG-Finance] extract parameters from fitCopula outputs !!

spencerg spencer.graves at prodsyse.com
Mon May 18 00:41:05 CEST 2009

```      I have not used copulas, so I can't comment on whether what you've
done is "correct".

In general, "all models are wrong, but some are useful."
(http://en.wikiquote.org/wiki/George_Box)  It seems to me that most real
data contain unmodeled components of variance, which generate the image
of a lack of fit to one of the more traditional distributions like
normal, binomial or Poisson.  This may be my own blindness, but I have
yet to find a problem where I felt motivated to try copulas in place of
more traditional methods provided, e.g., by qqnorm, nlme, lme4, dlm,
sspir, and fda.

Hope this helps.
Spencer Graves

tawfiq just wrote:
> 2009/5/17 tawfiq just <just.tawfiq at gmail.com>
>
>
>> 2009/5/17 spencerg <spencer.graves at prodsyse.com>
>>
>>     Your example is incomplete, because I do not have your "u".
>>
>>>     However, the examples in the "fitCopula" help page should suffice to
>>> answer your question:  Consider in particular the multivariate example:
>>>   normal.cop <- normalCopula(c(0.6,0.36, 0.6),dim=3,dispstr="un")
>>>    x <- rcopula(normal.cop, n)     ## true observations
>>>    u <- apply(x, 2, rank) / (n + 1)  ## pseudo-observations
>>>    ## inverting Kendall's tau
>>>    fit.tau <- fitCopula(normal.cop, u, method="itau")
>>>
>>>         Compare str(fit.tau) with print(fit.tau).  This suggests we can
>>> answer your question with "fit.tau at estimate".
>>>
>>>     Hope this helps.     Spencer Graves
>>>  tawfiq just wrote:
>>>
>>>
>>>> hello
>>>>
>>>> i have the following output from fitting a normal copula (copula package)
>>>>
>>>>  normal.cop <- normalCopula(c(0,0,0,0,0,0,0,0,0,0),dim=5,dispstr="un")
>>>> fit.tau <- fitCopula(normal.cop, u, method="itau")
>>>>
>>>> The estimation method is  Inversion of Kendall's Tau  based on  52
>>>> observations.
>>>>        Estimate Std. Error   z value Pr(>|z|)
>>>> rho.1  0.7609442 0.08183654  9.298343        0
>>>> rho.2  0.9123854 0.04060923 22.467440        0
>>>> rho.3  0.8854560 0.04804054 18.431432        0
>>>> rho.4  0.8730453 0.05525219 15.801100        0
>>>> rho.5  0.8296553 0.05762548 14.397370        0
>>>> rho.6  0.8022804 0.06063024 13.232347        0
>>>> rho.7  0.8120697 0.06072519 13.372865        0
>>>> rho.8  0.9470253 0.02154186 43.962098        0
>>>> rho.9  0.9333255 0.02565925 36.373847        0
>>>> rho.10 0.9591890 0.01818588 52.743616        0
>>>>
>>>> the question is how to extract the first column from the output, as a
>>>> vector
>>>> (0.7609442, 0.9123854, .....,0.9591890)
>>>>
>>>> thank you very much
>>>>
>>>>        [[alternative HTML version deleted]]
>>>>
>>>> _______________________________________________
>>>> R-SIG-Finance at stat.math.ethz.ch mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
>>>> -- Subscriber-posting only.
>>>> -- If you want to post, subscribe first.
>>>>
>>>>
>>>>
>>>>
>>> thak you spencer for answer, that's what i was looking for
>>>
>> to be more clair, what i wanted to do is to simulate a multivariate normal
>> copula using suppose i have a matrix of returns 50 * 4 dimension
>> x <- matrix(rnorm(200),50,4)
>> u <- apply(x, 2, rank) / (n + 1)  ## empirical distribution of x
>>   ## inverting Kendall's tau
>> normal.cop1 <- normalCopula(c(0,0,0,0,0,0),dim=4,dispstr="un")
>>
>> fit.tau <- fitCopula(normal.cop1, G, method="itau")  # fit data to copula
>> to evaluate rho
>>
>> normal.cop <- normalCopula(  fit.tau at estimate,dim=4,dispstr="un")
>>
>> u <- rcopula(normal.cop, 10)     # simulate normal copula that have same
>> caracteristics than data
>>
>>
>> is it correct what i have done?
>>
>> thank you again
>>
>>
>
> Error in the instruction
> fit.tau <- fitCopula(normal.cop1, G, method="itau")  # fit data to copula to
> evaluate rho
>
> u insteade of G
>
> fit.tau <- fitCopula(normal.cop1, u, method="itau")  # fit data to copula to
> evaluate rho
>
> sorry
>
>

```