####################### # ---- Aufgabe 2 ---- # ####################### m = 1000 n = 625 # Samples einer beliebigen Verteilung (hier Gamma mit E[X] = 100 = V[X]) # zur Ansicht: curve(dgamma(x, shape = 100, rate = 1),xlim=c(0,200)) ss = replicate(m, rgamma(n=n, shape = 100, rate = 1)) means = apply(ss, 2, mean) sds = apply(ss, 1, sd) # Grenzen fuer Normal-KI's zu alpha = 5% upper = means + 1.96*sds/sqrt(n) lower = means - 1.96*sds/sqrt(n) # wahrer Wert (100) ausserhalb der Grenzen: out = 100 < lower | 100 > upper table(out) # Eventuelle Sortierung nach mean: # ord = order(means) ord = 1:m plot(means[ord], pch = 19, lwd = 2, col = out[ord]+1, ylim = c(min(means)-1, max(means)+1)) abline( h = 100 ) arrows(x0 = 1:m, x1 = 1:m, y0 = lower[ord], y1 = upper[ord], col = out[ord]+1, angle = 90, lwd =2, code = 3, length = 0.1) # Zusatzfrage: Warum liegen in der sortierten Variante dennoch schwarze Balken zwischen den roten? # Wenn m waechst, so wird alpha mit out/m genauer approximiert. # Wenn n waechst, so sinkt die Stichprobenvarianz und die KI's werden kleiner, die Mittelwerte aber auch genauer. # Insgesamt aendert sich dann an out/m approx. alpha nichts! # Einfach mal ausprobieren! :) ####################### # ---- Aufgabe 4 ---- # ####################### # c) # Log-likelihood-Funktion um curve verwenden zu koennen. loglik = function(p, n, m){ LL = n*log(p)+m*log(1-p) } # Zeichen mit curve, 0 ist nicht definiert: curve(loglik(x,n= 3456, m = 4558-3456), lwd=2, xlim = c(0.0001,0.9999)) # Der ML-Schaetzer ist n/(n+m): # >> Stelle, an der die loglik-Funktion maximal wird: ss = seq(0.0001,0.9999,0.0001) ml = which.max(loglik(ss,n= 3456, m = 4558-3456)) # Einzeichnen: abline(v = ss[ml], lwd=3, col=2) abline(v = 3456/4558, lwd=4, lty="dashed", col = 4) ####################### # ---- Aufgabe R ---- # ####################### # a) sample(c(0,1), size = 100, replace = T) # b) round( runif(100) ) # c) ceiling( runif(100, min = 0, max = 6) )