Beispiel 1 Im Verein „Wiener Freunde der Oper“ wurden folgende Daten über die durchschnittlichen Ausgaben pro Jahr der Mitglieder erhoben: x(i) (Alter des Mitgliedes) = 51,27,60,70,35 y(i) (Ausgaben) = 430,100,260,400,200 -Berechne Maximum-Likelihood-Schätzwerte für die Parameter a, b und σ^2. (y = ax + b) Sage: x = [51,27,60,70,35] y = [430,100,260,400,200] n=len(x) mx = mean(x) my = mean(y) print 'my=', my dx = [(x[i]-mx)*1.0 for i in range (0,n)] dy = [(y[i]-my)*1.0 for i in range (0,n)] dxdy = [dx[i]*dy[i] for i in range (0,n)] sdxdy = sum(dxdy) dxdx = [dx[i]*dx[i] for i in range (0,n)] sdxdx = sum(dxdx) a = sdxdy/sdxdx print 'a=', a b = my-a*mx yhat = [a*x[i]+b for i in range (0,n)] e = [y[i]-yhat[i] for i in range (0,n)] e2 = [e[i]*e[i] for i in range (0,n)] vare = sum(e2)/(n-2) print 'vare=', vare print sqrt(vare) print 'b=', b print sum(e2) points = zip(x,y) P1 = scatter_plot(points) var('z') f = b+a*z P2 = plot(f, (z,25, 100)) P1+P2 X = r(x) Y = r(y) fit = r.lm(Y.tilde(X)) print r.summary(fit) Lösung: a = 6.16, b = -21.59 Beispiel 2 (verwende die Daten aus Beispiel 1) -Prüfe die Nullhypothese a = 0 (die erwarteten Durchschnittsausgaben der Mitglieder hängen nicht vom Alter ab) zum Niveau a) 80 % und b) 90 %. sa2 = vare/sdxdx sa = sqrt(sa2) print sa a) ug = a-sa*r.qt(0.9,n-2) og = a+sa*r.qt(0.9,n-2) print 'ug=', ug print 'og=', og Lösung : H0 verwerfen. b) ug = a-sa*r.qt(0.95,n-2) og = a+sa*r.qt(0.95,n-2) print 'ug=', ug print 'og=', og conf = r.confint(fit, level= 0.95) print conf Lösung : H0 behalten. Beispiel 3 (verwende die Daten aus Beispiel 1) -Prüfe die Nullhypothese b = 0 (die erwarteten Durchschnittsausgaben sind proportional zum Alter der Mitglieder) zum Niveau 80 %. x2 = [x[i]*x[i] for i in range (0,n)] sx2 = sum(x2) sb2 = sx2/(n*sum(dxdx))*vare sb = sqrt(sb2) print sb2 print sb ug = b - sb*r.qt(0.9,n-2) og = b + sb*r.qt(0.9,n-2) print 'ug=', ug print 'og=', og Lösung: Ho behalten. Beispiel 4 -Teste mit Hilfe eines F-Tests (Signifikanzniveau = 0.10) die Hypothese, dass in der Grundgesamtheit kein Zusammenhang zwischen Ausgaben und Alter besteht. Sage: dydy = [dy[i]*dy[i] for i in range (0,n)] sdydy = sum(dydy) print sdydy print sdxdx print sdydy r = sdxdy/(sqrt(sdxdx)*sqrt(sdydy)) print 'r= ', r print r*r F=r^2/((1-r^2)/(n-2)) print F Fkrit = r.qf(0.9,1,n-2) Beispiel 5 100 Messungen von Mitgliedern des Vereins „Wiener Freunde der Oper“ lieferten folgende Kennzahlen mean(x) = 45 mean(y) = 150 var(x)*100 = 25000 var(y)*100 = 750000 cov(x)*100 = 100000 -Gebe ein Prognoseintervall für die durchschnittlichen Ausgaben für das Alter 50 an. Sage: n=100.0 mx = 45.0 my= 150.0 ssx = 25000.0 ssy = 750000.0 ssxy = 100000.0 a = ssxy/ssx print 'a=', a b = -a*mx+my print 'b=', b r = ssxy/sqrt(ssx)/sqrt(ssy)*1.0 print 'r=', r print 'r^2=', r^2 e2 = ssy*(-r^2+1) print 'e2=', e2 vare = e2/(n-2) print 'vare=', vare Prognoseintervall x0 = 50 y0 = b + a*x0 print 'y0=', y0 sigma = sqrt(vare)*sqrt(1+1/n + (x0-mx)^2/ssx) ug = y0 - sigma*r.qt(0.95,n-2) og = y0 + sigma*r.qt(0.95,n-2) print 'ug=', ug print 'og=', og Beispiel 6 Es sei nachstehend X1 das Alter der Mitglieder im Verein „Freunde des Naturhistorischen Museums“, X2 die Dauer der Mitgliedschaft und Y die durchschnittlichen Ausgaben der Mitglieder. Wir möchten die Regression von Y auf X1 und X2 ermitteln, dh.: y = a + b1x1 + b2x2. a) Man schätze a, b1, b2. Sage: k = [20,30,47,52,29] #k steht für x1 l = [10,10,8,11,13] #l steht für x2 m = [90,60,58,80,101] #m steht für y n=len(k) nk = 3 y = vector(m) print y e = [1 for i in range (0,n)] Xt = matrix((e,k,l)) X = transpose(Xt) print X b= ((Xt*X).inverse())*Xt*z print 'b=', b print b*1.0 Lösung: a = 7.98, b1 = -0.32, b2 = 7.81 b) Man schätze σ^2. yhat = X*b eps = y-yhat print 'e=', eps eps2 = [eps[i]^2 for i in range (0,n)] var = sum(eps2)/(n-3)*1.0 Lösung: 196.45 c) Man schätze Var(b1) und Var(b2). Covb = var*((Xt*X).inverse()) print 'Covb=', Covb Varb = [Covb[i,i] for i in range (0,nk)] sdb = [sqrt(Varb[i]) for i in range (0,nk)] print 'Varb=', Varb print 'sdb=', sdb Lösung: Var(b1) = 0.295, Var(b2) = 16.046