Este é um relatório que irá retratar a atividade desenvolvida na disiplina Probabilidade e Estatística I. Resolucionando, apresentando e analisando as questões que envolvem os dados de um banco de dados de 36 funcionários de uma determinada empresa, esse documento será desenvolvido com ênfase na demonstração dos recursos da linguagem R.
Para isso, foram explorados conceitos da probabilidade e estatística, como tabelas de frequência absoluta e relativa, gráficos (gráficos de barras e pizza, histogramas, box-plots), medidas de tendência central e dispersão, entre outros.
1.) Faça a importação destes dados para o R.
dados <- read.csv("C:\\Users\\Lenovo\\Desktop\\Probabilidade\\Lista2\\Dados_Funcionarios.csv", sep=",", header=TRUE)
📑 Para carregar os dados, empregamos a função read.csv(), fornecendo a ela o endereço do arquivo CSV. Essa função oferece ajustes cruciais, como sep e header. O argumento sep especifica o símbolo que demarca os dados dentro do arquivo, já header informa se a linha inicial apresenta os nomes das colunas (header=TRUE) ou se os dados já se iniciam ali (header=FALSE).
2.) Considerando a variável estado civil (Est.civil):
# Frequência absoluta
tabelaFreqAbsoluta <- table(dados$'Est.civil')
print(tabelaFreqAbsoluta)
##
## casado solteiro
## 20 16
# Frequência relativa
tabelaFreqRelativa <- prop.table(tabelaFreqAbsoluta)
print(tabelaFreqRelativa)
##
## casado solteiro
## 0.5555556 0.4444444
📑 Para analisar a variável “Est.civil” no nosso conjunto de dados, o script primeiro elabora uma tabela que mostra quantas vezes cada estado civil diferente aparece. Isso é feito usando a função table(), que essencialmente conta quantos solteiros, casados, etc., temos. O comando print() mostra essa contagem. Depois, o script calcula a proporção de cada estado civil em relação ao total de pessoas. A função prop.table() faz esse cálculo, mostrando a porcentagem de cada grupo, e o comando print() exibe esses percentuais.
# Gráfico de barras
barplot(tabelaFreqAbsoluta,
xlab = "Estado Civil",
ylab = "Nº de pessoas",
main = "Gráfico de barras",
col = "purple",
border = "gray",
ylim = c(0, 50),
space = 0.71)
# Gráfico de pizza
pie(tabelaFreqAbsoluta,
radius = 1,
angle = 90,
main = "Gráfico de Setores",
border = "purple")
📑 O script produz duas representações visuais: um diagrama de barras, construído através da função barplot(), cujos parâmetros incluem xlab (designando o eixo x como “Estado Civil”), ylab (rotulando o eixo y como “Nº de pessoas”), main (definindo o título do gráfico como “Gráfico de barras”), col (colorindo as barras de “purple”), border (contornando as barras em “gray”), ylim (estendendo o eixo y de 0 a 50) e space (ajustando o espaço entre barras para 0.71); e um diagrama circular, criado pela função pie(), cujos atributos compreendem radius (definindo o raio do gráfico como 1), angle (iniciando o primeiro segmento a 90 graus), main (intitulando o gráfico como “Gráfico de Setores”) e border (colorindo as bordas dos setores em “purple”).
3.) Considerando a variável grau de instrução (Inst):
# Frequência absoluta
tabelaFreqAbsolutaInst <- table(dados$'Inst')
print(tabelaFreqAbsolutaInst)
##
## 1o Grau 2o Grau Superior
## 12 18 6
# Frequência relativa
tabelaFreqRelativaInst <- prop.table(tabelaFreqAbsolutaInst)
print(tabelaFreqRelativaInst)
##
## 1o Grau 2o Grau Superior
## 0.3333333 0.5000000 0.1666667
📑 O script estabelece duas tabelas distintas para a variável “Inst”. A primeira, nomeada tabelaFreqAbsolutaInst, é construída utilizando a função table(), computando a quantidade de vezes que cada categoria aparece. Já a segunda tabela, originada pela função prop.table(), apresenta a frequência relativa, ou seja, a porcentagem de cada valor em relação ao conjunto total de dados. Ao final, o comando print() exibe ambas as tabelas.
b. Faça um gráfco de barras e um de setores (pizza)
# Gráfico de barras
barplot(tabelaFreqAbsolutaInst,
xlab = "Grau de Instrução",
ylab = "Nº de pessoas",
main = "Gráfico de barras",
col = "purple",
border = "gray",
ylim = c(0, 50),
space = 0.71)
# Gráfico de pizza
pie(tabelaFreqAbsolutaInst,
radius = 1,
angle = 90,
main = "Gráfico de Setores",
border = "purple")
📑 O script produz duas visualizações para a variável “Inst”: um diagrama de barras, gerado via barplot(), onde xlab define o nome do eixo x como “Grau de Instrução”, ylab define o eixo y como “Nº de pessoas”, main define o título como “Gráfico de barras”, col colore as barras de “purple”, border define a borda das barras como “gray”, ylim ajusta o eixo y de 0 a 50 e space o espaçamento entre as barras é 0.71; e um gráfico de pizza, criado com pie(), ajustando o radius (tamanho do raio) para 1, o angle (ângulo inicial) para 90 graus, o main (título) para “Gráfico de Setores” e a cor da border (borda) dos setores para “purple”.
4.) Considerando a variável número de filhos (Filhos):
# Frequência absoluta
tabelaFreqAbsolutaFilh <- table(dados$'Filhos')
print(tabelaFreqAbsolutaFilh)
##
## 0 1 2 3 5
## 4 5 7 3 1
# Frequência relativa
tabelaFreqRelativaFilh <- prop.table(tabelaFreqAbsolutaFilh)
print(tabelaFreqRelativaFilh)
##
## 0 1 2 3 5
## 0.20 0.25 0.35 0.15 0.05
# Frequência acumulada
tableaFreqAcumuladaFilh <- cumsum(tabelaFreqAbsolutaFilh)
print(tableaFreqAcumuladaFilh)
## 0 1 2 3 5
## 4 9 16 19 20
📑 O script produz três tipos de tabelas referentes à variável “Filhos”: primeiramente, a tabela de frequência absoluta, que é construída utilizando a função table() e salva como tabelaFreqAbsolutaFilh, e que discrimina a quantidade de vezes que cada categoria surge; em segundo lugar, a tabela de frequência relativa, obtida através da função prop.table(), a qual determina a proporção de cada valor em relação ao tamanho total da amostra; e, por fim, a tabela de frequência acumulada, formada com a função cumsum(), que calcula a soma progressiva das frequências absolutas. Todas as tabelas resultantes são exibidas utilizando o comando print().
# Relativa
barplot(tabelaFreqAbsolutaFilh,
xlab = "Quantidade de filhos",
ylab = "Nº de pessoas",
main = "Gráfico da Frequência Relativa",
col = "purple",
border = "gray",
ylim = c(0, 50),
space = 0.71)
# acumulada
barplot(tableaFreqAcumuladaFilh,
xlab = "Quantidade de filhos",
ylab = "Nº de pessoas",
main = "Gráfico da Frequência Acumulada",
col = "purple",
border = "gray",
ylim = c(0, 50),
space = 0.71)
📑 O script produz dois gráficos de barras distintos para ilustrar a variável “Filhos”. Um deles exibe a frequência relativa, construído com a função barplot() a partir dos dados em tabelaFreqAbsolutaFilh. O outro mostra a frequência acumulada, também gerado com barplot(), mas utilizando os dados de tableaFreqAcumuladaFilh. Cada um dos gráficos é formatado com xlab (“Quantidade de filhos” para o eixo x), ylab (“Nº de pessoas” para o eixo y), um título principal, barras na cor “purple” com bordas “gray”, um limite vertical (ylim) que vai de 0 a 50, e um espaçamento entre as barras (space) definido em 0.71.
5.) Considerando a variável salário (Salario):
# salário mínimo
min(dados$Salario)
## [1] 4
# salário máximo
max(dados$Salario)
## [1] 23.3
# defini o número de classes como 5 (já que o o design do histograma fica completo com o xlim valento 25 e 25 / 5 = 5)
📑 O script determina os limites inferior e superior do intervalo salarial na variável “Salario” por meio das funções min() e max(). Logo após, estabelece o número de divisões do histograma em cinco, partindo do princípio de que a visualização do histograma alcança um equilíbrio estético com o limite do eixo x fixado em 25, uma vez que 25 ao ser dividido por 5, origina 5 categorias.
b. Faça um histograma
# Histograma
hist(dados$'Salario',
xlab = "Salários (intervalos de 5)",
ylab = "Frequência",
ylim = c(0,20),
main = "Histograma de Salario",
breaks = seq(0, 25, by = 5),)
📑 Eis a representação gráfica da distribuição salarial. Para isso, construímos um histograma com a função hist(). O eixo horizontal (x) exibe os salários, segmentados em faixas de 5 unidades. Já o eixo vertical (y) indica a frequência, variando de 0 a 20. O título centraliza o tema: “Histograma de Salario”. As quebras, ou intervalos, foram definidas em unidades de 5, abrangendo de 0 a 25, delineando as classes do histograma.
6.) Considerando as variáveis estado civil (Est.civil) e grau de instrução (Inst): a. Faça uma tabela de contingência para resumir o cruzamento destas duas variáveis
tabelaCont <- table(dados$Est.civil, dados$Inst)
print(tabelaCont)
##
## 1o Grau 2o Grau Superior
## casado 5 12 3
## solteiro 7 6 3
📑 Com a função table(), o código elabora uma tabela cruzada que conecta as variáveis “Est.civil” e “Inst” presentes no conjunto de dados chamado dados. Essa tabela, guardada sob o nome tabelaCont, exibe a quantidade de vezes que cada par de categorias dessas variáveis aparece. O comando print() é usado para mostrar o resultado final.
barplot(tabelaCont,
main = "Gráfico de barras (contigência)",
col = c("purple", "black"),
border = "gray",
legend.text = c("Casado(a)", "Solteiro(a)"),
ylim = c(0, 20),
space = 0.74)
📑 Para visualizar os dados da tabelaCont, um gráfico de barras é gerado com a função barplot(). O gráfico recebe o título “Gráfico de barras (contingência)” para melhor identificação. As barras exibem cores alternadas em roxo e preto, enquanto as bordas são destacadas em cinza. Uma legenda rotula as categorias como “Casado(a)” e “Solteiro(a)” para facilitar a interpretação. O eixo y é dimensionado de 0 a 20 e o espaço entre cada barra é definido como 0.74.
7.) Considerando as variáveis grau de instrução (Inst) e salário (Salario):
boxplot(dados$Salario ~ dados$Inst,
ylab = "Salário",
xlab = "Instrução",
main = "Box-plot",
col = c("blue", "orange", "pink"))
📑 Para visualizar a distribuição salarial conforme o nível de instrução, geramos um boxplot. A fórmula utilizada, Salario ~ Inst, indica que o salário é analisado em relação à instrução. O título do gráfico é “Box-plot”, o eixo vertical (y) representa o “Salário” e o eixo horizontal (x) indica a “Instrução”. As cores das caixas variam entre “blue”, “orange” e “pink”, criando um visual mais agradável e facilitando a distinção entre os grupos.
# Média e desvio do primeiro grau
mediaPrimeiroGrau <- mean(dados$Salario[dados$Inst == "1o Grau"])
desvioPrimeiroGrau <- sd(dados$Salario[dados$Inst == "1o Grau"])
print(mediaPrimeiroGrau)
## [1] 7.836667
print(desvioPrimeiroGrau)
## [1] 2.956464
# Média e desvio do segundo grau
mediaSegundoGrau <- mean(dados$Salario[dados$Inst == "2o Grau"])
desvioSegundoGrau <- sd(dados$Salario[dados$Inst == "2o Grau"])
print(mediaSegundoGrau)
## [1] 11.52833
print(desvioSegundoGrau)
## [1] 3.715144
# Média e desvio do superior
mediaSuperio <- mean(dados$Salario[dados$Inst == "Superior"])
desvioSuperior <- sd(dados$Salario[dados$Inst == "Superior"])
print(mediaSuperio)
## [1] 16.475
print(desvioSuperior)
## [1] 4.502438
📑 O script analisa os salários, calculando a média e o desvio padrão para quem tem ensino fundamental, médio e superior. Ele usa as funções mean() e sd() para cada grupo, filtrando os salários com base no nível de instrução em dados$Inst. No fim, os valores da média e do desvio padrão são exibidos para cada nível usando print().
8.) Considerando as variáveis Anos e Meses:
dados$Idade <- floor(dados$Anos + (dados$Meses / 12))
📑 O código adiciona uma coluna denominada “Idade” ao conjunto de dados fornecido, determinando a idade com base nas colunas “Anos” e “Meses”. A fórmula floor(dados Anos + (dados Meses / 12)) combina os anos com a porção relativa aos meses (dividindo os meses por 12) e, logo após, emprega a função floor() para arredondar o resultado para baixo, assegurando que a idade seja um número inteiro.
9.) Considerando as variáveis Salario e Idade:
plot(dados$Salario, dados$Idades,
xlab="Idades",
ylab = "Salário",
main = "Gráfico de dispersão (salário e idade)")
📑 Com a função plot(), o código gera um diagrama de dispersão que relaciona “Salário” e “Idades”. O título “Gráfico de dispersão (salário e idade)” identifica o diagrama, enquanto o eixo x é rotulado como “Idades” e o eixo y como “Salário”, ambos por meio de atributos específicos. Através deste gráfico, torna-se possível observar a conexão existente entre a idade e o salário em cada ponto dos dados.
cor(dados$Salario, dados$Idade)
## [1] 0.3633622
📑 A função cor(dados Salario, dados Idade) tem como objetivo encontrar o coeficiente de correlação de Pearson entre os dados de “Salário” e “Idade”. Esse coeficiente nos mostra quão forte e em que direção essas duas variáveis se relacionam de forma linear. O resultado que obtemos está sempre entre -1 e 1: quando está perto de 1, isso significa uma forte relação positiva; perto de -1, uma forte relação negativa; e perto de 0, uma relação linear bem fraca ou inexistente.
10 Experimente as funções mean(), var(), sd(), median(), quantile() nos dados mostrados anteriormente. Veja a documentação das funções e as opções de uso
mean(dados$Salario)
## [1] 11.12222
var(dados$Salario)
## [1] 21.04477
sd(dados$Salario)
## [1] 4.587458
median(dados$Salario)
## [1] 10.165
quantile(dados$Salario)
## 0% 25% 50% 75% 100%
## 4.0000 7.5525 10.1650 14.0600 23.3000
📑 Para obter o salário médio, utiliza-se mean(dados Salario), que totaliza todos os salários e divide pelo número de pessoas. A função var(dados Salario) calcula o quão espalhados estão os salários em relação à média, indicando a variância. Com sd(dados Salario), descobre-se o desvio padrão, que é a raiz quadrada da variância e também mostra a dispersão dos salários. O valor que separa metade dos salários, o valor central, é encontrado com median(dados Salario). Por último, quantile(dados$Salario) mostra os quantis, que dividem os salários em quatro partes iguais: os quartis de 25%, 50% (mediana) e 75%.
Ao examinarmos detalhadamente as informações dos 36 colaboradores, notamos algumas tendências interessantes ligadas à situação conjugal, escolaridade, quantidade de filhos e remunerações. A forma como esses dados se espalham foi visualizada por meio de representações gráficas e quadros de frequência. Cálculos estatísticos (como média, variação e ligações entre os dados) revelaram pontos cruciais, a exemplo de como a formação impacta o salário. Essas descobertas são importantes para a gestão tomar decisões mais embasadas, indicando, por exemplo, mudanças em como os salários e vantagens são oferecidos.