diff --git a/scripts/ce089-05.R b/scripts/ce089-05.R index 4b9d19fed05ebc70ae63ce56f83aab51f0551e46..c0993ad725cbfb014cc655f4d544cad4f0d18fc1 100644 --- a/scripts/ce089-05.R +++ b/scripts/ce089-05.R @@ -45,12 +45,14 @@ theta <- coef(n0) thetaj <- matrix(0, nrow = n, ncol = length(theta)) colnames(thetaj) <- names(theta) -# Ajustes deixando uma observação de fora. +# Ajustes deixando uma observação de fora (leave-one-out). for (i in 1:n) { + # Aqui estima com leave-one-out. n1 <- nls(C ~ th0 + th1 * (Temp - th2) * (Temp >= th2) + 0 * (Temp < th2), data = segreg[-i, ], start = coef(n0)) + # Aqui calcula-se a estimativa Jackknife. thetaj[i, ] <- n * theta - (n - 1) * coef(n1) } @@ -65,17 +67,28 @@ cbind(Jack = colMeans(thetaj), cbind(Jack = apply(thetaj, MARGIN = 2, sd)/sqrt(n), MLE = summary(n0)$coefficients[, "Std. Error"]) +# Pacote com função pronta para Jackknife para modelos não lineares. +library(nlstools) +ls("package:nlstools") + +# Aplica Jackknife sobre o modelo. +j0 <- nlsJack(n0) +summary(j0) + #----------------------------------------------------------------------- -# Aplicação na Mediana (função "discretas"). +# Aplicação na Mediana (função "discretas") -> problema. +# Ordena o vetor de valores. x <- sort(precip) +# Calcula a mediana com os dados originais. M <- median(x) M n <- length(x) i <- 1:length(x) +# Estimativas da mediana por Jackknife. y <- sapply(i, FUN = function(i) { ep <- median(x[-i]) @@ -85,10 +98,12 @@ y <- sapply(i, stem(y) -# NOTE: Explique porque o Jackknife para a media só retorna 3 valores? +# NOTE: Explique porque o Jackknife para a mediana só retornou 2 +# valores? Considere que o tamanho da amostra é dado abaixo. +length(x) #----------------------------------------------------------------------- -# Capacidade de predição. +# Capacidade de predição de modelos. str(cars) plot(dist ~ speed, cars) @@ -117,13 +132,15 @@ interno <- function(grau) { summary(m0)$r.squared } -g <- 1:5 +g <- 1:8 int <- sapply(g, interno) ext <- sapply(g, externo) xyplot(int + ext ~ g, type = "o", - auto.key = TRUE) + auto.key = TRUE, + xlab = "Grau do polinômio", + ylab = "Coeficiente de determinação") #----------------------------------------------------------------------- # Inferência para a DL 50. @@ -144,6 +161,7 @@ m0 <- glm(resp ~ vol, family = binomial) summary(m0) +# DL_50. dl <- -coef(m0)[1]/coef(m0)[2] # str(m0$family)$link @@ -156,6 +174,7 @@ abline(v = dl, h = 0.5, lty = 2) n <- nrow(PaulaTb3.12) i <- 1:n +# Estimativas por Jackknife. DL <- sapply(i, FUN = function(i) { m0 <- glm(resp ~ vol, @@ -173,6 +192,8 @@ e <- sd(DL)/sqrt(n) plot(density(DL)) rug(DL) +# NOTE: alguma pista sobre porque a distribuição fica bimodal? + #----------------------------------------------------------------------- # Tempo do primeiro lugar nas provas de Monza desde 1950. diff --git a/scripts/ce089-06.R b/scripts/ce089-06.R index 533c3be09b19cbf3bde5545cf6494cd6cf967e1a..03e668c6c532cf0406ff98ce11e688529ea90552 100644 --- a/scripts/ce089-06.R +++ b/scripts/ce089-06.R @@ -256,13 +256,13 @@ boot:::bca.ci #----------------------------------------------------------------------- # Fazendo o debugging das funções. -debug(norm.ci) -norm.ci(b0) -undebug(norm.ci) - -debug(confint) -confint(b0, type = "basic") -undebug(confint) +# debug(norm.ci) +# norm.ci(b0) +# undebug(norm.ci) +# +# debug(confint) +# confint(b0, type = "basic") +# undebug(confint) #----------------------------------------------------------------------- #----------------------------------------------------------------------- diff --git a/scripts/ce089-08.R b/scripts/ce089-08.R index 06c076de24d08038687eed57fec714b317e6c1d7..8906759a8e44dfcc1e17cd7461be9cfacd0628b6 100644 --- a/scripts/ce089-08.R +++ b/scripts/ce089-08.R @@ -3,7 +3,7 @@ plot(NULL, NULL, xlim = c(0, 1), ylim = c(0, 1), asp = 1) lines(x = c(0, 1, 1, 0, 0), y = c(0, 0, 1, 1, 0)) -xy <- locator(n = 20, type = "p", pch = 19) +# xy <- locator(n = 20, type = "p", pch = 19) # dput(lapply(xy, round, digits = 3)) xy <- structure(list(x = c(0.204, 0.186, 0.529, 0.529, 0.385, 0.579,