2016-06-03 6 views
0

In SAS habe ich ein Array x und eine Variable y. Wie kann ich eine lineare Regression von y als eine Funktion der Array-Elemente in x ausführen?SAS: Wie wird eine Regression für Array-Daten durchgeführt?

Zum Beispiel, hier ist ein Codebeispiel, das ein Array erzeugt:

data X; 
do i=1 to 10 by 0.1; 
    y = exp(i/2); 
    array x{5}; 
    do k=1 to 5; 
     x[k] = k*i; 
    end; 
    output; 
end; 
run; 

Und hier ist mein gescheiterten Versuch die Regression zu tun:

proc reg data=X outest=regest; 
    model y = x; 
run; 
quit; 
+0

Ihr Code erstellt einen Datensatz mit y, x1, x2, ..., x5. Sie haben also keine "x" -Variable in Ihrem Dataset X, aber reg benötigt eine vorhandene Variable. Sie können das Modell y = x1 x2 x3 x4 x5; aber Sie werden keine Ergebnisse für x2-x5 erhalten, weil sie eine lineare Kombination von x1 sind und ich bin mir auch nicht sicher, ob das das ist, was Sie wollen. – kl78

+0

@ kl78 Ich habe das Array nur als Beispiel für die Frage erstellt, also müssen wir uns nicht darum kümmern, ob die x linear abhängig sind. Ich interessiere mich dafür, wie ich die Regression durchführen könnte, ohne das lange Modell y = x1 x2 x3 x4 x5 zu schreiben. – Lior

+1

Ich bin immer noch nicht 100% sicher, wenn ich verstehe, was Sie wollen, aber Sie könnten Modell schreiben y = x :; was alle Variablen einschließen würde, die mit x beginnen. – kl78

Antwort

0

Array-Variablen sind nummeriert, so Array x {5}; erstellt Variablen x1, x2, x3, x4, x5. Proc reg benötigt alle aufgelisteten Variablen. Mit a: Sie können sas sagen alle Variablen aufzulisten, die mit den angegebenen Buchstaben beginnen, so wäre die Lösung:

model y=x:; 

die in Ihrem Fall

model y = x1 x2 x3 x4 x5; 

lösen würde, aber würde auch funktionieren mit eine andere Anzahl von x-Variablen. Sie müssen nur sicher sein, keine anderen Variablen zu haben, die in Ihrem Datensatz mit x beginnen.

Verwandte Themen