Pular para o conteúdo principal

Questão de Estatística — Programação Linear — FCC 2022

EstatísticaProgramação Linear
Código
fc065797
Banca
FCC
Órgão
TRT - 23ª REGIÃO (MT)
Ano
2022
Cargo
Analista Judiciário - Área Apoio - Estatística
Considere as linhas de comando da linguagem R a seguir:install.packages(c("readxl","tidyverse","expm","matlib")) #linha 1lapply(c("readxl","tidyverse","expm","matlib"),require,character.only = TRUE) #linha 2DADOS <- data.frame(read_excel("C:/Users/fulano/Documents/dados.xlsx")) #linha 3Modelo <- lm(Altura~Peso,DADOS) #linha 4predict(Modelo, data.frame(Peso = c(70, 80, 90))) #linha 5M1<-matrix(c(1,-0.3,-0.3,1.1,0,1,3,4,1,0,-1,4,-6,2),nrow=7,ncol=2,byrow=TRUE) #linha 6M2 <- matrix(c(1,-0.3,1,3),nrow=2,ncol=2,byrow=TRUE) #linha 7Matriz_Final<-M1%*%M2 #linha 8setwd('C:/Users/fulano/Documents/dados') #linha 9write.csv(Matriz_Final, "Matriz_Final.csv", row.names = FALSE) #linha 10A respeito das linhas de comando, executadas na sequência das linhas enumeradas, é correto afirmar que o comando da linha
  1. A5 executa, a partir do modelo adotado, previsões da altura para os pesos 70, 80 e 90.
  2. B8 fornece “Matriz_Final” como resultado os autovalores das matrizes M1 e M2.
  3. C5 exclui dos dados as observações 70, 80 e 90 referentes aos pesos.
  4. D9 grava os dados de “Matriz_Final” no diretório “C:/Users/fulano/Documents/dados”.
  5. E4 utiliza as observações de altura e peso do conjunto de observações “DADOS” para gerar um histograma dos pesos nomeado “Modelo”.
Revelar gabarito e comentário

GabaritoA — 5 executa, a partir do modelo adotado, previsões da altura para os pesos 70, 80 e 90.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Linguagem R: previsão com modelo de regressão linear

Gabarito: letra A. A linha 5 executa a função predict() sobre o objeto Modelo, criado na linha 4 por lm(Altura~Peso,DADOS), e retorna as alturas previstas para os pesos 70, 80 e 90 — exatamente o que descreve a alternativa A. As demais alternativas trocam o sentido dos comandos: a linha 8 faz multiplicação de matrizes (não autovalores), a linha 5 não exclui observações, a linha 9 muda o diretório de trabalho (não grava nada) e a linha 4 ajusta um modelo linear (não gera histograma).

A questão testa a compreensão de comandos básicos do R aplicados a um fluxo de análise estatística. Vamos entender cada parte:

  • Linha 1 e 2: instalam e carregam pacotes (readxl, tidyverse, expm, matlib). O lapply com require carrega cada pacote.

  • Linha 3: lê um arquivo Excel e armazena em DADOS como data.frame.

  • Linha 4: ajusta um modelo de regressão linear simples, com Altura como variável dependente e Peso como independente, usando os dados de DADOS. O objeto Modelo guarda os coeficientes estimados.

  • Linha 5: predict(Modelo, data.frame(Peso = c(70, 80, 90))) usa o modelo ajustado para prever a altura para cada um dos três pesos fornecidos. É a função clássica de previsão em modelos lineares.

  • Linhas 6 a 8: criam duas matrizes (M1 7x2 e M2 2x2) e calculam o produto matricial M1 %*% M2, resultando em Matriz_Final (dimensão 7x2). Não há cálculo de autovalores.

  • Linha 9: setwd() define o diretório de trabalho — não grava nada.

  • Linha 10: write.csv() grava a matriz em um arquivo CSV no diretório atual.

A pegadinha central é confundir a função predict() com outras operações (exclusão de dados, gravação) e atribuir à multiplicação de matrizes um resultado que não é o dela (autovalores).

Funções de previsãoFunções de gravaçãopredict()write.csv()NenhumaLEVELsoulevel.com.br
Funções R e suas ações — só Funções de previsão: predict(); só Funções de gravação: write.csv(); Funções de previsão∩Funções de gravação: Nenhuma

Alternativa A — ✅ Correta ⟵ GABARITO

A linha 5 usa predict(Modelo, data.frame(Peso = c(70, 80, 90))). O primeiro argumento é o objeto Modelo (resultado do lm), e o segundo é um data.frame com os novos valores da variável independente Peso. A função retorna os valores previstos da variável dependente Altura para cada peso — ou seja, previsões de altura para os pesos 70, 80 e 90. É exatamente o que a alternativa afirma.

Alternativa B — ❌ Incorreta

A linha 8 executa M1 %*% M2, que é o produto matricial (multiplicação) entre as matrizes M1 e M2. O resultado é uma nova matriz, não os autovalores. Autovalores seriam obtidos com funções como eigen() (do pacote base) ou matlib::eigen(). A alternativa troca o conceito de multiplicação por autovalores.

Alternativa C — ❌ Incorreta

A linha 5 não exclui observação alguma. A função predict() apenas calcula valores previstos para novos dados; ela não modifica o conjunto DADOS nem remove linhas. Exclusão de observações seria feita com indexação (ex.: DADOS[-c(70,80,90),]) ou com subset(). Além disso, 70, 80 e 90 são valores de Peso para os quais se quer prever, não índices de linhas.

Alternativa D — ❌ Incorreta

A linha 9 (setwd('C:/Users/fulano/Documents/dados')) apenas altera o diretório de trabalho do R. Quem grava o arquivo é a linha 10 (write.csv), que salva Matriz_Final no diretório corrente. A alternativa atribui à linha 9 a função de gravação, o que é incorreto.

Alternativa E — ❌ Incorreta

A linha 4 (Modelo <- lm(Altura~Peso,DADOS)) ajusta um modelo de regressão linear, estimando os coeficientes da reta que relaciona Altura e Peso. Não gera histograma algum. Histograma seria criado com hist() ou ggplot2::geom_histogram(). A alternativa confunde ajuste de modelo com gráfico.

NÃO CAIA NESSA!

A banca explora a confusão entre funções com nomes parecidos: predict() (previsão) × setwd() (mudar diretório) × write.csv() (gravar) × lm() (ajustar modelo). Além disso, troca o resultado da multiplicação de matrizes (%*%) por autovalores — que exigiriam eigen(). Fique atento ao que cada função realmente faz: predict sempre prevê, lm sempre ajusta, %*% sempre multiplica. 💪

NÃO CAIA NESSA!

Para questões de R, monte um mapa mental das funções mais cobradas: lm() → ajusta modelo; predict() → prevê; summary() → resume; plot() → gráficos; hist() → histograma; setwd() → muda diretório; write.csv() → grava; %*% → multiplicação de matrizes; eigen() → autovalores. Isso cobre a maioria das pegadinhas.

Gabarito: letra A

Link permanente: /questoes/fc065797