Bacharelado em Estatística - UFMT

Página inicial

  1. Usando o software R, resolva as expressões numéricas:

    1. \(\frac{1}{2} + \frac{1}{3}\)
    2. \(\frac{4}{3} - \left(- \frac{2}{3} \right) + \frac{5}{2}\)
    3. \(4 - \left( - \frac{2}{3} + \frac{1}{4} - \frac{1}{8} \right) + \frac{1}{5}\)
    4. \(\left( - \frac{1}{2}\right)^2 \left( - \frac{1}{3}\right) + \left( \frac{1}{4}\right)^{-1}\)
    5. \(\frac{\sqrt{0,25 \cdot 0,04} + \sqrt[3]{0,01 \cdot 0,0001}}{\sqrt{0,32 \div 0,02} - \sqrt{0,5^4}}\)
    6. \(\frac{\left(\frac{1}{3}\right)^{-2}}{\left(\frac{2}{3}\right)^{-2} - \left(\frac{3}{2}\right)^{-2}}\)
    7. \(\frac{5^{-1}}{10^{-1} - 2^{-1}}\)
    8. \(\left(-\frac{1}{2} \right)^2 \left(-\frac{1}{3} \right) + \left(-\frac{2}{3} \right)^{-1} \div \left(-\frac{1}{3} \right)^{-2}\)
    9. \(\left( \frac{1}{3} + \frac{2}{5} - \frac{7}{2}\right) - \left( -\frac{1}{2} + \frac{1}{3} + \frac{5}{4}\right)\)
    10. \(\frac{1}{2} - \left[ \frac{5}{3} - \left( \frac{1}{4} + \frac{1}{3}\right) \right]\)
    11. \(\left[\left(\frac{1}{2} + \sqrt{2}\right)^{-2} + \frac{\pi^2}{\frac{\sqrt{3}}{1 + 0,333...}}\right] - \log_{10}(16 + 7,5^2)\)
  2. Execute os comandos sqrt(16), 16^0.5 e 4^3.

  3. Execute os comandos log10(1000), log(1000), exp(log (1000)). Então, tente o comando log2(64). Quais as diferenças entre as funções executadas?

  4. Experimente o comando ?log. Leia as primeiras linhas. O texto corresponde às suas observações do exercício anterior?

  5. Execute os comandos pi, round(pi), round(pi, digits = 4) e trunc(pi).

  6. As funções seno e cosseno são implementadas em sin e cos. Calcule sin(pi), cos(pi), sin(pi/2), cos(pi/2).

  7. Execute os comandos a seguir e observe os resultados. Note que as operações são realizadas elemento a elementos.

  x <- c(3,6,8)
  x
  x/2
  x^2
  sqrt(x)
  x[2]
  x[c(1,3)]
  x[-3]
  y <- c(2,5,1)
  y
  x-y
  x*y
  x[y > 1.5]
  y[x == 6]
  4:10
  seq(2,3, by = 0.1)
  rep(x, each = 4)
  1. Suponha que registramos a altura e o peso para quatro pessoas: alturas em cm são 180, 165, 160, 193; pesos em kg são 87, 58, 65, 100. Faça dois vetores, altura e peso, com os dados. O índice de massa corporal (IMC) é definido como \[ \frac{peso \ (\text{em kg})}{altura^2 \ (\text{em m}) } \] Faça um vetor com os valores do IMC para as quatro pessoas, e um vetor com o logaritmo natural para os valores do IMC. Finalmente, faça um vetor com os pesos para essas pessoas que têm um IMC maior que 25.

  2. Mostrar os comandos que podem ser usados para criar as sequências:

## [1] 1 2 3
##  [1] 10 11 12 13 14 15 16 17 18 19 20
## [1] -3 -2 -1  0  1  2  3
## [1] -8 -7 -6 -5
##  [1] 2.4 2.9 3.4 3.9 4.4 4.9 5.4 5.9 6.4 6.9 7.4
##  [1]  0.0  1.1  2.2  3.3  4.4  5.5  6.6  7.7  8.8  9.9 11.0
##  [1]  0  2  4  6  8 10 12 14 16 18 20
##  [1]  1  3  5  7  9 11 13 15 17 19
##  [1] 1 1 2 2 3 3 4 4 5 5
##  [1] 1 2 3 4 5 1 2 3 4 5
##  [1] 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
##  [1] 1 1 1 1 1 2 2 2 2 3 3 3 4 4 5
##  [1]  0.0  2.5  2.5  5.0  5.0  5.0  7.5  7.5  7.5  7.5 10.0 10.0 10.0 10.0 10.0
## [1] "a" "b" "c" "d" "e"
## [1] "c" "f" "i" "l"
## [1] "H" "G" "F" "E" "D" "C" "B"
## [1] "A" "C" "E" "G" "I" "K"
## [1] "T1" "T2" "T3" "T1" "T2" "T3" "T1" "T2" "T3"
## [1] "T1" "T1" "T2" "T2" "T3" "T3" "T3" "T3"
  1. Suponha que você marcou 10 tempos que gasta para executar uma tarefa. Os tempos em minutos foram: 18, 14, 14, 15, 14, 34, 16, 17, 21, 26. Armazene esses valores em um objeto com o nome tempo. Usando funções do R obtenha o tempo máximo, mínimo e o tempo médio.

  2. (continuando o exercício anterior) O valor 34 foi um erro, ele na verdade é 15. Sem digitar tudo novamente, e usando colchetes [], altere o valor e calcule novamente o tempo médio.

  3. Você consegue prever o resultado dos comandos abaixo? Caso não consiga, execute os comandos e veja o resultado:

