############# ## Sheet 3 ## ############# #### question 1 x <- c(72, 116, 79, 97, 90, 67, 115, 82, 95, 82) y <- c(76, 120, 84, 99, 93, 75, 116, 83, 98, 87) m <- 10 n <- 10 xbar <- mean(x) ssqx <- var(x) ybar <- mean(y) ssqy <- var(y) ss <- ((m-1)*ssqx + (n-1)*ssqy) / (m+n-2) s <- sqrt(ss) tobs <- (xbar - ybar) / (s*sqrt(1/m + 1/n)) # since tobs is negative 2 * pt(tobs, df = 18) pt(tobs, df = 18) qt(0.1, df = 18) # as a check t.test(x, y, var.equal = TRUE) # now paired d <- y - x t1 <- mean(d)/sqrt(var(d)/10) 1 - pt(t1, df = 9) # as a check t.test(d) #### question 2 pnorm(1.96) pnorm(1.645) #### question 3 ppois(8, lambda = 4.7) ppois(8, lambda = 13) #### question 4 x1 <- 19711 n1 <- 38562 p1hat <- x1/n1 Lambda <- 2 * ( n1*log(2) + x1*log(p1hat) + (n1-x1)*log(1-p1hat) ) 1 - pchisq(Lambda, df = 1) x2 <- 17703 n2 <- 35042 p2hat <- x2/n2 phat <- (x1 + x2)/(n1 + n2) term1 <- (phat/p1hat)^x1 * ((1-phat)/(1-p1hat))^(n1-x1) term2 <- (phat/p2hat)^x2 * ((1-phat)/(1-p2hat))^(n2-x2) ratio <- term1*term2 Lambda1 <- -2*log(ratio) 1 - pchisq(Lambda1, df = 1) # same as Lambda1 Lambda2 <- -2 * ((x1+x2)*log(phat) + (n1+n2-x1-x2)*log(1-phat) - x1*log(p1hat) - (n1-x1)*log(1-p1hat) - x2*log(p2hat) - (n2-x2)*log(1-p2hat)) #### question 5 obs <- c(31, 37, 35, 187) expect <- 290*c(1/16, 3/16, 3/16, 9/16) L1 <- 2 * sum(obs * log(obs/expect)) P1 <- sum((obs - expect)^2/expect) 1 - pchisq(L1, df = 3) 1 - pchisq(P1, df = 3) n1 <- 31 n2 <- 37 n3 <- 35 n4 <- 187 a <- - 16^2*n1 - 16^2*(n2+n3) - 16^2*n4 b <- - 96*n1 - 160*(n2+n3) + 32*n4 c <- 27*n1 - 9*(n2+n3) + 3*n4 theta1 <- (-b + sqrt(b^2-4*a*c))/(2*a) theta2 <- (-b - sqrt(b^2-4*a*c))/(2*a) # theta1 not a valid value of theta c(1/16+theta1, 3/16-theta1, 3/16-theta1, 9/16+theta1) # theta2 is a valid value c(1/16+theta2, 3/16-theta2, 3/16-theta2, 9/16+theta2) # the log-likelihood is maximised at theta2 - picture theta <- seq(-0.05, 0.18, length.out=50) plot(theta, n1*log(1+16*theta) + (n2+n3)*log(3-16*theta) + n4*log(9+16*theta), type = "l", ylab = "g(theta)") abline(v = theta2, lty = 2) expect2 <- 290*c(1/16+theta2, 3/16-theta2, 3/16-theta2, 9/16+theta2) L2 <- 2 * sum(obs * log(obs/expect2)) P2 <- sum((obs - expect2)^2/expect2) 1 - pchisq(L2, df = 2) 1 - pchisq(P2, df = 2) #### question 6 x <- matrix(c(762, 484, 327, 239, 468, 477), ncol = 3) n <- sum(x) alpha <- rowSums(x)/n beta <- colSums(x)/n # under the null, the expected number in cell (i,j) is n*alpha[i]*beta[j] # an outer product, denoted by %o%, does exactly what we need # e.g try num <- 1:12 num %o% num # so evaluate the expected numbers under the null by expect <- n * alpha %o% beta obs <- x Lambda <- 2 * sum(obs * log(obs/expect)) Pearson <- sum((obs-expect)^2 / expect) 1 - pchisq(Lambda, df = 2) 1 - pchisq(Pearson, df = 2) ## as a check chisq.test(x)