Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
4
CAPÍTULO 1. O QUE É O R? PARA QUE SERVE? 1.2. DIRETÓRIO DE TRABALHO
• 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.
> 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. :
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
a <- c(1,2,3);a
[1] 1 2 3
ou
a = c(1,2,3);a
[1] 1 2 3
Os comandos:
• 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.
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.
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
> 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
> 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
> 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:
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
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:
12
CAPÍTULO 2. COMANDOS INICIAIS 2.3. CRIANDO FUNÇÕES NO R
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).
> 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.
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.
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)
[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
• 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
> 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 ...
> 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)
[1] 82.75304 # cerca de 82.753%
> 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;
• 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.
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
Gráfico de dispersão
40
30
Eixo y
20
10
0
10 20 30 40 50
Eixo x
> 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
• barplot(variável): Esse comando faz gráficos com barras. Nesse gráfico podemos observar as
frequências das observações feitas.
50−54
120
55−59
60−64
65−69
70−74
20 40 60 80
0
>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
> 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
19
2.5. ANÁLISE EXPLORATÓRIA DE DADOS CAPÍTULO 2. COMANDOS INICIAIS
> 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.
A B C D E F
20
CAPÍTULO 2. COMANDOS INICIAIS 2.5. ANÁLISE EXPLORATÓRIA DE DADOS
> 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
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
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
Correlação de Pearson
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.
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")
Correlação de Kendall
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
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
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:
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
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
27
Capı́tulo 3
Probabilidade
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.
i) 0 ≤ F(x) ≤ 1;
A função distribuição pode ser facilmente obtida a partir da função de probabilidade respectiva:
Para uma variável aleatória discreta:
28
CAPÍTULO 3. PROBABILIDADE 3.2. FUNÇÃO DA DISTRIBUIÇÃO ACUMULADA
P(X ≤ q) = p,
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.
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:
Probabilidade no R
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.
30
CAPÍTULO 3. PROBABILIDADE 3.2. FUNÇÃO DA DISTRIBUIÇÃO ACUMULADA
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)”.
[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
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.
• 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,
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.
• 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;
• 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(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]
5. P[X< a] = 1,96
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:
33
3.2. FUNÇÃO DA DISTRIBUIÇÃO ACUMULADA CAPÍTULO 3. PROBABILIDADE
Exercı́cios:
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).
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.
σ
IC(µ) = xn ± z(1−α/2) √
1−α n
35
4.1. INTERVALOS DE CONFIANÇA CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA
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
" #
(n − 1)Sn2
(n − 1)Sn2
IC(σ 2 ) = ;
1−α q(1−α/2; n−1) q(α/2; n−1)
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−α
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:
37
4.1. INTERVALOS DE CONFIANÇA CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA
>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
Em que:
µ: Valor da média a ser testada;
γ: Confiança do teste (1-α(significância)).
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%.
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.
• 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
Situação
Decisão H0 verdadeira H0 falsa
Não rejeitar H0 Decisão correta Erro II
Rejeitar H0 Erro I Decisão correta
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:
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:
Solução:
σ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%.
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
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)
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: 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
T + = ∑ di ,
i
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
ni. × n. j
Ei j = .
n..
(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:
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
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(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π
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 é
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)
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)
47
4.3. TESTES NÃO PARAMÉTRICOS CAPÍTULO 4. INFERÊNCIA ESTATÍSTICA
ks.test(amostra, "pchisq", 4)
E a saı́da é
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%.
A saı́da de
ks.test(x, y)
é
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.
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"
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)
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
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)
2.5 % 97.5 %
(Intercept) -0.4039358 0.2164242
Origem[, 1] 0.3893457 0.4248674
> 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
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)
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.
0.2
0.0
−0.2
−0.4
−1 0 1
Theoretical Quantiles
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
• 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
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)
$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)
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
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
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
> shapiro.test(modelo$residuals)
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