Ich möchte eine wiederkehrende Gleichung für die Kalibrierung eines Modells in VBA umsetzen.
Zuerst: es handelt sich dabei um:
NashSutcliffe model efficiency coefficient
https://en.wikipedia.org/wiki/NashSutcliffe_model_efficiency_coefficient
in VBA habe ich diese Gleichung wie folgt umgesetzt:
NSE = _
1 - WorksheetFunction.SumProduct((Worksheets("Calibration").Range("$Q$8", "Q" & cali_lastrow).Row.Offset(0, c).value - Worksheets("Calibration").Range("$J$7", "J" & cali_lastrow).value) ^ 2) / _
WorksheetFunction.SumProduct((Worksheets("Calibration").Range("$J$8", "J" & cali_lastrow).value - WorksheetFunction.Average(Worksheets("Calibration").Range("$J$8", "J" & cali_lastrow).value)) ^ 2)
Das liest sich dann wiefolgt:
1 - Summenprodukt ((Modelierter Wert - Gemessener Wert))^2 / Summenprodukt((Gemessen - Mittlerer gemessener Wert)^2)
Da sich gemessene Werte je nachdem in der Anzahl der Messwerte ändert, soll VBA immer die entsprechende Spaltenlänge ermitteln = dies ist vorher mit
cali_lastrow = Worksheets("Calibration").Range("J" & Rows.Count).End(xlUp).Row - 6
geschehen.
Zusätzlich soll die Funktion für jeden Loop einen anderes Modell verwenden, deshalb der Spalten-offset c.
mein Aktueller Fehler ist: Objekt erforderlich
ich verstehe aber eigentlich nicht wieso. könntet ihr mir da bitte helfen?
Liebe Grüße,
Christian