library(Hmisc) #Uso da função describe
library(knitr) #Criar tabelas
library(dplyr) #Permite usar o pipe "%>%"
library(kableExtra) #Permite usar o comando "kable_styling"
library(ggplot2) #Plotagem de gráficos
library(MASS) #Utilizar o comando melt
library(reshape2) #Utilizar o comando melt
library(reshape) #Utilizar o comando melt
# Lendo o arquivo "base_de_dados_gestao_universitaaria_2S2022.csv":
satisfacao <- read.csv('C:/Users/fabio/base_de_dados_gestao_universitaaria_2S2022.csv', sep = ';', dec = ".")

# Modificando os nomes das colunas (variáveis)
colnames(satisfacao) <- c('Aluno', 'Sexo', 'Raca', 'Idade', 'Curso', 'Semestres_cursados', 'Desempenho_humanas', 'Desempenho_exatas', 'Satisfacao_inicial', 'Nivel_satisfacao_inicial', 'Satisfacao_atual', 'Nivel_satisfacao_atual')

# Verificando o conteúdo da base de dados - Verificar se há dados não disponíveis (NA - Not Avaiable)
describe(satisfacao)

satisfacao

12 Variables 400 Observations

Aluno n missing distinct Info Mean Gmd .05 .10 400 0 400 1 200.5 133.7 20.95 40.90 .25 .50 .75 .90 .95 100.75 200.50 300.25 360.10 380.05

lowest : 1 2 3 4 5, highest: 396 397 398 399 400

Sexo n missing distinct Info Sum Mean Gmd 400 0 2 0.75 198 0.495 0.5012

Raca n missing distinct 400 0 4
Idade n missing distinct Info Mean Gmd 400 0 9 0.974 21.77 2.139
lowest : 19 20 21 22 23, highest: 23 24 25 26 28
Value 19 20 21 22 23 24 25 26 28 Frequency 45 91 54 56 71 47 34 1 1 Proportion 0.112 0.228 0.135 0.140 0.178 0.117 0.085 0.002 0.002

Curso n missing distinct 400 0 6

lowest : Administração de Empresas Administração Pública Arquitetura Computação Direito
highest: Administração Pública Arquitetura Computação Direito Medicina

Administração de Empresas (61, 0.152), Administração Pública (59, 0.148), Arquitetura (61, 0.152), Computação (61, 0.152), Direito (79, 0.198), Medicina (79, 0.198) ——————————————————————————– Semestres_cursados n missing distinct Info Mean Gmd .05 .10 400 0 10 0.984 4.503 2.633 1 1 .25 .50 .75 .90 .95 2 4 6 8 8

lowest : 1 2 3 4 5, highest: 6 7 8 9 11

Value 1 2 3 4 5 6 7 8 9 11 Frequency 46 55 45 58 53 45 47 47 3 1 Proportion 0.115 0.138 0.112 0.145 0.132 0.112 0.117 0.117 0.007 0.002 ——————————————————————————– Desempenho_humanas n missing distinct Info Mean Gmd .05 .10 400 0 273 1 6.832 1.648 4.239 4.779 .25 .50 .75 .90 .95 5.875 7.025 7.852 8.620 8.951

lowest : 1.45 2.59 3.05 3.12 3.22, highest: 9.46 9.54 9.67 9.69 9.79

Desempenho_exatas n missing distinct Info Mean Gmd .05 .10 400 0 273 1 7.112 1.598 4.658 5.187 .25 .50 .75 .90 .95 6.155 7.300 8.170 8.910 9.051

lowest : 2.49 2.95 3.17 3.20 3.54, highest: 9.66 9.68 9.72 9.85 9.92

Satisfacao_inicial n missing distinct Info Mean Gmd .05 .10 400 0 53 0.999 72.47 12.49 53.00 57.00 .25 .50 .75 .90 .95 65.75 73.00 81.00 86.00 90.00

lowest : 42 44 45 47 48, highest: 93 94 95 98 99

Nivel_satisfacao_inicial n missing distinct 400 0 3

Value Alta Baixa Média Frequency 101 50 249 Proportion 0.252 0.125 0.623 ——————————————————————————– Satisfacao_atual n missing distinct Info Mean Gmd .05 .10 400 0 67 0.999 73.83 19.07 43.9 50.0 .25 .50 .75 .90 .95 64.0 75.0 85.0 96.0 100.0

lowest : 15 25 27 32 34, highest: 96 97 98 99 100

Nivel_satisfacao_atual n missing distinct 400 0 3

Value Alta Baixa Média Frequency 148 78 174 Proportion 0.370 0.195 0.435 ——————————————————————————–

Não há dados incompletos no DataFrame “satisfacao”.

Vamos inserir 30 alunos na base de dados. Esses 30 alunos serão gerados a partir de uma amostra aleatória das informações da base.

# Gerando uma amostra aleatória de 30 registros da base de dados
novos_registros <- satisfacao[sample(nrow(satisfacao), 30), ]

# Combinando os DataFrames 'satisfacao' e 'novos_registros' com o comando rbind
satisfacao2 <- rbind(satisfacao, novos_registros)

# Renumerando os valores duplicados do índice
rownames(satisfacao2) <- 1:nrow(satisfacao2)

# Renumerando os valores da variável "Aluno" no DataFrame "satisfacao2"
satisfacao2$Aluno <- 1:nrow(satisfacao2)

\part(Cálculo dos dados estatísticos para as variáveis)

# Cálculo das médias para as variáveis quantitativas
media_idade <- mean(satisfacao2$Idade)
media_semestres_cursados <- mean(satisfacao2$Semestres_cursados)
media_desempenho_humanas <- mean(satisfacao2$Desempenho_humanas)
media_desempenho_exatas <- mean(satisfacao2$Desempenho_exatas)
media_satisfacao_inicial <- mean(satisfacao2$Satisfacao_inicial)
media_satisfacao_atual <- mean(satisfacao2$Satisfacao_atual)

