1

私はフラクタルパッケージを使用しており、コンソールで非常に完全な出力を提供するDFA関数を使用しています。

 DFA(log(price_1m[1:1024]),detrend="poly2",overlap=0,scale.max=512)

コンソール出力:

Detrended fluctuation analysis for log(price_1m[1:1024])
--------------------------------------------------------
H estimate             : 0.452347 
Domain                 : Time 
Statistic              : RMSE 
Length of series       : 1024 
Block detrending model : x ~ 1 + t + I(t^2) 
Block overlap fraction : 0 
Scale ratio            : 2 

Scale 6.00000000 1.2000e+01 2.4000e+01 4.8000e+01 96.0000000 1.920e+02 3.8400e+02
RMSE  0.00029362 4.2002e-04 5.2302e-04 8.5258e-04  0.0011629 1.403e-03 1.7068e-03
Message d'avis :
In if (cls == "signalSeries") { :
  la condition a une longueur > 1 et seul le premier élément est utilisé

事実は、私が必要としているのはハースト指数の推定値だけです。だから私は残りのすべてを取り除きたいと思います。だから私はDFA関数の属性を取得しようとしました(DFA関数はfractalBlockオブジェクトを提供します)そしてこれが私がコンソールで取得するものです:

Call:
lm(formula = y ~ 1 + x, data = data.frame(x = xx, y = yy, w = ww), 
    weights = w)

Coefficients:
(Intercept)            x  
    -8.9269       0.4523  

Message d'avis :
In if (cls == "signalSeries") { :
  la condition a une longueur > 1 et seul le premier élément est utilisé

わかりました。次のコマンドで勾配パラメータの推定値を抽出できるlmオブジェクトがあります。

attr(DFA(log(price_1m[1:1024]),detrend="poly2",overlap=0,scale.max=512),which="logfit")$coef[2]

これがコンソールに出力されるものです:

       x 
0.452347 
Message d'avis :
In if (cls == "signalSeries") { :
  la condition a une longueur > 1 et seul le premier élément est utilisé

そしてここにポイントがあります:私は0.452347である数値だけを取得したいです。as.numeric()関数を使用してデータを変換しようとしましたが、機能しません。

ご協力いただきありがとうございます。

4

2 に答える 2

1

これにより、結果として名前のないDoubleが生成されます。

attr(DFA(log(price_1m[1:1024]),detrend="poly2",overlap=0,scale.max=512),which="logfit")$coef[[2]]

しかし、おそらくそれでも警告が含まれるでしょう。最初に変数に割り当ててから印刷するとどうなりますか?

x <- attr(DFA(log(price_1m[1:1024]),detrend="poly2",overlap=0,scale.max=512),which="logfit")$coef[[2]]
x

それでもこの警告が表示される場合は、次の方法で警告を抑制できますtry

try( x <- attr(DFA(log(price_1m[1:1024]),detrend="poly2",overlap=0,scale.max=512),which="logfit")$coef[[2]], silent = TRUE)
x
于 2012-07-25T10:56:48.963 に答える
1

あなたはする必要があるだけです:

H_values <- DFA(log(price_1m[1:1024]),detrend="poly2",overlap=0,scale.max=512)
H_values["H"]

それは偽のデータのために働きます。警告がまだある場合:

options(warn=-1)
于 2012-07-25T11:13:15.773 に答える