Primeiro Exercício
Um investigador deseja estudar a possível relação entre o salário (em anos completos) e o tempo de experiência (em mil reais) no cargo de gerente de agências bancárias de uma grande empresa. Os dados coletados são mostrados abaixo:
Solução: Inicialmente, os dados devem ser organizados como objetos de dados R, nesse caso como um data frame (planilha). Para isso, é necessário que a tabela acima se encontre numa estrutura tabular, na qual as colunas representam as variáveis e as linhas representam os indivíduos.
# Salario Experiencia
# 1.9307 0
# 3.1769 17
# 2.2769 8
# 3.1307 15
# 2.7769 9
# 3.0923 15
# 2.6508 8
# 2.2230 5
# 2.8538 13
# 3.2307 20
# 2.8230 11
# 1.9076 1
# 2.5384 6
# 2.5692 7
# 4.2230 23
# 4.0923 20
# 3.6000 18
# 4.7076 27
# 3.1461 11
# 2.9923 10
# 4.7461 29
# 4.1153 23
# 2.3615 4
# 4.0923 22
# 4.5076 25
# 2.9076 9
# 4.4846 25
Salario=c(1.9307,3.1769,2.2769,3.1307,2.7769,3.0923,2.6508,2.2230,2.8538,3.2307,2.8230,1.9076,2.5384,2.5692,4.2230,4.0923,3.6000,4.7076,3.1461,2.9923,4.7461,4.1153,2.3615,4.0923,4.5076,2.9076,4.4846)
Experiencia=c(0,17,8,15,9,15,8,5,13,20,11,1,6,7,23,20,18,27,11,10,29,23,4,22,25,9,25)
cbind(Salario,Experiencia)
## Salario Experiencia
## [1,] 1.9307 0
## [2,] 3.1769 17
## [3,] 2.2769 8
## [4,] 3.1307 15
## [5,] 2.7769 9
## [6,] 3.0923 15
## [7,] 2.6508 8
## [8,] 2.2230 5
## [9,] 2.8538 13
## [10,] 3.2307 20
## [11,] 2.8230 11
## [12,] 1.9076 1
## [13,] 2.5384 6
## [14,] 2.5692 7
## [15,] 4.2230 23
## [16,] 4.0923 20
## [17,] 3.6000 18
## [18,] 4.7076 27
## [19,] 3.1461 11
## [20,] 2.9923 10
## [21,] 4.7461 29
## [22,] 4.1153 23
## [23,] 2.3615 4
## [24,] 4.0923 22
## [25,] 4.5076 25
## [26,] 2.9076 9
## [27,] 4.4846 25
Note que são considerados 27 pares de observações correspondentes à variável resposta Salário e à variável explicativa Experiência, para cada um dos gerentes da empresa.
Análise Exploratória
summary(Salario)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.908 2.610 3.092 3.228 4.092 4.746
var(Salario)
## [1] 0.7368296
sd(Salario)
## [1] 0.8583878
Uma maneira fácil de obter algumas estatísticas descritivas das variáveis em estudo é através do comando summary(), que retorna as estatísticas mínimo, quartis, média e máximo. Para medir a variabilidade, foram utilizadas as funções var() e sd() para obter a variância e o desvio padrão.
Diagrama de Dispersão
Para verificar a existência de alguma relação entre Salário e Experiência, será construído um Diagrama de Dispersão para as duas variáveis:
m = lm(Experiencia~Salario)
plot(Experiencia~Salario)
abline(m)
O gráfico de dispersão é usado para verificar se existe relação de causa e efeito entre duas variáveis de natureza quantitativa (variáveis que podem ser medidas ou contadas). Isto não prova que uma variável afeta outra variável, mas determina se existe relação e qual a intensidade da relação entre elas.No nosso caso pode-se observar que existe uma correlação linear, bem como identificar que o valor da variável “Salário” aumenta com o aumento do valor da variável “experiência” - neste caso, diz–se que as variáveis são positivamente correlacionadas.
O maior objetivo do boxplot é verificar a distribuição dos dados.A dispersão é representada pela amplitude do gráfico, que pode ser calculada como máximo valor – mínimo valor. Quanto maior for a amplitude, maior a variação nos dados.O retângulo contém 50% dos valores do conjunto de dados. A posição da linha mediana no retângulo informa sobre a assimetria da distribuição.Veja a seguir o boxplot de nosso exemplo.
O Boxplot fornece informação sobre as seguintes características do conjunto de dados: localização, dispersão, assimetria, comprimento da cauda e outliers (medidas discrepantes). O centro da distribuição é indicado pela linha da mediana, no centro da caixa. A dispersão é representada pela amplitude do gráfico, que pode ser calculada como máximo valor – mínimo valor. Quanto maior for a amplitude, maior a variação nos dados.
par(mfrow=c(1, 2)) # divide graph area in 2 columns
boxplot(Experiencia,data = InsectSprays, col = "lightgray", main="Experiência")
boxplot(Salario, data = InsectSprays, col = "lightgray", main="Salário")
Uma distribuição simétrica teria a mediana no centro do retângulo. Se a mediana é próxima de Q1, então, os dados são positivamente assimétricos. Se a mediana é próxima de Q3 os dados são negativamente assimétricos.Os outliers em um box plot aparecem como pontos ou asteriscos fora das “linhas” desenhada (em nosso caso não existe outlier).Uma utilidade muito importante do Boxplot é na comparação gráfica de dois ou mais grupos. Nesse caso, o Boxplot é preferível ao histograma. Essa comparação pode ser feita desenhando-se os Boxplots para cada conjunto de dados, paralelamente, em um mesmo gráfico. Observe no gráfico acima que há indicativos de que a variância dos erros é constante, e não há evidências de que os erros não sigam a distribuição Normal e percebe-se de que os erros não são correlacionados entre sí.
Para efeito de exemplificar um caso de boxplot com outlier, segue exemplo abaixo:
Histograma
Um histograma é uma representação visual da distribuição de um conjunto de dados. Como tal, a forma de um histograma é sua característica mais óbvia e informativa: ele permite que você veja facilmente onde uma quantidade relativamente grande dos dados está situada e onde há muito poucos dados a serem encontrados (Verzani 2004). Em outras palavras, você pode ver onde o meio está em sua distribuição de dados, quão próximos estão os dados em torno deste meio e, quando possível, os outliers podem ser encontrados. Exatamente por tudo isso, os histogramas são uma ótima maneira de conhecer seus dados. Este tipo de gráfico adequado para utilização com dados numéricos e se busca aprender sobre sua distribuição. No caso de densidade, a frequência relativa do intervalo i, (fri), é representada pela área de um retângulo que é colocado acima do ponto médio da classe i. Consequentemente, a área total do histograma (igual a soma das áreas de todos os retângulos) será igual a 1. Assim, ao construir o histograma, cada retângulo deverá ter área proporcional à frequência relativa (ou à frequência absoluta, o que é indiferente) correspondente.
par(mfrow=c(1, 2)) # divide graph area in 2 columns
hist(Salario,col="orange", border="black", prob=TRUE, xlab="MPG", ylab="Densidade", main="Salário")
abline(v = mean(Salario), col = "blue")
hist(Experiencia,col="green", border="black", prob=TRUE, xlab="MPG", ylab="Densidade", main="Experiência")
abline(v = mean(Experiencia), col = "red")
No histograma olhamos informações de localização e de variação dos dados. Por exemplo, qual o centro (a média), qual o mínimo e o máximo, qual a amplitude (variação) - O objetivo é conhecer um pouco sobre os dados que estamos trabalhando e também identificar a possível presença de outliers. Por essas razões, o histograma é uma das primeiras ferramentas a ser utilizado na chamada análise descritiva ou exploratória de dados.
Por meio do gráfico podemos observar o comportamento dos pesos e examinar características como: simetria da distribuição (nesse caso podemos entender como distribuição simétrica), região onde há maior concentração de valores, o centro da distribuição (conforme reta vertical), a dispersão dos valores ao redor de uma medida central. Também é possível perceber que não existe nenhum outlier .
Correlação Linear de Person
Os coeficientes de correlação são usados nas estatísticas para medir o quão forte é uma relação entre duas variáveis. Existem vários tipos de coeficientes de correlação: a correlação de Pearson (também chamada de R de Pearson) é um coeficiente de correlação comumente usado na regressão linear.
O coeficiente de correlação de Pearson é uma medida da força da relação linear entre duas variáveis. É referido como correlação de Pearson ou simplesmente como o coeficiente de correlação. Se a relação entre as variáveis não for linear, então o coeficiente de correlação não representa adequadamente a força da relação entre as variáveis. função \(cor.test()\) pode ser usada para calcular o nível de significância da correlação. Ele testa a associação entre amostras pareadas usando os métodos pearson, kendall ou spearman.
Basicamente, uma correlação momento-produto Pearson tenta traçar uma linha de melhor ajuste através dos dados de duas variáveis, e o coeficiente de correlação de Pearson, r, indica a que distância todos esses pontos de dados estão para essa linha de melhor ajuste bem os pontos de dados se encaixam nesse novo modelo / linha de melhor ajuste).
Um coeficiente de correlação de 1 significa que, para cada aumento positivo em uma variável, há um aumento positivo de uma proporção fixa na outra. Por exemplo, os tamanhos dos sapatos aumentam em correlação (quase) perfeita com o comprimento do pé.Um coeficiente de correlação de -1 significa que, para cada aumento positivo em uma variável, há uma diminuição negativa de uma proporção fixa na outra. Por exemplo, a quantidade de gás em um tanque diminui em correlação (quase) perfeita com a velocidade.Zero significa que, para cada aumento, não há um aumento positivo ou negativo. Os dois simplesmente não estão relacionados.
O coeficiente de correlação de Pearson, r, pode ter um intervalo de valores de +1 a -1. Um valor de 0 indica que não há associação entre as duas variáveis. Um valor maior que 0 indica uma associação positiva; isto é, à medida que o valor de uma variável aumenta, o mesmo acontece com o valor da outra variável. Um valor menor que 0 indica uma associação negativa; isto é, à medida que o valor de uma variável aumenta, o valor da outra variável diminui. Isso é mostrado na figura abaixo:
Quanto mais forte a associação das duas variáveis, mais próximo o coeficiente de correlação de Pearson, r, será para +1 ou -1, dependendo se a relação é positiva ou negativa, respectivamente. Alcançar um valor de +1 ou -1 significa que todos os seus pontos de dados estão incluídos na linha de melhor ajuste - não há pontos de dados que mostrem qualquer variação fora dessa linha. Valores para r entre +1 e -1 (por exemplo, r = 0,8 ou -0,4) indicam que há variação ao redor da linha de melhor ajuste. Quanto mais próximo o valor de r a 0, maior a variação em torno da linha de melhor ajuste. Relacionamentos diferentes e seus coeficientes de correlação são mostrados no diagrama abaixo:
options(scipen = 999)
cor.test(Experiencia,Salario)
##
## Pearson's product-moment correlation
##
## data: Experiencia and Salario
## t = 20.1, df = 25, p-value < 0.00000000000000022
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.9353430 0.9866043
## sample estimates:
## cor
## 0.9704256
Como o Valor P do teste (p-value < 2.2e-16) é bem pequeno, conclui-se que o valor do Coeficiente de Correlação Linear de Pearson tem significância Estatística.
O símbolo da correlação de Pearson é “ρ” quando é medido na população e “r” quando é medido em uma amostra. Como estaremos lidando quase exclusivamente com amostras, usaremos r para representar a correlação de Pearson, a menos que indicado de outra forma.O r de Pearson pode variar de -1 a 1. Um r de -1 indica um relacionamento linear negativo perfeito entre variáveis, um r de 0 indica nenhuma relação linear entre variáveis, e um r de 1 indica um perfeito relacionamento linear positivo entre variáveis. A figura abaixo mostra um gráfico de dispersão para o qual r = 1 e para r = -1.
Para testar se suas duas variáveis formam um relacionamento linear, basta plotar um gráfico de dispersão e inspecionar visualmente a forma do gráfico. No diagrama abaixo, você encontrará alguns exemplos diferentes de um relacionamento linear e alguns relacionamentos não lineares. Não é apropriado analisar uma relação não linear usando uma correlação de Pearson. A correlação de Pearson determina o grau em que um relacionamento é linear. Em outras palavras, determina se existe um componente linear de associação entre duas variáveis contínuas.
Teste da Normalidade de Shapiro
Os testes de normalidade são complementares à avaliação gráfica da normalidade.O teste de Shapiro compara os escores da amostra a um conjunto de escores normalmente distribuídos com a mesma média e desvio padrão; a hipótese nula é que “a distribuição da amostra é normal”. Se o teste for significativo, a distribuição não é normal. Para amostras pequenas, os testes de normalidade têm pouco poder para rejeitar a hipótese nula e, portanto, amostras pequenas geralmente passam em testes de normalidade. Para amostras grandes, resultados significativos seriam obtidos mesmo no caso de um pequeno desvio da normalidade, embora esse pequeno desvio não afete os resultados de um teste paramétrico. O teste de Shapiro-Wilk é baseado na correlação entre os dados e os escores normais correspondentes e fornece uma boa opção para testar a normalidade dos dados. O poder é a medida mais frequente do valor de um teste de normalidade - a capacidade de detectar se uma amostra provém de uma distribuição não normal.
shapiro.test(Salario)
##
## Shapiro-Wilk normality test
##
## data: Salario
## W = 0.93433, p-value = 0.08831
shapiro.test(Experiencia)
##
## Shapiro-Wilk normality test
##
## data: Experiencia
## W = 0.96183, p-value = 0.4064
A Hipótese nula do teste de Shapiro é que a população é normalmente distribuída. Assim, por um lado, se o valor p for menor que o nível alfa escolhido, a hipótese nula é rejeitada e há evidências de que os dados testados não são normalmente distribuídos. Por outro lado, se o valor p for maior que o nível alfa escolhido, a hipótese nula de que os dados vieram de uma população normalmente distribuída não pode ser rejeitada (por exemplo, para um nível alfa de 0,05 - um conjunto de dados com valor inferior a 0,05 rejeita a hipótese nula de que os dados são de uma população normalmente distribuída). Como a maioria dos testes de significância estatística, se o tamanho da amostra for suficientemente grande, este teste pode detectar desvios mesmo triviais da hipótese nula (isto é, embora possa haver algum efeito estatisticamente significativo, pode ser muito pequeno para ter qualquer significado prático); portanto, uma investigação adicional do tamanho do efeito é normalmente aconselhável.
Análise de regressão é uma técnica estatística utilizada para investigar a relação existente entre variáveis através da construção de uma equação (um modelo).Iniciemos com o mesmo exemplo anterior, onde um investigador deseja estudar a possível relação entre o salário (em anos completos) e o tempo de experiência (em mil reais) no cargo de gerente de agências bancárias de uma grande empresa.
Inicialmente, os dados devem ser organizados como objetos de dados R, nesse caso como um data frame (planilha). Para isso, é necessário que a tabela acima se encontre numa estrutura tabular, na qual as colunas representam as variáveis e as linhas representam os indivíduos - como feito anteriormente na Análise de Correlação.
Salario=c(19.307,31.769,22.769,31.307,27.769,30.923,26.508,22.230,28.538,32.307,28.230,19.076,25.384,25.692,42.230,40.923,36.000,47.076,31.461,29.923,47.461,41.153,23.615,40.923,45.076,29.076,44.846)
Experiencia=c(0,17,8,15,9,15,8,5,13,20,11,1,6,7,23,20,18,27,11,10,29,23,4,22,25,9,25)
cbind(Salario,Experiencia)
## Salario Experiencia
## [1,] 19.307 0
## [2,] 31.769 17
## [3,] 22.769 8
## [4,] 31.307 15
## [5,] 27.769 9
## [6,] 30.923 15
## [7,] 26.508 8
## [8,] 22.230 5
## [9,] 28.538 13
## [10,] 32.307 20
## [11,] 28.230 11
## [12,] 19.076 1
## [13,] 25.384 6
## [14,] 25.692 7
## [15,] 42.230 23
## [16,] 40.923 20
## [17,] 36.000 18
## [18,] 47.076 27
## [19,] 31.461 11
## [20,] 29.923 10
## [21,] 47.461 29
## [22,] 41.153 23
## [23,] 23.615 4
## [24,] 40.923 22
## [25,] 45.076 25
## [26,] 29.076 9
## [27,] 44.846 25
Uma maneira fácil de obter algumas estatísticas descritivas das variáveis em estudo é através do comando summary(), que retorna as estatísticas mínimo, quartis, média e máximo. Para medir a variabilidade, utilize as funções var() e sd() para obter a variância e o desvio padrão.
summary(Salario)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 19.08 26.10 30.92 32.28 40.92 47.46
var(Salario)
## [1] 73.68296
sd(Salario)
## [1] 8.583878
Diagrama de Dispersão
plot(Experiencia,Salario, main="Diagrama de Dispersão")
Regressão Linear Simples
Ajuste do Modelo Linear
Sejam X e Y, respectivamente, as variáveis Experiência (explicativa) e Salário (resposta). Propõe-se um modelo de regressão linear de primeira ordem, dado pela equação: \(Y = β_0 + β_1X + Ꞓ\), onde \(β_0\) e \(β_1\) são parâmetros desconhecidos e Ꞓ é o erro aleatório. Para ajustar um modelo de regressão linear no R utiliza-se a função lm:
ajuste=lm(Salario ~ Experiencia)
ajuste
##
## Call:
## lm(formula = Salario ~ Experiencia)
##
## Coefficients:
## (Intercept) Experiencia
## 18.061 1.008
Note que função \(lm()\) é chamada com o formato \(lm(y ~ x)\), ou seja, a variável resposta é y e a preditora é x, sempre nessa ordem. O R retorna o valor dos coeficientes de \(β_0\) e \(β_1\) estimados via Método de Mínimos Quadrados. Logo, a equação da reta ajustada é dada por \(Y = 1,83+0,0998Xi\). Com a função summary, diversas medidas descritivas úteis para a análise do ajuste podem ser obtidas:
options(scipen = 999)
summary(ajuste)
##
## Call:
## lm(formula = Salario ~ Experiencia)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.9077 -0.8923 0.5774 1.5582 2.7083
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 18.06074 0.81601 22.13 <0.0000000000000002 ***
## Experiencia 1.00770 0.05013 20.10 <0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.113 on 25 degrees of freedom
## Multiple R-squared: 0.9417, Adjusted R-squared: 0.9394
## F-statistic: 404 on 1 and 25 DF, p-value: < 0.00000000000000022
Da execução desse comando, pode-se obter, por exemplo, os erros-padrão (Std. Error) das estimativas dos coeficientes de regressão: \(EP(β_0) = 0,0761\) e \(EP(β_1) = 0,0047\). Além disso, obtém-se o valor do Coeficiente de Determinação (Multiple R-Squared), \(R^2 = 0,9478\).Com a função ANOVA, pode-se construir a Tabela da Análise de Variância:
options(scipen = 999)
anova(ajuste)
## Analysis of Variance Table
##
## Response: Salario
## Df Sum Sq Mean Sq F value Pr(>F)
## Experiencia 1 1804.12 1804.12 404.01 < 0.00000000000000022 ***
## Residuals 25 111.64 4.47
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Da tabela ANOVA, obtém-se o Quadrado Médio (Mean Sq) Residual, que é uma estimativa para a variância dos erros \((σ^2)\), ou seja, \(s^2 = 0,04\). Para esboçar a reta ajustada no diagrama de dispersão, utilize a função abline:
windows()
plot(Experiencia,Salario)
abline(lm(Salario~Experiencia))
Intervalos de Confiança para βo e β1
Para construir os Intervalos de Confiança (95%) para os coeficientes da regressão, utiliza-se o seguinte comando:
confint(ajuste)
## 2.5 % 97.5 %
## (Intercept) 16.3801241 19.741348
## Experiencia 0.9044423 1.110949
Análise dos Resíduos
Para avaliar as suposições de que os erros possuem variância constante e são não correlacionados entre si, construa os gráficos de “Resíduos versus Valores Ajustados da Variável Resposta” e “Resíduos versus Valores da Variável Explicativa”:
par(mfrow=c(1, 2))
plot(fitted(ajuste),residuals(ajuste),xlab="Valores Ajustados",ylab="Resíduos")
abline(h=0)
plot(Experiencia,residuals(ajuste),xlab="Experiência",ylab="Resíduos")
abline(h=0)
Para exibir os Valores Ajustados e os Resíduos do ajuste, digite os comandos:
ajuste$residuals
## 1 2 3 4 5
## 1.246263977 -3.422565854 -3.353303002 -1.869174109 0.639001126
## 6 7 8 9 10
## -2.253174109 0.385696998 -0.869215385 -2.622782364 -5.907653471
## 11 12 13 14 15
## -0.915390619 0.007568105 1.277088743 0.577392871 0.992258912
## 16 17 18 19 20
## 2.708346529 -0.199261726 1.807475422 2.315609381 1.785305253
## 21 22 23 24 25
## 0.177083677 -0.084741088 1.523480488 0.692954784 1.822867167
## 26 27
## 1.946001126 1.592867167
ajuste$fitted.values
## 1 2 3 4 5 6 7 8
## 18.06074 35.19157 26.12230 33.17617 27.13000 33.17617 26.12230 23.09922
## 9 10 11 12 13 14 15 16
## 31.16078 38.21465 29.14539 19.06843 24.10691 25.11461 41.23774 38.21465
## 17 18 19 20 21 22 23 24
## 36.19926 45.26852 29.14539 28.13769 47.28392 41.23774 22.09152 40.23005
## 25 26 27
## 43.25313 27.13000 43.25313
Para avaliar a suposição de normalidade dos erros, deve-se construir o gráfico da “Probabilidade Normal dos Resíduos”:
qqnorm(residuals(ajuste), ylab="Resíduos",xlab="Quantis teóricos",main="")
qqline(residuals(ajuste))
Pela figura acima (página seguinte), observa-se a violação da suposição de que os erros aleatórios têm distribuição Normal. Considere, também o Teste de Normalidade de Shapiro Wilk:
shapiro.test(residuals(ajuste))
##
## Shapiro-Wilk normality test
##
## data: residuals(ajuste)
## W = 0.90144, p-value = 0.01444
Portanto, como o Valor P do teste é pequeno, rejeita-se a hipótese de normalidade dos resíduos e, por consequência, conclui-se que os erros não são normalmente distribuídos.