reset; option randseed''; param B := 12; # Anzahl Beobachtungen param name {1..B}, symbolic; # Name param hoehe {1..B}; # gesprungene Hoehe param groesse {1..B}; # Koerpergroesse param geschlecht {1..B}; # Geschlecht param xxx {1..B}; # Event param mean := 1/B*sum{i in 1..B} hoehe[i]; param variance:= 1/B*sum{i in 1..B} (hoehe[i]-mean)^2; param stdabw := variance^0.5; data; param: name hoehe groesse geschlecht xxx:= 1 Keven 160 176 1 0 2 Martin 155 178 1 0 3 Christian 140 172 1 1 4 Matthias 150 175 1 0 5 Ralf 130 160 1 0 6 Stefan 165 190 1 1 7 Markus 165 185 1 0 8 Cindy 130 168 0 0 9 Marilena 130 163 0 1 10 Anna 145 170 0 0 11 Viktoria 155 171 0 0 12 Julia 125 167 0 0; model; #### Least Squares Regression var b1:=0; # Intercept var b2:=0; # Einfluss Koerpergroesse var b3:=0; # Einfluss Geschlecht var b4:=0; # Einfluss Party xxx minimize OLS: sum{i in 1..B} ( b1 + b2*groesse[i] + b3*geschlecht[i] + b4*xxx[i] - hoehe[i] )^2; #subject to nb3: b3=0; #subject to nb4: b4=0; solve; display mean, variance, stdabw; display b1,b2,b3,b4; var fit{i in 1..B} = b1 + b2*groesse[i] + b3*geschlecht[i] + b4*xxx[i]; var variance_neu = 1/B*sum{i in 1..B} (hoehe[i]-fit[i])^2; var R2 = 1-variance_neu/variance; display R2; #### Forecast display b1 + b2*179 + b3*1 + b4*1;