如何用R中的学生t分布对系动词的边际建模

时间:2019-08-14 07:42:46

标签: r

我正在尝试对由一篮子ETF组成的投资组合的绩效进行建模。为此,我正在使用T型copula。目前,我已将边际(即各个ETF的表现)指定为正态,但是,我想使用Student t分布而不是正态分布。

我已经从QRM软件包中研究了fit.st()方法,但是不确定如何将其与copula软件包结合使用。

我知道如何实现正态分布的边距:

mv.NE <- mvdc(normalCopula(0.75), c("norm"),
              list(list(mean = 0, sd =2)))

除了t分布外,我该怎么做?

1 个答案:

答案 0 :(得分:2)

您需要做的就是使用tCopula而不是normalCopula。您需要设置t-copula的参数和自由度。并且您还需要指定边距。

因此,这里我们将normalCopula替换为tCopula,而df=5是自由度。两种页边距都是正常的(根据需要)。

mv.NE <- mvdc(tCopula(0.75, df=5), c("norm", "norm"), + list(list(mean = 0, sd =2), list(list(mean = 0, sd =2))))

结果是:

 Multivariate Distribution Copula based ("mvdc")
 @ copula:
t-copula, dim. d = 2 
Dimension:  2 
Parameters:
  rho.1   = 0.75
  df      = 5.00
 @ margins:
[1] "norm" "norm"
   with 2 (not identical)  margins; with parameters (@ paramMargins) 
List of 2
 $ :List of 2
  ..$ mean: num 0
  ..$ sd  : num 2
 $ :List of 1
  ..$ mean:List of 2
  .. ..$ mean: num 0
  .. ..$ sd  : num 2

对于t-margins,请使用此:

mv.NE <- mvdc(tCopula(0.75), c("t","t"),list(t=5,t=5))

Multivariate Distribution Copula based ("mvdc")
 @ copula:
t-copula, dim. d = 2 
Dimension:  2 
Parameters:
  rho.1   = 0.75
  df      = 4.00
 @ margins:
[1] "t" "t"
   with 2 (not identical)  margins; with parameters (@ paramMargins) 
List of 2
 $ t: Named num 5
  ..- attr(*, "names")= chr "df"
 $ t: Named num 5
  ..- attr(*, "names")= chr "df"