Matriz como comparar cada observação ao valor médio, para cada remédio?## aspirina paracetamol_g tylenol dipirona placebo
## Teste_1 1 0 2 5 3
## Teste_2 1 1 3 1 3
## Teste_3 3 1 0 2 2
## Teste_4 1 0 2 1 0
R: Há várias maneiras, uma relativamente rápida…
## aspirina paracetamol_g tylenol dipirona placebo
## 1.50 0.50 1.75 2.25 2.00
#comparo valor médio de cada remédio com os valores de cada teste para aquele remédio
#Notem valores de desvio brutos negativos e positivos
sweep(Matriz,2,merem)## aspirina paracetamol_g tylenol dipirona placebo
## Teste_1 -0.5 -0.5 0.25 2.75 1
## Teste_2 -0.5 0.5 1.25 -1.25 1
## Teste_3 1.5 0.5 -1.75 -0.25 0
## Teste_4 -0.5 -0.5 0.25 -1.25 -2
mortes como se comportam (graficamente) a média e mediana se simularmos amostras de tamanho: 10, 50, 250 e 1000? (Isto é, se alterarmos o número de amostras para a função rnorm quando criamos os dados)mortes<-round(rnorm(500,5,1),2)
mor_10<-round(rnorm(10,5,1),2)
mor_50<-round(rnorm(50,5,1),2)
mor_250<-round(rnorm(250,5,1),2)
mor_1000<-round(rnorm(1000,5,1),2)
par(mfrow=c(2,2))
hist(mor_10)
abline(v=mean(mor_10),col="red")
abline(v=median(mor_10),col="blue")
hist(mor_50)
abline(v=mean(mor_50),col="red")
abline(v=median(mor_50),col="blue")
hist(mor_250)
abline(v=mean(mor_250),col="red")
abline(v=median(mor_250),col="blue")
hist(mor_1000)
abline(v=mean(mor_1000),col="red")
abline(v=median(mor_1000),col="blue")R:Conforme o no. de amostras aumenta é mais reconhecível o formato da distribuição normal e maior a sobreposição entre média e mediana. No entanto, lembrem que todos esses conjuntos de dados são amostras de um distribuição normal…
Podemos visualizar essa aproximação com " plots de quantis de normalidade" que comparam os valores dos dados com valores teóricos em uma distribuição normal. Quanto mais pontos na diagonal, mais “normal”
par(mfrow=c(2,2))
qqnorm(mor_10,main="mor_10")
qqline(mor_10)
qqnorm(mor_50,main="mor_50")
qqline(mor_50)
qqnorm(mor_250,main="mor_250")
qqline(mor_250)
qqnorm(mor_1000,main="mor_1000")
qqline(mor_1000)table ?## mortes
## 2.04 2.22 2.48 2.52 2.59 2.71
## 1 1 1 1 1 1
#ordenando os dados de forma decrescente (para isto uso o "-" na frente do table)
head(sort(-table(mortes)))## mortes
## 5.2 4.61 4.7 5.34 4.92 5
## -7 -6 -6 -6 -5 -5
## 5.2
## -7
# essa lógica pode ser colocada em uma função, como alguns fizeram...
moda<-function(x){return(names(sort(-table(as.vector(x))))[1])}
#ou
mode<-function(x) { return(as.numeric(names(which.max(table(x)))))}
# No entanto, porém, entretanto...valores modais não são necessáriamente únicos.
# Portanto a forma mais segura é simplesmente construir uma tabela ordenada das frequências que
# irá permitir que todos os valores modais sejam encontrados.
table(mortes)->mor_frame
data.frame(mor_frame)->mor_frame
head(mor_frame[order(mor_frame$Freq,decreasing = T),])## mortes Freq
## 171 5.2 7
## 119 4.61 6
## 126 4.7 6
## 183 5.34 6
## 146 4.92 5
## 152 5 5
R. Por serem razões (distância/tempo, no caso)
plot(mortes,type="n")
R. Gera um gráfico de dispersão, mas com
type="n"não plota os pontos
abline(mean(mortes),0,col="blue")
R. Adiciona uma linha em um gráfico já plotado, o “0” indica a inclinação em relação ao eixo x e
coldefine a cor da linha
for(i in 1:length(mortes)) lines(c(i,i),c(mean(mortes),mortes[i]),col="pink")
R.
forabre o “loop”, ou seja uma sequência de comandos recursivos, que vão se repetir dentro do intervalo definido no( ).ié uma variável indefinida qualquer,poderia serz,x, ou qualquer coisa, mas convencionou-seipara determinar valores em vetores (iejpara tabelas). Em seguida, se define onde começa e termina o “loop”in 1:lenght(mortes), i.e. da linha (i=1): até a linha definida pelo comprimento do vetor “mortes”(i=comprimento de “mortes”). Feito isso, contamos o que deve ser feito dentro do “loop”, no nosso caso queremos criar linhas para mostrar o tamanho do desvio de cada ponto amostrallines(c(i,i),c(mean(mortes),mortes[i]). Para cada linha são necessárias as as coordenadas em x e y para 2 pontos no gráfico (para uma reta, bastam 2 pontos!), para tanto se usa:((c(i,i),c(mean(mortes),mortes[i])). Vamos exemplificar como seriam as coordenadas para o primeiro valor emmortes, i.e. i=1…(c(1,1),c(mean(mortes),mortes[1])). Imagine se tivessemos que fazer linha por linha manualmente! Seria um horror. Para isso serve o “loop”, para automatizar repetições. No final da linha temos apenas a definaçõa da cor da linha comcol.
R. São 3 variáveis: 1.Aluno (Categorica -nominal), 2.Foto (Categorica - nominal) e 3.Idade (Discreta) Para ver claramente todas as variáveis, podemos re-origanizar os dados da tabela
read.table("ages.txt",header=T)->idades
#remover primeira coluna
idades[,2:18]->idadi
#instalar novo pacote para modificar dados
#install.packages("reshape")
#carregar pacote
library(reshape)
#transformar tabela considerando as duas vars
melt(idadi)->idade2## Using as id variables
#colando nomes corretos em vars
names(idade2)<-c("aluno","idade_e")
#cria vetor para variável fotos no formato "longo"
rep(1:9,17)->fotos
#adiciona aos dados
cbind(idade2,fotos)->idade3
idade3## aluno idade_e fotos
## 1 m1 47 1
## 2 m1 23 2
## 3 m1 50 3
## 4 m1 12 4
## 5 m1 18 5
## 6 m1 22 6
## 7 m1 56 7
## 8 m1 20 8
## 9 m1 20 9
## 10 m2 55 1
## 11 m2 25 2
## 12 m2 60 3
## 13 m2 30 4
## 14 m2 50 5
## 15 m2 35 6
## 16 m2 50 7
## 17 m2 30 8
## 18 m2 40 9
## 19 m3 67 1
## 20 m3 23 2
## 21 m3 68 3
## 22 m3 37 4
## 23 m3 38 5
## 24 m3 28 6
## 25 m3 45 7
## 26 m3 24 8
## 27 m3 16 9
## 28 m4 59 1
## 29 m4 21 2
## 30 m4 65 3
## 31 m4 33 4
## 32 m4 30 5
## 33 m4 29 6
## 34 m4 57 7
## 35 m4 32 8
## 36 m4 20 9
## 37 m5 52 1
## 38 m5 17 2
## 39 m5 45 3
## 40 m5 24 4
## 41 m5 26 5
## 42 m5 28 6
## 43 m5 50 7
## 44 m5 28 8
## 45 m5 17 9
## 46 m6 57 1
## 47 m6 14 2
## 48 m6 68 3
## 49 m6 30 4
## 50 m6 37 5
## 51 m6 28 6
## 52 m6 63 7
## 53 m6 28 8
## 54 m6 23 9
## 55 m7 59 1
## 56 m7 25 2
## 57 m7 54 3
## 58 m7 38 4
## 59 m7 33 5
## 60 m7 37 6
## 61 m7 56 7
## 62 m7 39 8
## 63 m7 37 9
## 64 m8 57 1
## 65 m8 16 2
## 66 m8 52 3
## 67 m8 25 4
## 68 m8 21 5
## 69 m8 24 6
## 70 m8 49 7
## 71 m8 26 8
## 72 m8 20 9
## 73 m9 65 1
## 74 m9 20 2
## 75 m9 70 3
## 76 m9 25 4
## 77 m9 32 5
## 78 m9 30 6
## 79 m9 60 7
## 80 m9 35 8
## 81 m9 18 9
## 82 m10 60 1
## 83 m10 17 2
## 84 m10 55 3
## 85 m10 28 4
## 86 m10 35 5
## 87 m10 30 6
## 88 m10 45 7
## 89 m10 26 8
## 90 m10 18 9
## 91 m11 62 1
## 92 m11 20 2
## 93 m11 60 3
## 94 m11 27 4
## 95 m11 35 5
## 96 m11 26 6
## 97 m11 50 7
## 98 m11 28 8
## 99 m11 35 9
## 100 m12 60 1
## 101 m12 20 2
## 102 m12 70 3
## 103 m12 35 4
## 104 m12 22 5
## 105 m12 38 6
## 106 m12 50 7
## 107 m12 30 8
## 108 m12 30 9
## 109 m13 58 1
## 110 m13 17 2
## 111 m13 60 3
## 112 m13 26 4
## 113 m13 25 5
## 114 m13 29 6
## 115 m13 59 7
## 116 m13 26 8
## 117 m13 19 9
## 118 m14 68 1
## 119 m14 19 2
## 120 m14 68 3
## 121 m14 35 4
## 122 m14 25 5
## 123 m14 32 6
## 124 m14 58 7
## 125 m14 30 8
## 126 m14 17 9
## 127 m15 63 1
## 128 m15 16 2
## 129 m15 78 3
## 130 m15 32 4
## 131 m15 35 5
## 132 m15 40 6
## 133 m15 57 7
## 134 m15 27 8
## 135 m15 18 9
## 136 m16 64 1
## 137 m16 22 2
## 138 m16 58 3
## 139 m16 35 4
## 140 m16 40 5
## 141 m16 28 6
## 142 m16 51 7
## 143 m16 26 8
## 144 m16 33 9
## 145 real 56 1
## 146 real 20 2
## 147 real 58 3
## 148 real 32 4
## 149 real 24 5
## 150 real 32 6
## 151 real 60 7
## 152 real 31 8
## 153 real 22 9