x<-c(1,3,5,7,9)
y<-c(2,3,5,7,11,13)
x+1
y*2
length(x)
length(y)
x + y
y[3]
y[-3]
  1. Calcule a velocidade média de um objeto que percorreu 150 km em 2.5 horas. Sugestão: lembre-se da fórmula do cálculo da velocidade média.

  2. Calcule \(|2^3-3^2|\)

  3. Suponha que você deseje jogar na mega-sena, mas não sabe quais números jogar, use a função sample do R para escolher seis números para você. Lembre que a mega-sena tem valores de 1 a 60.

  4. Crie uma sequencia de dados de 1 a 30 apenas com números impares. Use a função seq().

  5. Utilizando apenas as funções c(), seq() e indexação de vetores [], crie os seguintes objetos:

    1. Uma sequência de quinze valores em intervalos regulares, indo de 0 a 100, nomeada sq1.
    2. Um objeto, denominado sq2, que contenha todos os elementos de sq1, exceto o quinto e décimo valores.
    3. Um vetor sq3 contendo apenas as posições ímpares do objeto sq1.
    4. Uma sequência igual a sq1 substituindo, apenas os valores nas posições pares, pelo número relativo à sua posição. Denomine esse objeto de sq4.
  6. Abaixo estão listadas as distâncias por estradas entre quatro cidades da Europa, em quilômetros:

    • Atenas a Madri: 3949
    • Atenas a Paris: 3000
    • Atenas a Estocolmo: 3927
    • Madri a Paris: 1273
    • Madri a Estocolomo: 3188
    • Paris a Estocolmo: 1827

Crie um objeto da classe matrix denominado dist.cid com os valores acima. Nesta matriz, a diagonal principal deve conter zeros e o “triângulo” acima da diagonal principal deve conter as mesmas informações do “triângulo” abaixo da diagonal principal. Para facilitar o uso desse objeto, o nome das linhas e das colunas deve ser o nome das cidades. Você consegue pensar em duas formas diferentes de criar a matriz com nomes nas linhas e colunas? Sugestão: utilize as funções lower.tri,upper.tri e diag.

  1. Faça um programa que receba quatro números, calcule e mostre a soma desses números.

  2. Faça um programa que receba três notas, calcule e mostre a média aritmética.

  3. Faça um programa que receba três notas e seus respectivos pesos, calcule e mostre a média ponderada.

  4. Faça um programa que receba o salário de um funcionário, calcule e mostre o novo salário, sabendo-se que este sofreu um aumento de \(25\%\).

  5. Faça um programa que receba o salário de um funcionário e o percentual de aumento, calcule e mostre o valor do aumento e o novo salário.

  6. Faça um programa que receba o salário base de um funcionário, calcule e mostre o salário a receber, sabendo-se que o funcionário tem gratificação de \(128\) reais sobre o salário base e paga os impostos de \(14\%\) e \(25/%\), referentes a previdência e de renda. Note que não há incidência de imposto na gratificação e a ordem de desconto dos impostos é primeiro o da previdência e posteriormente o de renda.

  7. Faça um programa que receba o valor de um depósito, o valor da taxa de juros compostos e o tempo de aplicação. Calcule e mostre o valor do rendimento e o valor total depois do rendimento.

  8. Faça um programa que calcule e mostre a área de um triângulo.

  9. Faça um programa que calcule e mostre a área de um círculo.

  10. Faça um programa que receba um número positivo e maior que zero, calcule e mostre:

    1. número digitado ao quadrado;
    2. o número digitado ao cubo;
    3. a raiz quadrado do número digitado;
    4. a raiz cúbica do número digitado.
  11. Faça um programa que receba dois números e mostre o maior.

  12. Darth Vader comprou um saco de ração com peso em quilos. Ele possui dois gatos, para os quais fornece a quantidade de ração em gramas. A quantidade diária de ração fornecida para cada gato é sempre a mesma. Faça um programa que receba o peso do saco de ração e a quantidade de ração fornecida para cada gato, calcule e mostre quanto restará no saco após cinco dias.

  13. Cada degrau de uma escada tem \(x\) de altura. Faça um programa que receba essa altura e a altura que o usuário deseja alcançar subindo a escada, calcule e mostre quantos degraus ele deverá subir para atingir seu objetivo, sem se preocupar com a altura do usuário. Todas as medidas fornecidas devem estar em metros.

  14. Faça um programa que receba um conjunto de valores e mostre o mínimo, mediana, máximo, média, amplitude, variância, desvio padrão e a quantidade de elementos do conjunto de dados.

  15. Faça um programa que receba um número inteiro e verifique se é par ou ímpar.

  16. Faça um programa para resolver equações do segundo grau ( \(ax^2 + bx + c = 0\) ).

