ich hab mal wieder so ein kleines Problem.
Kann mir jemand sagen, ob es eine Möglichkeit gibt in Excel die Korrelation nach Kendall'S Tau zu berechnen?
Vielen Dank im Voraus!
Schöne Grüße,
Flo
Option Explicit
Sub KendallTau()
Dim ws As Worksheet
Dim maxN As Integer, i As Integer, k As Integer
Dim data2, refR As Integer
Dim proversion As Integer, inversion As Integer, Ktau As Single
Set ws = Worksheets("Tabelle1")
With ws
maxN = .Cells(.Rows.Count, 1).End(xlUp).Row - 1
data2 = .Range("B2:B" & maxN + 1)
'Wertepaar-Auswertung
For i = 1 To maxN - 1
refR = data2(i, 1)
For k = i + 1 To maxN
If refR < data2(k, 1) Then
proversion = proversion + 1
Else
inversion = inversion + 1
End If
Next k
Next i
Ktau = 2 * (proversion - inversion) / (maxN * (maxN - 1))
.Cells(1, 3) = "Kendall Tau"
.Cells(2, 3) = Ktau
End With
Set ws = Nothing
End Sub
Die Routine setzt voraus, dass die Ranglisten der beiden Datenreihen in den Spalten A und B jeweils ab der Zeile 2 (Zeile 1 ist eine Überschriftszeile) vorliegen und nach Spalte A aufsteigend im Rang geordnet ist.Option Explicit
Sub KendallTau()
Dim ws As Worksheet
Dim maxN As Integer, i As Integer, k As Integer
Dim data2, refR As Integer
Dim proversion As Integer, inversion As Integer, tie As Integer, Ktau As Single
Set ws = Worksheets("Tabelle1")
With ws
maxN = .Cells(.Rows.Count, 1).End(xlUp).Row - 1
data2 = .Range("B2:B" & maxN + 1)
'Wertepaar-Auswertung
For i = 1 To maxN - 1
refR = data2(i, 1)
For k = i + 1 To maxN
If refR < data2(k, 1) Then
proversion = proversion + 1
Else
If refR > data2(k, 1) Then
inversion = inversion + 1
Else
tie = tie + 1
End If
End If
Next k
Next i
'Ktau = 2 * (proversion - inversion) / (maxN * (maxN - 1))
Ktau = (proversion - inversion) / Sqr((proversion + inversion) * (proversion + inversion + tie))
.Cells(1, 3) = "Kendall Tau"
.Cells(2, 3) = Ktau
.Cells(3, 4) = proversion
.Cells(4, 4) = inversion
.Cells(5, 4) = tie
End With
Set ws = Nothing
End Sub
Um Kendall's Tau in Excel zu berechnen, kannst du entweder eine VBA-Lösung verwenden oder die Berechnung manuell durchführen. Hier ist eine Schritt-für-Schritt-Anleitung für die VBA-Methode:
Öffne Excel und erstelle eine neue Arbeitsmappe.
Drücke ALT + F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.
Gehe zu Einfügen
> Modul
, um ein neues Modul hinzuzufügen.
Füge den folgenden Code in das Modul ein:
Option Explicit
Sub KendallTau()
Dim ws As Worksheet
Dim maxN As Integer, i As Integer, k As Integer
Dim data2, refR As Integer
Dim proversion As Integer, inversion As Integer, Ktau As Single
Set ws = Worksheets("Tabelle1")
With ws
maxN = .Cells(.Rows.Count, 1).End(xlUp).Row - 1
data2 = .Range("B2:B" & maxN + 1)
' Wertepaar-Auswertung
For i = 1 To maxN - 1
refR = data2(i, 1)
For k = i + 1 To maxN
If refR < data2(k, 1) Then
proversion = proversion + 1
Else
inversion = inversion + 1
End If
Next k
Next i
Ktau = 2 * (proversion - inversion) / (maxN * (maxN - 1))
.Cells(1, 3) = "Kendall Tau"
.Cells(2, 3) = Ktau
End With
Set ws = Nothing
End Sub
Schließe den VBA-Editor und kehre zu Excel zurück.
Stelle sicher, dass deine Daten in Tabelle1
stehen, mit den Werten in Spalte A und B, beginnend ab Zeile 2.
Drücke ALT + F8
, wähle KendallTau
aus und klicke auf Ausführen
.
Das Ergebnis wird in Zelle C2 angezeigt.
Fehler: "Objektvariable nicht festgelegt"
Fehler: Ungültige Zellreferenz
Kendall's Tau ist nicht im erwarteten Bereich
Wenn du keine VBA-Lösung verwenden möchtest, kannst du auch die Funktion CORREL
für die Berechnung der Pearson-Korrelation nutzen, aber beachte, dass dies nicht direkt Kendall's Tau entspricht. Eine andere Möglichkeit wäre die Verwendung von statistischen Softwarepaketen wie R oder Python, die eine eingebaute Funktion für Kendall's Tau bieten.
Angenommen, du hast zwei Rangfolgen in Excel:
A (Rang 1) | B (Rang 2) |
---|---|
1 | 2 |
2 | 3 |
3 | 1 |
4 | 4 |
5 | 5 |
Wenn du die obigen Schritte zur Berechnung von Kendall's Tau befolgst, solltest du einen Korrelation-Wert erhalten, der die Beziehung zwischen den beiden Rangfolgen quantifiziert.
' Beispiel zur Berechnung der Signifikanz
Ktau = (proversion - inversion) / Sqr((proversion + inversion) * (proversion + inversion + tie))
1. Wie interpretiere ich Kendall's Tau?
Kendall's Tau reicht von -1 bis 1. Ein Wert von 1 bedeutet eine perfekte positive Korrelation, -1 eine perfekte negative Korrelation und 0 keine Korrelation.
2. Was ist der Unterschied zwischen Kendall's Tau und Pearson-Korrelation?
Kendall's Tau misst die ordinalen Beziehungen zwischen zwei Variablen, während die Pearson-Korrelation die lineare Beziehung zwischen zwei kontinuierlichen Variablen misst. Kendall's Tau ist robuster gegenüber Ausreißern und Ranggleichheiten.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen