Rafael A. Rosales


Introdução a Probabilidade e Estatística II (BCC) 2026


O Jupiterweb entre outras informações fornece o conteudo desta disciplina.

e-mail

Caso tiverem dúvidas sobre alguns dos exercicios ou sobre o envio de algum trabalho via e-nail, revissão de prova, etc, escrevam ao e-mail

prob2.bcc2026@gmail.com

Por favor, não escrevam para o meu e-mail @usp (sua mensagem será tratada como spam).

Avaliação

  • Prova 1: 27 de abril, das 10:00 as 12:00.
  • Prova 2: 01 de julho, das 10:00 as 12:00.
  • recuperação: data/hora/lugar serão anunciados neste site

Nota: (P1+P2)/2. (Jupiterweb)

Durante o semestre serão postados vários trabalhos (de 3 a 5) neste site. O intuito é fazer com que vocês implementem na prática algums assuntos tratados teoricamente em sala de aula. Os trabalhos não tem nota, mas poderão ser considerados para aqueles que precisarem $\frac12$ ponto para fazer 5 na nota definitiva ou para fazer 3 e fazer a prova de recuperação.

Não tem prova substitutuiva.

Lista de exercícios/Gabaritos

Todos os exercícios e alguns tópicos adicionais podem ser encontrados na seguinte lista.

O gabarito contem as respostas para algumas das questões da lista. Sugiro fortemente tentar resolver as questões de maneira independente, antes de ver o gabarito.

Dados/R

Os dados a serem utilizados na lista de exercícios e no decorrer do semestre são os seguintes: orto, escola, cancer, energy, chicken, stroke, cabbage, Cars93, hospital, trabalho, e Covid-RP. Qualquer um destes dados pode ser carregado em R utilizando a função read.table, por exemplo

 dados <- read.table("http://dcm.ffclrp.usp.br/~rrosales/aulas/cancer.txt", head=TRUE)

R é livre e pode ser baixado do seguinte site. Instalar R é relativamente simples. O site oficial também inclui vários tipos de documentação, inclusive em portugês (no menu a esqueda no site oficial: Contributed). O seguinte documento apresenta uma introdução mínima a linguagem R.

O primeiro Capítulo da referência 1, listada na Bibliografía abaixo, pode ser obtido aqui.

Bibliografía

  • Marcos Nascimento Magalhães. Noções de probabilidade e estatística. Edusp 2004/05.
  • Wilton de O. Bussab, Pedro A. Morettin. Estatística Básica. Saraiva, 2004.
  • Heleno Bolfarine, Mónica Carneiro Sandoval. Introdução a Inferência Estatítica. SBM, 2010.
  • Sheldon Ross. Probabilidade: Um curso moderno com aplicações. 8a. Edição, Bookman 2010.


R na sala de aula: simulações, análises, etc

04/03/26 e 09/03/26

Amostras/estimadores 1: média amostral

Os seguintes comandos tem por objetivo ilustrar a definição de amostras e estimadores.

A função sample pode ser utilizada para gerar amostras de uma população descrita por uma variável aleatória discreta com um número finito de valores. Por exemplo,

sample(x=c(1,2,3,4,5,6), size=300, replace=TRUE, prob=c(2/3,1/15,1/15,1/15,1/15,1/15))

gera a amostra

  [1] 1 1 1 1 3 1 1 1 1 6 6 1 1 1 1 5 1 6 1 6 4 4 1 1 1 1 6 1 1 2 1 1 1 1 1 1 1
 [38] 1 1 3 1 1 3 1 4 1 4 4 1 5 1 1 1 1 5 1 1 4 1 1 1 1 1 3 1 4 1 5 1 1 1 5 1 1
 [75] 1 1 4 1 1 6 1 1 5 2 1 6 1 1 1 1 1 1 1 4 1 3 4 1 1 5 2 4 2 1 1 1 1 2 4 1 1
[112] 2 1 1 1 1 3 4 1 1 1 3 5 5 2 1 1 5 3 4 1 3 1 5 1 2 1 1 1 1 6 2 1 1 1 1 3 5
[149] 1 2 5 1 4 2 4 1 1 1 3 1 4 1 1 1 1 1 4 1 1 2 5 1 1 4 1 1 1 1 1 3 1 1 1 3 3
[186] 1 1 3 1 1 1 4 3 1 3 1 6 1 1 1 4 5 1 1 1 2 4 1 1 1 4 1 6 5 1 1 1 6 1 2 3 1
[223] 5 1 1 4 5 3 1 1 4 1 1 1 5 1 2 1 1 1 1 1 6 6 6 3 4 2 2 1 1 1 1 1 4 1 2 5 1
[260] 1 6 1 1 1 4 4 1 1 1 1 1 6 3 2 3 5 1 4 1 1 1 1 1 3 1 4 1 1 2 4 1 1 1 1 1 4
[297] 2 1 1 1

a qual representa o resultado de termos lançado 300 vezes um dado não honesto, com probabilidade 2/3 de resultar em 1. Para simular 10 lançamentos de uma moeda honesta e de outra com probabilidade 1/4 de resultar em cara podemos fazer (1 representa cara)

