Splaten paarweise substrahieren
Verfasst: Mi 7. Mär 2012, 16:33
Hallo,
ich habe eine ungefähr 10.000 x 100 große Tabelle. Diese Tabelle dient als Rohdatenmatrix für Clusteranalyse. Dabei geht es um Stresse (so wie kälte, dürre, salz usw), die auf einen Organismus wirken können.
Nun soll sie in Distanzmatrix überführt werden und zwar für die 100 Spalten (also Stress x Stress). Somit bekomme ich nun eine 100 x 100 große Tabelle, bei der nur untere Diagonale befüllt ist.
Folgendes habe ich bis jetz gemacht:
In einer neuen Sheet in die erste Zelle habe ich geschrieben: WENN(ZEILE( )<SPALTE( );"---";WENN(ZEILE( )=SPALTE( );0;"toDo")).
Man erkennt alle Werte die über Diagonale liegen werden mit Strichen befüllt. Da wo spalte = zeile sind die 0, da die Stresse gleich sind daher muss keine Distanz berechnet werden.
Da wo toDo steht muss eine Formel hin. Der Wert wird folgendermaßen berechnet: Angenommen für Stress1 und Stress2 werden die Werte der Zeilen aus Rohdatenmatrix paarweise substrahiert (also für alle 10000 Stück) und anschließend quadriert und summiert:
Also: Summe( (Wert1,1-Wert1,2)^2; (Wert2,1-Wert2,2)^2; (Wert3,1-Wert3,2)^2; ...)
Wobei Wert 1,1 steht für erste Zeile erste Spalte; Wert 3,2 für dritte Zeile 2 Spalte.
Man sieht sofort, dass die Formel selbst für eine Zelle bei 10000 Zeilen rieseig wäre es sind aber knapp 5000 solche zu berechnen.
Es muss bestimmt eine Möglichekeit geben, die Zeilen paarweise zu substrahieren. Quadrat ist kein Problem dafür ist QUADRATESUMME da.
Hat jemand eine Idee? Vieln Dank im Voraus
ich habe eine ungefähr 10.000 x 100 große Tabelle. Diese Tabelle dient als Rohdatenmatrix für Clusteranalyse. Dabei geht es um Stresse (so wie kälte, dürre, salz usw), die auf einen Organismus wirken können.
Nun soll sie in Distanzmatrix überführt werden und zwar für die 100 Spalten (also Stress x Stress). Somit bekomme ich nun eine 100 x 100 große Tabelle, bei der nur untere Diagonale befüllt ist.
Folgendes habe ich bis jetz gemacht:
In einer neuen Sheet in die erste Zelle habe ich geschrieben: WENN(ZEILE( )<SPALTE( );"---";WENN(ZEILE( )=SPALTE( );0;"toDo")).
Man erkennt alle Werte die über Diagonale liegen werden mit Strichen befüllt. Da wo spalte = zeile sind die 0, da die Stresse gleich sind daher muss keine Distanz berechnet werden.
Da wo toDo steht muss eine Formel hin. Der Wert wird folgendermaßen berechnet: Angenommen für Stress1 und Stress2 werden die Werte der Zeilen aus Rohdatenmatrix paarweise substrahiert (also für alle 10000 Stück) und anschließend quadriert und summiert:
Also: Summe( (Wert1,1-Wert1,2)^2; (Wert2,1-Wert2,2)^2; (Wert3,1-Wert3,2)^2; ...)
Wobei Wert 1,1 steht für erste Zeile erste Spalte; Wert 3,2 für dritte Zeile 2 Spalte.
Man sieht sofort, dass die Formel selbst für eine Zelle bei 10000 Zeilen rieseig wäre es sind aber knapp 5000 solche zu berechnen.
Es muss bestimmt eine Möglichekeit geben, die Zeilen paarweise zu substrahieren. Quadrat ist kein Problem dafür ist QUADRATESUMME da.
Hat jemand eine Idee? Vieln Dank im Voraus