In[]:=
dataDir="D:\\Dropbox\\Mathematica\\Stacked Autoencoders\\Data"
Out[]=
D:\Dropbox\Mathematica\Stacked Autoencoders\Data
In[]:=
SetDirectory[dataDir];
In[]:=
data=Import["$INDU Daily.csv"];headers=data[[1]];dates=data[[;;1]];data=data[[2;;,2;;]];{nobs,nvars}=Dimensions@data;
In[]:=
headers
Out[]=
{Date,Open,High,Low,Close,Vol,MACD,CCI,ATR,%B,ROC,AvgExp,FastAvg,SlowAvg,MOM6m,MOM12m,USDollar,TBill13Wk}
In[]:=
dwt1=DiscreteWaveletTransform[data,HaarWavelet[],2]
Out[]=
DiscreteWaveletData
In[]:=
dwt1["Properties"]
Out[]=
{BasisIndex,DataChannels,DataDimensions,DataWrapper,Dimensions,EnergyFraction,MatrixPlot,Padding,Properties,Refinement,ThresholdTable,ThresholdValues,Transform,TreeView,Wavelet,WaveletIndex}
In[]:=
dwt1["TreeView"]
Out[]=
In[]:=
Normal[dwt1]//Dimensions
Out[]=
{8}
In[]:=
efrac=dwt1["EnergyFraction"]
Out[]=
{{1}0.486072,{2}0.0127847,{3}0.012785,{0,1}0.239589,{0,2}0.00355938,{0,3}0.00355969,{0,0}0.241651}
In[]:=
eth[x_,ind_]:=If[(ind/.efrac)<0.1,x*0.,x]/;MemberQ[efrac[[All,1]],ind]eth[x_,___]:=x
In[]:=
WaveletMapIndexed[eth,dwt1]
Out[]=
DiscreteWaveletData
In[]:=
transformedData1=InverseWaveletTransform[WaveletMapIndexed[eth,dwt1]];
In[]:=
Dimensions@transformedData1
Out[]=
{3668,17}
In[]:=
transformedData1[[1;;5,1;;5]]
Out[]=
{{12833.6,12875.1,12666.6,12719.,1.86359×},{12833.6,12875.1,12666.6,12719.,1.86359×},{12795.9,12912.8,12628.5,12757.1,1.96624×},{12795.9,12912.8,12628.5,12757.1,1.96624×},{12741.6,12840.8,12556.3,12698.,1.89924×}}
6
10
6
10
6
10
6
10
6
10
In[]:=
Manipulate[ListPlot[{data[[-100;;,i]],transformedData1[[-100;;,i]]},Joined->True,PlotLegends->{"Orig. Data","Trsfrd. Data"},PlotLabel->Style[headers[[i+1]],Bold]],{i,1,nvars,1}]
Out[]=
In[]:=
dwt2=DiscreteWaveletTransform[transformedData1,HaarWavelet[],2]
Out[]=
DiscreteWaveletData
In[]:=
dwt2["TreeView"]
Out[]=
In[]:=
efrac=dwt2["EnergyFraction"]
Out[]=
{{1}0.502498,{2}0.,{3}0.,{0,1}0.247686,{0,2}6.32791×,{0,3}6.32791×,{0,0}0.249817}
-10
10
-10
10
In[]:=
transformedData2=InverseWaveletTransform[WaveletMapIndexed[eth,dwt2]];
In[]:=
Manipulate[ListPlot[{data[[-100;;,i]],transformedData2[[-100;;,i]]},Joined->True,PlotLegends->{"Orig. Data","Trsfrd. Data"},PlotLabel->Style[headers[[i+1]],Bold]],{i,1,nvars,1}]
Out[]=

