Escolar Documentos
Profissional Documentos
Cultura Documentos
EX. 5
a) > numSummary(segsocial[, "RREC_DOL", drop = FALSE],
statistics = c("mean", "sd"), quantiles = c(0,
+ 0.25, 0.5, 0.75, 1))
mean sd n NA
25941.66 20558.5 947 553
A média é 25941.66 e o desvio padrão é 20558.5
b) > numSummary(segsocial[, "RREC_DOL", drop = FALSE],
statistics = c("IQR", "quantiles"),
+ quantiles = c(0, 0.25, 0.5, 0.75, 1))
IQR 0% 25% 50% 75% 100% n NA
21250 500 11250 21250 32500 87500 947 553
c)
151
139
126
112
111
110
93
86
64
20
80000
60000
RREC_DOL
40000
20000
0
100
50
0
RREC_DOL
Ex:1
a) Unidade estatística: cada um dos 30 países com informações recolhidas dos anos
50.
População: Todos os 30 países com informações recolhidas dos anos 50.
b) País- qualitativa nominal
Taxa de Nascimento- quantitativa continua
k
c) 2 =nvalido(n-nºcasos omissos)
> sapply(Base_Países, function(x) (sum(is.na(x)))) # NA counts
País Taxa_nascimento PIB_capita
Agrícola
0 0 0
0
Taxa_mort_infantil
0
Como a variável não tem casos omissos, então o nvalido é igual ao nº total de
países.
2k=30k=log230k=5
> with(Base_Países, Hist(Taxa_nascimento, scale =
"percent", breaks = 5, col = "darkgray"))
Como o histograma não dividiu a variável pelo numero que nós pedimos, temos
de forçar de forma a que o faça, fazendo-o da seguinte maneira:
Substituir Breaks=5 por breaks=c (14.8, 21.1, 27.4, 33.8, 40.1, 46.4)
> local({
+ .Table <- with(Base_Países, table(variable))
+ cat("\ncounts:\n")
+ print(.Table)
+ cat("\npercentages:\n")
+ print(round(100 * .Table/sum(.Table), 2))
+ })
counts:
variable
(14.8,21.1] (21.1,27.4] (27.4,33.8] (33.8,40.1] (40.1,46.4]
13 9 1 4 3
percentages:
variable
(14.8,21.1] (21.1,27.4] (27.4,33.8] (33.8,40.1] (40.1,46.4]
43.33 30.00 3.33 13.33 10.00
Bin numeric variable- frequency distributions
percent
15 20 25 30 35 40 45
Taxa_nascimento
counts:
variable
(14.8,21.1] (21.1,27.4] (27.4,33.8] (33.8,40.1] (40.1,46.4]
13 9 1 4 3
percentages:
variable
(14.8,21.1] (21.1,27.4] (27.4,33.8] (33.8,40.1] (40.1,46.4]
43.33 30.00 3.33 13.33 10.00
A classe modal é [14.8,21.1].
d)
percent
15 20 25 30 35 40 45
Taxa_nascimento
e) > Base_Países <- within(Base_Países, {
+ Agricola_Maioria <- Recode(Agrícola, "lo:49.999=\"sim\";
50:hi=\"não\"", as.factor = TRUE)
+ })
f)
1
2
3
45
40
35
Taxa_nascimento
30
25
20
15
60
40
20
PIB_capita
Correlação inversa e forte. Quanto maior for o PIB_capita menor é a taxa de mortalidade
infantil.
k) > summary(RegModel.1)
Call:
lm(formula = Taxa_mort_infantil ~ PIB_capita, data = Base_Países)
Residuals:
Min 1Q Median 3Q Max
-28.611 -11.564 -4.453 6.399 46.694
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 82.510203 6.248522 13.205 1.51e-13 ***
PIB_capita -0.056172 0.009492 -5.918 2.28e-06 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Y^=beta0+beta1xY^=82.51-0.056172x
l) Para 200€Y^=82.51-0.056172*200=71.2756€
Para 2000€Y^=82.51-0.056172*2000=-29.834, este valor não faz sentido pois já
esta fora do intervalo de valores.
Ex.2
a) População- são todas as deslocações casa-trabalho de alguns funcionários de
uma empresa.
Dimensão da amostra: 75 deslocações trabalho-casa.
b) Combustível- qualitativa nominal
Distância- quantitativa continua
20
15
10
5
0
Combustível
A moda é o gasóleo pois é o que tem o maior numero de carros a andar na
estrada todos os dias, segundo este gráfico.
e) 1) 2k=75k=log275k=6
Isto porque a variável distancia não tem casos omissos (como verificamos na
linha anterior), então o n e igual a 75 e resolvendo aquela conta temos que k=6.
> Viagens <- within(Viagens, {
+ Distância_classes <- Recode(Distância,
"1:12=\"muito curta\"; 12:24=\"curta\";
24:36=\"média\"; 36:48=\"longa\"; 48:60=\"muito
longa\"",
+ as.factor = TRUE)
+ })
> local({
+ .Table <- with(Viagens,
table(Distância_classes))
+ cat("\ncounts:\n")
+ print(.Table)
+ cat("\npercentages:\n")
+ print(round(100 * .Table/sum(.Table), 2))
+ })
counts:
Distância_classes
muito curta curta média muito longa
55 14 5 1
percentages:
Distância_classes
muito curta curta média muito longa
73.33 18.67 6.67 1.33
2) > numSummary(Viagens[, "Distância", drop = FALSE],
statistics = c("mean", "sd", "IQR",
+ "quantiles"), quantiles = c(0, 0.25, 0.5, 0.75,
1))
mean sd IQR 0% 25% 50% 75% 100% n
10.70667 9.219212 8 1 5 9 13 60 75
A mediana é igual a 9km, e os extremos referem que no mínimo há pessoas a
percorrer 1km de casa para o trabalho e no máximo há pessoas a percorrer 60
km na viagem casa-trabalho.
3) A percentagem é igual a 73.3%
4) Tem uma assimetria positiva pois a “caixa” do extremos e quartis localiza-se
antes da media o que significa que tem uma assimetria positiva.
f)
60
44
50
40
Distância
49
31
24
30
46
20
10
0
30
20
10
0 10 20 30 40 50 60
Distância
> summary(RegModel.1)
Call:
lm(formula = Duração ~ Distância, data = Viagens)
Residuals:
Min 1Q Median 3Q Max
-9.693 -2.996 -0.165 3.606 9.448
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 12.76371 0.88116 14.48 <2e-16 ***
Distância 0.96478 0.06254 15.43 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Y^=beta^0+beta^1x
Y^=12.76371+0.96478x
3) Coefeciente de determinação é o multiple r-square, que é igual a 0.7652 e é
um valor bom
4) Y^=12.76371+0.96478*15=27.2354 minutos.
> local({
+ .Table <- with(empresa, table(salario_inic2))
+ cat("\ncounts:\n")
+ print(.Table)
+ cat("\npercentages:\n")
+ print(round(100 * .Table/sum(.Table), 2))
+ })
counts:
salario_inic2
(8.93e+03,1.69e+04] (1.69e+04,2.48e+04] (2.48e+04,3.27e+04]
(3.27e+04,4.05e+04]
300 57 34
12
(4.05e+04,4.84e+04] (4.84e+04,5.63e+04] (5.63e+04,6.42e+04]
(6.42e+04,7.21e+04]
4 1 1
0
(7.21e+04,8.01e+04]
1
percentages:
salario_inic2
(8.93e+03,1.69e+04] (1.69e+04,2.48e+04] (2.48e+04,3.27e+04]
(3.27e+04,4.05e+04]
73.17 13.90 8.29
2.93
(4.05e+04,4.84e+04] (4.84e+04,5.63e+04] (5.63e+04,6.42e+04]
(6.42e+04,7.21e+04]
0.98 0.24 0.24
0.00
(7.21e+04,8.01e+04]
0.24
Substituímos breaks= 9 por breaks = c(8.93e+03, 1.69e+04, 2.48e+04,
3.27e+04, 4.05e+04, 4.84e+04, 5.63e+04, 6.42e+04, 7.21e+04, 8.01e+04)
percent
salario_inic
Verificámos desta forma que no intervalo dos 10000 aos 10750 euros há um
grande número de pessoas a receber inicialmente esses valores da empresa,
notamos também que dos 10750 aos 50000 euros há um numero reduzido de
pessoas a receber isso logo como salario inicial e que dos 50000 aos 80000
euros são irreconhecidos resultados, ou seja, ninguém ou quase ninguém
recebe esses valores como ordenado inicial.
c) > empresa$Aumento <- with(empresa, salario_atual -
salario_inic)
> local({
+ .Table <- with(empresa, table(categoria))
+ cat("\ncounts:\n")
+ print(.Table)
+ cat("\npercentages:\n")
+ print(round(100 * .Table/sum(.Table), 2))
+ })
counts:
categoria
Chefe de secção Diretor Administrativo
25 70 315
percentages:
categoria
Chefe de secção Diretor Administrativo
6.10 17.07 76.83
f)
120000 29
32
100000
18
343
103
34
106
salario_atual
274
80000
71
35
60000
40000
20000
g)
h)
20000 40000 60000 80000
f m
140000
120000
100000
salario_atual
80000
60000
40000
20000
salario_inic
Os homens têm uma melhor progressão salarial no trabalho que as
mulheres, como podemos verificar no gráfico.
i) > RegModel.1 <- lm(salario_atual ~ salario_inic, data =
empresa)
> summary(RegModel.1)
Call:
lm(formula = salario_atual ~ salario_inic, data = empresa)
Residuals:
Min 1Q Median 3Q Max
-34911 -4138 -1022 2626 49366
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2338.32461 957.15528 2.443 0.015 *
salario_inic 1.89186 0.05163 36.641 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' '
1
Y^=beta^0+beta^1x
Y^=2338.32461+1.89x
j) Coeficiente determinação é o multiple R-square que tem um valor de
0.7669, ou seja, tem um valor forte.
k) Y^=2338.32461+1.89*27000=53368.32 €, terá um salario inicial de
53368.32 euros por mês.
EXPLANATORY- EQUIVALE AO X
RESPONSE- EQUIVALE AO Y