Você está na página 1de 57

U NIVERSIDADE F EDERAL DO C EAR Á

C ENTRO DE C I ÊNCIAS
D EPARTAMENTO DE E STAT ÍSTICA E M ATEM ÁTICA APLICADA
E STAT ÍSTICA

Curso de Software R:
Probabilidade e Estatı́stica
UNIVERSIDADE FEDERAL DO CEARÁ
CENTRO DE CIÊNCIAS
DEPARTAMENTO DE ESTATÍSTICA E MATEMÁTICA APLICADA
CURSO DE ESTATÍSTICA
GAUSS - EMPRESA JÚNIOR DE ESTATÍSTICA

Tutor:
Prof. Dr. Luis Gustavo B. Pinho
Membros:
Alberto Rodrigues Ferreira
Antônio Matheus Osterno Leitão
Allyson Garreto da Costa
Cláudio Matheus Oliveira Mendes
Diego da Silva Santos
Francisco Glairton Moreira da Silvia
Jamily Santos Sousa
João Pedro Salustro Pereira
Letı́cia Santana dos Santos
Lorena Cândido da Silva
Nayara Ferreira Santos
Victor Pereira de Barros
Yohana Brito Gonçalves

FORTALEZA, CE
2019
Sumário

1 O que é o R? Para que serve? 4


1.1 Instalação do Rstudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Diretório de trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Sintaxe de visualização . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Escolha de diretório . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Comandos iniciais 7
2.1 Vetor e Matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 Vetor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Atribuindo objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1 Matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Criando funções no R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.1 Comando Data frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Trabalhando com Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5 Análise Exploratória de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.1 Gráficos no R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5.2 Medidas bivariadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.3 Coeficiente de correlação . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3 Probabilidade 28
3.1 Distribuição de probabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Função da distribuição acumulada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.1 Teorema do Limite Central . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 Inferência Estatı́stica 35
4.1 Intervalos de confiança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2 Teste de hipóteses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3 Testes não paramétricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.1 Teste dos postos de Wilcoxon . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.2 Teste de Qui-Quadrado de independência . . . . . . . . . . . . . . . . . . . 45
4.3.3 Teste de Kolmogorov-Smirnov . . . . . . . . . . . . . . . . . . . . . . . . . 46

5 Análise de Regressão 49
5.1 Regressão linear simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.2 Regressão linear múltipla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

3
Capı́tulo 1

O que é o R? Para que serve?

R é um software voltado para a manipulação de dados, cálculos e apresentações gráficas.


Possui um ambiente de programação que se preocupa com a flexibilidade, com a capacidade de
manipulação de dados e com a realização de análises.
No ambiente do R são usadas técnicas estatı́sticas, sejam elas clássicas ou modernas. Essas
técnicas são implementadas por meio de pacotes adicionais (packages), alguns desses pacotes estão
implementadas no ambiente básico do R e alguns precisam ser instalados para serem utilizados. O
R funciona como uma linguagem de programação, que será interpretada através de comandos feitos
pelo usuário.

1.1 Instalação do Rstudio


Para usar o Rstudio é necessário que o R esteja instalado no hardware. Para instalar o R:

• Entre no site www.r-project.org

• Clique em CRAN (Comprehensive R Archive Network).

• Escolha o CRAN que tenha a localização mais próxima da sua cidade.

• Clique em em qual sistema operacional o programa rodará (windows, linux, ios...).

• Clique em base, faça o download do arquivo, depois é só executar o arquivo.

Feito o procedimento acima:

• Entre no site www.rstudio.com .

• Selecione “Products” e clique em “Download” .

• Em “Rstudio Desktop” clique em “Download Rstudio Desktop”.

• Após a página carregar, selecione a plataforma em que o Rstudio rodará.

• Em seguida execute o arquivo baixado.

4
CAPÍTULO 1. O QUE É O R? PARA QUE SERVE? 1.2. DIRETÓRIO DE TRABALHO

1.2 Diretório de trabalho

1.2.1 Sintaxe de visualização


No R as letras maiúsculas e minúsculas são entendidas como distintas, pois se referem a
variáveis distintas. Os comandos básicos consistem em atribuições de expressões (valores, fórmulas e
matrizes). Assim uma atribuição calcula/recebe a expressão atribuindo um resultado a essa expressão
que não é mostrado automaticamente, mas sim salvo em um local na memória do computador. Com
isso, a variável que está sendo utilizada, poderá ser reutilizada posteriormente pelo R.
Os comandos são separados por “ponto e vı́rgula”(;), então ao final de um comando a inserção
do (;) informa o fim do comando. Outra opção de informar o fim de um comando é pular de linha.
No R, as funções são desenvolvidas dentro de chaves ({}).

• No exemplo acima, o valor de cada argumento usado está explicitado. O argumento x da função
plot é a variável independente, e o argumento y é a variável dependente.

• Se o nome dos argumentos são omitidos, como na segunda linha do código, o R usa o critério
de posição: o primeiro valor é atribuı́do ao primeiro argumento, o segundo valor atribuı́do ao
segundo argumento, e assim por diante. Com isso os dois primeiros argumentos da função plot,
do exemplo acima, são x e y.

• Os dois critérios podem ser combinados, conforme a terceira linha: x e y são os dois primeiros
argumentos, logo não foi preciso declará-los. Como foi desejado usar outros dois argumentos
(xlab e ylab) foi preciso declara-los.

1.2.2 Escolha de diretório


O comando para saber onde estar o diretório (pasta onde será salvo o programa) é:

> getwd()

Para fazer a mudança de diretório no ”compilador”, digita-se o seguinte código e entre os parênteses
digita-se o endereço da pasta onde será salvo o programa. :

> setwd("C: .....")

Outra maneira de mudar de diretório é procurar, e selecionar, na barra principal de ferramentas


pela opção “Tools”, em seguida clicar na opção clicar em ”Global options”imediatamente aparecerá
um aba (como na figura 1.1), clique em “Browse”e selecione a pasta que será o diretório, ao final
clique em “ok”.

5
1.2. DIRETÓRIO DE TRABALHO CAPÍTULO 1. O QUE É O R? PARA QUE SERVE?

Figura 1.1

6
Capı́tulo 2

Comandos iniciais

2.1 Vetor e Matriz


2.1.1 Vetor
Os vetores são criados a partir da função c(...). O c é oriundo da expressão Combine. Os vetores
são nomeados para que possam ser feitas as operações desejadas. Exemplo de criação de um vetor:

a <- c(1,2,3);a
[1] 1 2 3
ou
a = c(1,2,3);a
[1] 1 2 3

Os comandos:

• rep(i,j): Cria um vetor repetindo “j”vezes o valor “i”.

• seq(e,f,g): Cria uma sequência no intervalo de “e”até “f”com um espaço de ”g”unidades.

• gl(g,t): Cria um vetor contendo ”g”nı́veis com números de 1 a ”g”sendo que cada nivel contem
”r”partições.

• cumsum(a): Faz um vetor onde os valores aumentam pela soma acumulada dos elementos
anteriores.

• cumprod(a): Faz um vetor que aumentam e a partir do produto acumulado dos elementos ante-
riores.

• length(a): Fornece o número de observações (n) dentro do objeto.

• sort(a): Organiza o vetor de forma crescente.

• rev(sort(a)): Organiza o vetor de forma decrescente.

• diff(a): Mostra a diferença entre os elementos dos vetores (elemento i+1 e i)

No R temos:

7
2.2. ATRIBUINDO OBJETOS CAPÍTULO 2. COMANDOS INICIAIS

> rep(2,5)
[1] 2 2 2 2 2
> seq(1,10,2)
[1] 1 3 5 7 9
> gl(5,1)
[1] 1 2 3 4 5
Levels: 1 2 3 4 5
> a=c(1,2,3)
> cumsum(a)
[1] 1 3 6
> cumprod(a)
[1] 1 2 6
> length(a)
[1] 3
>b=c(4,1,3,2)
> sort(b)
[1] 1 2 3 4
> rev(sort(b))
[1] 4 3 2 1
> diff(b)
[1] -3 2 -1
Operações com vetores:
• union(a,b): Cria um vetor com a união de outros dois vetores representados popr ”a”e ”b”.
• intersect(a,b: Cria um vetor com a irtersecção de outros dois vetores ”a”e ”b”.
• round(g): Arredonda o número ”g”ou o vetor de números ”g”para o valor mais próximo infe-
rior(abaixo de .5 nas casas decimais) e superior(acima de .5 nas casas decimais).
• lenght(a): Retorna o número de elementos que existem no vetor.
• sort(a): Exibe os valores do vetor ”a”em ordem crescente.

2.2 Atribuindo objetos


Os objetos no R possuem nome, conteúdo, e um atributo associado. Os objetos podem ser de
vários tipos, tais como, numéricos, complexos, caracteres ou lógico. Para se atribuir qualquer valor a
um objeto basta se escolher seu nome e usar os sinais -”ou ”=”seguidos de seu conteúdo. As funções
mode(), e lenght() mostram o tipo e o tamanho de um objeto, respectivamente.
Exemplo de criação de um objeto:
x <- c(1,2,3,4) # O objeto no caso é um vetor.
mode(x); lenght(x) # Retorna o tipo e o tamanho do objeto
[1] "numeric"
[1] "4"

a = "Ângela"; b = "TRUE"
mode(a); mode(b)
[1] "character"
[1] "logical"

8
CAPÍTULO 2. COMANDOS INICIAIS 2.2. ATRIBUINDO OBJETOS

Também podemos criar objetos que contêm letras ou palavras ao invés de números. Porém,
devem vir entre aspas .

> c("a","b","c","d")
[1] "a" "b" "c" "d"
> c("software","estatı́stica","Probabilidade")
[1] "software" "estatı́stica" "Probabilidade"

Podemos acessar qualquer elemento dentro do vetor, mas para isso precisamos nomear o vetor
e saber a posição do elemento desejado, Tendo essas informações, basta escrever o nome do vetor e a
posição do elemento entre colchetes.

> vetor=c(2,4,6,8)
[1] 2 4 6 8
> vetor[3]
[1] 6

Também é possı́vel excluir um elemento de um vetor,isso é bem similar a acessar um elemento


do vetor, mas no lugar de colocarmos apenas a posição que queremos acessar, devemos colocar -
posição, feito isso, o elemento daquela respectiva posição será removido do vetor.

> vetor=c(2,4,6,8)
[1] 2 4 6 8
> vetor[-3]
[1] 2 4 8

2.2.1 Matriz
As matrizes são estruturas matemáticas organizadas na forma de tabela com linhas e colunas,
utilizadas na organização de dados e informações. Nos assuntos ligados a álgebra, as matrizes são
responsáveis pela solução de sistemas lineares. Elas podem ser construı́das com m linhas e n colunas.
Abaixo podemos observar uma matriz quadrada 2 a 2:

 
−1 2
3 −5

No R a função matrix() é usada para a construção de matrizes. Os argumentos da função


matrix() para a construção de uma matriz simples são os valores a serem colocados na matriz, o
número de linhas (nrow) e o número de coluna (ncol).
No exemplo a seguir todos os valores contidos na matriz é 1, a matriz tem 3 linhas e 7 colunas.

> matriz=matrix(1,nrow=3,ncol=7);matriz
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 1 1 1 1 1 1 1
[2,] 1 1 1 1 1 1 1
[3,] 1 1 1 1 1 1 1

Para criar uma matriz a partir de um vetor. Primeiro é necessário declarar um vetor, como no
exemplo a baixo:

> a<-c(2:13);a
[1] 2 3 4 5 6 7 8 9 10 11 12 13

9
2.2. ATRIBUINDO OBJETOS CAPÍTULO 2. COMANDOS INICIAIS

Em seguida declare o vetor no lugar que corresponde aos valores da matriz:

> matrix(a,nrow=3,ncol=4)
[,1] [,2] [,3] [,4]
[1,] 2 5 8 11
[2,] 3 6 9 12
[3,] 4 7 10 13

O default da função matrix é construir a matriz pelas colunas. Caso o interesse seja que a
matriz seja construı́da pelas linhas, usa-se o argumento byrow=TRUE. Como a seguir:

> matrix(a,nrow=3,ncol=4,byrow=T)
[,1] [,2] [,3] [,4]
[1,] 2 3 4 5
[2,] 6 7 8 9
[3,] 10 11 12 13

Assim como no vetor, na matriz, também podemos localizar um elemento ou vários, para isso
precisamos atribuir a matriz a uma variável, do número da coluna e da linha que do elemento que
desejamos.

> m=matrix(a,nrow=3,ncol=4);m
[,1] [,2] [,3] [,4]
[1,] 2 5 8 11
[2,] 3 6 9 12
[3,] 4 7 10 13
> m[2,2]
[1] 6
> m[3,1]
[1] 4
> m[1,]
[1] 2 5 8 11
> m[,3]
[1] 8 9 10

Podemos definir arrays como um conjunto de elementos de dados, geralmente do mesmo ta-
manho e tipo de dados. Elementos individuais são acessados por sua posição no array. A posição
é dada por um ı́ndice, também chamado de subscrição. O ı́ndice geralmente utiliza uma sequência
de números naturais. Arrays podem ser de qualquer tipo, devido a sua grande importância para
declaração de matrizes. Existem arrays unidimensionais e multidimensionais.Arrays numéricos uni-
dimensionais nada mais são do que vetores, como já vimos. Já arrays númericos multidimensionais
podem ser usados para representação de matrizes. Vejamos abaixo a sintaxe para declaração de um
array:

> x=array(a,dim = c(2,5));x


[,1] [,2] [,3] [,4] [,5]
[1,] 2 4 6 8 10
[2,] 3 5 7 9 11

Existem duas formas de tirar a transposta de uma matriz, a primeira é completando a função
matrix com o byrow=T, já o segundo modo é utilizando a função t():

10
CAPÍTULO 2. COMANDOS INICIAIS 2.2. ATRIBUINDO OBJETOS

> f=c(1,2,3,4,5,6)
> mat=matrix(f,ncol=3,byrow=T);mat
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6

> t(matrix(f,ncol=3))
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
Quando o interesse é fazer a multiplicação de matrizes, o número de colunas da primeira deve
ser igual o número de linhas da segunda matriz, caso o contrário dará erro. Abaixo podemos ver o
comando:
> mat=matrix(c(1,2,3,4,5,6),ncol=3)
> mat2=matrix(c(8,2,6,4,3,6),ncol=2,)
> mat%*%mat2
[,1] [,2]
[1,] 44 43
[2,] 60 56
Agora se o interesse for o determinante e a inversa, serão usado os comandos det(), para saber
o determinante, e solve() para saber a matriz inversa. Como veremos nos exemplos a seguir:
> nat = matrix(c(2,3,-4,0,-4,2,1,-1,5), nrow=3, ncol = 3);nat
> nat
[,1] [,2] [,3]
[1,] 2 0 1
[2,] 3 -4 -1
[3,] -4 2 5
> det(nat)
[1] -46
>> solve(nat)
[,1] [,2] [,3]
[1,] 0.3913043 -0.04347826 -0.08695652
[2,] 0.2391304 -0.30434783 -0.10869565
[3,] 0.2173913 0.08695652 0.17391304
Para criar apenas a diagonal da matriz usa-se o comando diag:
> diag(mat%*%mat2)
[1] 44 56
Também é possivel criar uma matriz diagonal:
> diag(diag(mat%*%mat2))
[,1] [,2]
[1,] 44 0
[2,] 0 56
No R existem duas funções usadas para a manipulação de vetores e matrizes, a função rbind()
combina vetores e matrizes através das linhas e a função cbind() combina vetores e matrizes através
das colunas. A seguir temos uma demostração do uso dessas funções.

11
2.3. CRIANDO FUNÇÕES NO R CAPÍTULO 2. COMANDOS INICIAIS

> k=c(3,5,6,7)
> l=c(10,2,5,7)
> mat=cbind(k,l);mat
k l
[1,] 3 10
[2,] 5 2
[3,] 6 5
[4,] 7 7
> mat=rbind(k,l);mat
[,1] [,2] [,3] [,4]
k 3 5 6 7
l 10 2 5 7

É possı́vel também mudar o nome de linhas e colunas de matrizes. Com a função rowna-
mes(matriz)=c() atribui-se novos nomes para as linhas da matriz e com a função colnames(matriz)=c()
atribui-se novos nomes para as colunas da matriz. No código abaixo mostramos isso.

> mat=matrix(c(1:4),nrow=2,ncol=2);mat
[,1] [,2]
[1,] 1 3
[2,] 2 4
> rownames(mat)=c("L1","L2")
> colnames(mat)=c("C1","C2")
> mat
C1 C2
L1 1 3
L2 2 4

2.3 Criando funções no R


O R possui diversas funções que podemos usar para fazer os cálculos pretendidos. A base,
como já foi apresentada na sintaxe básica do R, é composta pelo tipo de função e o argumento, dentro
de parênteses: função(argumento).
A seguir temos um exemplo do Teorema de Bháskara e seu retorno:

> function(a,b,c){ #criar uma função com três variáveis


> r1=(-b+sqrt(bˆ2-4*a*c))/(2*a) #função em que a raiz é positiva
> r2=(-b-sqrt(bˆ2-4*a*c))/(2*a) #função da raiz negativa
> R <- list(raiz1=r1,raiz2=r2)
> return(R)} #para retornar os valores das raizes

No R já existem funções prontas para diversas operações matemáticas, como somatório,
produtório, fatorial, logaritmo, exponencial, valor absoluto e raiz quadrada de um valor ou conjunto
de valores. A funções para essas operações seguem a seguir:

• sum(): somatório de um conjunto de valores;

• prod(): produtório de um conjunto de valores;

• factorial(): fatorial de um valor;

• log(): logaritmo de um valor;

12
CAPÍTULO 2. COMANDOS INICIAIS 2.3. CRIANDO FUNÇÕES NO R

• exp(): exponencial de um valor;

• abs(): valor absoluto de um valor;

• sqrt(): raiz quadrada de um valor.

Exercı́cio

1. Construa dois vetores com os elementos (5, 0, 1, -2, 3, 0 , 2, 4, -1) e (1, 7, 4, 0, 11, -9, -3, 2,
13).

2. Encontre o tamanho dos vetores.

3. Considerando os vetores da questão anterior, coloque os seus valores em ordem crescente.

4. Transforme os vetores do item 1 matrizes 3x3.

5. Calcule o determinante das matrizes do item 2.

6. Faça a tranposta das matrizes do item 2.

7. Calcule o determinante das matrizes do item 4.

8. Calcule o produto das duas matrizes do item 1.

9. Faça a tranposta da matriz do item 5.

2.3.1 Comando Data frame


O comando data frame é usado para a memorização de ”data table”e uma lista de vetores de
mesmo comprimento.
No exemplo a baixo podemos ver que o df (data frame) possui três vetores:

> n = "2,3,4"
> n
[1] "2,3,4"
> n= c(2,3,4)
> n
[1] 2 3 4
> m= c("aa", "bb" , "cc")
> m
[1] "aa" "bb" "cc"
> o= c(TRUE, FALSE, TRUE)
> o
[1] TRUE FALSE TRUE
> df= data.frame(n,m,o)

> df
n m o
1 2 aa TRUE
2 3 bb FALSE
3 4 cc TRUE
>

13
2.4. TRABALHANDO COM DADOS CAPÍTULO 2. COMANDOS INICIAIS

Na parte de cima da tabela vemos quantas colunas existem e seus nomes, na horizontal nos
vemos no começo das linhas seus nomes. Cada parte da tabela do data é chamada de célula.
Para que se possa ter acesso a uma célula em especı́fico deve pôr o operador e as coordenadas
da célula sendo elas separados por virgulas. As coordenadas podem tanto serem numéricas quanto
pelos pontos na tabela.

>df [1, 2]]


[1] aa
>df [1, m]
[1] aa

2.4 Trabalhando com Dados


No R é possı́vel importar banco de dados de diversos programas, no entanto aqui focaremos
com dados salvos no ”Excel”e ”Calc”. Primeiramente é necessário ter salvo o arquivo no Excel ou
Calc e este arquivo deve estar no diretório escolhido.
Feito isso existem diversos comandos para carregar um banco de dados no R. A seguir temos
os mais usados, jundamente com os respectivos argumentos padrões:

• read.table(file, header = FALSE, sep = “ ”, dec = “.”)

• read.csv(file, header = TRUE, sep = “,”,dec = “.”)

• read.csv2(file, header = TRUE, sep = “;”, dec = “,”)

Os principais argumentos dessas funções são:

Argumentos:
file: Nome do arquivo com a extensão usada;
header: Informar a existência ou não de nomes (cabeçalho) na primeira linha do arquivo;
sep: Forma de indicar a separação de elementos no banco de dados;
dec: Indicar a forma decimal dos números no banco de dados. Nota: o ponto (.) é o separador
de decimais no R.

Outra maneira de chamar/abrir o banco de dados é através do Import dataset que se encontra
no canto superior direito do RStudio ou em tools, na barra de ferramentas. No Import dataset o
arquivo não precisa estar no diretório.

2.5 Análise Exploratória de dados


A análise descritiva e gráfica dos dados são ferramentas primordiais para a compreensão ini-
cial do comportamento dos dados. Na análise descritiva são quantificadas e analisadas as medidas
de dispersão e localidade dos dados. A análise gráfica usa ferramentais gráficos para visualizar as
tendências, comportamento e valores discrepantes das informações estudadas. Será estudado também
as medidas bivariadas que quantificam a interdependência das variáveis em estudo. Essas são medidas
pela correlação e covariância.
No software R existem diversas funções utilizadas na análise exploratória. A seguir aborda-
remos as mais usadas.

14
CAPÍTULO 2. COMANDOS INICIAIS 2.5. ANÁLISE EXPLORATÓRIA DE DADOS

• mean(dados): Essa função retorna a média das informações. Essa medida informa a posição/localização
dos dados;

> dados=c(11,8,6,39,14,20,50,6,79,21,20,37,12,16)
> mean(dados)
[1] 24.21429

• median(dados): Retorna a mediana dos dados;

> median(dados)
[1] 18

• table(dados): Retorna a frequência que cada valor dos dados se repetiu. É possı́vel encontrar a
moda quando esta existir.

> table(dados)
dados
6 8 11 12 14 16 20 21 37 39 50 79
2 1 1 1 1 1 2 1 1 1 1 1

Outro modo de se encontrar a moda é:

> subset(table(dados), table(dados)==max(table(dados)))


6
2

• summary(dados): Essa função retorna as principais medidas de posição. O valor mı́nimo, pri-
meiro quartil, mediana (segundo quartil), média, terceiro quartil e valor máximo, respectiva-
mente;

> summary(dados)
Min. 1st Qu. Median Mean 3rd Qu. Max.
6.00 11.25 18.00 24.21 33.00 79.00

• quantile(dados,c(”valores dos percentis”)): Função do R que divide os dados em 100 partes


iguais, ou seja, retorna os percentis dos conjuntos de dados.

> percentis=seq(0.01,0.99,.01)
> quantile(dados,percentis)
1% 2% 3% 4% 5% 6% 7% 8% 9% 10% 11% 12% ...
6.00 6.00 6.00 6.00 6.00 6.00 6.00 6.08 6.34 6.60 6.86 7.12 ...

• max(dados) - min(dados): retorna a amplitude total da base de dados;

> max(dados) - min(dados)


[1] 73

• var(dados): Retorna a variância amostral dos dados;

> var(dados)
[1] 465.9015

15
2.5. ANÁLISE EXPLORATÓRIA DE DADOS CAPÍTULO 2. COMANDOS INICIAIS

• sd(dados): Retorna o desvio padrão amostral, ou seja, a raiz quadrada da variância amostral;

> sd(dados)
[1] 21.58475

• 100*sd(dados)/mean(dados): A partir desse comando temos o valor do coeficiente de variação


(%);

> 100*sd(dados)/mean(dados)
[1] 82.75304 # cerca de 82.753%

• max(dados)-min(dados): A diferença do limite superior e o limite inferior. É a única medida de


dispersão que não tem a média como referência.

> min(dados)-min(dados)
[1] 73

2.5.1 Gráficos no R
Para fazer gráficos no R são utilizadas diversas funções, a utilização correta de cada uma dessas
funções leva em consideração o tipo de gráfico de interesse. Existem diversos argumentos disponı́veis
nas funções gráficas para a manipulação do gráfico. Os mais importantes estão definidas a seguir.

Argumentos:
main: Insere um tı́tulo para o gráfico;
xlab: Modifica o nome da coordenada x exposto do gráfico;
ylab: Modifica o nome da coordenada y exposto do gráfico;
col: Modifica a cor do gráfico;
xlim: Conjunto de valores que serão expostos na coordenada x;
ylim: Conjunto de valores que serão expostos na coordenada y;
pch: Estilo do ponto utilizado no gráfico;

Nos exemplos a seguir, estão expostas as principais funções no R para a construção de um


gráfico. Note que, dependendo da função usada, os argumentos se modificam.

• plot(x,y): Com este comando é possı́vel fazer gráficos de dispersão e de linha. No gráfico da
figura 2.1 foi construı́do cruzando as variáveis riqueza e áreas, essas variáveis são declaradas
através de bancos de dados ou manualmente pelo usuário.

>plot(x,y,xlab="Eixo x",ylab="Eixo y",


main="Gráfico de dispersão",pch=1,type="p")

16
CAPÍTULO 2. COMANDOS INICIAIS 2.5. ANÁLISE EXPLORATÓRIA DE DADOS

Gráfico de dispersão

40
30
Eixo y

20
10
0

10 20 30 40 50

Eixo x

Figura 2.1: Gráfico de dispersão

> plot(x,y,xlab="Eixo x",ylab="Eixo y",


main="Gráfico de dispersão",pch=8,type="p",col="red")

Gráfico de dispersão
40
30
Eixo y

20
10
0

10 20 30 40 50

Eixo x

Figura 2.2: Gráfico de dispersão

• pie(table(variável)): É usado com o intuito de representar graficamente os dados por meio do


gráfico de setor (ou Pizza). Este é um diagrama circular onde os valores de cada categoria es-
tatı́stica representadas são proporcionais às respectivas medidas dos ângulos. Para representar-
los em gráficos deste tipo, é necessário que os valores estejam em porcentagem, para isso
devemos definir a chamada frequência relativa dos dados observados.

> sexo=c(rep(0,82),rep(1,18))
>pie(table(sexo),col=c("VioletRed","SpringGreen"),
labels = c("Feminino","Masculino"))

17
2.5. ANÁLISE EXPLORATÓRIA DE DADOS CAPÍTULO 2. COMANDOS INICIAIS

Feminino

Masculino

Figura 2.3: Gráfico de setor

• barplot(variável): Esse comando faz gráficos com barras. Nesse gráfico podemos observar as
frequências das observações feitas.

> barplot(VADeaths, beside = TRUE,


col = c("lightblue", "mistyrose", "lightcyan",
"lavender", "cornsilk"),
legend = rownames(VADeaths), ylim = c(0, 150))

50−54
120

55−59
60−64
65−69
70−74
20 40 60 80
0

Rural Male Urban Male

Figura 2.4: Gráfico de barras

>barplot(VADeaths, beside = F,
col = c("Violet", "BlueViolet", "Maroon","SlateBlue1", "SkyBlue2"))

18
CAPÍTULO 2. COMANDOS INICIAIS 2.5. ANÁLISE EXPLORATÓRIA DE DADOS

200
150
100
50
0

Rural Male Urban Male

Figura 2.5: Gráfico de barras

• hist(variável): Representa os dados por meio do histograma. O histograma é um gráfico de


barras verticais ou barras horizontais da distribuição de frequências de um conjunto de dados
quantitativos contı́nuos.

> x=c(4,9,20,6,2,13,6,7,22,45,9,8,18,
21,51,33,31,40,45,50)
> hist(x,col="DarkSlateGray3",border="blue",
xlab="Valor de x",ylab="Frequência",main="Histograma")

Histograma
8
6
Frequência

4
2
0

0 10 20 30 40 50 60

Valor de x

Figura 2.6: Histograma

19
2.5. ANÁLISE EXPLORATÓRIA DE DADOS CAPÍTULO 2. COMANDOS INICIAIS

• stem(variável): Exige os dados pelo diagrama de ramo-e-folhas, exibindo a forma e distribuição


dos dados. É similar a um histograma. Contudo, um diagrama ramo-e-folhas mostra pontos de
dados exatos, tornando o cálculo da média, mediana e modo muito mais fácil.

> stem(duration)

16 | 070355555588
20 | 00002223378800035778
22 | 0002335578023578
24 | 00228
28 | 080
32 | 2337
34 | 250077
36 | 0000823577
38 | 2333335582225577
42 | 03335555778800233333555577778
46 | 0000233357700000023578
48 | 00000022335800333

• boxplot(variável): Representa os dados por meio do gráfico boxplot. Este é um gráfico usado
para avaliar a distribuição prática dos dados. O boxplot é formado pelo primeiro e terceiro
quartil e pela mediana. As hastes inferiores e superiores se estendem, respectivamente, do
quartil inferior até o menor valor não inferior ao limite inferior e do quartil superior até o maior
valor não superior ao limite superior.

> boxplot(count ˜ spray, data = InsectSprays,


col = c("SpringGreen1","DarkCyan"),ylim=c(0,28))
25
20
15
10
5
0

A B C D E F

Figura 2.7: Boxplots

20
CAPÍTULO 2. COMANDOS INICIAIS 2.5. ANÁLISE EXPLORATÓRIA DE DADOS

Utilizando a função par(mfrow=c(,)), é possı́vel colocar mais de um gráfico na mesma fi-


gura. No exemplo a seguir foi colocado quatro gráficos na mesma figura. Para isso foi atribuı́do
ao vetor c(,) dentro da função os valores 2 e 2, significando que a figura irá 2 gráficos em cada
linha e coluna.

> par(mfrow=c(2,2))
> sexo=c(rep(0,82),rep(1,18))
> pie(table(sexo),col=c("VioletRed","SpringGreen"),
labels = c("Feminino","Masculino"))
> pie(table(sexo),col=c("VioletRed","SpringGreen"),
labels = c("Feminino","Masculino"))
> pie(table(sexo),col=c("VioletRed","SpringGreen"),
labels = c("Feminino","Masculino"))
> pie(table(sexo),col=c("VioletRed","SpringGreen"),
labels = c("Feminino","Masculino"))

Feminino Feminino

Masculino Masculino

Feminino Feminino

Masculino Masculino

Figura 2.8: Vários gráficos

Nota: Os nomes das diversas cores possı́veis de serem usadas no R estão expostas no seguinte
site: http://dicas.ufpa.br/htm/htm-cor2.htm

2.5.2 Medidas bivariadas


A análise bivariada é usada quando a amostra contém duas ou bivariaveis. Ela é usada para des-
crever o relacionamento entre os pares de variáveis e com isso é possı́vel observar alguma correlação
entre as variáveis e buscar evidências se há diferença estatı́stica entre a distribuição de duas variáveis.
Com o objetivo de pesquisar influências, causalidades ou coincidências.

21
2.5. ANÁLISE EXPLORATÓRIA DE DADOS CAPÍTULO 2. COMANDOS INICIAIS

• cor(variável1,variável2): Com este comando retorna-se o valor da correlação entre duas variáveis.
A correlação é usada para saber se uma variável, de alguma forma, influência a outra variável.
A correlação varia entre 1, quando as variáveis crescem juntas linerarmente, e -1 , quando o
crescimento de uma implica no decrescimento da outra, logo quando é 0 significa que não pos-
sui nenhuma correlação. O valor obtido não depende da unidade dos dados. No R o default é a
forma do coeficiente linear de Pearson.

> var1=c(1,3,2,6,7)
> var2=c(9,4,2,1,1)
> cor(var1,var2)
[1] -0.7642668

• cov(X,Y): Retorna o valor da covariância. Quando duas variáveis aleatórias X e Y não são
independentes, geralmente é de interesse avaliar quão fortemente estão relacionadas uma com
a outra. Assim a covariância da uma idéia de dispersão dos valores da variável bidimensional
(X,Y) em relação ao ponto dos valores centrais de X e Y. O valor obtido depende da unidade
dos dados.

> X=c(1,3,2,6,7)
> Y=c(9,4,2,1,1)
> cov(X,Y)
[1] -6.65

2.5.3 Coeficiente de correlação


O coeficiente de correlação traz informação a respeito do grau de relação entre duas
variáveis, ou seja o quão associada elas são, abaixo serão listados os coeficientes mais conheci-
dos, bem como as situações que cada um pode ser utilizado.

Correlação de Pearson

O coeficiente de correlação de Pearson é utilizado quando se tem duas variáveis quanti-


tativas e é dado pela seguinte fórmula:

∑(xi − x̄)(yi − ȳ)


ρ=p
(Var(X)Var(Y ))

i) ρ = 1: Correlação perfeita positiva

ii) ρ = −1: Correlação perfeita negativa

iii) ρ = 0: Ausência de correlação

No R:
> require(TeachingSampling)
> dados = data.frame(BigLucy)
> cor(dados$Income, dados$Taxes)
[1] 0.9166732

22
CAPÍTULO 2. COMANDOS INICIAIS 2.5. ANÁLISE EXPLORATÓRIA DE DADOS

Correlação de Spearman

Esse coeficiente é utilizado quando não há suposições de que os dados seguem norma-
lidade ou outra distribuição, além de não existir relação de linearidade. Este coeficiente se
baseia nos postos das observações dentro de cada variável e sobre as diferenças entre os postos
observados, nas variáveis X e Y, para um mesmo objeto de estudo.
O coeficiente de Spearman é ideal quando as variáveis são medidas em uma escala ordi-
nal e deve ser utilizado quando o tamanho amostral for grande, pois caso contrário, o coeficiente
de Kendall é mais ideal. Quando for notado que a variabilidade dos dados é alta, aconselha-
se utilizar o coeficiente de Spearman, pois este não mede apenas correlação linear como o de
Pearson. O coeficiente é dado pela seguinte fórmula:

6 ∑ di2
rs = 1 −
n(n2 − 1)
Onde di = xi − yi , ou seja, é a diferença entre os dois postos de cada observação e n o número
de observações.

i) rs = 1: Correlação perfeita positiva

ii) rs = −1: Correlação perfeita negativa

iii) rs = 0: Ausência de correlação

No R:

> x = c(1,2,3,4,5,6,7,8,9,10)
> y = c(3,4,1,2,5,7,6,9,10,8)
> cor.test(x,y,method = "spearman")

[1] Spearman’s rank correlation rho


data: x and y
S = 24, p-value = 0.003505
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho
0.8545455

Correlação de Kendall

O coeficiente de correlação de Kendall, conhecido como coeficiente tau de Kendall


é uma estatı́stica utilizada para medir o grau de associação entre duas variáveis utilizando as
localizações ordinais entre estas, ou seja, seus postos. É bastante utilizada quando temos amos-
tras de tamanho pequeno e interpretada muitas vezes como uma medida de concordância entre
dois grupos de classificações referentes aos objetos de estudo.
Por exemplo, se quiséssemos realizar um experimento com duas pessoas para avaliarem
o sabor de sucos naturais de laranja (em ordem crescente) do menos saboroso ao mais sabo-
roso, poderı́amos utilizar o coeficiente de correlação de Kendall para tentar avaliar o grau de

23
2.5. ANÁLISE EXPLORATÓRIA DE DADOS CAPÍTULO 2. COMANDOS INICIAIS

concordância ou discordância entre elas, isto é, o coeficiente tenta medir a diferença entre a
probabilidade dessas avaliações estarem na mesma ordem ou em ordem diferentes.
Podemos citar uma vantagem em que este coeficiente é mais eficiente em relação ao
anterior: quando o tamanho amostral é reduzido e existem valores repetidos na amostra. Isso
é válido uma vez que na presença de valores repetidos, para este coeficiente, analisamos não a
medida em si mas sua localização.

Procedimento

Dispõe-se de duas variáveis mensuradas que podemos denominar de m1 e m2 que nada


mais são que os valores das medidas 1 e 2 respectivamente e observa-se os postos de cada
uma das medidas ordenadas em relação a uma delas (o ordenamento pode ser feito escolhendo
qualquer uma das medidas). Neste caso, a medida 1 (m1 ) foi ordenada em relação aos seus
postos, e cada valor -1 e 1 representa os postos menores e maiores à sua esquerda em relação
aos postos da medida 2.
Observando os postos da medida 2, olhamos primeiro para o posto 3 e verificamos se
há postos menores à sua esquerda, o que não ocorre. Partimos para o próximo posto de m2
(4) observamos que à sua esquerda há um valor menor que ele, e portanto contabilizamos 1.
Partimos agora para o próximo posto (posto 1) e observamos que da esquerda pra direita existem
2 valores maiores do que ele, e portanto contabilizamos -1 e -1 referente aos dois valores. Para
o posto 2 observamos dois valores maiores e apenas um valor menor, contabilizando -1, -1 e 1,
e o procedimento continua até o último posto de m2 . Os procedimentos mencionados podem
ser observados na tabela a seguir:

Postos medida 1 1 2 3 4 5 6 7 8 9 10
Postos medida 2 3 4 1 2 5 7 6 9 10 8
1 -1 -1 1 1 1 1 1 1
-1 -1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1
-1 1 1 1
1 1 1
1 -1
-1

Medida de correlação

A medida de correlação de Kendall é dada por:

somatório de pares positivos − somatório de pares negativos


τ=
maior soma positiva

Observamos que a medida de correlação de Kendall utiliza como denominador a maior


soma positiva, isto é, a soma de todos os postos menores e maiores, equivalentemente, a soma
de todos os valores 1 e -1. Analogamente, a soma dos pares positivos é a soma de todos os
valores 1 e dos pares negativos -1.

24
CAPÍTULO 2. COMANDOS INICIAIS 2.5. ANÁLISE EXPLORATÓRIA DE DADOS

38 − 7 31
Para este exemplo, τ = = = 0, 6889. Podemos perceber que este coeficiente de
45 45
correlação está sempre no intervalo [−1, 1] assim como o coeficiente de correlação de Pearson.
Para esta afirmação, podemos pensar que a maior soma positiva para este exemplo é 45, e que
a menor soma é -45 (caso em que todos os pares sejam -1).
Se existirem apenas pares positivos, neste exemplo teremos 45/45 = 1 e se todos os pares
forem negativos, teremos -45/45 = -1, verificando assim a afirmação anterior. Outra observação
importante é que o denominador de τ é dado por:
n(n − 1)
Maior soma positiva =
2
em que n : número de objetos a serem classificados, neste caso n = 10.
10
8
Postos medida 2

6
4
2

2 4 6 8 10

Postos medida 1

Figura 2.9: Diagrama de dispersão entre os postos ordenados das medidas m1 e m2 em relação a m1 .

Utilização no R

Para calcular o coeficiente tau de Kendall é bastante simples e podemos utilizar a mesma função
utilizada anteriormente:

No software R:

x <- c(10.3,9.4,8.5,13.5,17.8,15.6,10.23,16.8,15.1,19.2) # m1
y <- c(15.2,10.89,7.7,8.1,9.25,6.12,7.88,9.51,10.5,17.1) # m2

cor.test(x,y,method = "kendall")

# Retorno da função:

Kendall’s rank correlation tau

data: x and y
T = 27, p-value = 0.4843
alternative hypothesis: true tau is not equal to 0
sample estimates:
tau
0.2

25
2.5. ANÁLISE EXPLORATÓRIA DE DADOS CAPÍTULO 2. COMANDOS INICIAIS

Ordenando os postos em relação a medida 1, podemos fazer os seguintes gráficos de dispersão


tanto dos valores quanto dos postos ordenados:

26
CAPÍTULO 2. COMANDOS INICIAIS 2.5. ANÁLISE EXPLORATÓRIA DE DADOS

10
16

8
14

Postos medida 2
Medida 2

6
12
10

4
8

2
6

10 12 14 16 18 2 4 6 8 10

Medida 1 Postos medida 1

Figura 2.10: Diagrama de dispersão entre as medidas e postos ordenados m1 e m2 em relação a m1 .

27
Capı́tulo 3

Probabilidade

3.1 Distribuição de probabilidade


A função de probabilidade(f.p.) e função densidade de probabilidade (f.d.p) de uma variável
aleatória, é uma função que descreve o comportamento de uma variável aleatória.

Chama-se função de densidade de probabilidade (f.d.p) definida em um intervalo [a,b], da


variavel aleatória contı́nua X, a funçao f(x) que atenda as seguintes condições:

i) f (x) ≥ 0, para a<x<b;


Rb .
ii) a f (x)dx = 1, onde a e b podem ser respectivamente, −∞ e +∞;

iii) P(X = x) = 0.

Obs: A função de densidade de probabilidade, f(x), não representa probabilidade. Teremos probabi-
lidade apenas intervalar quando a função for integrada entre os dois limites, ela produzirá a probabi-
lidade.

3.2 Função da distribuição acumulada


Dada a variável X, chamaremos de função de distribuição acumulada ou, simplesmente, função
de distribuição F(x) a função F(x) = P(X ≤ x). Temos:

i) 0 ≤ F(x) ≤ 1;

ii) F(x) é sempre uma função não decrescente.

A função distribuição pode ser facilmente obtida a partir da função de probabilidade respectiva:
Para uma variável aleatória discreta:

F(x) = ∑ P(X = xi)


xi 6x

Para uma variável aleatória contı́nua:


Z x
F(x) = f (t)dt
−∞

28
CAPÍTULO 3. PROBABILIDADE 3.2. FUNÇÃO DA DISTRIBUIÇÃO ACUMULADA

Quantil da distribuição de probabilidade:

P(X ≤ q) = p,

em que q é o quantil desejado e p a respectiva probabilidade.

3.2.1 Teorema do Limite Central


Para explicarmos o teorema do limite central (Laplace, 1810), vamos supor X1 , ..., Xn variáveis
aleatórias independentes com a mesma distribuição de média µ e variância σ 2 finitas. Vamos estudar
a distribuição da soma X = X1 + ... + Xn à medida que n cresce.

Utilizando a distribuição Binomial como exemplo, temos que esta pode ser obtida através de
n ensaios independentes de Bernoulli (distribuição discreta de espaço amostral {0, 1}, que tem valor
1 com probabilidade de sucesso {p} e valor 0 com probabilidade de falha {q = 1 − p}). Isto é, se
Xi ∼ Bernoulli(p){i = 1, ... , n}, então X = X1 + ... + Xn ∼ B(n, p). Temos ainda que E(X) = np e
Var(X) = np(1 − p).

Na figura 3.1 temos histogramas da distribuição binomial (X ∼ B(n, p)) variando o número de
ensaios n e também a probabilidade de sucesso p.

Figura 3.1: Distribuições Binomiais

Nota-se pelos gráficos que à medida que n cresce, a distribuição de X ∼ B(n, p) se aproxima

29
3.2. FUNÇÃO DA DISTRIBUIÇÃO ACUMULADA CAPÍTULO 3. PROBABILIDADE

da distribuição de Y ∼ N(µX , σX2 ) em que µX = np e σX2 = np(1 − p). De modo geral, temos:

Para variáveis aleatórias X1 , ..., Xn independentes e com mesma distribuição de média µ e


variância σ 2 finitas, a distribuição da soma X = X1 + ... + Xn se aproxima à medida que n cresce da
distribuição de Y ∼ N(µX , σX2 ), em que µX = nµ e σX2 = nσ 2 . Já para a média dessas váriáveis, com
2
o crescimento de n a distribuição de X̄ se aproxima de uma normal com µX̄ = µ e σX̄2 = σn .

Probabilidade no R

O programa R inclui funcionalidade para operações com distribuições de probabilidades. Para


cada distribuições há 4 operações básicas indicadas pelas letras:
• d calcula a densidade de probabilidade f(x) no ponto;

• p calcula a função de probabilidade acumulada F(x) no ponto;

• q calcula o quantil correspondente a uma dada probabilidade;

• r gera uma amostra aleatória da distribuição.

Função de densidade:
Para usar os funções deve-se combinar uma das letras acima com uma abreviatura do nome da
distribuição, por exemplo para calcular probabilidades usamos: pnorm para normal, pexp para
exponencial, pbinom para binomial, ppois para Poisson e assim por diante.

Figura 3.2: Notação das distribuições no R

Veremos com mais detalhes a utilização do software R no cálculo de probabilidades e demais


caracterı́sticas tomando como exemplo a distribuição normal.

30
CAPÍTULO 3. PROBABILIDADE 3.2. FUNÇÃO DA DISTRIBUIÇÃO ACUMULADA

Geração de números aleatórios

O R pode gerar números aleatórios de várias formas. Pode-se gerar um número qualquer,
dentro de um intervalo pré-estabelecido ou em uma distribuição de interesse.Deve-se primeiro esta-
belecer o intervalo, ou seja, quais valores que o(s) número(s) gerado(s) pode(m) assumir. Depois se
devem determinar quantos números serão gerados, com ou sem reposição.
Para simular o lançamento de um dado honesto 100 vezes usando o R, podemos usar o co-
mando sample(), onde o primeiro parâmetro do parêntese informa quais valores podem ser assumidos
(no nosso caso, os 6 valores contidos nas faces do dado), em seguida informamos quantas vezes que-
remos “jogar o dado”, e devemos dizer também ao R que os números podem se repetir, ou seja, “com
reposição (re=TRUE)”.

x<-c(1,2,3,4,5,6) #determinado quais valores podem ser assumidos


sample(x, #aqui mandamos sortear dentre os valores de x
100, #aqui é o tamanho da amostra
re=TRUE) #re abrevia \replace" do inglês, indicando reposição

[1] 4 2 4 2 6 1 3 5 5 5 2 4 6 3 6 6 6 3 4 6 4 6 4 3 6 5 4
[28] 6 3 4 5 3 2 3 4 4 5 3 2 4 3 2 3 1 4 4 1 6 1 6 1 2 4 5
[55] 6 4 5 4 5 3 5 6 6 3 6 4 3 1 6 6 1 1 3 5 5 5 6 6 5 3 6
[82] 4 4 5 1 2 5 2 5 5 3 3 1 5 2 5 4 1 1 3

Distribuição Normal

A funcionalidade para distribuição normal é implementada por argumentos que combinam as


letras acima com o termo norm. Vamos ver alguns exemplos com a distribuição normal padrão. Por
default no R, as funções assumem a distribuição normal padrão N(µ = 0, σ 2 = 1)
 
1 1 2
f(x) = √ exp − 2 (x − µ) , −∞ < x < ∞
2πσ 2 2σ
em que µ é a média e σ 2 é a variância. Na normal padrão temos (µ = 0, σ 2 = 1).

Seja X uma v.a. com distribuição N(µ, σ 2 ), vale ressaltar que para padronizarmos esta variável
basta subtraı́rmos de sua média e dividı́-la por seu desvio padrão, temos:
   
X −µ a−µ a−µ
P(X ≤ a) = p ⇒ P ≤ =p ⇒ P Z≤ =p
σ σ σ

Assim, temos que Z ∼ N(0, 1). Sendo a o valor do ponto no qual se deseja calcular a probabi-
lidade acumulada e p a probabilidade.

Para a distribuição normal, encontramos as seguintes funções no R:

• dnorm(x,mean,sd);

• pnorm(q,mean,sd);

• qnorm(p,mean,sd);

• rnorm(n,mean,sd).

31
3.2. FUNÇÃO DA DISTRIBUIÇÃO ACUMULADA CAPÍTULO 3. PROBABILIDADE

Em que,

x, q: Valor do quantil da normal;


p: Probabilidade;
n: Tamanho da amostra aleatória;
mean: Média da distribuição normal;
sd: Desvio-padrão da distribuição normal .

A seguir estão as funções com as letras (d,p,q,r) para distribuição normal padrão (default) no
ponto x = −1.

> (1/sqrt(2*pi)) * exp((-1/2)*(-1)ˆ2)


[1] 0.2419707
> dnorm(-1)
[1] 0.2419707
> pnorm(-1)
[1] 0.1586553
> qnorm(0.975)
[1] 1.959964
> rnorm(10)
[1] -0.0442493 -0.3604689 0.2608995 -0.8503701 -0.1255832 0.4337861
[7] -1.0240673 -1.3205288 2.0273882 -1.7574165

• A função dnorm(−1) calcula o valor da densidade no ponto (-1), nota-se as respostas iguais
quando a densidade é calculada através da função feita a partir do uso da ferramenta f unction
e quando calculada a partir da função pronta dnorm;

• A função pnorm(−1) calcula a probabilidade P(X ≤ −1), gráficamente temos;

Figura 3.3: Distribuição acumulada no ponto -1 da normal padrão.

• O comando qnorm(0.975) calcula o valor de a tal que P(X ≤ a) = 0.975;

• Finalmente o comando rnorm(10) gera uma amostra de 10 elementos da normal padrão. Note
que os valores de uma amostra aletória obtida rodando este comando podem ser diferentes dos
mostrados acima.

As funções acima possuem argumentos adicionais, para os quais valores padrão (default)
foram assumidos, e que podem ser modificados. Usamos:

32
CAPÍTULO 3. PROBABILIDADE 3.2. FUNÇÃO DA DISTRIBUIÇÃO ACUMULADA

• args(função) para ver os argumentos de uma função;

• help(”função”) para visualizar a documentação detalhada.

> args(rnorm)
function (n, mean = 0, sd = 1)

Exercı́cios:
Seja X uma v.a. com distribuição N(100, 100). Calcule:

1. P[ X < 95]

2. P[90 <X<110]

3. P[ X > 120]

4. P[|X| > 90]

5. P[X< a] = 1,96

6. P[X > a] = 0,5

A seguir vamos ver comandos para fazer gráficos da fdp e da distribuição acumulada. A Fi-
gura 3.4 mostra gráficos da densidade (esquerda) e distribuição acumulada (direita) da normal padrão
(µ = 0, σ 2 = 1), produzidos com os comandos a seguir. Para fazer o gráfico consideramos valores de
x entre −3 e 3 que correspondem a (+/−) três desvios padrões da média.

No R:

> plot(dnorm, -3, 3)


> plot(pnorm, -3, 3)

(a) Função densidade (b) Função de probabilidade acumulada

Figura 3.4: Funções da distribuição normal padrão.

A Figura 3.5 mostra gráficos da densidade (esquerda) e distribuição acumulada (direita) da


normal (µ = 100, σ 2 = 64). Para fazer estes gráficos tomamos uma sequência de valores de x e para
cada um deles calculamos o valor da função f(x) e depois unimos os pontos (x, f(x)) em um gráfico.
No R:

33
3.2. FUNÇÃO DA DISTRIBUIÇÃO ACUMULADA CAPÍTULO 3. PROBABILIDADE

(a) Densidade (b) Probabilidade acumulada

Figura 3.5: Funções da distribuição normal (µ = 100, σ 2 = 64)

x <- seq(70, 130, len=100); x


fx <- dnorm(x, 100, 8); fx
plot(function(x) dnorm(x, 100, 8), 70,130,xlab="valores de X",
ylab="densidade de probabilidade",main="Distribuicão Normal˜N(100, 64)")
plot(function(x) pnorm(x, 100, 8), 70,130,xlab="valores de X",
ylab="Probabilidade acumulada",main="Distribuicão Normal˜N(100, 64)")
Comparar simultâneamente várias distribuições:

plot(function(x) dnorm(x, 100, 8), 70, 130, ylab = "f(x)")


plot(function(x) dnorm(x, 90, 8), 70, 130, add = T, col = 2)
plot(function(x) dnorm(x, 100, 15), 70, 130, add = T, col = 3)
legend(110, 0.05, c("N(100,64)", "N(90,64)", "N(100,225)"), fill = 1:3)

Figura 3.6: Distribuição de probabilidade normal

Exercı́cios:

Seja X e Y variáveis aleatórias, onde X ∼ Exp(2) e Y ∼ χ 2 (4). Calcule:


1. P(1 ≤ Y ≤ 3)
2. P(X < a) = 0, 3

34
Capı́tulo 4

Inferência Estatı́stica

Inferência estatı́stica é o processo pelo qual são feitas generalizações para a população a par-
tir de resultados observados na amostra, utilizando propriedades de cálculo e probabilidade. Em
inferência, estimamos parâmetros, construı́mos intervalos de confiança para os mesmos e testamos
qualquer afirmação acerca do modelo probabilı́stico (Teste de Hipóteses).

4.1 Intervalos de confiança


Nesta sessão vamos verificar como utilizar o R para obter intervalos de confiança para os
parâmetros das distribuições de probabilidade. Para fins didáticos, vamos mostrar duas possı́veis
soluções utilizando o R:
• Fazendo os cálculos passo a passo, utilizando o R como uma calculadora;

• Usando uma função já existente no R.

Para a construção de uma estimativa intervalar (Intervalo de Confiança), com um nı́vel de


confiança (1 − α), é necessário conhecer a definição de Quantidade Pivotal. Uma variável aleatória
(T (x; θ )) é dita ser Quantidade Pivotal se a distribuição de (T (x; θ )) não depende do parâmetro de
interesse (θ ). A seguir temos o exemplo de uma Quantidade Pivotal para a média populacional (µ)
quando a variância (σ 2 ) é conhecida:
X1 , ..., Xn ∼ N(µ, 1)
X n ∼ N(µ, 1/n)

(X n − µ) n ∼ N(0, 1)

Portanto, como T (x; θ ) = (X n − µ) n depende funcionalmente de µ e sua distribuição não
depende do parâmetro populacional, dizemos que T (x; θ ) é uma Quantidade Pivotal para µ.

Para a construção de uma estimativa intervalar com um nı́vel de confiança (1 − α), utiliza-
mos o estimador para o parâmetro de interesse, em seguida é usado o quantil da distribuição amostral
do estimador multiplicado pelo desvio-padrão do mesmo.

1. Intervalo de confiança para µ quando σ 2 é conhecida:

 
σ
IC(µ) = xn ± z(1−α/2) √
1−α n

35
4.1. INTERVALOS DE CONFIANÇA CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA

2. Intervalo de confiança para µ quando σ 2 é desconhecida

 
Sn
IC(µ) = xn ± t(1−α/2; n−1) √ ,
1−α n
v
u n
u ∑ (xi − x)2
u
t i=1
em que Sn = , é a variância amostral.
n−1

3. Intervalo de confiança para σ 2

" #
(n − 1)Sn2
(n − 1)Sn2
IC(σ 2 ) = ;
1−α q(1−α/2; n−1) q(α/2; n−1)

4. Intervalo de confiança para diferença entre médias µx e µy :


a) σx2 e σy2 conhecida
 s 
σx2 σy2
IC(µx − µy ) = (xn1 − yn2 ) ± z(1−α/2) + , em que n1 e n2 é o tamanho amostral de
1−α n1 n2
X e Y , respectivamente.

b) σ12 = σ22 = σ 2 desconhecida


" s  #
1 1
IC(µx − µy ) = (xn1 − yn2 ) ± t(1−α/2; n1 +n2 −2) S2p + ,
1−α n1 n2
onde:
(n1 − 1)Sn21 + (n2 − 1)Sn22
S2p =
n1 + n2 − 2

c) σ12 e σ22 distintos e desconhecidos


 s 
Sn21 Sn22
IC(µx − µy ) = (xn1 − yn2 ) ± t(1−α/2; ν) + ,
1−α n1 n2

onde:
(A + B)2 Sn21 Sn22
ν= , A= e B=
A2 B2 n1 n2
+
n1 − 1 n2 − 1

36
CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA 4.1. INTERVALOS DE CONFIANÇA

5. Intervalo de confiança para comparar duas variâncias σ12 e σ22 , utilizamos a razão entre as mes-
mas.
 2 " #
σ1 1 S12 1 S12
IC = ;
σ22 F(1−α/2) S22 F(α/2) S22
1−α

6. Intervalo de confiança para proporções


Quando temos uma amostra aleatória X1 , ..., Xn ∼ Bernoulli(p) e em termos assintóticos temos que:
 
p(1 − p)
pb ∼ N p, ,
n
n
∑ Xi
i=1
em que pb =
n " r #
pb(1 − pb)
IC(p) = pb ± z(1−α/2)
1−α n

7. Intervalo de confiança para diferenças entre proporções


 s 
pb1 (1 − pb1 ) pb2 (1 − pb2 ) 
IC(p1 − p2 ) = ( pb1 − pb2 ) ± z(1−α/2) +
1−α n1 n2

Exemplo:
O tempo de reação de um novo medicamento pode ser considerado como tendo distribuição Normal e
deseja-se fazer inferência sobre a média que é desconhecida obtendo um intervalo de confiança. Vinte
pacientes foram sorteados e tiveram seu tempo de reação anotado. Os dados foram os seguintes (em
minutos):
2.9 3.4 3.5 4.1 4.6 4.7 4.5 3.8 5.3 4.9
4.8 5.7 5.8 5.0 3.4 5.9 6.3 4.6 5.5 6.2

Solução:
i)Média de uma distribuição normal com variância desconhecida;
ii)Entramos com os dados no R com o comando
> tempo=c(2.9,3.4,3.5,4.1,4.6,4.7,4.5,3.8,5.3,4.9, 4.8,5.7,5.8,5.0,3.4,5.9,6.3,4.6,5.5,6.2)
iii)Sabemos que o intervalo de confiança para média de uma distribuição normal com variância des-
conhecida, para uma amostra de tamanho n é dado por:

2.Intervalo de confiança para µ quando σ 2 desconhecida


 
Sn
IC(µ) = xn ± t(1−α/2; n−1) √
1−α n

Fazendo as contas passo a passo:

37
4.1. INTERVALOS DE CONFIANÇA CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA

Nos comandos a seguir calculamos o tamanho da amostra, a média e a variância amostral.

> n <- length(tempo)


> n
[1] 20
> t.m <- mean(tempo)
> t.m
[1] 4.745
> t.v <- var(tempo)
> t.v
[1] 0.992079

A seguir montamos o intervalo utilizando os quantis da distribuição t, para obter um IC a 95% de


confiança.

> t.ic <- t.m + qt(c(0.025, 0.975), df = n-1) * sqrt(t.v/length(tempo))


> t.ic
[1] 4.278843 5.211157

Usando a função t.test


O R possui várias funções prontas

>t.test(tempo)
One Sample t-test
data: tempo
t = 21.3048, df = 19, p-value = 1.006e-14
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
4.278843 5.211157
sample estimates:
mean of x
4.745

Default da função t.test:

t.test(x, alternative = hipotese,mu = media, conf.level = γ)

Em que:
µ: Valor da média a ser testada;
γ: Confiança do teste (1-α(significância)).

Hipótese - pode assumir os seguintes valores:

• greater (teste unilateral de H0 maior que a média);

• less (teste unilateral de H0 menor que a média);

• two.sided (teste bilateral de H0 igual à média);

38
CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA 4.2. TESTE DE HIPÓTESES

Exercı́cio: Uma máquina enche pacotes de café com uma variância igual a 100g2 . Ela estava regulada
para encher pacotes com 500g, em média. Agora, ela se desregulou, e queremos saber qual a nova
média µ. Uma amostra de 25 pacotes apresentou uma média igual a 485g. Forneça uma estimativa
intervalar para a nova média populacional. (Dado: Utilize um nı́vel de 95% de confiança)

Exercı́cio: Em uma pesquisa de opinião foram entrevistadas 400 pessoas sobre um novo perfume, e
60% delas preferiram a marca A. Forneça um intervalo de confiança com 95% de confiança para a
proporção do público-alvo.

Exercı́cio: Consideremos que o projetista de uma indústria tomou uma amostra de 36 funcionários
para verificar o tempo médio gasto (em segundos) para montar um determinado brinquedo. Dado que
o projetista não tem conhecimento da variabilidade da população, construir um intervalo de confiança
com (1 − α) = 0, 95 para a média µ. Foi obtido uma média amostral de 21, 39 segundos, com desvio-
padrão amostral igual a 5, 38.
Exercı́cio: Sabe-se que a vida em horas de um bulbo de lâmpada de 75W é distribuı́da de forma
aproximadamente normal com desvio padrão de σ =25. Uma amostra aleatória de 20 bulbos tem uma
vida media de 1.014 horas. Construa um intervalo de confiança de 97% para a vida média.

Exercı́cio: Foi realizada uma pesquisa envolvendo uma amostra de 600 pacientes de um certo hos-
pital. Cada um desses pacientes foi submetido a uma série de exames clı́nicos e, entre outras coisas,
mediu-se o Índice Cardı́aco (em litros/min/m2) de todos eles. Os 600 pacientes foram então classi-
ficados, de forma aleatória, em 40 grupos de 15 pacientes cada. Para um desses grupos os valores
medidos do Índice Cardı́aco foram: 405, 348, 365, 291, 135, 260, 300, 155, 34, 294, 758, 472, 559,
143, 172. Com base nos valores acima, construa um Intervalo de Confiança para o valor médio µ do
Índice Cardı́aco ao nı́vel de 95%.

4.2 Teste de hipóteses


Uma hipótese estatı́stica é qualquer afirmação sobre o modelo probabilı́stico e, por consequência,
acerca do parâmetro populacional. Um teste de hipóteses é o procedimento ou regra de decisão que
nos possibilita tomar uma decisão que permite rejeitar ou não uma hipótese com base em dados amos-
trais. Portanto, a idéia geral dessa ferramenta é apresentar uma regra de decisão que permite avaliar a
veracidade da nossa afirmação.
O procedimento envolve a definição de duas hipóteses:

1. H0 : (hipótese nula) ⇒ É aquela que será testada, na qual admite-se que o parâmetro é tal como
especificado, ou seja, a diferença observada é dada ao acaso.

2. H1 ou HA : (hipótese alternativa) ⇒ É contrária à H0 , ou seja, o parâmetro é diferente do valor


especificado.

Definem-se duas regiões:

• C: região na qual não se pode rejeitar a hipótese nula;

• C∗ : região na qual rejeita-se a hipótese nula, ou seja, considera-se a hipótese alternativa verda-
deira. C∗ é chamado de região crı́tica.

39
4.2. TESTE DE HIPÓTESES CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA

Erros associados ao teste de hipóteses

• Erro do tipo I: Rejeitar a hipótese H0 quando H0 é verdadeira.

• Erro do tipo II: Não rejeitar H0 quando H1 é verdadeira.

Situação
Decisão H0 verdadeira H0 falsa
Não rejeitar H0 Decisão correta Erro II
Rejeitar H0 Erro I Decisão correta

Se um teste de hipótese é definido da seguinte maneira:

H0 : µ = µ0
H1 : µ 6= µ0
Onde µ0 é conhecida, chamamos de teste bilateral

Mas, o teste unilaterais ocorrem com mais frequencia, eles podem ser classificado como:

Teste unilateral Esquerdo


H0 : µ = µ0
H1 : µ < µ0
A região critica esta na extremidade inferior da distribuição.

40
CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA 4.2. TESTE DE HIPÓTESES

ou
Teste unilateral Direito
H0 : µ = µ0
H1 : µ > µ0
A região crı́tica esta na extremidade superior da distribuição.

Nesta sessão vamo utilizar o R para fazer teste de hipóteses sobre parâmetros de distribuições.
Os comandos e cálculos são bastante parecidos como os vistos em intervalos de confiança e isto não
poderia ser diferente visto que intervalos de confiança e testes de hipótese são relacionados.
Assim como fizemos com intervalos de confiança, sempre que possı́vel e para fins didáticos,
vamos mostrar duas possı́veis soluções:
1. Fazendo as contas passo a passo, utilizando o R como uma calculadora;
2. Usando uma função já existente no R.

Exemplo:

Queremos verificar se duas máquinas produzem peças com a mesma homogeneidade quanto a re-
sistência à tensão. Para isso, sorteamos duas amostras de 6 peças de cada máquina, e obtivemos as
seguintes resistências:

Máquina A 145 127 136 142 141 137


Máquina B 143 128 132 138 142 132

Solução:

i. Comparação de variâncias de uma distribuição normal

ii. Queremos testar se:

σA2
H0 : σA2 = σB2 ⇒ =1
σB2
σ2
HA : σA2 6= σB2 ⇒ A2 6= 1
σB

41
4.2. TESTE DE HIPÓTESES CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA

SA2
É feito calculando-se a estatı́stica de teste: Fcalc =
SB2

iii. Comparando-se este valor(Fcalc ) com um valor da tabela de F e/ou calculando-se o valor-p as-
sociado com nA − 1 e nB − 1 graus de liberdade. Devemos também fixar o nı́vel de significância
do teste, que neste caso vamos definir como sendo 5%.

Fazendo as contas passo a passo:

Nos comandos a seguir calculamos o tamanho da amostra, a média e a variância amostral.


ma <- c(145, 127, 136, 142, 141, 137) entrar com os dados
na <- length(ma)
na
[1] 6
mb <- c(143, 128, 132, 138, 142, 132)) entrar com os dados
nb <- length(mb)
nb
[1] 6
ma.v <- var(ma)
ma.v
[1] 40
mb.v <- var(mb)
mb.v
[1] 36.96667
fcalc <- ma.v/mb.v
fcalc
[1] 1.082056
pval <- 2 * pf(fcalc, na - 1, nb - 1, lower = F)
pval
[1] 0.9331458
Usando a função var.test

o R já vem com função pronta para teste de comparação das variâncias:

>var.test(ma, mb)
F test to compare two variances
data: ma and mb
F = 1.0821, num df = 5, denom df = 5, p-value = 0.9331
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.1514131 7.7327847
sample estimates:
ratio of variances
1.082056

Note que a saı́da inclui os resultados do teste de hipótese bem como o intervalo de confiança.
A decisão baseia-se em verificar se o valor-p é menor que o definido inicialmente.

42
CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA 4.2. TESTE DE HIPÓTESES

Default da função var.test:

var.test(x, y, ratio = 1,alternative =c(”two.sided”, ”less”, ”greater”),conf.level = c(0.95,0.99...)

Em que:
ratio: valor da razão a ser testada;
1 − α : nı́vel de confiança do teste, do qual α é o nı́vel de significância e α ∈ (0, 1)

Hipótese - pode assumir os seguintes valores:

• greater (teste unilateral de H0 maior que a média);

• less (teste unilateral de H0 menor que a média);

• two.sided (teste bilateral de H0 igual à média)

Exercı́cio: Um engenheiro de produção quer testar a um nı́vel de significância α = 0, 05 se a altura


média de uma haste está próxima do valor nominal de 1055mm Uma amostra de 20 hastes foi sele-
cionada e foi encontrada uma média amostral no valor de 1019, 37mm. A hipótese do engenheiro é
plausı́vel?

Exercı́cio: Uma empresa que presta serviços de assessoria econômica a outras empresas está interes-
sada em comparar a taxa de reclamações sobre os seus serviços em dois dos seus escritórios em duas
cidades diferentes. Suponha que a empresa tenha selecionado aleatoriamente 100 serviços realizados
pelo escritório da cidade A e foi constatado que em 12 deles houve algum tipo de reclamação. Já do
escritório da cidade B foram selecionados 120 serviços e 18 receberam algum tipo de reclamação.
A empresa deseja saber se estes resultados são suficientes para se concluir que os dois escritórios
apresentam diferença significativa entre suas taxas de aprovação.

Exercı́cio: Um endocrinologista propõe um tratamento para combater a obesidade em um paı́s é co-


nhecido por ter uma população obesa. A distribuição de probabilidade do peso dos homens dessa
região entre 25 e 40 anos é normal com média de 95 kg e variância de 100 kg. Ele afirma que com
seu tratamento o peso médio da população da faixa em estudo diminuirá num perı́odo de três meses.

Exercı́cio: Baseado em turmas anteriores, um professor notou que a nota média de suas turmas era 8,
o mesmo deseja saber se a sua próxima turma será a mesma das anteriores. Para isso foram retiradas
40 notas, obtendo, média 8.3 e desvio padão 2. Use α=0,05

43
4.3. TESTES NÃO PARAMÉTRICOS CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA

4.3 Testes não paramétricos


Na seção anterior fomos apresentados a noção de teste de hipótese no âmbito paramétrico, ou
seja, assumindo distribuição, porém em muitos problemas essa suposição pode não ser atendida, não
se tem conhecimento sobre a distribuição dos dados. Para esses estudos utiliza-se o ferramental da
estatı́stica não paramétrica.

4.3.1 Teste dos postos de Wilcoxon


O teste de Wilcoxon pareado é utilizado para comparar se dois grupos possuem a mesma medida
de tendência central. Esse teste leva em consideração a magnitude das diferenças entre os pares.
Devido a este fato é mais poderoso que o teste do sinal, pois dá mais peso a diferenças maiores entre
os pares.
Seja di o escore-diferença para qualquer par combinado, representando a diferença dos pares
sobre dois tratamentos X e Y , isto é, di = Xi − Yi . Ordena-se todos os di ’s sem considerar o sinal,
posteriormente dar-se o posto 1 ao menor |di |, o posto 2 ao segundo menor, etc. Quando são atribuı́dos
postos aos escores sem considerar o sinal, a um di igual a −1 é atribuı́do um posto menor que a um
de di igual a 2 ou −2.
A hipótese nula H0 é que os tratamentos X e Y são equivalentes, isto é, eles são amostras de
populações com a mesma mediana e a mesma distribuição contı́nua. Rejeitamos H0 se a soma dos
postos para os di ’s negativos ou ou a soma dos postos para os di ’s positivos é muito pequena.
Duas estatı́sticas são definidas:

T + = ∑ di ,
i

soma dos di ’s positivos,

T − = ∑ di ,
i

soma dos di ’s negativos. Como a soma de todos os postos é N(N + 1)/2, T − = N(N + 1)/2 − T + .
Rejeitamos a hipótese nula se a probabilidade de T + tabulado para um determinado tamanho
N é menor ou igual ao nı́vel de significância escolhido.
No R a função para realizar o teste do sinal de Wilcoxon é wilcox.test(x, y).
Exemplo:Os dados a seguir são das colheitas de espigas de milho (em libras por acre) de dois
diferentes tipos de sementes (normais e secadas no forno) que foram usados em lotes adjacentes.
Testar se existe diferença entre a colheita utilizando ambas as sementes.
normal=c(1903, 1935, 1910,2496, 2108, 1961,2060, 1444, 1612, 1316, 1511)
secada=c(2009, 1915, 2011, 2463, 2180, 1925, 2122, 1482, 1542, 1443, 1535)
wilcox.test(normal,secada, paired=TRUE,alternative = c("two.sided"))
onde, ‘normal’ e ‘secada’ são vetores com os dados coletados; ‘paired=TRUE’ indica que os da-
dos são pareados (o valor FALSE é utilizado para outro teste relacionado a postos); alternative =
c(”two.sided”) diz a respeito da hipótese alternativa, indicando que ela é bilateral.
Wilcoxon signed rank test
data: normal and secada
V = 15, p-value = 0.123
alternative hypothesis: true location shift is not equal to 0
ou seja, não há evidências para rejeitar H0 ao nı́vel de 5% (p=0,123), ou seja, parece não existir
diferença significativa entre as duas sementes.

44
CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA 4.3. TESTES NÃO PARAMÉTRICOS

4.3.2 Teste de Qui-Quadrado de independência


O teste de independência Qui-Quadrado é usado para descobrir se existe uma associação entre a
variável de linha e coluna em uma tabela de contingência construı́da à partir de dados da amostra. A
hipótese nula é de que as variáveis não estão associadas, em outras palavras, eles são independentes.
A hipótese alternativa é de que as variáveis estão associadas, ou dependentes.
Dada uma tabela de contingência da forma:

n11 n12 ··· n1c n1.


n21 n22 ··· n2c n2.
.. .. .. ..
. . . .
nr1 nr2 ··· nrc nnr.
n.1 nn.2 ··· n.c n..

onde ni j é a frequência observada da classe i j. O valor da frequência esperada é dado por

ni. × n. j
Ei j = .
n..

A estatı́stica de teste é dada por

(O − E)2
X2 = ∑ ,
E

que uma aproximação da distribuição qui-quadrado com (r −1)×(c−1) graus de liberdade. O denota
a frequência observada e E a frequência esperada. Rejeitamos a hipótese nula de independência
quando o valor calculado da estatı́stica é superior ao tabulado da distribuição qui-quadrado.
No R o teste é realizado pela função chisq.test. Considere o exemplo:

> caff.matrial = matrix(c(652,1537,598,242,36,46,38,21,218,327,106,67)


+,nrow = 3,byrow = T)
> colnames(caff.matrial)=c("0","1-150","151-300",">300")
> rownames(caff.matrial)=c("Married","Prev.married","Single")
> caff.matrial
0 1-150 151-300 >300
Married 652 1537 598 242
Prev.married 36 46 38 21
Single 218 327 106 67
> chisq.test(caff.matrial)

Pearson’s Chi-squared test

data: caff.matrial
X-squared = 51.656, df = 6, p-value = 2.187e-09

> chisq.test(caff.matrial)$expected
0 1-150 151-300 >300
Married 705.83179 1488.01183 578.06533 257.09105
Prev.married 32.85648 69.26698 26.90895 11.96759
Single 167.31173 352.72119 137.02572 60.94136

45
4.3. TESTES NÃO PARAMÉTRICOS CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA

4.3.3 Teste de Kolmogorov-Smirnov


Testar distribuição especı́fica em uma amostra
O teste de Kolmogorov-Smirnov é uma das opções utilizadas para testar se os dados amostrais foram
retirados de uma população com distribuição especı́fica (Normal, por exemplo), esse é um teste muito
importante dado que usualmente as soluções mais conhecidas e simples para problemas estatı́sticos
são aquelas que supõem que os dados são provenientes de uma distribuição em particular, e na grande
maioria dos casos, essas soluções usam a suposição de normalidade. Por exemplo, os intervalos de
confiança e testes de hipóteses apresentados nas subseções 4.1 e 4.2 (respectivamente) desse trabalho
utilizam a suposição de que os dados foram amostrados de uma população Normal, se acontecer de
os dados não satisfazerem essa suposição e ainda assim o pesquisador utilizar essas metodologias,
resultados errôneos podem ser obtidos.
Então para checarmos essa suposição temos o teste de Kolmogorov-Smirnov com as seguintes
hipóteses:

H0 : Os dados vêm de uma população com a distribuição especificada
H1 : Os dados não vêm de uma população com a distribuição especificada.

Esse teste vai comparar a distribuição empı́rica dos dados com a distribuição suposta pela hipótese
H0 . Suponha que temos uma amostra de tamanho n, a função de distribuição empı́rica é uma função
definida como
1 n
Fn (x) = ∑ I(−∞,x) (x(i) )
n i=1

Fn (x) também pode ser interpretada como a proporção de dados na amostra que são iguais ou menores
que x. Note que I(−∞,x) (x(i) ) é 1 se x(i) é menor ou igual a x, e 0 caso contrário.
Enquanto a distribuição acumulada de X sob H0 é definida como
Z x
FX (x) = fX (t) dt
−∞

Em que fX (x) é a função densidade de probabilidade da distribuição proposta por H0 e pode ser
interpretada como a probabilidade de se obter dessa distribuição um valor menor ou igual a x.
Como a função de distribuição empı́rica não é contı́nua, e a função de distribuição suposta por H0
pode ser, será usado duas estatı́sticas

D+ = max(|FX (xi ) − Fn (xi )|), i = 1, 2, . . . , n.

D− = max(|FX (xi ) − Fn (xi − 1)|), i = 2, 3, . . . , n.

E então a estatı́stica D é dada por

D = max(D+ , D− )

Em conclusão, rejeitaremos H0 se D é maior que o valor crı́tico, que depende do tamanho da amostra.
Os valores crı́ticos tabelados são facilmente encontrados em livros ou na internet, mas essa tabela não
será necessária se for utilizado o R.
No R, a função que fará o teste de Kolmogorov-Smirnov é a ks.test(x, y, . . .)
Exemplo 1: Suponha que foi retirada a seguinte amostra: -1,13; -0,99; -0,80; -0,70; -0,69; -
0,62; -0,52; 0,16; 0,36; 0,44; 0,59; 0,61; 0,77; 1,02; 1,18. E o pesquisador precisa testar se essa

46
CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA 4.3. TESTES NÃO PARAMÉTRICOS

amostra é proveniente de uma população Normal com média 0 e desvio padrão 1 usando um nı́vel de
significância de 0,10. Nesse caso, as hipóteses são definidas como

H0 : Os dados vêm de uma população com distribuição Normal(0, 1)
H1 : Os dados não vêm de uma população com distribuição Normal(0, 1).
e
Z x
1 t2
FX (x) = √ e− 2 dt
−∞ 2π

Para fazermos o teste no R, deveremos armazenar os valores da amostra em uma variável,

dados = c(-1.13, -0.99, -0.80, -0.70, -0.69, -0.62, -0.52, 0.16,


0.36, 0.44, 0.59, 0.61, 0.77, 1.02, 1.18)

Depois devemos encontrar a função do R que tem a função de distribuição FX , nesse caso é a pnorm(),
e os parâmetros dessa função são média e desvio padrão, que são 0 e 1, respectivamente. O teste é
feito da seguinte maneira:

ks.test(dados, "pnorm", 0, 1)

E a saı́da é

One-sample Kolmogorov-Smirnov test

data: dados
D = 0.16513, p-value = 0.7494
alternative hypothesis: two-sided

Podemos concluir pelo valor p, que é maior que nosso nı́vel de significância, que não rejeitamos
a hipótese H0 de que os dados são provenientes de uma distribuição Normal(0, 1).
Exemplo 2: Uma amostra foi realizada e os seguintes valores foram observados: 1,06; 1,66;
1,72; 1,85; 2,10; 2,86; 3,08; 3,42; 4,18; 4,29; 4,62; 5,18; 6,02; 6,60; 7,01. Suponha que existe
algum conhecimento prévio e é desejado testar se os dados são provenientes de uma distribuição Qui-
Quadrado com 4 graus de liberdade e nı́vel de significância de 0,05. As hipóteses que serão usadas
no teste são:
H0 : Os dados vêm de uma população com distribuição χ 2 (4)


H1 : Os dados não vêm de uma população com distribuição χ 2 (4).

E aqui, a função de distribuição proposta por H0 é


Z x
1 x
FX (x) = xe− 2 dt
4 0

Novamente, armazenaremos a amostra no R

amostra = c(1.06, 1.66, 1.72, 1.85, 2.10, 2.86, 3.08, 3.42, 4.18,
4.29, 4.62, 5.18, 6.02, 6.60, 7.01)

Agora, a função no R que equivale a FX é a pchisq() com parâmetro d f = 4 (df é a abreviação de


”degrees of freedom”, que significa ”graus de liberdade”). O teste é feito da seguinte maneira:

47
4.3. TESTES NÃO PARAMÉTRICOS CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA

ks.test(amostra, "pchisq", 4)

E a saı́da é

One-sample Kolmogorov-Smirnov test

data: amostra
D = 0.13536, p-value = 0.9122

Novamente, encontramos no final do teste, um valor p maior do que o nı́vel de significância previa-
mente estabelecido, então não rejeitamos a hipótese de que a amostra foi retirada de uma população
com distribuição Qui-Quadrado com 4 graus de liberdade, ao nı́vel de significância de 5%.

Comparar distribuições de duas amostras


Assim como visto anteriormente, o teste de Kolmogorov-Smirnov e a função ks.test() são usados para
comparar duas distribuições, e não necessariamente somente uma é uma distribuição empı́rica, pode-
mos ter interesse em testar se duas amostras distintas são provenientes de uma mesma distribuição,
ou seja, comparar as duas distribuições empı́ricas.
Suponha que x = x1 , x2 , . . . , xn e y = y1 , y2 , . . . , yn são duas amostras e desejamos testar se as duas
amostras foram retiradas de populações com a mesma distribuição. Para isso usaremos a função
ks.test() novamente, inserindo somente as duas amostras.
Exemplo: Dado a primeira amostra: 1,43; 1,65; 1,86; 1,92; 1,97; 2,01; 2,03; 2,48; 2,91; 3,29. E
a segunda amostra: 0,13; 0,16; 0,17; 0,20; 0,24; 0,34; 0,53; 0,63; 0,73; 0,85. Desejamos testar se as
duas amostras são de uma mesma distribuição com nı́vel de significância de 0,01. As hipóteses então
ficam

H0 : Os dados vêm de populações com mesma distribuição
H1 : Os dados não vêm de populações com mesma distribuição.

A saı́da de

ks.test(x, y)

Two-sample Kolmogorov-Smirnov test


data: x and y
D = 1, p-value = 1.083e-05

Já nesse caso, podemos ver que o valor p é menor que o nı́vel de significância que foi definido no
inı́cio do problema, então rejeitamos a hipótese H0 com nı́vel de significância de 1%.

48
Capı́tulo 5

Análise de Regressão

Em diversos problemas das áreas biológica, quı́mica, fı́sica, industrial e médica, se tem o
interesse em verificar, relacionar, predizer e explicar uma variável em relação a outras. Em situações
que o interesse é verificar a relação entre apenas uma variável de entrada com a variável resposta
temos o caso de regressão linear simples, mas se o interesse é relacionar a variável resposta com
várias variáveis de entrada, utilizamos a regressão linear múltipla.

5.1 Regressão linear simples


Iniciando pela regressão linear simples, definimos o seguinte modelo

Yi = β0 + β1 xi + εi , para i=1, 2, ..., n,

em que Y : é uma variável aleatória que representa o valor da variável resposta da i-ésima observação,
Xi : é uma variável que representa o valor da variável explicativa da i-ésima observação, εi : é a variável
aleatória referente ao erro aleatório relacionado a variável Yi e β0 e β1 : são os parâmetros do modelo.
Por suposição, temos que εi ∼ N(0, σ 2 ), ou seja, o erro aleatório tem distribuição normal com
média 0 e variância σ 2 . O interesse é estudar se existe uma relação linear entre a variável resposta
com a variável explicativa, abaixo temos algumas funções existentes no software R que são usadas
com esse objetivo.

• lm(y ∼ x): O argumento dessa função é o vetor y que contém os valores da variável resposta e
o vetor x que contém os valores da variável explicativa. A saı́da desse função segue abaixo:

Call:
lm(formula = y ˜ x)

Coefficients:
(Intercept) x
-0.09376 0.40711

Vemos que a saı́da nos dá o valor do intercepto (β0 ) e de β1 , os parâmetros do modelo. Assim
sua saı́da indica o modelo linear estimado para os dados, no caso ŷ = −0.09376 + 0.40711x.

• anova(objeto): Está função nos dá os resultados da Análise de Variância que avalicca a sig-
nificância do modelo, ou seja, se a variável explicativa é adequada para avaliar e predizer os
valores da variável resposta. As hipóteses testadas são H0 : β1 = 0 contra H1 : β1 6= 0. O argu-
mento ”objeto”é referente ao objeto que contém os valores da função lm(). A seguir o comando
para essa função e sua saı́da:

49
5.1. REGRESSÃO LINEAR SIMPLES CAPÍTULO 5. ANÁLISE DE REGRESSÃO

> modelo=lm(y ˜ x)
> anova(modelo)
Analysis of Variance Table

Response: y
Df Sum Sq Mean Sq F value Pr(>F)
x 1 228.32 228.318 2452.1 3.399e-16 ***
Residuals 13 1.21 0.093
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Temos que,
Df: Se refere aos graus de liberdade da variável x e dos resı́duos;
Sum Sq: É a soma do quadrado de x e dos resı́duos;
Mean Sq: É o quadrado médio da variável explicativa;
F value: É o valor da estatı́stica F;
Pr(>F): É a probabilidade do quantil da distribuição F com 1 e 13 graus de liberdade, no
exemplo, ser maior que o valor da estatı́stica F. Esse é o chamado valor p que é usado para
testar a significância do teste.
Siginif. codes: Demonstra uma legenda com os nı́veis de significância que são utilizados pelo
R, nesse caso temos que o programa realizou o teste F e o classificou como significativo para
α = 0, porém, vale lembrar que foi utilizado uma aproximação, de modo que na verdade α ≈ 0.

• attributes(modelo): Esse comando nos mostra vários objetos que estão dentro da função lm().

> attributes(md5)
$names
[1] "coefficients" "residuals" "effects" "rank"
[5] "fitted.values" "assign" "qr" "df.residual"
[9] "xlevels" "call" "terms" "model"
$class
[1] "lm"

> modelo$residuals # resı́duos ordinário do modelo ( y - y_estimado)


1 2 3 4 5 6
0.06609175 0.61111643 -0.16309669 0.05294425 -0.44045732 -0.13862950
7 8 9 10 11 12
-0.12969512 -0.25944106 0.38477207 0.43426394 -0.07126887 0.20532956
13 14 15
-0.29680168 -0.15335075 -0.10177700

> modelo$coefficients # valores dos parâmetros


(Intercept) x
-0.09375581 0.40710656

> modelo$df.residual # grau de liberdade dos resı́duos


[1] 13
> modelo$fitted.values # valores da variável resposta explicados pelo modelo

50
CAPÍTULO 5. ANÁLISE DE REGRESSÃO 5.1. REGRESSÃO LINEAR SIMPLES

1 2 3 4 5 6 7
10.0839082 2.3488836 3.1630967 6.8270557 0.7204573 5.1986295 9.2696951
8 9 10 11 12 13 14
12.1194411 11.3052279 5.6057361 7.6412689 1.5346704 9.6768017 0.3133508
15
1.9417770

• summary(modelo): Essa função testa as hipóteses H0 : β1 = 0 contra H1 : β1 6= 0 e H0 : β0 = 0


contra H1 : β0 6= 0 utilizando a estatı́stica t que possui distribuição t- Student. A seguir temos
sua saı́da no R.

> summary(modelo)

Call:
lm(formula = y ˜ x)

Residuals:
Min 1Q Median 3Q Max
-0.4405 -0.1582 -0.1018 0.1357 0.6111

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.093756 0.143577 -0.653 0.525
x 0.407107 0.008221 49.519 3.4e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3051 on 13 degrees of freedom


Multiple R-squared: 0.9947,Adjusted R-squared: 0.9943
F-statistic: 2452 on 1 and 13 DF, p-value: 3.399e-16

Note que além do resultado do teste de hipótese, a saı́da nos mostra as medidas descritivas dos
resı́duos, a variância estimada, o coeficiente de determinação e o coeficiente de determinação
ajustado do modelo, e por último o resultado da ANOVA.

• confint(modelo,level=0.95): A saı́da dessa função corresponde aos intervalos de confiança dos


coeficientes do modelo. O argumento level indica o nı́vel de confiança desejado.

> confint(modelo,level=0.95)
2.5 % 97.5 %
(Intercept) -0.4039358 0.2164242
Origem[, 1] 0.3893457 0.4248674

• predict(modelo,newdata,interval=c(”confidence”,”predict”)): Essa função retorna o intervalo


de confiança da resposta média e/ou o predito. O argumento newdata é um data frame que
contém o valor da variável explicativa (x) desejado para construção do intervalo.

> x0=data.frame(x=5)
> predict(modelo,x0,interval = "confidence")

51
5.1. REGRESSÃO LINEAR SIMPLES CAPÍTULO 5. ANÁLISE DE REGRESSÃO

fit lwr upr


1 1.941777 1.700857 2.182697
> x0=data.frame(x=12)
> predict(modelo,x0,interval = "predict")
fit lwr upr
1 4.791523 4.109127 5.473919

Com a suposição de normalidade dos erros aleatórios, é de grande importância testar a vera-
cidade da mesma, pois o seu não cumprimento acarreta a erros de estimação dos parâmetros que tem
por consequência a resultados do teste de significância errados. Para testar essa suposição é comum
o uso do teste de Shapiro Wilk. A hipótese nula é que os resı́duos possuem distribuição normal. A
baixo segue o comando e a saı́da do teste.
> shapiro.test(modelo$residuals)

Shapiro-Wilk normality test

data: modelo$residuals
W = 0.93214, p-value = 0.2937
Uma forma adicional para a verificação da suposição de normalidade é a visualização gráfica.
A seguir temos o código do R para a criação do gráfico de quantis teóricos e quantis observados.
> qqnorm(modelo$residuals)
> qqline(modelo$residuals)
A função qqnorm() desenha um gráfico de quantis da distribuição normal referentes aos valores
dos resı́duos e a função qqline() adiciona uma linha no gráfico anterior que indica os quantis teóricos.
Em situações que os pontos dos quantis não se afastam muito da reta, indica que a suposição está
sendo cumprida. O gráfico a seguir retrata esse caso.

Normal Q−Q Plot


0.6
0.4
Sample Quantiles

0.2
0.0
−0.2
−0.4

−1 0 1

Theoretical Quantiles

Figura 5.1: Gráfico dos quantis teóricos e observados.

Outra suposição que realizamos no modelo de regressão linear simples e múltipla é a de


variância constante dos erros aleatórios. Para verificar a veracidade dessa suposição utilizamos recur-
sos gráficos. O gráfico que será feito no R a seguir tem no eixo das abscissas os valores ajustados de y,
ou seja, ŷ e no eixo das coordenadas os valores dos resı́duos. Espera-se um comportamento aleatório
nos pontos, conforme o gráfico a seguir.

52
CAPÍTULO 5. ANÁLISE DE REGRESSÃO 5.2. REGRESSÃO LINEAR MÚLTIPLA

> plot(modelo$fitted.values,modelo$residuals,
+ xlab="valores y ajustados",ylab="Residuos ordinários",
+ main="Homogeneidade de variâncias")

Homogeneidade de variâncias

0.6
0.4
Residuos ordinários

0.2
0.0
−0.2
−0.4

0 2 4 6 8 10 12

valores y ajustados

Figura 5.2: Homogeneidade de variâncias.

5.2 Regressão linear múltipla


Na regressão linear múltipla temos diversas variáveis explicativas, com isso o modelo proposto
agora possui p + 1 parâmetros. Com execeção do intecepto, cada parâmetro se refere a uma das p
variáveis explicativas. Assim temos o seguinte modelo

Yi = β0 + β1 Xi1 + β2 Xi2 + ... + β p Xip + εi para i=1,..,n.

As funções no software R usadas em regressão linear simples são utilizadas também na


regressão múltipla.

• lm(y ∼ x1+x2): Como possuimos mais de uma variável explicativa, o argumento da função na
regressão linear múltipla é escrito somando as p variáveis. No caso mencionado, p = 2.

> lm(y˜x1+x2)

Call:
lm(formula = y ˜ x1 + x2)

Coefficients:
(Intercept) x1 x2
-67.322 1.828 -3.295

Note que agora temos três estimativas, pois com p = 2 temos três parâmetros, β0 , β1 e β2 .

• anova(objeto): a sintaxe não muda nessa função que nos dá a Análise de Variância do modelo.

53
5.2. REGRESSÃO LINEAR MÚLTIPLA CAPÍTULO 5. ANÁLISE DE REGRESSÃO

> modelo=lm(y ˜ x1+x2)


> anova(modelo)
Analysis of Variance Table

Response: y
Df Sum Sq Mean Sq F value Pr(>F)
x1 1 59434 59434 125.888 < 2.2e-16 ***
x2 1 11378 11378 24.101 3.262e-06 ***
Residuals 108 50989 472
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

• attributes(modelo): Não se modifica.

> attributes(modelo)
$names
[1] "coefficients" "residuals" "effects" "rank"
[5] "fitted.values" "assign" "qr" "df.residual"
[9] "xlevels" "call" "terms" "model"
$class
[1] "lm"

> modelo$coefficients
(Intercept) x1 x2
-67.321953 1.827554 -3.294839

• summary(modelo): A sintaxe não se modifica. Contudo, as hipóteses testadas agora são : H0 :


β1 = 0 contra H1 : β1 6= 0, H0 : β2 = 0 contra H1 : β2 6= 0 e H0 : β0 = 0 contra H1 : β0 6= 0

> summary(modelo)

Call:
lm(formula = y ˜ x1 + x2)

Residuals:
Min 1Q Median 3Q Max
-42.156 -13.216 -3.123 10.598 98.492

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -67.3220 23.6210 -2.850 0.00524 **
x1 1.8276 0.2506 7.294 5.29e-11 ***
x2 -3.2948 0.6711 -4.909 3.26e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 21.73 on 108 degrees of freedom


Multiple R-squared: 0.5814,Adjusted R-squared: 0.5736
F-statistic: 74.99 on 2 and 108 DF, p-value: < 2.2e-16

54
CAPÍTULO 5. ANÁLISE DE REGRESSÃO 5.2. REGRESSÃO LINEAR MÚLTIPLA

Em relação a função shapiro.test(), que informa se a suposição de normalidade dos erros está
sendo satisfeita, não tem mudança em sua sintaxe. Os gráficos podem ser feitos semelhantemente a
forma usada em regressão linear simples.
Como estamos lidando com várias variáveis explicativas, em alguns casos essas variáveis
podem ter forte correlação entre si. Esse problema é chamado de multicolinearidade e acarreta em
problemas de estimação do modelo, como por exemplo inflação da variância dos estimadores dos
mı́nimos quadrados, que por sua vez pode resultar em intervalos de confiança com elevada amplitude
para os coeficientes de regressão. Existem formas para diagnosticar essa caracterı́stica, utilizando o
fator de inflação de variância (VIF) e a matriz de correlação de x. No R temos a função VIF() no
pacote fmsh que informa o valor do fator de inflação, caso este valor seja superior a 5, as variáveis
possuem multicolinearidade.

> require(fmsb)
> VIF(modelo)
[1] 2.38879 #não possue multicolinearidade

Utilizando o comando abaixo temos a matriz com as correlações de x1 e x2.


> cor(cbind(x1,x2))
x1 x2
x1 1.0000000 -0.4971897
x2 -0.4971897 1.0000000
Exemplo: (Estatı́stica aplicada e probabilidade para engenheiros - Douglas C. Montgomery, 6◦
edição, Ex: 11-16)
Um artigo no Wood Science and Technology (”Creep in Clipboard, Part 3: Initial Assessment of the
Influence of Moisture Content and Level of Stressing on Rate of Creep and Time to Failure” - Fluência
em Papelão, Parte 3: Gerenciamento de Influência de Falha, 1981. Vol. 15. pp. 125-144) estudou
a deflexão (mm) de papelão a partir de nı́veis de tensão de umidade relativa. Considere que as duas
variáveis estejam relacionadas de acordo com o modelo de regressão linear simples. Os dados são
mostrados a seguir.
No R:
x = c(54, 54, 61, 61, 68,68, 75, 75 ,75)
y = c(16.473, 18.693, 14.305, 15.121, 13.505,11.640, 11.168, 12.534, 11.224)

modelo=lm(y ˜ x);modelo

Call:
lm(formula = y ˜ x)

Coefficients:
(Intercept) x
32.0487 -0.2771

> anova(modelo)
Analysis of Variance Table

Response: y
Df Sum Sq Mean Sq F value Pr(>F)
x 1 45.154 45.154 40.383 0.0003835 ***
Residuals 7 7.827 1.118

55
5.2. REGRESSÃO LINEAR MÚLTIPLA CAPÍTULO 5. ANÁLISE DE REGRESSÃO

---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

> summary(modelo)

Call:
lm(formula = y ˜ x)

Residuals:
Min 1Q Median 3Q Max
-1.56484 -0.61145 -0.04104 0.30016 1.60855

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 32.04867 2.88517 11.108 1.07e-05 ***
x -0.27712 0.04361 -6.355 0.000383 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.057 on 7 degrees of freedom


Multiple R-squared: 0.8523,Adjusted R-squared: 0.8312
F-statistic: 40.38 on 1 and 7 DF, p-value: 0.0003835

> shapiro.test(modelo$residuals)

Shapiro-Wilk normality test

data: modelo$residuals
W = 0.95882, p-value = 0.7859

> plot(modelo$fitted.values,modelo$residuals,
+ xlab="valores y ajustados",ylab="Residuos ordin´arios",
+ main="Homogeneidade de variâncias")

Neste exemplo temos o modelo de regressão linear ŷ= 32,04867 - 0.027712x, pois ambos os
parâmetros são significativos para o modelo. A saı́da da função summary vemos que o coeficiente de
determinação ajustado (R2 ) possui um valor (0.8523) alto. Sendo assim um indicativo do bom ajuste

56
CAPÍTULO 5. ANÁLISE DE REGRESSÃO 5.2. REGRESSÃO LINEAR MÚLTIPLA

do modelo. Pelo teste de Shapiro Wilk não rejeitamos a hipótese de normalidade para os resı́duos
do modelo, além disso pelo análise do gráfico dos resı́duos, aparentemente as variâncias parecem
homogêneas, portanto as condições de regularidade foram satisfeitas.

Exercicio: Utilizando o conjunto de dados airquality presente no R, que conta com a variáveis
Ozone, Solar.R,Wind, Temp, Month e Day, levando em consideração apenas as variáveis contı́nuas.
Considere os seguintes itens:
a. Que variável você pensa ser dependente? Monte um modelo adequado.
b. Quais variáveis são significativas para o modelo?
c. Teste as condições de regularidade do modelo.

57

Você também pode gostar