sample(x=c(0,1), size=10, replace=TRUE, prob=c(1/2,1/2))
sample(x=c(0,1), size=10, replace=TRUE, prob=c(3/4,1/4))

R posue funções para gerar amostras de uma grande quantidade de distribuições, alguns exemplos são: rnorm, rpois, rgeom, rbinom, rchisq e rt. O seguinte exemplo gera uma amostra de tamanho 200 de uma população Poisson$(\lambda)$ com $\lambda=10$,

rpois(lambda=10, n=200)
   [1] 12 15 11 10 10 12 12  7  7 10 14  6 15 11  9  9  6 14  6  9 15 15  8 13  6
  [26] 13 12 10 11  8 12 11  9 10 10  8  9 13  4  7  9  9 18 13 10 15  8 11  7 10
  [51] 10  9 15  5 10 13  4  7  9 10 10 12  8 12  7 15 14 11  6 14  9  5 12 12 15
  [76] 15 14 12 13 11  7 12  6 10 12  3  8  6 13  5 14  9 12 11 12  6  8  5 11 17
 [101]  3 14 11 12 10 11  6  9  8  8  2  9  6 14 13  7 12 10 10  9  9 11 11  8 10
 [126]  9  5 13 17 13  7  9  5  8 17 13 10 11  8  7  9 10  8  4  8  7  6 11 10 14
 [151] 12 11 15  8 10  8  5  8 12  6 11 10 21  6 11 10  4  8  9 12  7 14 11 11 20
 [176] 10 12 14  6 13 10  8  7  6 17  5  9  5  6  5 10 10 14 15  9  6  9 12  9  8

Suponhamos que a polulação das alturas dos estudantes da USP seja normal com média 1.68 (m) e variância 0.01. A seguinte linha utiliza a função rnorm para gerar uma amostra de tamanho 10 desta população e armacena os valores gerados no vetor alturas,

alturas <- rnorm(n=10, mean=1.68, sd = sqrt(0.01))

Definimos a seguir uma função da amostra, $g(X_1, \ldots, X_n)$, com o objetivo de estimar a média da população (suponha que o valor 1.68 utilizado para gerar a mostra seja realmente um parâmetro desconhecido),

g <- function(x){ 
  print(sum(x)/length(x)) 
}

A função $g$ calcula a media amostral, isto é, para a amostra $x_1, x_2, \ldots, x_{10}$, o estatístico $g$ retorna \[g(x_1, \ldots, x_{10}) = \frac{1}{10}\sum_{i=1}^{10} x_i.\] Vale a pena lembrar que este é o valor numérico do estimador $\bar X = \frac{1}{n} \sum_{i=1}^n X_i$, $n=10$, na amostra \[(X_1, X_2, \ldots, X_n)(\omega) = (X_1(\omega), X_2(\omega), \ldots, X_n(\omega)) = (x_1, x_2, \ldots, x_n),\] sendo $\omega$ um ponto do espaço amostral $\Omega$. $\Omega$ neste caso representa o conjunto de todos os possíveis vetores de $n$ coordenadas (cada coordenada representa a altura de um estudante), quando as coordenadas são escolhidas ao acaso. Agora, no R, o resultado ao aplicarmos o estimador na amostra $(x_1, x_2, \ldots, x_n)$ gerada via rnorm() é

g(alturas)

Podemos gerar mais amostras e observar os valores do estimador em cada uma. Por exemplo

for (i in 1:5) g(rnorm(n=10, mean=1.68, sd = sqrt(0.01)))
 [1] 1.706853
 [1] 1.662526
 [1] 1.690708
 [1] 1.688903
 [1] 1.752636

de fato gera 5 amostras e calcula a media amostral de cada uma. Em sala de aula denotamos $g(X_1, \ldots, X_n)$ por $\bar X$, o estimador média amostral. O importante aqui é observarmos como a depender da amostra podem resultar valores diferentes para o estimador $\bar X$: estes valores são todos estimativas de $\bar X$. Cada chamada a rnorm muda a semente utilizada pelo gerador de números aleatórios utilizados por esta função gerando portanto amostras possívelmente diferentes. Por fim, no R já existe uma função que calcula a média amostral: mean(). Não é portanto necessário definir g(), mas o objetivo disto aqui é mostrar como definir uma função no R.

estimadores 2: variância amostral

Dada uma amostra $X_1$, $X_2$, $\ldots$, $X_n$ de uma população $X$, seja $S^2$ a variável aleatória definida por \[ S^2 = \frac{1}{n-1}\sum_{i=1}^n (X_i -\bar X)^2. \] $S^2$, conhecido como a variância amostral, é utilizado como um estimador da variância da população $\sigma^2 =$Var$(X)$. $S^2$ pode ser implementado pela função,

S2 <- function(x){ 
  n <- length(x)
  xbarra <- sum(x)/n
  print(sum((x-xbarra)^2/(n-1)))
}
Assim, para $\sigma = 0.1 = \sqrt{0.01}$ e 5 amostras de tamanho 10 temos

