2016-07-20 1 views
1

コピュラ密度関数dcopula.t()をベクターで使用するにはどうすればよいですか?R QRMでベクトルを使用したdcopula.tの使用apply ... dim(X)の長さは正の値でなければなりません

ドキュメントからこの例を変更すると、エラーError in apply(Udata, 2, qt, df = df) : must have a positive lengthが返されます。行列全体に適用すると、ドキュメントがベクトルを必要とするにもかかわらず、動作します。以下の私の例を参照してください:

library("QRM", lib.loc="~/R/win-library/3.3") 
#Modified Example from the docs 
S <- equicorr(d = 6, rho = 0.7) 
data <- rcopula.t(2000, df = 4, Sigma = S) 

dcopula.t(data[1,], Sigma = S, df=4) 
#Get error: Error in apply(Udata, 2, qt, df = df) : must have a positive length 
is.vector(data[1,]) #True 

#this works 
dcopula.t(data, Sigma = S, df=4) 

感謝

+1

'dcopula.t(data [1:2、]、Sigma = S、df = 4)を使用すると動作します。だから、明らかに、単一のベクトルをコピュラに渡すことはできません。私は長い間コプリュラを使用していませんが、ベクトル間の相関関係にはたくさんあることを覚えています。ベクトルが1つしかない場合は、ベクトル間に相関を持たせることはできません。 – Marcel10

答えて

0

copula::dCopula()を使用してみてください。あなたが必要とするものは次のとおりです。

Library(copula) 
Dens.t<- dCopula() 

パッケージのマニュアルにいくつかの例があります。

関連する問題