Kamil Bęczyński

Kamil Bęczyński R, SAS, analizy

Temat: W jaki sposób przedstawić graficznie ewolucję macierzy...

W jaki sposób przedstawić graficznie ewolucję macierzy korelacji w czasie, w ten sposób by można było porównać ze sobą wartości poszczególnych współczynników korelacji (wykres liniowy w matplot odpada) ? Szukałem przez :
http://addictedtor.free.fr/graphiques/search.php?q=cor...

ale znalazłem tylko sposoby zobrazowania pojedyńczej macierzy korelacji lub "Image lag plot matrix" http://addictedtor.free.fr/graphiques/RGraphGallery.ph...

W sumie, mam pewien pomysł, może ktoś będzie mi w stanie powiedzieć jak go zrealizować, przykład:
Mamy 3 obiekty o1,o2,o3 oraz korelacje pomiędzy nimi w okresie t=1,2,3
Kijt, to wartość korelacji, dla obiektów i oraz j w okresie t.
Kijt może oznaczać na przykład korelację pomiędzy zmianami wartości spółki i oraz j w miesiącu t. Mamy więc dane w postaci macierzy M :
t cor(o1,o2) cor(o1,o3) cor(o2,o3)
1 k111=0.2 k131=0.1 k231=0.2
2 k112=0.5 k132=0.4 k232=0.6
3 k113=0.4 k133=0.7 k233=0.5

Macierz M można bezpośrednio zobrazować przy pomocy funkcji heatmap lub image (efekt działa funkcji heatmap):
http://addictedtor.free.fr/graphiques/RGraphGallery.ph...

,jednak funkcja ta nie pozwala na zrobienie przerwy pomiędzy kolumnami komórek oraz na ustalenie wymiarów komórek.

Moje pytanie brzmi więc : w jaki sposób przedstawić graficznie macierz M (dla dużej liczby wsp. korelacji) - może macie jakiś ciekawy pomysł oraz jak uzyskać wykres podobny do dawanego przez image/heatmap, ale z rozsuniętymi kolumnami komórek ?
Michał Bojanowski

Michał Bojanowski socjolog, analityk

Temat: W jaki sposób przedstawić graficznie ewolucję macierzy...

Kamil Bęczyński:
W jaki sposób przedstawić graficznie ewolucję macierzy korelacji w czasie, w ten sposób by można było porównać ze sobą wartości poszczególnych współczynników korelacji (wykres liniowy w matplot odpada)

Jak rozumiem odpada bo w [k_ijt] i, j oraz t są duże?

Generalnie wszystko zależy co się chce pokazać. Czy rzeczywiście ważne są absolutne wartości wspołczynników dla spółek czy też raczej ogólny wzór, np. że niektóre spółki są podobnie pokorelowane z innymi etc.

Jeden kierunek to zamiast rysować wartości z "surowych" macierzy korelacji można by dane zredukować przy pomocy PCA albo MDS i rysować "trajektorie" spółek w zredukowanej przestrzeni. Jeżeli dane dwie spółki się do siebie zbliżają znaczy, że podobnie korelują z resztą etc.

W sumie, mam pewien pomysł, może ktoś będzie mi w stanie powiedzieć jak go zrealizować, przykład:
(...)
Macierz M można bezpośrednio zobrazować przy pomocy funkcji heatmap lub image (efekt działa funkcji heatmap):
,jednak funkcja ta nie pozwala na zrobienie przerwy pomiędzy kolumnami komórek oraz na ustalenie wymiarów komórek.

To bardzo często stosowana technika (po przykłady wystarczy wpisać "correlation heatmap" w Google Image Search. Tylko wtedy musiałbyś zrobić heatmap dla każdego punktu w czasie. Jak punktów czasowych jest dużo, to się robi trochę mało czytelnie.
Moje pytanie brzmi więc : w jaki sposób przedstawić graficznie macierz M (dla dużej liczby wsp. korelacji) - może macie jakiś ciekawy pomysł oraz jak uzyskać wykres podobny do dawanego przez image/heatmap, ale z rozsuniętymi kolumnami komórek ?

image/heatmap można oszukać wstawiając "sztuczne" wiersze i kolumny, albo pojedyncze komórki, i kolorować je na biało: albo ręcznie ustalać kolor, albo przypisać im braki danych (NA):


m <- matrix(1:4, 2, 2)
# > m
# [,1] [,2]
# [1,] 1 3
# [2,] 2 4
image(m) # dla odniesienia
# macierz z NA
mm <- matrix(as.numeric(NA), 3, 3)
mm
# [,1] [,2] [,3]
# [1,] NA NA NA
# [2,] NA NA NA
# [3,] NA NA NA
mm[c(1,3), c(1,3)] <- m
# > mm
# [,1] [,2] [,3]
# [1,] 1 NA 3
# [2,] NA NA NA
# [3,] 2 NA 4
image(mm)


szerokości można zmieniać argumentami 'x' i 'y' ('z' ma być wtedy macierzą), np. (kontynuując powyższe):

b <- c(1,5, 6,10)
image(b, b, mm)
Michał Bojanowski edytował(a) ten post dnia 02.11.10 o godzinie 20:23



Wyślij zaproszenie do