Temperlenmiş fraksiyonel farklılığın bu yaklaştırılmasını hızlandırmaya çalışıyorum. Bu, bir zaman dizisinin uzun/yarı uzun belleğini kontrol eder. İlk döngü için yinelemeli olduğu düşünüldüğünde, onu nasıl simüle edeceğini bilmiyorum. Ayrıca, denenen vektörleştirmenin çıktısı değiştirilmemiş ham koddan biraz uzaktır. Yardımın için teşekkürler.Temperlenmiş fraksiyonel farklılaşma hesaplamasının vektöreleştirilmesi
Ham Kod
tempfracdiff= function (x,d,eta) {
n=length(x);x=x-mean(x);PI=numeric(n)
PI[1]=-d;TPI=numeric(n);ydiff=x
for (k in 2:n) {PI[k]=PI[k-1]*(k-1-d)/k}
for (j in 1:n) {TPI[j]=exp(-eta*j)*PI[j]}
for (i in 2:n) {ydiff[i]=x[i]+sum(TPI[1:(i-1)]*x[(i-1):1])}
return(ydiff) }
teşebbüs Vektoriyal
tempfracdiffFL=function (x,d,eta) {
n=length(x);x=x-mean(x);PI=numeric(n)
PI[1]=-d;TPI=numeric(n);ydiff=x
for (k in 2:n) {PI[k]=PI[k-1]*(k-1-d)/k}
TPI[1:n]=exp(-eta*1:n)*PI[1:n]
ydiff[2:n]=x[2:n]+sum(TPI[1:(2:n-1)]*x[(2:n-1):1])
return(ydiff) }