------------- # Aufgabe 1 # ------------- MyRegression = function(y,X) { # A beta = c A = t(X)%*%X Ainv = solve(A) c = t(X)%*%y betas = Ainv%*%c fittedvalues = X%*%betas errors = y - fittedvalues result = list(betas,fittedvalues,errors) names(result) = c("betas","fittedvalues","errors") plot(x,y) lines(x,fittedvalues,col="red") return(result) } # Test der Funktion: # Wir betrachten folgendes Beispiel: x = (-10):10 eps = rnorm(21) y = 5 - 0.5*x + eps plot(x,y) plot(x,y,asp=1) # x- und y-Achse haben dieselbe Skalierung # a) Mit der lm()-Funktion: reslm = lm(y ~ x) summary(reslm) names(reslm) # die "residuals" sind die errors, also y - fittedvalues reslm$fit reslm$residuals reslm$res # reicht aus, ist damit eindeutig plot(x,y) lines(x,reslm$fit,col="red") # b) Jetzt mit der MyRegression-Funktion: # der Vektor x0 fuer die Konstante beta0 muss in die # Matrix X der Regressoren mit reingeschrieben werden: # (die lm-Funktion macht das automatisch) n = length(y) x0 = rep(1,n) X = cbind(x0,x) resmy = MyRegression(y,X) resmy$betas resmy$fit resmy$err