# Cálculo das medianas para as variáveis quantitativas
mediana_idade <- median(satisfacao2$Idade)
mediana_semestres_cursados <- median(satisfacao2$Semestres_cursados)
mediana_desempenho_humanas <- median(satisfacao2$Desempenho_humanas)
mediana_desempenho_exatas <- median(satisfacao2$Desempenho_exatas)
mediana_satisfacao_inicial <- median(satisfacao2$Satisfacao_inicial)
mediana_satisfacao_atual <- median(satisfacao2$Satisfacao_atual)

# Cálculo do desvio padrão para as variáveis quantitativas
dp_idade <- sd(satisfacao2$Idade)
dp_semestres_cursados <- sd(satisfacao2$Semestres_cursados)
dp_desempenho_humanas <- sd(satisfacao2$Desempenho_humanas)
dp_desempenho_exatas <- sd(satisfacao2$Desempenho_exatas)
dp_satisfacao_inicial <- sd(satisfacao2$Satisfacao_inicial)
dp_satisfacao_atual <- sd(satisfacao2$Satisfacao_atual)

# Cálculo do erro-padrão para as variáveis quantitativas - Erro Padrao = Desvio Padrao / Raiz Quadrada de N, onde N = tamanho da amostra
ep_idade <- dp_idade/sqrt(430)
ep_semestres_cursados <- dp_semestres_cursados/sqrt(430)
ep_desempenho_humanas <- dp_desempenho_humanas/sqrt(430)
ep_desempenho_exatas <- dp_desempenho_exatas/sqrt(430)
ep_satisfacao_inicial <- dp_satisfacao_inicial/sqrt(430)
ep_satisfacao_atual <- dp_satisfacao_atual/sqrt(430)

# Cálculo do Intervalo de Confiança (95%) para as variáveis quantitativas - Intervalo de Confianca = Media +- 1.96 * Erro Padrao
icmin_idade <- media_idade - 1.96 * ep_idade
icmin_idade <- round(icmin_idade, digits = 4)
icmax_idade <- media_idade + 1.96 * ep_idade
icmax_idade <- round(icmax_idade, digits = 4)
ic_idade <- paste(icmin_idade, " a ", icmax_idade)

icmin_semestres_cursados <- media_semestres_cursados - 1.96 * ep_semestres_cursados
icmin_semestres_cursados <- round(icmin_semestres_cursados, digits = 4)
icmax_semestres_cursados <- media_semestres_cursados + 1.96 * ep_semestres_cursados
icmax_semestres_cursados <- round(icmax_semestres_cursados, digits = 4)
ic_semestres_cursados <- paste(icmin_semestres_cursados, " a ", icmax_semestres_cursados)

icmin_desempenho_humanas <- media_desempenho_humanas - 1.96 * ep_desempenho_humanas
icmin_desempenho_humanas <- round(icmin_desempenho_humanas, digits = 4)
icmax_desempenho_humanas <- media_desempenho_humanas + 1.96 * ep_desempenho_humanas
icmax_desempenho_humanas <- round(icmax_desempenho_humanas, digits = 4)
ic_desempenho_humanas <- paste(icmin_desempenho_humanas, " a ", icmax_desempenho_humanas)

icmin_desempenho_exatas <- media_desempenho_exatas - 1.96 * ep_desempenho_exatas
icmin_desempenho_exatas <- round(icmin_desempenho_exatas, digits = 4)
icmax_desempenho_exatas <- media_desempenho_exatas + 1.96 * ep_desempenho_exatas
icmax_desempenho_exatas <- round(icmax_desempenho_exatas, digits = 4)
ic_desempenho_exatas <- paste(icmin_desempenho_exatas, " a ", icmax_desempenho_exatas)

icmin_satisfacao_inicial <- media_satisfacao_inicial - 1.96 * ep_satisfacao_inicial
icmin_satisfacao_inicial <- round(icmin_satisfacao_inicial, digits = 4)
icmax_satisfacao_inicial <- media_satisfacao_inicial + 1.96 * ep_satisfacao_inicial
icmax_satisfacao_inicial <- round(icmax_satisfacao_inicial, digits = 4)
ic_satisfacao_inicial <- paste(icmin_satisfacao_inicial, " a ", icmax_satisfacao_inicial)

icmin_satisfacao_atual <- media_satisfacao_atual - 1.96 * ep_satisfacao_atual
icmin_satisfacao_atual <- round(icmin_satisfacao_atual, digits = 4)
icmax_satisfacao_atual <- media_satisfacao_atual + 1.96 * ep_satisfacao_atual
icmax_satisfacao_atual <- round(icmax_satisfacao_atual, digits = 4)
ic_satisfacao_atual <- paste(icmin_satisfacao_atual, " a ", icmax_satisfacao_atual)

# Cálculo da normalidade por Kolmogorov-Smirnov (base de dados com N>50)
p_idade <- ks.test(satisfacao2$Idade, "pnorm")
p_idade <- p_idade$p.value
p_idade <- round(p_idade, digits = 4)

p_semestres_cursados <- ks.test(satisfacao2$Semestres_cursados, "pnorm")
p_semestres_cursados <- p_semestres_cursados$p.value
p_semestres_cursados <- round(p_semestres_cursados, digits = 4)

p_desempenho_humanas <- ks.test(satisfacao2$Desempenho_humanas, "pnorm")
p_desempenho_humanas <- p_desempenho_humanas$p.value
p_desempenho_humanas <- round(p_desempenho_humanas, digits = 4)

p_desempenho_exatas <- ks.test(satisfacao2$Desempenho_exatas, "pnorm")
p_desempenho_exatas <- p_desempenho_exatas$p.value
p_desempenho_exatas <- round(p_desempenho_exatas, digits = 4)

p_satisfacao_inicial <- ks.test(satisfacao2$Satisfacao_inicial, "pnorm")
p_satisfacao_inicial <- p_satisfacao_inicial$p.value
p_satisfacao_inicial <- round(p_satisfacao_inicial, digits = 4)

p_satisfacao_atual <- ks.test(satisfacao2$Satisfacao_atual, "pnorm")
p_satisfacao_atual <- p_satisfacao_atual$p.value
p_satisfacao_atual <- round(p_satisfacao_atual, digits = 4)

