knitr::opts_chunk$set(echo=TRUE, warning=FALSE, message=FALSE, fig.width=12, fig.height=6)
# dataset
avaliacoes <- read.csv("evals.csv")
# libs
library(dplyr, quietly=T)
library(ggplot2, quietly=T)
library(nortest, quietly=T)
library(broom, quietly=T)
#library(GGally, quietly=T)
#library(gridExtra, quietly=T)
Vários cursos universitários dão aos alunos a oportunidade de avaliar o curso e o professor de maneira anônima ao final do semestre. Contudo, o uso das avaliações dos alunos como um indicador da qualidade do curso e a eficácia do ensino é frequentemente criticado porque essas medidas podem refletir a influência de características não relacionadas à docência, tal como a aparência física do professor. Neste laboratório analisaremos os dados de um estudo que coletou dados para examinar a hipótese de que a beleza do professor influencia na percepção de competência dos alunos.
Os dados foram coletados a partir das avaliações discentes de final de semestre de uma grande amostra de professores da Universidade do Texas em Austin. Além disso, seis estudantes avaliaram a aparência física dos professores. O resultado é um banco de dados no qual cada linha contém diferentes disciplinas e cada coluna representa as variáveis sobre as disciplinas e os professores. Os dados estão disponíveis aqui. As variáveis contidas nele são as seguintes:
De posse desses dados, queremos avaliar se a beleza possui um efeito significativo no score dos professores, levando em conta os demais fatores que foram identificados como tento possíveis efeitos, que são as variáveis rank, ethnicity, gender, language, age, cls, pic-outfit e pic-color.
Para tanto, iremos partir de uma análise descritiva dos dados.
Como as variáveis presentes no dataset já foram brevemente explicadas, vamos explorar mais a fundo a natureza das mesmas. O dataset é comporto de 463 observações e 21 atributos, dentre os quais filtraremos algumas características nas quais temos mais interesse.
avaliacoesF <- avaliacoes %>%
select(score, age, cls_perc_eval, cls_did_eval, cls_students, bty_avg, cls_level,
rank, ethnicity, gender, language, pic_outfit, pic_color, cls_profs, cls_credits)
# Sumário
summary(avaliacoesF)
## score age cls_perc_eval cls_did_eval
## Min. :2.300 Min. :29.00 Min. : 10.42 Min. : 5.00
## 1st Qu.:3.800 1st Qu.:42.00 1st Qu.: 62.70 1st Qu.: 15.00
## Median :4.300 Median :48.00 Median : 76.92 Median : 23.00
## Mean :4.175 Mean :48.37 Mean : 74.43 Mean : 36.62
## 3rd Qu.:4.600 3rd Qu.:57.00 3rd Qu.: 87.25 3rd Qu.: 40.00
## Max. :5.000 Max. :73.00 Max. :100.00 Max. :380.00
## cls_students bty_avg cls_level rank
## Min. : 8.00 Min. :1.667 lower:157 teaching :102
## 1st Qu.: 19.00 1st Qu.:3.167 upper:306 tenure track:108
## Median : 29.00 Median :4.333 tenured :253
## Mean : 55.18 Mean :4.418
## 3rd Qu.: 60.00 3rd Qu.:5.500
## Max. :581.00 Max. :8.167
## ethnicity gender language pic_outfit
## minority : 64 female:195 english :435 formal : 77
## not minority:399 male :268 non-english: 28 not formal:386
##
##
##
##
## pic_color cls_profs cls_credits
## black&white: 78 multiple:306 multi credit:436
## color :385 single :157 one credit : 27
##
##
##
##
# GgPairs
#ggpairs(avaliacoesF, columns = 1:6)
Afim de encontrar alguma anormalidade, observamos o sumário geral dos dados. Não encontramos nenhum dado que destoasse dos valores de sua categoria, entretanto é interessante atentar para o atributo etnia - apenas 64 dos professores são minoria, enquanto 399 são não-minoria (caucasianos).
Observando a correlação entre os dados, como era de se esperar, há uma alta correlação entre a quantidade de alunos da turma que completaram a avaliação e o número de alunos total da turma - entretanto isso nos diz apenas que ambas as variáveis tem um crescimento similar.
# Sumario
summary(avaliacoesF$score)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2.300 3.800 4.300 4.175 4.600 5.000
# Variação
var(avaliacoesF$score)
## [1] 0.2957886
sd(avaliacoesF$score)
## [1] 0.5438645
# Histograma
ggplot(avaliacoesF, aes(x=score)) + geom_histogram(binwidth = 0.5) +
ggtitle("Score - Histograma") + xlab("Score") + ylab("Ocorrências")
# Boxplot
ggplot(avaliacoesF, aes("-", score)) + geom_boxplot() +
xlab("") + ylab("Score") + ggtitle("Distribuição - Score") +
theme(axis.text.x = element_text(angle = 80, hjust = 1))
# Análise Normalidade
shapiro.test(avaliacoesF$score)
##
## Shapiro-Wilk normality test
##
## data: avaliacoesF$score
## W = 0.95228, p-value = 4.477e-11
ad.test(avaliacoesF$score)
##
## Anderson-Darling normality test
##
## data: avaliacoesF$score
## A = 5.7969, p-value = 2.741e-14
qqnorm(avaliacoesF$score)
Esta variável tem natureza quantitativa e escala de razão. No sumário vemos que a variável está no range de 2.3, 5; o histograma e os testes de normalidade nos sugerem que score não segue uma distribuição normal, ou seja, não podemos rejeitar a hipótese de que os dados não seguem uma distribuição normal. No boxplot vemos que 50% dos dados estão entre 3.5 e 4.7, o que significa uma grande concentração dos dados nesta faixa de valores. Percebemos também 3 avaliações extremamente baixas e nenhum valor demasiadamente alto.
# Sumario
summary(avaliacoesF$age)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 29.00 42.00 48.00 48.37 57.00 73.00
# Variação
var(avaliacoesF$age)
## [1] 96.09375
sd(avaliacoesF$age)
## [1] 9.802742
# Histograma
ggplot(avaliacoesF, aes(x=age)) + geom_histogram(binwidth = 0.5) +
ggtitle("Age - Histograma") + xlab("Age") + ylab("Ocorrências")
# Boxplot
ggplot(avaliacoesF, aes("-", age)) + geom_boxplot() +
xlab("") + ylab("Age") + ggtitle("Distribuição - Age") +
theme(axis.text.x = element_text(angle = 80, hjust = 1))
# Análise Normalidade
shapiro.test(avaliacoesF$age)
##
## Shapiro-Wilk normality test
##
## data: avaliacoesF$age
## W = 0.97299, p-value = 1.522e-07
ad.test(avaliacoesF$age)
##
## Anderson-Darling normality test
##
## data: avaliacoesF$age
## A = 3.1981, p-value = 5.041e-08
qqnorm(avaliacoesF$age)
Esta variável tem natureza quantitativa e escala de razão. No sumário vemos que a variável está no range de 29, 73; o histograma e os testes de normalidade nos sugerem que age não segue uma distribuição normal, ou seja, não podemos rejeitar a hipótese de que os dados não seguem uma distribuição normal. No boxplot vemos que 50% dos dados estão entre 40 e 60 anos, o que significa uma grande concentração dos dados nesta faixa de valores.
Podemos supor que professores mais jovens sejam melhor avaliados pelos alunos por ‘serem de mundos mais próximos’, por outro lado também podemos supor que professores mais velhos sejam melhor avaliados por terem mais experiência no ensino.
# Sumario
summary(avaliacoesF$cls_perc_eval)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 10.42 62.70 76.92 74.43 87.25 100.00
# Variação
var(avaliacoesF$cls_perc_eval)
## [1] 280.774
sd(avaliacoesF$cls_perc_eval)
## [1] 16.75631
# Histograma
ggplot(avaliacoesF, aes(x=cls_perc_eval)) + geom_histogram(binwidth = 0.5) +
ggtitle("cls_perc_eval - Histograma") + xlab("cls_perc_eval") + ylab("Ocorrências")
# Boxplot
ggplot(avaliacoesF, aes("-", cls_perc_eval)) + geom_boxplot() +
xlab("") + ylab("cls_perc_eval") + ggtitle("Distribuição - cls_perc_eval") +
theme(axis.text.x = element_text(angle = 80, hjust = 1))
# Análise Normalidade
shapiro.test(avaliacoesF$cls_perc_eval)
##
## Shapiro-Wilk normality test
##
## data: avaliacoesF$cls_perc_eval
## W = 0.96157, p-value = 1.223e-09
ad.test(avaliacoesF$cls_perc_eval)
##
## Anderson-Darling normality test
##
## data: avaliacoesF$cls_perc_eval
## A = 4.2049, p-value = 1.83e-10
qqnorm(avaliacoesF$cls_perc_eval)
Esta variável tem natureza quantitativa e escala de razão. No sumário vemos que a variável está no range de 10.41667, 100; o histograma e os testes de normalidade nos sugerem que cls_perc_eval não segue uma distribuição normal, ou seja, não podemos rejeitar a hipótese de que os dados não seguem uma distribuição normal. No boxplot vemos que 50% dos dados estão entre 60 e 80 %, o que significa uma grande concentração dos dados nesta faixa de valores.
# Sumario
summary(avaliacoesF$cls_did_eval)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5.00 15.00 23.00 36.62 40.00 380.00
# Variação
var(avaliacoesF$cls_did_eval)
## [1] 2026.664
sd(avaliacoesF$cls_did_eval)
## [1] 45.01848
# Histograma
ggplot(avaliacoesF, aes(x=cls_did_eval)) + geom_histogram(binwidth = 0.5) +
ggtitle("cls_did_eval - Histograma") + xlab("cls_did_eval") + ylab("Ocorrências")
# Boxplot
ggplot(avaliacoesF, aes("-", cls_did_eval)) + geom_boxplot() +
xlab("") + ylab("cls_did_eval") + ggtitle("Distribuição - cls_did_eval") +
theme(axis.text.x = element_text(angle = 80, hjust = 1))
# Análise Normalidade
shapiro.test(avaliacoesF$cls_did_eval)
##
## Shapiro-Wilk normality test
##
## data: avaliacoesF$cls_did_eval
## W = 0.54813, p-value < 2.2e-16
ad.test(avaliacoesF$cls_did_eval)
##
## Anderson-Darling normality test
##
## data: avaliacoesF$cls_did_eval
## A = 54.764, p-value < 2.2e-16
qqnorm(avaliacoesF$cls_did_eval)
Esta variável tem natureza quantitativa e escala de razão. No sumário vemos que a variável está no range de 5, 380; o histograma e os testes de normalidade nos sugerem que cls_did_eval não segue uma distribuição normal, ou seja, não podemos rejeitar a hipótese de que os dados não seguem uma distribuição normal. No boxplot vemos que 50% dos dados estão entre 15 e 40, o que significa uma grande concentração dos dados nesta faixa de valores.
# Sumario
summary(avaliacoesF$cls_students)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 8.00 19.00 29.00 55.18 60.00 581.00
# Variação
var(avaliacoesF$cls_students)
## [1] 5635.925
sd(avaliacoesF$cls_students)
## [1] 75.0728
# Histograma
ggplot(avaliacoesF, aes(x=cls_students)) + geom_histogram(binwidth = 0.5) +
ggtitle("cls_students - Histograma") + xlab("cls_students") + ylab("Ocorrências")
# Boxplot
ggplot(avaliacoesF, aes("-", cls_students)) + geom_boxplot() +
xlab("") + ylab("cls_students") + ggtitle("Distribuição - cls_students") +
theme(axis.text.x = element_text(angle = 80, hjust = 1))
# Análise Normalidade
shapiro.test(avaliacoesF$cls_students)
##
## Shapiro-Wilk normality test
##
## data: avaliacoesF$cls_students
## W = 0.54396, p-value < 2.2e-16
ad.test(avaliacoesF$cls_students)
##
## Anderson-Darling normality test
##
## data: avaliacoesF$cls_students
## A = 60.812, p-value < 2.2e-16
qqnorm(avaliacoesF$cls_students)
Esta variável tem natureza quantitativa e escala de razão. No sumário vemos que a variável está no range de 8, 581; o histograma e os testes de normalidade nos sugerem que cls_students não segue uma distribuição normal, ou seja, não podemos rejeitar a hipótese de que os dados não seguem uma distribuição normal. A distribuição apresenta uma calda a direita. No boxplot vemos que 50% dos dados estão entre 19 e 60, o que significa uma grande concentração dos dados nesta faixa de valores. Notamos também uma grande variância desse dado.
# Sumario
summary(avaliacoesF$bty_avg)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.667 3.167 4.333 4.418 5.500 8.167
# Variação
var(avaliacoesF$bty_avg)
## [1] 2.33289
sd(avaliacoesF$bty_avg)
## [1] 1.52738
# Histograma
ggplot(avaliacoesF, aes(x=bty_avg)) + geom_histogram(binwidth = 0.5) +
ggtitle("Média da Avaliação de Beleza - Histograma") + xlab("bty_avg") + ylab("Ocorrências")
# Boxplot
ggplot(avaliacoesF, aes("-", bty_avg)) + geom_boxplot() +
xlab("") + ylab("Avaliação de Beleza") + ggtitle("Distribuição - bty_avg") +
theme(axis.text.x = element_text(angle = 80, hjust = 1))
# Análise Normalidade
shapiro.test(avaliacoesF$bty_avg)
##
## Shapiro-Wilk normality test
##
## data: avaliacoesF$bty_avg
## W = 0.96236, p-value = 1.656e-09
ad.test(avaliacoesF$bty_avg)
##
## Anderson-Darling normality test
##
## data: avaliacoesF$bty_avg
## A = 5.3538, p-value = 3.151e-13
qqnorm(avaliacoesF$bty_avg)
Esta variável tem natureza quantitativa e escala de razão. No sumário vemos que a variável está no range de 1.667, 8.167; o histograma e os testes de normalidade nos sugerem que bty_avg não segue uma distribuição normal, ou seja, não podemos rejeitar a hipótese de que os dados não seguem uma distribuição normal. No boxplot vemos que 50% dos dados estão entre 3 e 5.
table(avaliacoesF$cls_level)
##
## lower upper
## 157 306
prop.table(table(avaliacoesF$cls_level))
##
## lower upper
## 0.3390929 0.6609071
Este atributo tem natureza qualitativa categórica, dividindo-se em ‘lower’ e ‘upper’. Não fazendo sentido calcular outras estatísticas, vemos acima as proporções de cada uma.
table(avaliacoesF$rank)
##
## teaching tenure track tenured
## 102 108 253
prop.table(table(avaliacoesF$rank))
##
## teaching tenure track tenured
## 0.2203024 0.2332613 0.5464363
Este atributo tem natureza qualitativa categórica, dividindo-se em ‘teaching’, ‘tenure track’ e ‘tenured’. Não fazendo sentido calcular outras estatísticas, vemos acima as proporções de cada uma.
table(avaliacoesF$ethnicity)
##
## minority not minority
## 64 399
prop.table(table(avaliacoesF$ethnicity))
##
## minority not minority
## 0.1382289 0.8617711
Este atributo tem natureza qualitativa categórica, dividindo-se em ‘minority’ e ‘not minority’. Não fazendo sentido calcular outras estatísticas, vemos acima as proporções de cada uma.
table(avaliacoesF$gender)
##
## female male
## 195 268
prop.table(table(avaliacoesF$gender))
##
## female male
## 0.4211663 0.5788337
Este atributo tem natureza qualitativa categórica, dividindo-se em ‘female’ e ‘male’. Não fazendo sentido calcular outras estatísticas, vemos acima as proporções de cada uma.
table(avaliacoesF$language)
##
## english non-english
## 435 28
prop.table(table(avaliacoesF$language))
##
## english non-english
## 0.93952484 0.06047516
Este atributo tem natureza qualitativa categórica, dividindo-se em ‘english’ e ‘non-english’. Não fazendo sentido calcular outras estatísticas, vemos acima as proporções de cada uma.
table(avaliacoesF$pic_outfit)
##
## formal not formal
## 77 386
prop.table(table(avaliacoesF$pic_outfit))
##
## formal not formal
## 0.1663067 0.8336933
Este atributo tem natureza qualitativa categórica, dividindo-se em ‘formal’ e ‘not formal’. Não fazendo sentido calcular outras estatísticas, vemos acima as proporções de cada uma.
table(avaliacoesF$pic_color)
##
## black&white color
## 78 385
prop.table(table(avaliacoesF$pic_color))
##
## black&white color
## 0.1684665 0.8315335
Este atributo tem natureza qualitativa categórica, dividindo-se em ‘black&white’ e ‘color’. Não fazendo sentido calcular outras estatísticas, vemos acima as proporções de cada uma.
table(avaliacoesF$cls_profs)
##
## multiple single
## 306 157
prop.table(table(avaliacoesF$cls_profs))
##
## multiple single
## 0.6609071 0.3390929
Este atributo tem natureza qualitativa categórica, dividindo-se em ‘multiple’ e ‘single’. Não fazendo sentido calcular outras estatísticas, vemos acima as proporções de cada uma.
table(avaliacoesF$cls_credits)
##
## multi credit one credit
## 436 27
prop.table(table(avaliacoesF$cls_credits))
##
## multi credit one credit
## 0.94168467 0.05831533
Este atributo tem natureza qualitativa categórica, dividindo-se em ‘multi credit’ e ‘one credit’. Não fazendo sentido calcular outras estatísticas, vemos acima as proporções de cada uma.
Utilize regressão linear simples para avaliar a relação entre beleza e score quando consideramos apenas essa variável. Comente a significância estatística e a significânca prática da relação que você está investigando. Os pressupostos da regressão foram atendidos? Alguma medida a ser tomada nesse ponto?
# Seleção dos dados
sc_beau <- avaliacoesF %>%
select(score, bty_avg)
# Sumário
summary(sc_beau)
## score bty_avg
## Min. :2.300 Min. :1.667
## 1st Qu.:3.800 1st Qu.:3.167
## Median :4.300 Median :4.333
## Mean :4.175 Mean :4.418
## 3rd Qu.:4.600 3rd Qu.:5.500
## Max. :5.000 Max. :8.167
# Scatterplot
ggplot(sc_beau, aes(score, bty_avg)) + geom_point() +
ggtitle("Score x Beauty Avg") + xlab("Score") + ylab("Beauty Average")
Após selecionados os dados, vemos no scatterplot que não há uma relação evidente aos olhos entre a pontuação média na avaliação docente e a média da avaliação da aparência do professor. Quantificando essa relação, podemos calcular a correlação entre essas duas variáveis.
cor(sc_beau$score,sc_beau$bty_avg)
## [1] 0.1871424
O valor resultante da correlação nos indica que a força do relacionamento linear entre essas duas variáveis é fraca, ou seja, que a beleza do professor explica pouco do score da avaliação docente obtido pelo mesmo. A partir deste pressuposto, esperamos que após gerado o modelo linear entre as duas variáveis, este explique pouco da variação entre as duas variáveis (\(R^2\) baixo).
Partindo para o modelo matemático, de acordo com a questão, é esperado que score seja uma variável dependente de bty_avg, logo:
\[score = \beta_0 + \beta_1 btyAvg\]
# Modelo
modelo <- lm(score ~ bty_avg, data = sc_beau)
summary(modelo)
##
## Call:
## lm(formula = score ~ bty_avg, data = sc_beau)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.9246 -0.3690 0.1420 0.3977 0.9309
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.88034 0.07614 50.96 < 2e-16 ***
## bty_avg 0.06664 0.01629 4.09 5.08e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5348 on 461 degrees of freedom
## Multiple R-squared: 0.03502, Adjusted R-squared: 0.03293
## F-statistic: 16.73 on 1 and 461 DF, p-value: 5.083e-05
tidy(modelo, conf.int = TRUE)
## term estimate std.error statistic p.value conf.low
## 1 (Intercept) 3.88033795 0.07614297 50.961212 1.561043e-191 3.73070764
## 2 bty_avg 0.06663704 0.01629115 4.090382 5.082731e-05 0.03462292
## conf.high
## 1 4.02996827
## 2 0.09865116
Temos:
\[score = 3.880338 + 0.066637 btyAvg\]
Ou seja, se incrementarmos bty_avg em uma unidade, o impacto em score será de 0.066637.
glance(modelo, conf.int = TRUE)[1:5]
## r.squared adj.r.squared sigma statistic p.value
## 1 0.03502226 0.03292903 0.5348351 16.73123 5.082731e-05
Analisando o sumário do modelo, vemos que:
Mesmo que seja pouco provável que não exista nenhuma relação entre a beleza do professor e a avaliação recebida pelo mesmo, o baixo \(R^2\) indica que o modelo gerado explica muito pouco da variância compreendida pela variável score (apenas 3.2% da variância dos dados), assim como também indica que que o modelo não descreve bem a relação entre score e btyAvg.
ggplot(modelo, aes(bty_avg, score)) + geom_point() + geom_smooth(method="lm") +
ggtitle("Score x Beauty Avg - Linear Model") + xlab("Beauty Average") + ylab("Score")
O gráfico acima representa a reta criada pelo modelo para descrever o conjunto de dados passado. No próprio gráfico podemos notar que a reta em azul descreve, de fato, pouco das posições assumidas pelos pontos no plano cartesiano.
Em relação a significância prática: com base no modelo e na análise de correlação, podemos dizer que não há relação significativa evidenciada a partir das análises feitas. Em relação a significância estatística: podemos dizer com 95% de confiança que é improvável que a beleza reflita na avaliação docente do professor.
plot(modelo)
Na análise do modelo e dos resíduos devemos atentar a 4 pontos: 1) Variabilidade constante dos erros 2) Relacionamento linear das variáveis 3) Normalidade dos resíduos 4) Outliers Estranhos
No primeiro gráfico temos os resíduos em função dos valores estimados da variável resposta (Y - score). Vemos que a mancha dos pontos no gráfico se distribui de maneira uniforme em torno da reta de resíduo zero, o que nos dá a evidência de que os erros são independentes e média nula. Quando os resíduos seguem um padrão, a confição de independência dos erros não é satisfeita, o que pode indicar que: ou não existe relação linear significativa entre as variáveis, ou outras variáveis independentes influenciam significativamente a variável resposta.
No segundo gráfico temos que a grande maioria dos pontos tentem a concentrar-se em torno do declive da linha tracejada, o que nos dá evidência de que a distribuição dos erros é normal.
No terceiro gráfico podemos analisar a homoscedasticidade dos erros, ou seja, quando plotamos os erros individuais e os respectivos valores previstos, a variância dos erros é a mesma / constante. A reta gerada não é totalmente horizontal, neste caso o que podemos fazer é: transformar os valores de Y ou usar o Método dos Mínimos Quadrados Ponderados.
No quarto gráfico podemos visualizar possíveis outliers que atrapalharam o modelo ao longo da linha de regressão. Neste caso, caso existam outliers, podemos medir a influência dessas observações com a distância de Cook e eliminá-los ou mantê-los.
Queremos agora avaliar se o efeito da beleza é significativo quando levamos em conta outras variáveis que podem explicar a variação de avaliações que observamos. Antes de fazer o modelo, pense sobre cada uma delas e anote quais você espera que tenham um efeito significativo e quais teriam efeito positivo ou negativo. Em seguida, construa seu modelo e avalie os resultados encontrados. Comente os efeitos dos preditores, o fit do modelo e que implicações você acha que ele tem. Nos diga qual sua conclusão sobre o efeito da beleza na avaliação da docência dos professores.
Nesta questão utilizaremos variáveis que pensamos influenciarem na avaliação do professor.
sel <- avaliacoes %>%
select(score, gender, ethnicity, language, age, cls_students, cls_profs, pic_outfit, pic_color, bty_avg)
Os atributos escolhidos foram: etnia, lingua, idade, número de estudantes da turma, número de professores ministrando a disciplina, tipo de roupa na foto (despojada ou formal), cor da foto (colorida ou preto e branco) e beleza.
Satisfazendo uma suposição que foi levantada anteriormente, calcularemos a correlação entre score e age.
cor(sel$score, sel$age)
## [1] -0.107032
Notamos que a correlação entre tais variáveis é negativa e diferente de zero. Isso nos pode levar a crer que quanto mais velho é o professor, menores as notas assignadas a ele. Assim, removeremos age da construção do nosso modelo.
Temos:
\[score = \beta_0 + \beta_1 ethnicity + \beta_2 language + \beta_3 clsstudents + \beta_4 clsprofs + \beta_5 picoutfit + \beta_6 piccolor + \beta_7 btyavg \]
modelo2 <- lm(score ~ ethnicity + language + gender +
cls_students + cls_profs + pic_outfit + pic_color + bty_avg, data = sel)
summary(modelo2)
##
## Call:
## lm(formula = score ~ ethnicity + language + gender + cls_students +
## cls_profs + pic_outfit + pic_color + bty_avg, data = sel)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.7791 -0.3568 0.1171 0.4129 0.8930
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.0090463 0.1567065 25.583 < 2e-16 ***
## ethnicitynot minority 0.0155081 0.0766436 0.202 0.839741
## languagenon-english -0.2905816 0.1118620 -2.598 0.009691 **
## gendermale 0.1883241 0.0509811 3.694 0.000248 ***
## cls_students -0.0001716 0.0003554 -0.483 0.629532
## cls_profssingle -0.0320933 0.0539241 -0.595 0.552036
## pic_outfitnot formal -0.0389780 0.0737865 -0.528 0.597581
## pic_colorcolor -0.1950224 0.0708104 -2.754 0.006121 **
## bty_avg 0.0624506 0.0169701 3.680 0.000261 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.523 on 454 degrees of freedom
## Multiple R-squared: 0.09129, Adjusted R-squared: 0.07528
## F-statistic: 5.701 on 8 and 454 DF, p-value: 6.356e-07
tidy(modelo2, conf.int = TRUE)
## term estimate std.error statistic p.value
## 1 (Intercept) 4.0090462653 0.1567064719 25.5831569 4.828236e-90
## 2 ethnicitynot minority 0.0155081146 0.0766435996 0.2023406 8.397411e-01
## 3 languagenon-english -0.2905815828 0.1118620437 -2.5976781 9.690567e-03
## 4 gendermale 0.1883240551 0.0509811310 3.6939952 2.476600e-04
## 5 cls_students -0.0001715738 0.0003554365 -0.4827128 6.295324e-01
## 6 cls_profssingle -0.0320932561 0.0539240783 -0.5951563 5.520355e-01
## 7 pic_outfitnot formal -0.0389780333 0.0737864772 -0.5282544 5.975809e-01
## 8 pic_colorcolor -0.1950224297 0.0708104421 -2.7541479 6.120795e-03
## 9 bty_avg 0.0624505717 0.0169701142 3.6800325 2.612033e-04
## conf.low conf.high
## 1 3.7010862408 4.3170062898
## 2 -0.1351121152 0.1661283443
## 3 -0.5104132037 -0.0707499619
## 4 0.0881357849 0.2885123252
## 5 -0.0008700787 0.0005269312
## 6 -0.1380650151 0.0738785029
## 7 -0.1839834376 0.1060273710
## 8 -0.3341793211 -0.0558655384
## 9 0.0291008529 0.0958002905
glance(modelo2, conf.int = TRUE)[1:5]
## r.squared adj.r.squared sigma statistic p.value
## 1 0.09128933 0.07527681 0.5229939 5.701121 6.356462e-07
Utilizando a Regressão Linear Múltipla podemos observar que algumas variáveis possuem mais significância que outras. Das 8 variáveis independentes utilizadas, 4 possuem intervalos de confiança que incluem 0, ou seja, não é possível afirmar sobre os efeitos que essas variáveis podem exercer sobre a variável resposta. As variáveis com mais significância, para este modelo, são gender e bty_avg. O \(R^2\) baixo indica que o modelo explica pouco da variância dos dados, entretanto este segundo modelo gerado foi significativamente melhor do que proposto na questão anterior. A partir da análise feita, acredito que a beleza do professor não influencia na avaliação docente, entretando acredito que existam outros fatores não presentes neste estudo que tenham relação com a avaliação.