Finden, wo sich zwei lineare Anpassungen in R schneiden

7

Ich habe zwei lineare Anpassungen, die ich von lm-Anrufen in meinem R-Skript bekommen habe. Zum Beispiel ...

%Vor%

Ich möchte den (x, y) Punkt finden, an dem sich diese beiden Linien ( fit1 und fit2 ) schneiden, wenn sie sich überhaupt schneiden.

    
CodeGuy 18.08.2011, 22:04
quelle

4 Antworten

7

Eine Möglichkeit, die Geometrie zu vermeiden, besteht darin, die Gleichungen wie folgt neu zu parametrisieren:

%Vor%

in Bezug auf ihren Schnittpunkt (x0, y0) und führen dann die Anpassung beider gleichzeitig mit nls durch, so dass die zurückgegebenen Werte von x0 und y0 das Ergebnis liefern:

%Vor%

BEARBEITEN: Beachten Sie, dass die Zeilen xx<-... und yy<-... neu sind und die nls -Zeile als solche angegeben und korrigiert wurde.

    
G. Grothendieck 19.08.2011, 00:32
quelle
9

Hier ist etwas Gymnasium Geometrie dann; -)

%Vor%

Oder, um die solve -basierte Lösung von @Dwin zu vereinfachen:

%Vor%     
Tommy 18.08.2011 22:33
quelle
4

Wenn die Regressionskoeffizienten in den beiden Modellen nicht gleich sind (was fast sicher ist), würden sich die Linien schneiden. Die Funktion coef wird verwendet, um sie zu extrahieren. Der Rest ist High-School-Geometrie.

Für Brandon: M ^ -1% *% fängt ab - & gt;

%Vor%     
42- 18.08.2011 22:13
quelle
1

Ich bin ein wenig überrascht, dass es dafür keine eingebaute Funktion gibt.

Hier ist eine rudimentäre Funktion (für lm-Ergebnisse), die die gleiche allgemeine Methode wie Tommy verwendet. Dies verwendet die einfache Ersetzungsmethode für zwei Zeilen in der Form "y = mx + b", um den gemeinsamen Schnittpunkt bei y zu finden (y1 = y2; m1 * x + b1 = m2 * x + b2) und löst für x:

Funktionsdefinition

%Vor%

Test:

%Vor%     
Matt L. 16.02.2016 23:36
quelle

Tags und Links