# Construindo a tabela com os dados estatísticos das variáveis quantitativas

# Criando vetores com os resultados estatísticos
variaveis <- c('Idade', 'Semestres cursados', 'Desempenho humanas', 'Desempenho exatas', 'Satisfacao inicial', 'Satisfacao atual')
media <- c(media_idade, media_semestres_cursados, media_desempenho_humanas, media_desempenho_exatas, media_satisfacao_inicial, media_satisfacao_atual)
mediana <- c(mediana_idade, mediana_semestres_cursados, mediana_desempenho_humanas, mediana_desempenho_exatas, mediana_satisfacao_inicial, mediana_satisfacao_atual)
dp <- c(dp_idade, dp_semestres_cursados, dp_desempenho_humanas, dp_desempenho_exatas, dp_satisfacao_inicial, dp_satisfacao_atual)
ic <- c(ic_idade, ic_semestres_cursados, ic_desempenho_humanas, ic_desempenho_exatas, ic_satisfacao_inicial, ic_satisfacao_atual)
p <- c(p_idade, p_semestres_cursados, p_desempenho_humanas, p_desempenho_exatas, p_satisfacao_inicial, p_satisfacao_atual)

# Criando o DataFrame dos dados estatísticos
df_estat <- data.frame("Média"=media, "Desvio_Padrão"=dp, "Mediana"=mediana, "Intervalo_de_Confiança_95"=ic, "Significância_p"=p)
rownames(df_estat) <- c('Idade', 'Semestres cursados', 'Desempenho humanas', 'Desempenho exatas', 'Satisfacao inicial', 'Satisfacao atual')

# Mostrando a tabela com os dados estatísticos
kbl(df_estat, longtable = T, booktabs = T, caption = "Tabela dos dados estatísticos das variáveis quantitativas") %>%
  kable_styling(font_size = 8)
Tabela dos dados estatísticos das variáveis quantitativas
Média Desvio_Padrão Mediana Intervalo_de_Confiança_95 Significância_p
Idade 21.734884 1.893294 22.00 21.5559 a 21.9138 0
Semestres cursados 4.446512 2.301449 4.00 4.229 a 4.664 0
Desempenho humanas 6.804907 1.468690 7.01 6.6661 a 6.9437 0
Desempenho exatas 7.103093 1.416150 7.30 6.9692 a 7.2369 0
Satisfacao inicial 72.253488 11.088053 72.00 71.2055 a 73.3015 0
Satisfacao atual 73.609302 16.898322 75.00 72.0121 a 75.2065 0

