Для проекта "Абсолютный курс" - http://www.abscur.ru
Исследование корреляции относительных изменений (дневной доходности) для рублевых курсов акций (за разные периоды).
Показаны матрицы корреляции. по корреляционным матрицам прорисованы графы наиболее сильных зависимостей. Расчеты осуществлены для нескольких временных периодов. Вычисления проведены на языке WolframLang.
Источник данных по адресу https://docs.google.com/spreadsheets/d/1VBGp8VfbJUb2C-jslQRO83vo-v5GMQ19erPDrN_8MYw/edit#gid=1121754431
Исследование корреляции относительных изменений (дневной доходности) для рублевых курсов акций (за разные периоды).
Показаны матрицы корреляции. по корреляционным матрицам прорисованы графы наиболее сильных зависимостей. Расчеты осуществлены для нескольких временных периодов. Вычисления проведены на языке WolframLang.
Источник данных по адресу https://docs.google.com/spreadsheets/d/1VBGp8VfbJUb2C-jslQRO83vo-v5GMQ19erPDrN_8MYw/edit#gid=1121754431
In[]:=
(*загрузка данных*)
ClearAll[rubData,rubList];
rubData=Module[{sid,gid,range,url},
sid="1VBGp8VfbJUb2C-jslQRO83vo-v5GMQ19erPDrN_8MYw";
gid="1121754431";
range=URLEncode["A:AY"];
url="https://docs.google.com/spreadsheets/d/"<>sid<>"/export?format=xlsx&gid="<>gid<>"&range="<>range;
Import[url,"XLSX"][[1]]
];
rubList=Drop[rubData//First,1];
In[]:=
(*за весь период*)
ClearAll[corr,datesList,rubVals,per,dRubVals,i,j,rubGraph,labels];
datesList=Table[rubData[[i,1]],{i,2,Length[rubData]}];
rubVals=Table[rubData[[i,j]],{i,2,Length[rubData]},{j,2,Length[rubList]+1}];
per=" с "<>First[datesList]<>" по "<>Last[datesList];
dRubVals=Prepend[Table[(rubVals[[i]]-rubVals[[i-1]])/rubVals[[i-1]],{i,2,Length[rubVals]}],rubVals[[1]]*0];
dRubVals=10^(-Round[Log10[dRubVals+1.],2])*(dRubVals+1)-1;(*избавляемся от 100-кратной
деноминации*)
corr=Correlation[dRubVals];
labels=Transpose@{Range@Length[rubList],rubList};
MatrixPlot[corr,FrameTicks{labels,{#[[1]],Rotate[#[[2]],Pi/2]}&/@labels},PlotLabel"Корреляция
рублевых курсов акций (за весь период)"<>per,PlotTheme"Detailed"]
rubGraph=DeleteCases[
Flatten[
Table[
If[(corr[[i,j]]<-0.7||corr[[i,j]]>0.7)&&(i<j)
,{rubList[[i]]rubList[[j]],If[corr[[i,j]]>0,"+","-"]}
,Null]
,{i,Length[corr]},{j,Length[corr]}]
,1]
,Null];
GraphPlot[rubGraph,VertexLabelingTrue,EdgeRenderingFunction({If[#3=="+",Green,Red],Line[#1,10]}&),
PackingMethod"ClosestPackingCenter",PlotLabel"Граф зависимостей относительных
изменений
между курсами акций (за весь период)
"<>per]
Out[]=