for (i in 1:5) S2(rnorm(n=10, mean=1.68, sd = sqrt(0.01)))
 [1] 0.005877579
 [1] 0.01414221
 [1] 0.007516044
 [1] 0.007520869
 [1] 0.01134922o
De novo, o importante aqui é vocês observar como o valor de $S^2$ varia aleatóriamente de amostra em amostra.

No R, as funções g() e S2() são implementadas respectivamente por mean() e var(); logo não é necessário definilas, mas o meu objetivo era explicar como isto pode ser feito.

11/03/26

estimadores 3: distribuição empírica

O script empirical_pdf.R tem por objetivo mostrar a performance do estimador da funcão de distribuicão de X conhecido como a distribuição empirica, isto é do estimador \[ \widehat F_{X_1, \ldots, X_n}(x) = \frac{1}{n} \sum_{i=1}^n 1_{\{X_i \leq x\}} \] para a função de distribuição $F(x)$ da população $X$. O exemplo descrito em sala de aula é apresentado a seguir.

  source("http://dcm.ffclrp.usp.br/~rrosales/aulas/empirical_pdf.R")
  dado(N=10)
  plotFn(dado(N=10))
  for (i in 1:6) plotFn(dado(N=10), add=T)
  plotFn(dado(N=10000), add=T, col.hor="red", lwd=3)
  # amostras de uma populacao normal padrao (mu=0, sd=1)
  plotFn(normal(N=30), xlim=c(-3,3))
  for (i in 1:3) plotFn(normal(N=30), add=T)
  plotFn(normal(N=15000), add=T, col.hor="blue", lwd=3)
		  

A primeira linha carrega as funções definidas em empirical_pdf.R. A segunda linha gera uma amostra $X_1$, $X_2$, $\ldots$, $X_{10}$, a qual representa o lançamento de um dado honesto 10 vezes. Isto é implementado com a função dado, a qual por sua vez utiliza a função do R sample. A terceira linha calcula e grafica a estimativa para $\widehat F_{n}(x)$ baseada na amostra gerada com dado. A quarta linha calcula e grafica mais outras seis estimativas, cada uma obtida com uma amostra diferente (subsequentes chamadas a sample geram amostras "aleatórias" diferentes; tente você mesmo). A quinta linha calcula e grafica a estimativa obtida com uma amostra de tamanho n=10000, ou seja uma sequência de números obtida ao lançarmos 10000 um dado!. A estimativa desta ultima deve estar bem próxima da função de distribuição de um dado honesto. As ultimas linhas repetem esta experiencia para amostras de uma população normal padrão, isto é, com média 0 e variância 1. Ambos os resultados são mostrados na figura abaixo.

*/03/26: Lei (fraca) dos Grandes Números

As simulações realizadas para ilustrar um exemplo da Lei dos Grandes Números é uma simulação da primeira Lei dos Grandes Números devida a J. Bernoulli. Esta podem ser reproduzida da seguinte forma. Inicie R e digite

  source("http://dcm.ffclrp.usp.br/~rrosales/aulas/moedaWLLN.R")

Este script define a função moedaWLLN(), a qual pode ser utilizada para simular o lançamento de uma moeda com prob. $p$ de sair cara N vezes. MoedaWLLN() aceita os seguintes argumentos além de N e $p$: m o número de moedas a serem lançadas e coins uma variável com dois valores TRUE/FALSE. Digite o seguinte e observe o resultado de cada linha

  moedaWLLN(m=1, p=0.25)
  moedaWLLN(m=1, N=300, p=0.25)
  moedaWLLN(m=1, N=3000, p=0.25)
  moedaWLLN(m=1, N=30000, p=0.25)
  moedaWLLN(m=15, N=3000, coins=FALSE, p=0.5)

Cada uma da linhas acima gera um gráfico da fração reativa de caras $S_N/N$ em função de $N$. $S_N$ corresponde a soma dos resultados de $N$ variáveis aleatórias Bernoulli $S_N = \xi_1 + \xi_2 + \ldots + \xi_N$. A ultima linha fornece um grafico de 15 trajetorias de $S_N/N$ obtidas ao lançar a mesma moeda $N$ vezes um total de 15 vezes. Isto ultimo permite visualizar a noção de convergência em probabilidade \[ \frac{S_N(\omega)}{N} \underset{\mathbb{P}}{\longrightarrow} p, \] ou seja, para qualquer $\epsilon > 0$, \[ \lim_{N \to \infty} \mathbb{P}\bigg(\bigg\{\omega \in \Omega\ :\ \bigg|\frac{S_N(\omega)}{N} - p\bigg| > \epsilon\bigg\}\bigg) = 0 . \] Cada caminho na simulação corresponde a um evento elementar $\omega$, determinado por uma sequencia específica de caras e coroas. É possível visualizar o corpo da função moedaWLLN, simplesmentes ao digitar

  moedaWLLN