> # 1
+ # a
+ # Daten einlesen
+ data <- read.table("/home/wkarcher/Desktop/wasser.txt", header = TRUE)

+ # Designmatrix
+ X <- cbind(1, data$Luftdruck)

+ # Zielvariablen
+ Y <- data$Siedepunkt

+ # Parameter n und m
+ n <- length(Y)
+ m <- length(X[1,])

+ # MKQ-Schätzer für beta
+ # Lösung der Normalengleichung
+ beta <- solve(t(X) %*% X, t(X) %*% Y)

+ # Schätzer für sigma^2
+ sigma2 <- 1 / (n - m) * t(Y - X %*% beta) %*% (Y - X %*% beta)
+ # Plot
+ plot(data$Luftdruck, data$Siedepunkt)
+ plot(function(x) beta[1] + beta[2] * x, min(data$Luftdruck), max(data$Luftdruck), add = TRUE)
+ # b
+ beta0 <- c(150, 2)

+ # Testgröße
+ T <- t(beta - beta0) %*% t(X) %*% X %*% (beta - beta0) / (m * sigma2)
+ print(T)
         [,1]
[1,] 350.1399

+ # Quantil
+ print(qf(0.95, m, n - m))
[1] 3.68232

+ # Testentscheidung
+ if (T > qf(0.95, m, n - m)) {
+ 	print("H0 wird abgelehnt")
+ } else {
+ 	print("H0 wird nicht abgelehnt")
+ }
[1] "H0 wird abgelehnt"

+ # c
+ # obere Schranke
+ upper <- function(x) {
+ 	yupper <- rep(0, length(x))
+ 	for (i in 1:length(x)) {
+ 		yupper[i] = beta[1] + beta[2] * x[i] + sqrt(m * qf(.95, m, n-m) * sigma2 * c(1, x[i]) %*% solve(t(X) %*% X, c(1, x[i])))
+ 	}
+ 	return(yupper)
+ }

+ # untere Schranke
+ lower <- function(x) {
+ 	ylower <- rep(0, length(x))
+ 	for (i in 1:length(x)) {
+ 		ylower[i] = beta[1] + beta[2] * x[i] - sqrt(m * qf(.95, m, n-m) * sigma2 * c(1, x[i]) %*% solve(t(X) %*% X, c(1, x[i])))
+ 	}
+ 	return(ylower)
+ }

+ # Plot
+ plot(upper, min(data$Luftdruck), max(data$Luftdruck), add = TRUE)
+ plot(lower, min(data$Luftdruck), max(data$Luftdruck), add = TRUE)