Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivos
Vamos usar os dados da seção técnica da revista A Mira – Comparativo entre dados obtidos
pelo nivelamento trigonométrico com ET e dados altimétricos obtidos com GPS com correção
em tempo real (RTK). (A MIRA, Ano XXII, no 163; SANTOS et al., 2014). E, a partir desses dados,
fazer uma pequena introdução ao sistema estatístico R. Então, na sequência, discutir alguns
resultados, fazendo uma revisão estatística, dentro do contexto do ajustamento de
observações.
Nós vamos usar a Introdução ao Ambiente Estatístico R de Paulo Justiniano Ribeiro Júnior,
atualizada em 29 de maio de 2011 e o livro Conhecendo o R, uma visão mais que Estatística
(MELLO et al, 2013).
Passo a passo
1º Passo: criar um arquivo .txt no bloco de notas, chamado Altimetria:
Figura 1. Altimetria.
Fonte: Autor.
Passo a passo
Fonte: Autor.
Script R-1
Script R-1 – Copiar para o editor de Script do R e dar o comando Ctrl R.
Obs.: a resposta, ou saída no R Console, não será, na maioria das vezes, documentada.
Figura 3.
Fonte: Autor.
Obs.: caso os dados não obedeçam à distribuição normal, será necessária uma transformação matemática. Por
exemplo, usando logaritmo ou expansão em série de Taylor.
> shapiro.test (v)
6º Passo: algumas operações com vetores:
Obs.: os dados devem, sempre quando necessário, serem armazenados em uma variável.
> length(v) #(Número de observações de v)
> max(v) # (Valor máximo de v)
> min(v) #(Valor mínimo de v)
> sum(v)#(Soma de v)
> V^2 #(Quadrado de v)
> SQRT(V^2) #(Raiz quadrada de V^2)
7º Passo: calculando média do vetor v:
1º modo:
> mv <- SUM(V)/11
> mv
2º modo:
> mv <- mean(v)
> mv
8º Passo: calculando o desvio padrão do vetor v:
1º modo:
Resolver, ou calcular, o desvio padrão do vetor v, usando a fórmula do desvio padrão da
NBR13133, produzindo o Script escrito em R.
2º modo:
> sv <- sd(v)
> sv
Segundo (Weeks, 2012), encontrar a diferença entre medidas constitui uma operação
comum. Uma medida, ou um sinal, como os do GPS, por exemplo, pode ser medido com certo
grau de erro, um erro que deve ser considerado aceitável. A quantidade, ou qualidade desse
erro entre o sinal original (enviado pelo satélite) e a versão reconstruída, ou reconstituída
(gerada no receptor), deve ser encontrada somando-se os valores das diferenças entre as
medições.
Vamos considerar duas medidas, ou dois sinais, x e y:
> X<-C(1,2,5,0,-2)
>x
> Y<-C(-1,4,0,5,-2)
>y
> v<-sum(x-y)
>v
Percebe-se claramente que x e y não são iguais, mas como as diferenças positivas e as diferenças negativas
cancelam uma a outra, esse método simples faz com que eles pareçam ser iguais.
O erro entre sinais, x e y, pode ser encontrado e melhorado com o comando a seguir: (veja a função de valor
absoluto abs)
> v<-sum(abs(x-y))
>v
Outra forma, mais sofisticada, de se medir o erro é conhecida com RMSE (root mean square error ou raiz
quadrada do erro médio quadrático – bem parecido com o desvio padrão), que é calculado segundo o código
a seguir. Primeiramente, diff encontra a diferença entre os sinais x e y. Em seguida, encontramos
sigma_squared (sigma ao quadrado), também conhecida como variância; calcula-se, então, elevando ao
quadrado cada elemento em diff e somando-se, finalmente, os resultados. Por fim, podemos computar o
RMSE:
> diff<- x-y
> diff
> sigma_squared<- sum(diff*diff)
> sigma_squared
> RMSE<-sqrt(sigma_squared/length(x))
> RMSE
E finalmente, se dividirmos o RMSE pelos valores max(v) – min(v), do conjunto dos
erros apresentados, teremos o NRMSD – Normalized root mean square deviation ou
desvio quadrático médio normalizado, que é uma das inúmeras formas de padronizar
os dados, principalmente em geoprocessamento, quando trabalhamos com várias
fontes ou escalas de informação. Então, normalizar o RMSE facilita a comparação entre
os conjuntos de dados, ou modelos com diferentes escalas. Embora não haja, segundo
a literatura, meios consistentes para a normalização dos dados.
9º Passo: fazer o histograma do vetor v:
> hist(v)
> PNORM(11, mv, sv)
> curve(dnorm(x), -2,2)
A conclusão do trabalho, que pode ser lido na íntegra na revista A Mira, segundo a observação final
dos dados, é que os dois métodos possuem resultados bem próximos. Mas “bem próximo” pode ser
uma conclusão vaga, ou não científica, e, portanto, não pode ser aceita. Precisamos de algum teste
estatístico para validar os resultados, apresentando o p-value.
“Diante dos fatos evidenciados nesse trabalho conclui-se que ou uso do GPS em tempo real pode ser
aplicado para a obtenção da altimetria, pois o mesmo comparado com o trigonométrico, um dos
métodos mais utilizados atualmente no mercado, possui resultados bem próximo um do outro. (A Mira
Ano XXII – Nº 163, Santos et. al., 2014)”.
10º Passo: realizar o teste t do vetor v:
> t.test(v)
Obs.: discutir o resultado p-value que deve ser maior que 0,05.
Prática
Pesquisar a fórmula para resolver, ou calcular para o erro v, o teste t de Student e produzir um Script
escrito em R.
Um simples teste t, com a apresentação do resultado do p-value, já seria o suficiente para uma
conclusão, digamos, mais técnica do trabalho. Mas vamos dar um passo à frente, fazendo uma análise da
variância.
Em certas situações, nosso interesse está voltado para o efeito de um fator A (ex.: comparação entre
métodos de levantamento, (ET e GPS), sobre uma variável quantitativa Y (Medições). Porém, outro fator
B (Qualidade do operador), que nem sempre podemos observar ou controlar, também pode estar
presente. E ainda existem outros fatores C, D, E etc., que não sabemos como se relacionam com nossos
dados. Uma forma clássica de se anular isso, quando estamos fazendo um experimento, é trabalhar com
amostras aleatórias do nosso conjunto de dados.
11º Passo: vamos fazer agora uma análise da variância ANOVA para os dois métodos de levantamentos (um fator)
que foram testados, ou comparados, (ET e GPS):
Análise da variância é a técnica estatística que permite avaliar afirmações sobre as médias da população, ou
amostra. A análise visa, fundamentalmente, verificar se existe uma diferença significativa entre as médias e se os
fatores exercem influência em alguma variável dependente.
A análise de variância compara médias de diferentes populações para verificar se essas populações possuem médias
iguais ou não. Assim, essa técnica permite que vários grupos sejam comparados a um só tempo.
Em outras palavras, a análise de variância é utilizada quando se quer decidir se as diferenças amostrais observadas
são reais (causadas por diferenças significativas nas populações observadas) ou casuais (decorrentes da mera
variabilidade amostral). Portanto, essa análise parte do pressuposto que o acaso só produz pequenos desvios, sendo
as grandes diferenças geradas por causas reais.
Tabela 1. AA.
N MEDIÇÕES FATOR METODO OPERADOR
1 947,530 1 ET 1
2 956,299 1 ET 1
3 954,269 1 ET 2
4 949,751 1 ET 3
5 953,566 1 ET 1
6 952,864 1 ET 2
7 952,514 1 ET 2
8 950,919 1 ET 3
9 939,275 1 ET 3
10 941,756 1 ET 1
11 942,866 1 ET 2
12 947,523 2 GPS 1
13 956,304 2 GPS 2
14 954,274 2 GPS 3
15 949,742 2 GPS 1
16 953,570 2 GPS 2
17 952,874 2 GPS 3
18 952,509 2 GPS 3
19 950,923 2 GPS 3
20 939,279 2 GPS 1
21 941,747 2 GPS 2
22 942,878 2 GPS 1
Fonte: Autor.
Script R-2
Script R-2 – Copiar para o editor de Script do R e dar o comando Ctrl R.
OBS: Tabela 01 AA = Altimetria Anova
Abrir arquivo:
> AA <- read.table (file.choose(), header=T)
>AA
Separar vetores:
> MD <- AA[,1]
> MD
> FT <- AA[,2]
> FT
Transformar o vetor FT em fator de nível 2:
FT<- factor(FT)
Criar o modelo ANOVA:
>MODELO1 = aov(MD ~ FT)
Comando summary (MODELO1) para ver os resultados:
> summary (MODELO1)
Obs.: no resultado, tempos duas linhas. A linha para os efeitos da variável MD (variação entre os grupos) e a outra
para os resíduos (variação dentro dos grupos).
11º Passo: vamos repetir a análise da variância ANOVA para os dois métodos de levantamentos ET e GPS usando,
agora, um novo fator, o operador:
> OP <-AA [,4]
> OP <-factor (OP)
> OP
> MODELO2 = aov (MD~FT*OP)
> summary (MODELO2)
Obs.: a distribuição Qui-quadrado torna-se bastante importante quando se quer verificar o ajustamento de uma
distribuição de frequência, de uma amostra, a uma distribuição teórica, como no caso presente, a distribuição
normal.
Vamos aprofundar os detalhes do teste da distribuição Qui-quadrado. O aluno deverá pesquisar a fórmula e a
tabela com os graus de liberdade, para produzir um Script escrito em R.
Exercício 04 (Grupo de discussão): No grupo de discussão vamos aprofundar os detalhes do teste da
distribuição Qui-quadrado. O aluno deverá pesquisar a fórmula e a tabela com os graus de liberdade,
para produzir um Script escrito em R.
Script:
> v <-ET-GPS
>v
> gl<-length(v)
> gl
> GL<-GL-1
> Gl
> S0<-sum(sqrt(v*v/gl))
> S0
> Qui<-gl*S0
Nova rodada
Vamos fazer uma nova rodada usando uma tabela modificada e discutir os resultados
do novo erro vm:
Figura 4.
Fonte: Autor
Obs.: ou calcular o erro de 15 pontos GPS, em três dimensões 3D, e novamente fazer as análises
do erro V:
Tabela 02
Pontos GPS
Pontos E(m) N(m) H(m)
1 -0,012 -0,003 -0,038
2 -0,002 -0,013 1,008
3 -0,002 -0,009 0,090
4 0,015 0,002 0,121
5 0,012 -0,015 0,087
6 0,026 0,001 0,058
7 -0,027 -0,005 1,076
8 0,026 0,015 2,036
9 0,027 0,023 0,024
10 0,037 0,004 1,054
11 0,04 0,009 -0,048
12 0,055 -0,036 0,054
13 0,065 0,016 0,024
14 0,073 0,016 -0,019
15 0,235 -0,019 0,382
Fonte: Autor
Script:
> gps<-read.table (file.choose(), header=T)
> gps
> E<-GPS[,1]
>E
> N<-GPS[,2]
>N
> H<-gps[,3]
>H
> V<-SQRT(E^2+N^2+H^2)
>V
Script R1 – Completo
> Altimetria <- read.table (file.choose(), header=T)
> Altimetria
> ET <- ALTIMETRIA[,1]
> ET
> GPS <- ALTIMETRIA[,2]
> GPS
> v <- ET-GPS
>v
> shapiro.test (v)
> plot(v)
> qqnorm(v)
> qqline(v)
> length(v)
> max(v)
> min(v)
> sum(v)
> V^2
> SQRT(V^2)
> mv <- SUM(V)/11
> mv
> mv <- mean(v)
> mv
> sv <- sd(v)
> sv
> hist(v)
> PNORM(11, mv, sv)
> curve(dnorm(x), -2,2)
> t.test(v)
Script R2 – Completo
Finalmente vamos terminar essa primeira etapa fazendo uma análise de Correlação Linear dos dados,
conhecida como Correlação Linear de Pearson ou Régua de Pearson.
O sistema R através da função rnorm é capaz de gerar uma distribuição normal. Devemos informar apenas
três parâmetros: o número de observações desejadas, a média mv e do desvio padrão sv, dos dados de
controle.
13º Passo: vamos produzir uma distribuição normal com 11 observações, de média mv e desvio padrão sv:
Obs.: a correlação linear é uma questão muito importante e que tem aplicação em praticamente
tudo e que pode ser aprofundada com mais detalhes. Porém, no momento, basta saber que ela varia de 0 a
1. Quanto mais perto de 1 (um) melhor.
Conclusão
14º Passo: fazer uma Regressão Linear dos dados e achar a função matemática:
> MODELO3 <- lm(ETnovo~v)
Aqui vamos ter que usar um pouco mais a imaginação, pois existem várias possibilidades práticas. Primeiro,
vamos imaginar (extrapolando a ideia inicial) que ET e GPS são, na verdade, parte de um conjunto de
pontos de controle, que foram medidos com alta precisão usando duas técnicas para comparar os
resultados. Após isso, rotineiramente, ao longo do tempo, precisaremos fazer outras verificações,
comparadas com as medições feitas em T0, e que resultaram nas coordenadas da figura 1 Altimetria. Como
foi apresentado ao longo dessa introdução, supomos que o trabalho inicial foi feito com todo rigor
metodológico e com equipamentos de alta precisão, porém, as novas medições de verificação, certamente,
deverão seguir uma rotina mais simplificada.
Título do vídeo
Então, e em vez de comparar diretamente as novas séries de medições com as coordenadas de
controle, vamos usar um modelo matemático (no nosso caso, simplificado), criado para cada ponto P
(ET e GPS), para comparar os resultados. Podemos ter N pontos P2 (ET2, GPS2), P3 (ET3, GPS3) etc.,
onde esse processo ou procedimento poderia ser repetido.
Script R3 – Completo
> Altimetria <- read.table (file.choose(), header=T)
> Altimetria
> ET <- ALTIMETRIA[,1]
> ET
> GPS <- ALTIMETRIA[,2]
> GPS
> v <- ET-GPS
>v
> mv <- mean(v)
> mv
> sv <- sd(v)
> sv
> Modificada <- read.table (file.choose(), header=T)
> Modificada
> ETm <- MODIFICADA[,1]
> ETm
> GPSm <- MODIFICADA[,2]
> GPSm
> vm <- ETm-GPSm
> vm
> dnorm(vm, mean = mv, sd = sv)
Script R4 – Completo
Neste exemplo, vamos fazer inferência sobre um único ponto de mudança em uma série temporal. Os dados
são de acidentes por ano em minas de carvão na Inglaterra. Foram registrados todos os acidentes que
envolveram pelo menos 10 mortes entre 1851 e 1962.
A partir do gráfico, podemos ver uma mudança em torno do ano 1900. O número médio de acidentes a partir
de então parece ficar bem reduzido em comparação com o período anterior.
>ac<- C(4,5,4,1,0,4,3,4,0,6,3,3,4,0,2,6,3,3,5,4,5,3,1,4,4,1,5,5,3,4,2,5,2,2,3,4,2,1,3,2,2,1,
1,1,1,3,0,0,1,0,1,1,0,0,3,1,0,3,2,2,0,1,1,1,0,1,0,1,0,0,0,2,1,0,0,0,1,1,0,2,3,3,1,1,2,1,1,1,1,2,
4,2,0,0,0,1,4,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1)
> ac
> summary(ac)
> st<- ts(ac, start= C(1851,1), FREQ=12)
> class(st)
> st
> plot(st)
> plot(yr, ac)
> plot(yr, ac, type=”l”)
> dec<- decompose(st)
> dec$seasonal
> plot(dec$seasonal)
> plot(dec$trend)
> plot(dec$random)
> plot(dec)
Obrigado!