A revista Forbes cria anualmente uma lista com as maiores empresas do mundo, de acordo com valores de vendas, lucros e valor de mercado. Em 2004, esta lista correspondeu a 2000 empresas de todo o mundo e de diversas categorias.
Os dados da lista das 2000 maiores empresas de 2004 estão no arquivo. As colunas são:
rank
: a posição geral da empresa no rankingnome
: nome da empresapais
: país sede da empresacategoria
: a área de atuação (ramo) da empresavendas
: volume de vendas, em bilhões de dólareslucros
: lucro da empresa, em bilhões de dólaresvalor.mercado
: valor de mercado da empresa, em bilhões de dólaresCom isso:
dados <- read.table("dados_Forbes2000.csv", header = TRUE,
sep = ",", dec = ".")
str(dados)
## 'data.frame': 2000 obs. of 7 variables:
## $ rank : int 1 2 3 4 5 6 7 8 9 10 ...
## $ nome : Factor w/ 2000 levels "Aareal Bank",..: 438 747 100 659 311 219 870 1827 663 1921 ...
## $ pais : Factor w/ 61 levels "Africa","Australia",..: 60 60 60 60 56 60 56 28 60 60 ...
## $ categoria : Factor w/ 27 levels "Aeroespacial e defesa",..: 3 6 19 15 15 3 3 5 18 27 ...
## $ vendas : num 94.7 134.2 76.7 222.9 232.6 ...
## $ lucros : num 17.85 15.59 6.46 20.96 10.27 ...
## $ valor.mercado: num 255 329 195 277 174 ...
summary(dados)
## rank nome pais
## Min. : 1.0 Aareal Bank : 1 United States :751
## 1st Qu.: 500.8 ABB Group : 1 Japan :316
## Median :1000.5 Abbey National : 1 United Kingdom:137
## Mean :1000.5 Abbott Laboratories : 1 Germany : 65
## 3rd Qu.:1500.2 Abercrombie & Fitch : 1 France : 63
## Max. :2000.0 Abertis Infraestructuras: 1 Canada : 56
## (Other) :1994 (Other) :612
## categoria vendas lucros
## Bancário : 313 Min. : 0.010 Min. :-25.8300
## Recursos diversificados: 158 1st Qu.: 2.018 1st Qu.: 0.0800
## Seguro : 112 Median : 4.365 Median : 0.2000
## Utilidades : 110 Mean : 9.697 Mean : 0.3811
## Materiais : 97 3rd Qu.: 9.547 3rd Qu.: 0.4400
## Óleo e gás : 90 Max. :256.330 Max. : 20.9600
## (Other) :1120 NA's :5
## valor.mercado
## Min. : 0.02
## 1st Qu.: 2.72
## Median : 5.15
## Mean : 11.88
## 3rd Qu.: 10.60
## Max. :328.54
##
summary(dados)
## rank nome pais
## Min. : 1.0 Aareal Bank : 1 United States :751
## 1st Qu.: 500.8 ABB Group : 1 Japan :316
## Median :1000.5 Abbey National : 1 United Kingdom:137
## Mean :1000.5 Abbott Laboratories : 1 Germany : 65
## 3rd Qu.:1500.2 Abercrombie & Fitch : 1 France : 63
## Max. :2000.0 Abertis Infraestructuras: 1 Canada : 56
## (Other) :1994 (Other) :612
## categoria vendas lucros
## Bancário : 313 Min. : 0.010 Min. :-25.8300
## Recursos diversificados: 158 1st Qu.: 2.018 1st Qu.: 0.0800
## Seguro : 112 Median : 4.365 Median : 0.2000
## Utilidades : 110 Mean : 9.697 Mean : 0.3811
## Materiais : 97 3rd Qu.: 9.547 3rd Qu.: 0.4400
## Óleo e gás : 90 Max. :256.330 Max. : 20.9600
## (Other) :1120 NA's :5
## valor.mercado
## Min. : 0.02
## 1st Qu.: 2.72
## Median : 5.15
## Mean : 11.88
## 3rd Qu.: 10.60
## Max. :328.54
##
length(unique(dados$pais))
## [1] 61
length(unique(dados$categoria))
## [1] 27
sort()
).tab.cat <- sort(table(dados$categoria), decreasing = TRUE)
tab.cat
##
## Bancário Recursos diversificados
## 313 158
## Seguro Utilidades
## 112 110
## Materiais Óleo e gás
## 97 90
## Varejo Alimentos, bebidas e tabaco
## 88 83
## Transportes Construção
## 80 79
## Bens duráveis Serviços e material para empresas
## 74 70
## Serviços de telecomunicação Equipamentos e serviços de saúde
## 67 65
## Mídia Tecnologia e equipamentos
## 61 59
## Bens de capital Químicos
## 53 50
## Drogas e biotecnologia Produtos domésticos e pessoais
## 45 44
## Hotéis, restaurantes e lazer Mercados de alimentos
## 37 33
## Conglomerados Software e serviços
## 31 31
## Semicondutores Empresas comerciais
## 26 25
## Aeroespacial e defesa
## 19
head(tab.cat, 5)
## OU
# tab.cat[1:5]
##
## Bancário Recursos diversificados Seguro
## 313 158 112
## Utilidades Materiais
## 110 97
tab.pais <- sort(table(dados$pais), decreasing = FALSE)
tab.pais
##
## Bahamas France/ United Kingdom
## 1 1
## Islands Jordan
## 1 1
## Liberia New Zealand
## 1 1
## Pakistan Panama/ United Kingdom
## 1 1
## Peru Poland
## 1 1
## United Kingdom/ Australia United Kingdom/ Netherlands
## 1 1
## United Kingdom/ South Africa Venezuela
## 1 1
## Africa Australia/ United Kingdom
## 2 2
## Czech Republic Hungary
## 2 2
## Luxembourg Netherlands/ United Kingdom
## 2 2
## Philippines Chile
## 2 4
## Kong/China Korea
## 4 4
## Cayman Islands Indonesia
## 5 7
## Portugal Austria
## 7 8
## Ireland Israel
## 8 8
## Norway Belgium
## 8 9
## Thailand Denmark
## 9 10
## Finland Greece
## 11 12
## Russia Turkey
## 12 12
## Brazil South Africa
## 15 15
## Malaysia Singapore
## 16 16
## Mexico Bermuda
## 17 20
## Hong Kong/China China
## 20 25
## Sweden India
## 26 27
## Netherlands Spain
## 28 29
## Switzerland Taiwan
## 34 35
## Australia Italy
## 37 41
## South Korea Canada
## 45 56
## France Germany
## 63 65
## United Kingdom Japan
## 137 316
## United States
## 751
tail(tab.pais, 5)
##
## France Germany United Kingdom Japan United States
## 63 65 137 316 751
dados$nome[dados$pais == "Brazil"]
## [1] Petrobras-Petrsleo Brasil Banco Bradesco Group
## [3] Banco do Brasil Itazsa
## [5] Eletrobras Vale do Rio Doce
## [7] Unibanco Group AmBev
## [9] Metalurgica Gerdau Embraer
## [11] Tele Norte Leste Aracruz Celulose
## [13] CBD-Brasil Distribuieco Brasil Telecom
## [15] CSN-Cia Siderurgica
## 2000 Levels: Aareal Bank ABB Group Abbey National ... Zurich Financial Services
dados$nome[which.max(dados$vendas)]
## [1] Wal-Mart Stores
## 2000 Levels: Aareal Bank ABB Group Abbey National ... Zurich Financial Services
dados$nome[which.max(dados$lucros)]
## [1] ExxonMobil
## 2000 Levels: Aareal Bank ABB Group Abbey National ... Zurich Financial Services
dados$nome[which.max(dados$valor.mercado)]
## [1] General Electric
## 2000 Levels: Aareal Bank ABB Group Abbey National ... Zurich Financial Services
order()
).head(dados[order(dados$vendas, decreasing = TRUE), ], 5)
## rank nome pais categoria vendas lucros
## 10 10 Wal-Mart Stores United States Varejo 256.33 9.05
## 5 5 BP United Kingdom Óleo e gás 232.57 10.27
## 4 4 ExxonMobil United States Óleo e gás 222.88 20.96
## 29 29 General Motors United States Bens duráveis 185.52 3.82
## 75 75 Ford Motor United States Bens duráveis 164.20 0.76
## valor.mercado
## 10 243.74
## 5 173.54
## 4 277.02
## 29 27.47
## 75 26.29
hist(dados$lucros)
tab.lucro <- with(dados, tapply(lucros, categoria,
median, na.rm = TRUE))
head(sort(tab.lucro, decreasing = TRUE), 5)
## OU
# sort(tab.lucro, decreasing = TRUE)[1:5]
## Drogas e biotecnologia Óleo e gás
## 0.350 0.350
## Produtos domésticos e pessoais Serviços de telecomunicação
## 0.310 0.275
## Alimentos, bebidas e tabaco
## 0.270
par(mfrow = c(1,2))
hist(dados$valor.mercado)
hist(dados$vendas)
par(mfrow = c(1,1))
log.valor.mercado
e log.vendas
, com o logaritmo do valor de mercado e das vendas, respectivamente. Faça novamente os histogramas com estas duas novas variáveis.dados$log.valor.mercado <- log(dados$valor.mercado)
dados$log.vendas <- log(dados$vendas)
par(mfrow = c(1,2))
hist(dados$log.valor.mercado)
hist(dados$log.vendas)
par(mfrow = c(1,1))
plot(log.valor.mercado ~ log.vendas, data = dados)
De acordo com o histograma dos lucros (acima), nota-se que existe uma grande variação ao redor do zero (ou seja, algumas empresas tiveram lucro positivo, enquanto que outras tiveram prejuízo). Para verificar isso, será construído um intervalo de confiança e um teste de hipótese.
Sabemos que o intervalo de confiança para média de uma distribuição normal com variância desconhecida, para uma amostra de tamanho \(n\) é dado por:
\[ \left(\bar{x} - t_t \sqrt{\frac{s^2}{n}} \quad, \quad \bar{x} + t_t \sqrt{\frac{s^2}{n}} \right) \]
onde \(t_t\) é o quantil de ordem \(1-\alpha/2\) da distribuição \(t\) de Student, com \(n-1\) graus de liberdade.
Considerando que estamos interessados em obter um intervalo de confiança para a média dos lucros, faça o que se pede:
n <- length(dados$lucros)
n
## [1] 2000
t.m <- mean(dados$lucros, na.rm = TRUE)
t.m
## [1] 0.3811328
t.v <- var(dados$lucros, na.rm = TRUE)
t.v
## [1] 3.116828
t.ic <- t.m + qt(c(0.025, 0.975), df = n - 1) * sqrt(t.v/n)
t.ic
## [1] 0.3037129 0.4585527
Além do intervalo de confiança, podemos realizar um teste de hipótese para testar se a média dos lucros é igual a determinado valor. Os procedimentos gerais para este teste de hipótese são:
Portanto, se desejamos testar a hipótese de que o lucro médio das empresas é zero, temos as seguintes hipóteses:
\[ \begin{align} \text{H}_0: \mu = 0 \\ \text{H}_1: \mu \neq 0 \\ \end{align} \]
Usando um nível de significância \(\alpha = 0,05\), realize este teste de hipótese usando a função t.test()
.
t.test(dados$lucros)
##
## One Sample t-test
##
## data: dados$lucros
## t = 9.6425, df = 1994, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 0.3036159 0.4586498
## sample estimates:
## mean of x
## 0.3811328
Qual a sua conclusão a respeito do teste de hipótese?
Resposta: como o p-valor do teste de hipótese foi menor do que o nível de significância (0,05), então rejeitamos a hipótese nula, ou seja, existem evidências que a média dos lucros destas empresas é diferente de zero.
Para avaliar a relação entre vendas e valor de mercado, podemos ajustar um modelo de regressão linear simples, que irá indicar se esta relação é significativa.
Um modelo linear entre duas variáveis \(X\) e \(Y\), é definido matematicamente como uma equação com dois parâmetros desconhecidos,
\[ Y = \beta_0 + \beta_1 X \]
Onde \(\beta_0\) é o intercepto do modelo (valor de \(Y\) quando \(X=0\)), e \(\beta_1\) é o coeficiente angular ou inclinação da reta.
Assim, dados \(n\) pares de valores, \((X_1, Y_1), (X_2, Y_2), \ldots, (X_n, Y_n)\), se for admitido que \(Y\) é função linear de \(X\), pode-se estabelecer uma regressão linear simples, cujo modelo estatístico é
\[ Y_i = \beta_0 + \beta_1 X_i + e_i, \quad i = 1, 2, \ldots, n \]
Como através de uma amostra obtemos uma estimativa da verdadeira equação de regressão, denominamos
\[ \hat{Y}_i = \hat{\beta}_0 + \hat{\beta}_1 X_i \]
ou seja, \(\hat{Y}_i\) é o valor estimado de \(Y_i\), através das estimativas de \(\beta_0\) e \(\beta_1\), que chamaremos de \(\hat{\beta}_0\) e \(\hat{\beta}_1\). Para cada valor de \(Y_i\), temos um valor \(\hat{Y}_i\) estimado pela equação de regressão,
\[ Y_i = \hat{Y}_i + e_i \]
Portanto, o erro (ou desvio) de cada observação em relação ao modelo adotado será
\[ \begin{align} e_i &= Y_i - \hat{Y}_i \\ e_i &= Y_i - (\beta_0 + \beta_1 X_i) \end{align} \]
Comumente se assume que os erros possuem uma distribuição normal com média zero e variância constante, ou seja, \(e_i \sim \text{N}(0, \sigma^2)\).
Através da solução de mínimos quadrados, obtemos as expressões para estimar os parâmetros \(\beta_0\) e \(\beta_1\):
\[ \begin{align} \hat{\beta}_1 &= \frac{\sum_{i=1}^{n} (Y_i - \bar{Y})(X_i - \bar{X})}{ \sum_{i=1}^{n} (X_i - \bar{X})^2} \\ & \\ \hat{\beta_0} &= \bar{Y} - \hat{\beta}_1 \bar{X} \end{align} \]
onde \(\bar{X}\) e \(\bar{Y}\) são as médias amostrais de \(X\) e \(Y\), respectivamente.
Como vimos pelas soluções acima, primeiro calculamos \(\hat{\beta_1}\), e depois \(\hat{\beta_0}\). Para facilitar as contas, vamos criar objetos X
e Y
com as colunas log.vendas
e log.valor.mercado
(saber quem é X
e quem é Y
faz parte da interpretação do problema), e n
que é o tamanho da amostra.
X <- dados$log.vendas
Y <- dados$log.valor.mercado
n <- length(X)
Agora calculamos \(\hat{\beta_1}\) com
## Crie um objeto chamado beta1
beta1 <- sum((Y - mean(Y))*(X - mean(X)))/sum((X - mean(X))^2)
beta1
## [1] 0.5450448
E \(\hat{\beta_0}\) é calculado com
## Crie um objeto chamado beta0
beta0 <- mean(Y) - beta1 * mean(X)
beta0
## [1] 0.8779514
Para conferir os seus cálculos e prosseguir com a análise, ajuste um modelo linear entre as duas variáveis consideradas, usando a função lm()
, e verifique se os coeficientes estimados pela função são os mesmos que você calculou à mão.
## Crie um objeto chamado mod com o modelo ajustado
mod <- lm(Y ~ X, data = dados)
mod
##
## Call:
## lm(formula = Y ~ X, data = dados)
##
## Coefficients:
## (Intercept) X
## 0.878 0.545
Para avaliar a significância do modelo, podemos realizar uma Análise de Variância (ANOVA) para a regressão. Como vimos na estimação dos parâmetros, o objetivo é encontrar parâmetros que façam com que a soma de quadrados dos resíduos seja mínima. Podemos particionar a soma de quadrados da seguinte forma:
\[ SQTot = SQMod + SQRes \]
Portanto, se um modelo é bem ajustado, esperamos que a soma de quadrados do modelo \(SQMod\) seja grande, e a \(SQRes\) sejá mínima. Um quadro de ANOVA para o modelo irá testar, através de um teste F, se a soma de quadrados do modelo é significativamente diferente de zero. Para fazer essa ANOVA, usamos a função anova()
## Quadro de Análise de Variância
anova(mod)
## Analysis of Variance Table
##
## Response: Y
## Df Sum Sq Mean Sq F value Pr(>F)
## X 1 899.01 899.01 920.92 < 2.2e-16 ***
## Residuals 1998 1950.46 0.98
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Uma parte importante em uma análise de regressão linear é a verificação dos resíduos do modelo, ou seja, os desvios de cada valor observado \(Y\) em relação aos valores preditos pelo modelo, \(\hat{Y}\).
Como vimos que a suposição do modelo é de que os resíduos possuam uma distribuição normal com média 0 e variância constante, \(e_i \sim \text{N}(0, \sigma^2)\), então podemos verificar essa suposição fazendo um histograma destes resíduos. Para isso, podemos extrair os resíduos diretamente do objeto mod
com a função residuals()
, e fazer o histograma destes resíduos
## Faça um histograma dos resíduos do modelo
hist(residuals(mod))
Ainda com o objeto mod
, podemos ajustar o modelo graficamente ao gráfico da relação entre log.vendas
e log.valor.mercado
. Para isso, usamos a função abline()
, utilizada para inserir linhas em gráficos.
## Faça o gráfico da relação entre Taxa e Vendas, e insira a linha do
## modelo com abline()
plot(Y ~ X, data = dados)
abline(mod)
Qual a sua conclusão sobre o modelo linear ajustado? Pode-se dizer que existe uma relação significativa entre as duas variáveis?
Resposta: o modelo linear ajustado mostra que a relação entre as duas variáveis é positiva e significativamente diferente de zero, ou seja, existem evidências de que o valor de mercado de uma empresa aumenta conforme aumentam os volumes de venda.