35.Dados três valores \(x, y, z\), verifique se eles podem ser os comprimentos dos lados de um triângulo e, se forem, verifique se é um triângulo equilátero, isósceles ou escaleno. Considere que:

  1. Implementar uma função no R para realizar o teste t de Student para duas amostras independentes e normais. Considerar os casos de variâncias heterogêneas e homogêneas. Utilizar uma estrutura condicional para aplicar o teste apropriado, caso as variâncias sejam heterogêneas ou homogêneas.

Sugestões:

  1. Construa uma função que apresenta \(n\) termos da sequência de Fibonacci.

  2. Considerando a função do exercício anterior, construa uma nova função que apresenta o n-ésimo termo da sequência de Fibonacci.

  3. Considerando a função que obtém uma estimativa do intervalo de confiança para a média de uma população normal de variância desconhecida:

IC.t <- function(x,alpha = 0.05){
  n <- length(x)
  IC <- c(mean(x) - qt(1 - alpha/2, n-1) * sd(x)/sqrt(n),
mean(x) + qt(1 - alpha/2, n-1) * sd(x)/sqrt(n))
  return(IC = IC)
}

Construa uma função que obtém \(m\) amostras aleatórias de tamanho \(n\) da distribuição normal de média \(\mu\) e desvio padrão \(\sigma\) (função rnorm(n, mean, sd)), obtém estimativas de intervalos de confiança \(1 - \alpha\) para cada amostra e, considerando o valor paramétrico \(\mu\), calcula a proporção de intervalos que contém o valor do parâmetro \(\mu\).

  1. Descrever a função apply() (já implementada no R), e apresentar exemplos de sua utilização e refaça o exercício anterior usando a função apply.

  2. Construa uma função que calcula o traço de uma matriz \(\mathbf{A}\) de dimensões \(n \times n\), sendo o traço a soma dos elementos da diagonal principal, ou seja, \(tr(\mathbf{A}) = \sum_{i = 1}^n a_{ii}\). Acrescente um aviso se a matriz \(\mathbf{A}\) não for quadrada.

  3. Desenvolva uma função em linguagem R que calcula a média geométrica de um vetor \(\mathbf{x} = (x_1,\cdots,x_n)\) e retorna uma mensagem de erro se algum elemento de \(\mathbf{x}\) for negativo ou nulo. A média geométrica de \(\mathbf{x} = (x_1,\cdots,x_n)\) é calculada por \[ mg = \left(\prod_{i = 1}^n x_i \right)^{1/n}. \] Sugestão: considere as funções any() e stop().

43 Desenvolva uma função em linguagem R que calcula a média harmônica ponderada de um vetor \(\mathbf{x} = (x_1,\cdots,x_n)\) com pesos \(\mathbf{w} = (w_1,\cdots,w_n)\) e retorna uma mensagem de erro se algum elemento de \(\mathbf{x}\) ou \(\mathbf{w}\) for negativo ou nulo. A média harmônica ponderada de \(\mathbf{x} = (x_1,\cdots,x_n)\) com pesos \(\mathbf{w} = (w_1,\cdots,w_n)\) é calculada por \[ mh = \frac{\sum_{i = 1}^n w_i}{\sum_{i = 1}^n \frac{w_i}{x_i} }. \] Sugestão: considere as funções any() e stop().

  1. A função que se segue baseia-se no crivo de Eratóstenes, o mais antigo método sistemático para listar os números primos até um determinado valor \(n\) . A ideia é a seguinte: iniciar com um vetor de números de \(2\) a \(n\). Começando com \(2\), eliminar todos os múltiplos de \(2\), que são maiores do que \(2\). Em seguida, passar para o próximo número restante no vetor, neste caso, \(3\). Agora, remova todos os múltiplos de \(3\), que são maiores do que \(3\). Continue com todos os valores restantes do vetor. O valor \(4\) foi removido na primeira iteração, deixando \(5\) como o próximo elemento a ser considerado após o \(3\); todos os múltiplos de \(5\) será removido no passo seguinte e assim por diante.

Fonte: W. John Braun, Duncan J. Murdoch. (2008) A first course in statistical programming with R. Cambridge University Press.

Considerando a função em R a seguir, descreva detalhadamente sobre o que é a função e comente cada linha de instrução do código.

Eratostenes <- function(n) { # ?
if (n %% 1 != 0 | n < 2) stop("O valor de n deve ser inteiro e >= 2.") # ?
crivo <- seq(2, n) # ?
primos <- NULL # ?
for (i in seq(2, n)) { # ?
if (any(crivo == i)) { # ?
primos <- c(primos, i) # ?
crivo <- c(crivo[(crivo %% i) != 0], i) # ?
} # ?
} # ?
return(primos) # ?
} # ?

Eratostenes(0) # ?
Error in Eratostenes(0) : O valor de n deve ser inteiro e >= 2. # ?

Eratostenes(12) # ?
[1]  2  3  5  7 11 # ?