Having discussed the JSL 'Vec Quadratic()' function with a computer scientist, we both agreed we didn't understand the exact workings of it. I've also checked the Scripting Index and Documentation Library:


The issue came up with the attached example of prediction and confidence interval calculation, where this function is used. Specifically, what none of use can read is the part after the covariance matrix, and why it involves a concatenation ('[1] || :X') (see also screenshot below).

If someone could explain or point me into a direction of further documentation, I'd appreciate that very much.
Hallo @Ressel ,
Ich hoffe, dass ich dieses Problem einigermaßen erklären oder zumindest etwas mehr Licht darauf werfen kann.
Wenn Sie den Scripting Index noch einmal durchgehen und dem Beispiel für Vec Quadratic() folgen, wird es viel verständlicher. Wenn Sie eine Matrix X = [1 3 5, 2 4 6] haben, also eine 2x3-Matrix, und wenn Sie sie transponieren, um eine 3x2-Matrix zu erhalten, ist X' = [1 2, 3 4, 5 6].
Der nächste Schritt besteht darin, das Standardmatrix-Skalarprodukt mit der symmetrischen Matrix S = [1 3 5, 3 2 6 , 5 6 1], S*X' durchzuführen:
S*X' = [1 3 5, 3 2 6 , 5 6 1]*[1 2, 3 4, 5 6] = [1+9+25 2+12+30, 3+6+30 6+8+36, 5+18+5 10+24+6] = [35 44, 39 50, 28 40].
Der nächste Schritt besteht darin, das Skalarprodukt dieser neuen Matrix mit X zu berechnen, um eine neue 2x2-Matrix zu erhalten:
X*(S*X') = [1 3 5, 2 4 6]*[35 44, 39 50, 28 40] = [292 394, 394 528].
Die quadratische Vec-Funktion nimmt dann einfach die Diagonalelemente davon, um den Vektor [292, 528] zu erhalten.
Die Verkettungsfunktion || ist vorhanden, damit die Formel die symmetrische 2x2-Matrix mit einer transponierten 2x1-Matrix für diese Zeile in der Datentabelle multiplizieren kann. Beispielsweise sieht Vec Quadratic bei Zeile 1 am Ende so aus: Vec Quadratic( [2.33333333333333 -1, -1 0.5], [1] || 1 ). was dasselbe ist wie Vec Quadratic( [2.33333333333333 -1, -1 0.5], [1,1] ). Das [1]||:X für Zeile 1 sieht am Ende aus wie [1 1] und für Zeile 2 wie [1 2] usw. Die Formel muss den einzelnen Zeileneintrag für :X nehmen und ihn in eine Matrix umwandeln, und genau das macht [1]||:X in der Formel.
Ich hoffe das macht Sinn.
Viel Glück!,
DS
Danke, das macht natürlich sehr viel Sinn.