2012-04-05 15 views
11

Ich verwende ein Standard-LM-Modell und möchte die Koeffizienten von einer oder mehreren meiner Variablen auf eine bestimmte ganze Zahl setzen.Setze einen oder mehrere Koeffizienten auf eine bestimmte ganze Zahl

Zum Beispiel möchte ich, dass der Koeffizient meiner Wetter- und Preisvariablen 647 bzw. 15 ist.

Ich verwende die LM-Funktion mit einer Standardformel.

Die nächsten Dinge, die ich bisher gefunden habe, sind die Offset-Funktion in Glm, oder restrict.rhs innerhalb Systemfit.

Ich habe auch untersucht, den Gesamtbeitrag von diesen Variablen mit ihren Koeffizienten zu subtrahieren, aber das ist nicht sehr skalierbar.

Ich bin mir aller Probleme bewusst, die das Setzen eines Koeffizienten haben, aber ich möchte das nur aus einem explorativen Blickwinkel tun.

Antwort

12

Sie können das Offset-Term in der Formel verwendet werden und umfassen die gewünschten Koeffizienten und variablen darin:

df<-data.frame(aa=1:6,bb=2:7,cc=c(4,2,7,5,8,3)) 

lm(cc ~ aa + offset(647*bb), data = df) 

So wird diese bb * 647cc auf aa plus die feste Laufzeit Regression. Fügen Sie für mehr als einen gegebenen Koeffizienten die entsprechenden zusätzlichen offset() Begriffe hinzu.

+0

Nein, dies ist nicht korrekt, weil der Offset-Koeffizient (647 * bb) 'immer noch von 1 verschieden ist. –

+0

@AndrewSchulman, im obigen Beispiel sollte der Koeffizient des Offset-Terms 1 sein. Haben Sie ein Beispiel, für das es sich von 1 unterscheidet? – BenBarnes

+0

Zur Verdeutlichung: der Koeffizient des Offsets (647 * bb) 'ist 1 – BenBarnes

Verwandte Themen