^[Os valores da Significância(p) foram obtidos pelo teste de Kolmogorov-Smirnov, a partir de uma amostra de 430 registros. Os valores maiores que 0,05 (5%) indicam distribuição normal para a variável, porém nenhuma variável apresentou distribuição normal (p = 0). Para as variáveis categóricas não se aplica a normalidade.

Pergunta 1 - A Satisfação dos alunos tem comportamento parecido para cada curso?

\(\mu_1\): média da satisfação dos alunos para o curso Administração de Empresas;
\(\mu_2\): média da satisfação dos alunos para o curso Administração Pública;
\(\mu_3\): média da satisfação dos alunos para o curso Arquitetura;
\(\mu_4\): média da satisfação dos alunos para o curso Computação;
\(\mu_5\): média da satisfação dos alunos para o curso Direito; \(\mu_6\): média da satisfação dos alunos para o curso Medicina

Intervalo de confiança para \(\mu_1 - \mu_2\) (variâncias conhecidas)

\[\huge \overline{X_1} - \overline{X_2} \pm Z_{\alpha/2} \sqrt{\frac{\sigma_1^2}{n_1}+\frac{\sigma_2^2}{n_2}}\]

Hipótese nula: Não há diferenças entre a satisfação atual e inicial dos alunos -> \(H_0\): \(\mu_1 - \mu_2=0\) => \(\mu_1=\mu_2\)

Hipótese alternativa: Há diferenças entre a satisfação atual e inicial dos alunos -> \(H_a\): \(\mu_1 - \mu_2 \neq 0\) => \(\mu_1 \neq \mu_2\)

**Teste de hipótese para a diferença de duas médias (variâncias conhecidas e amostras independentes)

Suposições:

Estatística do teste de hipótese

\[\huge Z=\frac{(\overline{X_1} - \overline{X_2})-(\mu_1 - \mu_2)}{\sqrt{\frac{\sigma_1^2}{n_1}+\frac{\sigma_2^2}{n_2}}}\]

\(\alpha=0,05\) (IC=95%)

# Criando novo dataframe com as variáveis necessárias à questao
df_satisfacao_curso <- satisfacao2[, c('Curso', 'Satisfacao_inicial', 'Satisfacao_atual')]

# Calculando os valores dos desvios-padrão por curso - Atual
dp_administracao_empresas_atual <- sd(subset(df_satisfacao_curso, Curso == 'Administração de Empresas')$Satisfacao_atual)
dp_administracao_publica_atual <- sd(subset(df_satisfacao_curso, Curso == 'Administração Pública')$Satisfacao_atual)
dp_arquitetura_atual <- sd(subset(df_satisfacao_curso, Curso == 'Arquitetura')$Satisfacao_atual)
dp_computacao_atual <- sd(subset(df_satisfacao_curso, Curso == 'Computação')$Satisfacao_atual)
dp_direito_atual <- sd(subset(df_satisfacao_curso, Curso == 'Direito')$Satisfacao_atual)
dp_medicina_atual <- sd(subset(df_satisfacao_curso, Curso == 'Medicina')$Satisfacao_atual)

# Calculando os valores dos desvios-padrão por curso - Inicial
dp_administracao_empresas_inicial <- sd(subset(df_satisfacao_curso, Curso == 'Administração de Empresas')$Satisfacao_inicial)
dp_administracao_publica_inicial <- sd(subset(df_satisfacao_curso, Curso == 'Administração Pública')$Satisfacao_inicial)
dp_arquitetura_inicial <- sd(subset(df_satisfacao_curso, Curso == 'Arquitetura')$Satisfacao_inicial)
dp_computacao_inicial <- sd(subset(df_satisfacao_curso, Curso == 'Computação')$Satisfacao_inicial)
dp_direito_inicial <- sd(subset(df_satisfacao_curso, Curso == 'Direito')$Satisfacao_inicial)
dp_medicina_inicial <- sd(subset(df_satisfacao_curso, Curso == 'Medicina')$Satisfacao_inicial)

# Calculando os valores das médias amostrais por curso - Atual
media_administracao_empresas_atual <- mean(subset(df_satisfacao_curso, Curso == 'Administração de Empresas')$Satisfacao_atual)
media_administracao_publica_atual <- mean(subset(df_satisfacao_curso, Curso == 'Administração Pública')$Satisfacao_atual)
media_arquitetura_atual <- mean(subset(df_satisfacao_curso, Curso == 'Arquitetura')$Satisfacao_atual)
media_computacao_atual <- mean(subset(df_satisfacao_curso, Curso == 'Computação')$Satisfacao_atual)
media_direito_atual <- mean(subset(df_satisfacao_curso, Curso == 'Direito')$Satisfacao_atual)
media_medicina_atual <- mean(subset(df_satisfacao_curso, Curso == 'Medicina')$Satisfacao_atual)

# Calculando os valores das médias amostrais por curso - Inicial
media_administracao_empresas_inicial <- mean(subset(df_satisfacao_curso, Curso == 'Administração de Empresas')$Satisfacao_inicial)
media_administracao_publica_inicial <- mean(subset(df_satisfacao_curso, Curso == 'Administração Pública')$Satisfacao_inicial)
media_arquitetura_inicial <- mean(subset(df_satisfacao_curso, Curso == 'Arquitetura')$Satisfacao_inicial)
media_computacao_inicial <- mean(subset(df_satisfacao_curso, Curso == 'Computação')$Satisfacao_inicial)
media_direito_inicial <- mean(subset(df_satisfacao_curso, Curso == 'Direito')$Satisfacao_inicial)
media_medicina_inicial <- mean(subset(df_satisfacao_curso, Curso == 'Medicina')$Satisfacao_inicial)

Curso: Administração de Empresas \(n=61\),
Satisfacao_atual -> \(dp=13.6969\), \(media_{amostral}=75.5454\)
Satisfacao_inicial -> \(dp=11.4584\), \(media_{amostral}=72.3181\)

Curso: Administração Pública \(n=59\),
Satisfacao_atual -> \(dp=13.1207\), \(media_{amostral}=78\)
Satisfacao_inicial -> \(dp=11.2181\), \(media_{amostral}=74\)

Curso: Arquitetura \(n=61\),
Satisfacao_atual -> \(dp=9.5366\), \(media_{amostral}=63.1875\)
Satisfacao_inicial -> \(dp=8.0415\), \(media_{amostral}=64.5156\)

Curso: Computação \(n=61\),
Satisfacao_atual -> \(dp=17.7445\), \(media_{amostral}=60.5303\)
Satisfacao_inicial -> \(dp=10.2300\), \(media_{amostral}=71.5303\)

Curso: Direito \(n=79\),
Satisfacao_atual -> \(dp=14.4401\), \(media_{amostral}=83.5119\)
Satisfacao_inicial -> \(dp=9.9043\), \(media_{amostral}=74.6904\)

Curso: Medicina \(n=79\),
Satisfacao_atual -> \(dp=16.5044\), \(media_{amostral}=78.9642\)
Satisfacao_inicial -> \(dp=10.9226\), \(media_{amostral}=76.3214\)

Cálculos das estatísticas dos testes

\[\huge Z=\frac{(\overline{X_1} - \overline{X_2})-(\mu_1 - \mu_2)}{\sqrt{\frac{\sigma_1^2}{n_1}+\frac{\sigma_2^2}{n_2}}}\]

z_adm_empresas <- (72.3181-75.5454)-0/sqrt((11.4584^2/61)+(13.6969^2/61))
cat("Estatística do teste Adm.Empresas = ", z_adm_empresas)

Estatística do teste Adm.Empresas = -3.2273 O valor da estatística \(z=-3.2273\) aplicado à tabela de distribuição normal padronizada é um valor que extrapola o limite superior da tabela, portanto resultaria em um valor acima de 0,5, portanto aplicando o raciocínio no cálculo do valor da Significância (p):

P(|z|>3.2273) = resulta em um valor de significância muito acima de 5%, portanto não rejeitamos a Hipótese nula \(H_0\) e não há diferenças entre a satisfação atual e inicial dos alunos do curso de Administração de Empresas.

z_adm_publica <- (74-78)-0/sqrt((11.2181^2/59)+(13.1207^2/59))
cat("Estatística do teste Adm.Pública = ", z_adm_publica)

Estatística do teste Adm.Pública = -4 O valor da estatística \(z=-4\) aplicado à tabela de distribuição normal padronizada é um valor que extrapola o limite superior da tabela, portanto resultaria em um valor acima de 0,5, portanto aplicando o raciocínio no cálculo do valor da Significância (p):

P(|z|>4) = resulta em um valor de significância muito acima de 5%, portanto não rejeitamos a Hipótese nula \(H_0\) e não há diferenças entre a satisfação atual e inicial dos alunos dos cursos de Administração Pública.

z_arquitetura <- (64.5156-63.1875)-0/sqrt((8.0415^2/61)+(9.5366^2/61))
cat("Estatística do teste Arquitetura = ", z_arquitetura)

Estatística do teste Arquitetura = 1.3281 O valor da estatística \(z=1.3281\) aplicado à tabela de distribuição normal padronizada resulta o valor 0.4066, portanto aplicando o raciocínio no cálculo do valor da Significância (p):

# Cálculo da significância
p_arquitetura <- 2*(0.5-0.4066)
cat("P_valor Arquitetura = ", p_arquitetura)

P_valor Arquitetura = 0.1868 \(P(|z|>1.3281) = 2*(0.5-0.4066) = 0.1868\) Portanto não rejeitamos a Hipótese nula \(H_0\) e não há diferenças entre a satisfação atual e inicial dos alunos do curso de Arquitetura.

z_computacao <- (71.5303-60.5303)-0/sqrt((10.2300^2/61)+(17.7445^2/61))
cat("Estatística do teste Computação = ", z_computacao)

Estatística do teste Computação = 11 O valor da estatística \(z=11\) aplicado à tabela de distribuição normal padronizada é um valor que extrapola o limite superior da tabela, portanto resultaria em um valor acima de 0,5, portanto aplicando o raciocínio no cálculo do valor da Significância (p):

P(|z|>11) = resulta em um valor de significância muito acima de 5%, portanto não rejeitamos a Hipótese nula \(H_0\) e não há diferenças entre a satisfação atual e inicial dos alunos do curso de Computação.

z_direito <- (74.6904-83.5119)-0/sqrt((9.9043^2/79)+(14.4401^2/79))
cat("Estatística do teste Direito = ", z_direito)

Estatística do teste Direito = -8.8215 O valor da estatística \(z=-8.8215\) aplicado à tabela de distribuição normal padronizada é um valor que extrapola o limite superior da tabela, portanto resultaria em um valor acima de 0,5, portanto aplicando o raciocínio no cálculo do valor da Significância (p):

P(|z|>8.8215) = resulta em um valor de significância muito acima de 5%, portanto não rejeitamos a Hipótese nula \(H_0\) e não há diferenças entre a satisfação atual e inicial dos alunos do curso de Direito.

z_medicina <- (76.3214-78.9642)-0/sqrt((10.9226^2/79)+(16.5044^2/79))
cat("Estatística do teste Medicina = ", z_medicina)

Estatística do teste Medicina = -2.6428 O valor da estatística \(z=-2.6428\) aplicado à tabela de distribuição normal padronizada resulta o valor 0.4959, portanto aplicando o raciocínio no cálculo do valor da Significância (p):

# Cálculo da significância
p_medicina <- 2*(0.5-0.4959)
cat("P_valor Medicina = ", p_medicina)

P_valor Medicina = 0.0082 \(P(|z|>2.6428) = 2*(0.5-0.4959) = 0.0082\)

portanto rejeitamos a Hipótese nula \(H_0\) e adotamos a Hipótese alternativa \(H_a\) e há diferenças entre a satisfação atual e inicial dos alunos do curso de Medicina.

Resposta da questão 1

Há diferenças estatisticamente significantes entre a satisfação atual e inicial entre os alunos do curso de Medicina.

Pergunta 2 - O Desempenho dos alunos é semelhante para cada curso?

\(\mu_1\): média do desempenho dos alunos para o curso Administração de Empresas;
\(\mu_2\): média da desempenho dos alunos para o curso Administração Pública;
\(\mu_3\): média da desempenho dos alunos para o curso Arquitetura;
\(\mu_4\): média da desempenho dos alunos para o curso Computação;
\(\mu_5\): média da desempenho dos alunos para o curso Direito; \(\mu_6\): média da desempenho dos alunos para o curso Medicina

Intervalo de confiança para \(\mu_1 - \mu_2\) (variâncias conhecidas)

\[\huge \overline{X_1} - \overline{X_2} \pm Z_{\alpha/2} \sqrt{\frac{\sigma_1^2}{n_1}+\frac{\sigma_2^2}{n_2}}\]

Hipótese nula: Não há diferenças entre o desempenho em humanas e exatas dos alunos -> \(H_0\): \(\mu_1 - \mu_2=0\) => \(\mu_1=\mu_2\)

Hipótese alternativa: Há diferenças entre o desempenho em humanas e exatas dos alunos -> \(H_a\): \(\mu_1 - \mu_2 \neq 0\) => \(\mu_1 \neq \mu_2\)

**Teste de hipótese para a diferença de duas médias (variâncias conhecidas e amostras independentes)

Suposições:

Estatística do teste de hipótese

\[\huge Z=\frac{(\overline{X_1} - \overline{X_2})-(\mu_1 - \mu_2)}{\sqrt{\frac{\sigma_1^2}{n_1}+\frac{\sigma_2^2}{n_2}}}\] \(\alpha=0,05\) (IC=95%)

# Criando novo dataframe com as variáveis necessárias à questao
df_desempenho_curso <- satisfacao2[, c('Curso', 'Desempenho_humanas', 'Desempenho_exatas')]

# Calculando os valores dos desvios-padrão por curso - Desempenho Humanas
dp_administracao_empresas_deshum <- sd(subset(df_desempenho_curso, Curso == 'Administração de Empresas')$Desempenho_humanas)
dp_administracao_publica_deshum <- sd(subset(df_desempenho_curso, Curso == 'Administração Pública')$Desempenho_humanas)
dp_arquitetura_deshum <- sd(subset(df_desempenho_curso, Curso == 'Arquitetura')$Desempenho_humanas)
dp_computacao_deshum <- sd(subset(df_desempenho_curso, Curso == 'Computação')$Desempenho_humanas)
dp_direito_deshum <- sd(subset(df_desempenho_curso, Curso == 'Direito')$Desempenho_humanas)
dp_medicina_deshum <- sd(subset(df_desempenho_curso, Curso == 'Medicina')$Desempenho_humanas)

# Calculando os valores dos desvios-padrão por curso - Desempenho Exatas
dp_administracao_empresas_desexa <- sd(subset(df_desempenho_curso, Curso == 'Administração de Empresas')$Desempenho_exatas)
dp_administracao_publica_desexa <- sd(subset(df_desempenho_curso, Curso == 'Administração Pública')$Desempenho_exatas)
dp_arquitetura_desexa <- sd(subset(df_desempenho_curso, Curso == 'Arquitetura')$Desempenho_exatas)
dp_computacao_desexa <- sd(subset(df_desempenho_curso, Curso == 'Computação')$Desempenho_exatas)
dp_direito_desexa <- sd(subset(df_desempenho_curso, Curso == 'Direito')$Desempenho_exatas)
dp_medicina_desexa <- sd(subset(df_desempenho_curso, Curso == 'Medicina')$Desempenho_exatas)

# Calculando os valores das médias amostrais por curso - Desempenho Humanas
media_administracao_empresas_deshum <- mean(subset(df_desempenho_curso, Curso == 'Administração de Empresas')$Desempenho_humanas)
media_administracao_publica_deshum <- mean(subset(df_desempenho_curso, Curso == 'Administração Pública')$Desempenho_humanas)
media_arquitetura_deshum <- mean(subset(df_desempenho_curso, Curso == 'Arquitetura')$Desempenho_humanas)
media_computacao_deshum <- mean(subset(df_desempenho_curso, Curso == 'Computação')$Desempenho_humanas)
media_direito_deshum <- mean(subset(df_desempenho_curso, Curso == 'Direito')$Desempenho_humanas)
media_medicina_deshum <- mean(subset(df_desempenho_curso, Curso == 'Medicina')$Desempenho_humanas)

# Calculando os valores das médias amostrais por curso - Desempenho Exatas
media_administracao_empresas_desexa <- mean(subset(df_desempenho_curso, Curso == 'Administração de Empresas')$Desempenho_exatas)
media_administracao_publica_desexa <- mean(subset(df_desempenho_curso, Curso == 'Administração Pública')$Desempenho_exatas)
media_arquitetura_desexa <- mean(subset(df_desempenho_curso, Curso == 'Arquitetura')$Desempenho_exatas)
media_computacao_desexa <- mean(subset(df_desempenho_curso, Curso == 'Computação')$Desempenho_exatas)
media_direito_desexa <- mean(subset(df_desempenho_curso, Curso == 'Direito')$Desempenho_exatas)
media_medicina_desexa <- mean(subset(df_desempenho_curso, Curso == 'Medicina')$Desempenho_exatas)

Curso: Administração de Empresas \(n=61\),
Desempenho_humanas -> \(dp=1.3573\), \(media_{amostral}=7.0384\)
Desempenho_exatas -> \(dp=1.4410\), \(media_{amostral}=7.0260\)

Curso: Administração Pública \(n=59\),
Desempenho_humanas -> \(dp=1.4269\), \(media_{amostral}=7.0862\)
Desempenho_exatas -> \(dp=1.4005\), \(media_{amostral}=7.2781\)

Curso: Arquitetura \(n=61\),
Desempenho_humanas -> \(dp=1.2724\), \(media_{amostral}=6.7815\)
Desempenho_exatas -> \(dp=1.3185\), \(media_{amostral}=6.8296\)

Curso: Computação \(n=61\),
Desempenho_humanas -> \(dp=1.6031\), \(media_{amostral}=5.6837\)
Desempenho_exatas -> \(dp=1.3657\), \(media_{amostral}=7.5801\)

Curso: Direito \(n=79\),
Desempenho_humanas -> \(dp=0.8804\), \(media_{amostral}=7.3763\)
Desempenho_exatas -> \(dp=1.0085\), \(media_{amostral}=7.3947\)

Curso: Medicina \(n=79\),
Desempenho_humanas -> \(dp=1.5144\), \(media_{amostral}=6.9538\)
Desempenho_exatas -> \(dp=1.6341\), \(media_{amostral}=6.7282\)

Cálculos das estatísticas dos testes

\[\huge Z=\frac{(\overline{X_1} - \overline{X_2})-(\mu_1 - \mu_2)}{\sqrt{\frac{\sigma_1^2}{n_1}+\frac{\sigma_2^2}{n_2}}}\]

z_adm_empresas_deshum <- (7.0384-7.0260)-0/sqrt((1.3573^2/61)+(1.4410^2/61))
cat("Estatística do teste Adm.Empresas  - Des.Hum. = ", z_adm_empresas_deshum)

Estatística do teste Adm.Empresas - Des.Hum. = 0.0124 O valor da estatística \(z=0.0124\) aplicado à tabela de distribuição normal padronizada resulta o valor 0.0040, portanto aplicando o raciocínio no cálculo do valor da Significância (p):

# Cálculo da significância
p_admemp_deshum <- 2*(0.5-0.0040)
cat("P_valor Adm. Empresas - Des.Hum. = ", p_admemp_deshum)

P_valor Adm. Empresas - Des.Hum. = 0.992

\(P(|z|>0.0124) = 2*(0.5-0.0040) = 0.992\) Portanto não rejeitamos a Hipótese nula \(H_0\) e não há diferenças entre o desempenho em humanas e exatas dos alunos do curso de Administração de Empresas.

z_adm_publica_deshum <- (7.0862-7.2781)-0/sqrt((1.4269^2/59)+(1.4005^2/59))
cat("Estatística do teste Adm.Empresas  - Des.Hum. = ", z_adm_publica_deshum)

Estatística do teste Adm.Empresas - Des.Hum. = -0.1919 O valor da estatística \(z=-0.1919\) aplicado à tabela de distribuição normal padronizada resulta o valor 0.0754, portanto aplicando o raciocínio no cálculo do valor da Significância (p):

# Cálculo da significância
p_admpub_deshum <- 2*(0.5-0.0754)
cat("P_valor Adm. Pública - Des.Hum. = ", p_admpub_deshum)

P_valor Adm. Pública - Des.Hum. = 0.8492 \(P(|z|>0.1919) = 2*(0.5-0.0754) = 0.8492\) Portanto não rejeitamos a Hipótese nula \(H_0\) e não há diferenças entre o desempenho em humanas e exatas dos alunos do curso de Administração Pública.

z_arquitetura_deshum <- (6.7815-6.8296)-0/sqrt((1.2724^2/61)+(1.3185^2/61))
cat("Estatística do teste Arquitetura - Des.Hum. = ", z_arquitetura_deshum)

Estatística do teste Arquitetura - Des.Hum. = -0.0481 O valor da estatística \(z=-0.0481\) aplicado à tabela de distribuição normal padronizada resulta o valor 0.0160, portanto aplicando o raciocínio no cálculo do valor da Significância (p):

# Cálculo da significância
p_arquit_deshum <- 2*(0.5-0.0160)
cat("P_valor Arquitetura - Des.Hum. = ", p_arquit_deshum)

P_valor Arquitetura - Des.Hum. = 0.968 \(P(|z|>0.0481) = 2*(0.5-0.0160) = 0.968\) Portanto não rejeitamos a Hipótese nula \(H_0\) e não há diferenças entre o desempenho em humanas e exatas dos alunos do curso de Arquitetura.

z_comput_deshum <- (5.6837-7.5801)-0/sqrt((1.6031^2/61)+(1.3657^2/61))
cat("Estatística do teste Computação - Des.Hum. = ", z_comput_deshum)

Estatística do teste Computação - Des.Hum. = -1.8964 O valor da estatística \(z=-1.8964\) aplicado à tabela de distribuição normal padronizada resulta o valor 0.4706, portanto aplicando o raciocínio no cálculo do valor da Significância (p):

# Cálculo da significância
p_comput_deshum <- 2*(0.5-0.4706)
cat("P_valor Computação - Des.Hum. = ", p_comput_deshum)

P_valor Computação - Des.Hum. = 0.0588 \(P(|z|>1.8964) = 2*(0.5-0.4706) = 0.0588\) Portanto não rejeitamos a Hipótese nula \(H_0\) e não há diferenças entre o desempenho em humanas e exatas dos alunos do curso de Arquitetura.

z_direito_deshum <- (7.3763-7.3947)-0/sqrt((0.8804^2/79)+(1.0085^2/79))
cat("Estatística do teste Direito - Des.Hum. = ", z_direito_deshum)

Estatística do teste Direito - Des.Hum. = -0.0184 O valor da estatística \(z=-0.0184\) aplicado à tabela de distribuição normal padronizada resulta o valor 0.0040, portanto aplicando o raciocínio no cálculo do valor da Significância (p):

# Cálculo da significância
p_direito_deshum <- 2*(0.5-0.0040)
cat("P_valor Direito - Des.Hum. = ", p_direito_deshum)

P_valor Direito - Des.Hum. = 0.992 \(P(|z|>0.0184) = 2*(0.5-0.0040) = 0.992\) Portanto não rejeitamos a Hipótese nula \(H_0\) e não há diferenças entre o desempenho em humanas e exatas dos alunos do curso de Direito.

z_medicina_deshum <- (6.9538-6.7282)-0/sqrt((1.5144^2/79)+(1.6341^2/79))
cat("Estatística do teste Medicina - Des.Hum. = ", z_medicina_deshum)

Estatística do teste Medicina - Des.Hum. = 0.2256 O valor da estatística \(z=0.2256\) aplicado à tabela de distribuição normal padronizada resulta o valor 0.0871, portanto aplicando o raciocínio no cálculo do valor da Significância (p):

# Cálculo da significância
p_medicina_deshum <- 2*(0.5-0.0871)
cat("P_valor Medicina - Des.Hum. = ", p_medicina_deshum)

P_valor Medicina - Des.Hum. = 0.8258 \(P(|z|>0.2256) = 2*(0.5-0.0871) = 0.8258\) Portanto não rejeitamos a Hipótese nula \(H_0\) e não há diferenças entre o desempenho em humanas e exatas dos alunos do curso de Medicina.

Resposta da questão 2

Não existem diferenças estatisticamente significantes entre o desempenho em humanas e exatas em nenhum curso.

# Duplicando o DataFrame e convertendo a variável "group" em factor
df_desempenho_curso_2 <- df_desempenho_curso
df_desempenho_curso_2$Curso <- factor(df_desempenho_curso_2$Curso)

# Inserindo a variável "media" no DataFrame
df_desempenho_curso_2$media <- ifelse(df_desempenho_curso_2$Curso=='Administração de Empresas', abs(media_administracao_empresas_deshum - media_administracao_empresas_desexa),
                                      ifelse(df_satisfacao_curso_2$Curso=='Administração Pública', abs(media_administracao_publica_deshum - media_administracao_publica_desexa),
                                             ifelse(df_satisfacao_curso_2$Curso=='Arquitetura', abs(media_arquitetura_deshum - media_arquitetura_desexa),
                                                    ifelse(df_satisfacao_curso_2$Curso=='Computação', abs(media_computacao_deshum - media_computacao_desexa),
                                                           ifelse(df_satisfacao_curso_2$Curso=='Direito', abs(media_direito_deshum - media_direito_desexa), abs(media_medicina_deshum - media_medicina_desexa))))))


# Gráfico comparativo das diferenças das médias
ggplot(df_desempenho_curso_2, aes(x=Curso, y=media, fill=Curso)) + 
    geom_bar(position=position_dodge(), stat="identity",
             colour="black",
             size=.3) +
  labs(x = 'Cursos', y = 'Diferença das médias de desempenho - Humanas - Exatas') +
  labs(title = 'Gráfico das diferenças das médias de desempenho - Humanas - Exatas - por curso') +
  theme(plot.title = element_text(hjust = 0.5, vjust = 3)) +
  theme(plot.title = element_text(size=16,face="bold")) +
  theme(axis.text=element_text(size=12),
        axis.title=element_text(size=14,face="bold")) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  scale_y_continuous(breaks=seq(0, 12, 1))

Pergunta 3 - A Satisfação dos alunos está relacionada a Sexo, Idade ou Raça?

# Criando novo DataFrame com as variáveis da questão
df_satisfacao <- satisfacao2[, c('Sexo', 'Raca', 'Idade', 'Satisfacao_atual')]

# Criando gráfico de dispersão de pontos para visualizar o comportamento das variáveis "Sexo" e "Satisfacao_atual"
ggplot(df_satisfacao, aes(x=Sexo, y=Satisfacao_atual, color=Sexo)) + 
    geom_point(size=3)

Cálculo do coeficiente de correlação:

# Teste do correlação de Spearman
cor(df_satisfacao$Sexo, df_satisfacao$Satisfacao_atual, method = c("spearman"))

[1] 0.03610697 O Coeficiente de Correlação de Spearman resulta um número que pode variar de -1 a 1, onde o valor zero indica ausência de correlação. O valor 1 indica correlação muito forte direta e o valor -1 indica correlação muito forte inversa.

Resultado O resultado apresentado: 0.01630987 indica fraca correlação entre as variáveis “Sexo” e “Satisfacao_atual”.

Cálculo do coeficiente de correlação:

# Mudando a categoria da variável "Raca"
df_satisfacao$Raca <- ifelse(df_satisfacao$Raca == "Amarelo", 1,
                             ifelse(df_satisfacao$Raca == "Branco", 2,
                                    ifelse(df_satisfacao$Raca == "Pardo", 3, 4)))
                      

# Teste do correlação de Spearman
cor(df_satisfacao$Raca, df_satisfacao$Satisfacao_atual, method = c("spearman"))

[1] -0.1321978 Resultado O resultado apresentado: -0.1356368 indica fraca correlação inversa entre as variáveis “Raca” e “Satisfacao_atual”.

# Criando gráfico de dispersão de pontos para visualizar o comportamento das variáveis "Idade" e "Satisfacao_atual"
ggplot(df_satisfacao, aes(x=Idade, y=Satisfacao_atual, color=Idade)) + 
    geom_point(size=3)

Cálculo do coeficiente de correlação:

# Teste do correlação de Spearman
cor(df_satisfacao$Idade, df_satisfacao$Satisfacao_atual, method = c("spearman"))

[1] 0.03638087 Resultado O resultado apresentado: 0.06789013 indica fraca correlação direta entre as variáveis “Idade” e “Satisfacao_atual”.

Pergunta 4 - A Satisfação dos alunos no ingresso à Universidade aumentou no decorrer no curso?

# Criando novo DataFrame com as variáveis da questão
df_satisfacao2 <- satisfacao2[, c('Semestres_cursados', 'Satisfacao_inicial', 'Satisfacao_atual')]

# Aplicando o comando melt na base de dados
df_satisfacao3 <- melt(df_satisfacao2, id = c("Semestres_cursados"))

# Criando gráfico
ggplot(df_satisfacao3, aes(Semestres_cursados, value, fill = variable)) +
  geom_col(position = "dodge")

Resposta

Verificamos que a satisfação aumentou no decorrer do curso porque a maioria dos valores de Satisfação Atual são maiores do que a Satisfação Inicial.

Pergunta 5 - O Desempenho acadêmico dos alunos é melhor em semestres maiores?

# Criando novo DataFrame com as variáveis da questão
df_desempenho <- satisfacao2[, c('Semestres_cursados', 'Desempenho_humanas', 'Desempenho_exatas')]

# Aplicando o comando melt na base de dados
df_desempenho2 <- melt(df_desempenho, id = c("Semestres_cursados"))

# Criando gráfico
ggplot(df_desempenho2, aes(Semestres_cursados, value, fill = variable)) +
  geom_col(position = "dodge")

Resposta

O desempenho dos alunos é menor nos semestres maiores.

Pergunta 6 - Qual é a proporção de alunos por sexo (com 95% de confiança)?

Tabela de frequências da variável Sexo

# Modificando a variável "Sexo"
satisfacao2$Sexo <- ifelse(satisfacao2$Sexo == c(0), "Feminino", "Masculino")

# Tabela de frequências da variável Sexo
dfsexo <- satisfacao2 %>%
  group_by(Sexo) %>%
  summarise(Count=n()) %>%
  mutate(Sexo=factor(Sexo),
         Ratio=Count/sum(Count),
         label = (Ratio*100 %>% round(0)))
tabsexo <- dfsexo[,-3]
colnames(tabsexo) <- c('', 'n', '(%)')
kable(tabsexo, booktabs=TRUE, digits = 0, caption = 'Tabela de frequências da variável Sexo')
Tabela de frequências da variável Sexo
n (%)
Feminino 220 51
Masculino 210 49

Comandos do R utilizados no trabalho:

read.csv() -> comando nativo do R para leitura de arquivo “csv”;
colnames() -> comando nativo do R para renomear os nomes das colunas (variáveis) do dataframe;
describe() -> comando da biblioteca “Hmisc” para analisar o conteúdo do dataframe;
sample() -> comando nativo do R para gerar uma amostra de dados;
rbind() -> comando nativo do R para combinar dois dataframes pelas linhas;
rownames() -> comando nativo do R que identifica a coluna indice (index) do dataframe;
nrow() -> comando nativo do R que totaliza o número de linhas do dataframe;
mean() -> comando nativo do R para cálculo da média de uma variável;
median() -> comando nativo do R para cálculo da mediana de uma variável;
sd() -> comando nativo do R para cálculo do desvio-padrão de uma variável;
sqrt() -> comando nativo do R para cálculo da raiz quadrada;
round() -> comando nativo do R para arredondamento das casas decimais de um número;
paste() -> comando nativo do R para combinar textos e números em uma frase;
ks.test() -> comando nativo do R para calcular a normalidade de uma variável por Kolmogorov-Smirnov;
data.frame() -> comando nativo do R para criar um data frame (quadro de dados);
kbl() -> comando da biblioteca “knitr” para criar uma tabela a partir de um dataframe;
%>% -> “Pipe” -> comando da biblioteca “dplyr” para criar um operador lógico condicional;
kable_styling() -> comando da biblioteca “KableExtra” para personalizar informações dentro de tabelas;
subset() -> comando nativo do R para selecionar uma parte de algum elemento;
factor() -> comando nativo do R para converter uma variável categórica em factor;
ifelse() -> comando nativo do R que testa se uma expressão for verdadeira, a instrução será executada, se for falsa, nada acontece;
ggplot() -> comando da biblioteca “ggplot2” para imprimir gráficos;
cor() -> comando nativo do R para cálculo do coeficiente de correlação;
melt() -> comando da biblioteca “reshape2” para modificar a estrutura do dataframe;