Considere que é disponível um algoritmo para gerar valores de uma distribuição uniforme \(U[0,1]\). Explique, incluindo expressões envolvidas, como obter a partir de valores desta variável valores de:
y | 0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|---|
P(Y=y) | 0.15 | 0.28 | 0.24 | 0.18 | 0.10 | 0.05 |
Seja a função de densidade de probabilidade \(f(y) = {\rm sen}(y)\) para \(y \in [0, \pi/2]\). Explique, passo a passo, como obter amostras desta distribuição utilizando:
Em cada caso descreva como funciona cada método e forneça o passo a passo para obter a amostra, fornecendo as expressões envolvidas para a densidade em questão.
Deseja-se comparar o coeficiente de variação de dois grupos. Para isto são tomadas amostras independentes de observações de cada grupo. Explique por que um teste aleatorizado é uma opção interessante a ser considerada neste caso. Forneça os passos (e algoritmo/pseudo-código) para realização do teste.
O jackknife e o bootstrap são métodos computacionais criados para fazer e/ou auxiliar inferências estatísticas. Explique o funcionamento básico de cada um deles e os resultados que podem fornecer. Compare os métodos. Na descrição do jackknife explique o que são pseudo-valores. Para contextualizar voce pode considerar o exemplo de inferência sobre uma quantidade de interesse sendo a média harmônica \[ H = \frac{n}{\frac{1}{y_1} + \frac{1}{y_2} + \ldots + \frac{1}{y_n}}\] a partir de uma amostra \((5.2, 8, 12, 10.5, 6, 15, 16, 12)\). Descreva os passos dos métodos para este exemplo. Explique como é feita a correção de viés em cada caso.
Identifique o método que está sendo utilizado em cada código e comente as linhas/partes de cada um deles.
x1 <- c(43, 53, 39, 55, 40, 60)
x2 <- c(20, 31, 23, 26, 22, 27)
n <- length(x1)
q <- var(x1/x2)
fun <- function(x1, x2){
if(length(x1) != length(x2)) stop("Vetores devem ter mesmo tamanho")
n <- length(x1)
qi <- numeric(length(x1))
for(i in 1:n){
qi[i] <- var(x1[-i]/x2[-i])
}
return(qi)
}
qis <- fun(x1, x2)
qis.m <- mean(qis)
v <- (n-1) * (mean(qis) - q)
q - v
sqrt(((n-1)/n) * sum((qis - qis.m)^2))
##
vals <- n*q - (n-1)*qis
mean(vals)
sd(vals)/sqrt(n)
x1 <- c(43, 53, 39, 55, 40, 60)
x2 <- c(20, 31, 23, 26, 22, 27)
n <- length(x1)
q <- var(x1/x2)
fun <- function(x1, x2){
n <- length(x1)
ind <- sample(1:n, n, replace = TRUE)
return(var(x1[ind]/x2[ind]))
}
qis <- replicate(1e4, fun(x1, x2))
qis.m <- mean(qis)
qis.m - q
2*q - qis.m
sqrt(var(qis))
quantile(qis, prob = c(0.05, 0.95))