-
Notifications
You must be signed in to change notification settings - Fork 2
/
3-analise_exploratoria.jl
2590 lines (2038 loc) · 100 KB
/
3-analise_exploratoria.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
### A Pluto.jl notebook ###
# v0.17.1
using Markdown
using InteractiveUtils
# This Pluto notebook uses @bind for interactivity. When running this notebook outside of Pluto, the following 'mock version' of @bind gives bound variables a default value (instead of an error).
macro bind(def, element)
quote
local iv = try Base.loaded_modules[Base.PkgId(Base.UUID("6e696c72-6542-2067-7265-42206c756150"), "AbstractPlutoDingetjes")].Bonds.initial_value catch; b -> missing; end
local el = $(esc(element))
global $(esc(def)) = Core.applicable(Base.get, el) ? Base.get(el) : iv(el)
el
end
end
# ╔═╡ 9aed0800-1e13-11ec-2780-69699771cc17
begin
# carregando pacotes necessários
using CSV, DataFrames, Query
using StatsBase, Statistics, Random
using GeoStats, PlutoUI
using Plots, StatsPlots
# configurações de plotagem
gr(format=:png)
end;
# ╔═╡ 67ed7bd0-32cc-49bf-8c30-6c34ad29c88a
html"""
<p style="background-color:lightgrey" xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><span property="dct:title">  🔎 <b>Análise Exploratória</b></span> por <span property="cc:attributionName">Franco Naghetini</span> é licenciado sob <a href="http://creativecommons.org/licenses/by/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC BY 4.0<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1"></a></p>
"""
# ╔═╡ 5e44a696-0a3e-40f1-b125-2dec95b5cf79
PlutoUI.TableOfContents(aside=true, title="Sumário",
indent=true, depth=2)
# ╔═╡ cfc649b3-e423-4aa9-925b-763e2986e2f5
md"""
![ufmg-logo](https://logodownload.org/wp-content/uploads/2015/02/ufmg-logo-2.png)
"""
# ╔═╡ b53bfda4-60de-43c8-9852-faa1051050e2
md""" # 🔎 Análise Exploratória
A **Análise Exploratória dos Dados (AED)** consiste em uma abordagem para organizar e sumarizar um determinado conjunto de dados, a partir de estatísticas descritivas e técnicas de visualização de dados. Segundo *Tukey (1977)*, estatístico que propôs o termo, a AED pode ser comparada ao trabalho de investigação realizado por um detetive. Pode-se dizer ainda que, durante a AED, *os dados são transformados em informações*.
De forma mais descontraída, pode-se dizer que:
> *A AED é a arte de torturar os dados até que eles confessem informações escondidas!*
Neste módulo, iremos aprender sobre algumas das técnicas de AED mais utilizadas no contexto de estimativa de recursos.
"""
# ╔═╡ f7756000-3e37-436e-b070-6d57afe142d7
md"""
>##### 📚 Sobre
>- Você pode exportar este notebook como PDF ou HTML estático. Para isso, clique no ícone 🔺🔴, localizado no canto superior direito da pagina. Entretanto, ambos os formatos não são compatíveis com os recursos interativos do notebook.
>- Caso deseje executar alguma célula do notebook, clique no ícone ▶️, localizado no canto inferior direito da célula.
>- Algumas células encontram-se ocultadas (e.g. células que geram os plots). Você pode clicar no ícone 👁️, localizado no canto superior esquerdo da célula, para ocultá-la ou exibí-la.
>- A explicação das células que geram os plots está fora do escopo deste notebook. Entretanto, a sintaxe é bem intuitiva e pode ser facilmente compreendida!
>- Você pode ainda clicar no ícone `...`, no canto superior direito de uma célula, para excluí-la do notebook.
>- Algumas células deste notebook encontram-se encapsuladas pela expressão `md"..."` (e.g. esta célula). Essas são células de texto chamadas de *markdown*. Caso deseje aprender um pouco mais sobre a linguagem *markdown*, clique [aqui](https://docs.pipz.com/central-de-ajuda/learning-center/guia-basico-de-markdown#open).
>- No Pluto, todos os pacotes devem ser importados/baixados na primeira célula do notebook. Clique no ícone 👁️ para exibir essa célula ou consulte a seção *Pacotes utilizados* deste notebook para saber mais informações sobre os pacotes.
>- Utilize a macro ` @which` para verificar a qual pacote uma determinada função pertence.
>- Você pode utilizar este notebook da forma que quiser, basta referenciar [este link](https://github.com/fnaghetini/intro-to-geostats). Consulte a [licença] (https://github.com/fnaghetini/intro-to-geostats/blob/main/LICENSE) para saber mais detalhes.
>- Para mais informações acesse o [README](https://github.com/fnaghetini/intro-to-geostats/blob/main/README.md) do projeto 🚀
"""
# ╔═╡ e28a9056-d62d-4ab6-be00-0174180a73c5
md"""
## 1. Conceitos básicos
Nesta primeira seção, iremos revisar alguns conceitos básicos sobre Estatística Clássica.
"""
# ╔═╡ a8c53b89-634b-4526-be62-f51f22c3c607
md"""
### População x Amostra
A **população** é o conjunto exaustivo e finito de todos os elementos ou resultados sob investigação. Em outras palavras, é a realidade física (*Bussab & Morettin, 2017*).
Por outro lado, a **amostra** é qualquer subconjunto da população formado por elementos que foram medidos (*Bussab & Morettin, 2017*).
No contexto de estimativa de recursos, a **amostra** seria formada pelo conjunto de furos de sondagem disponíveis, enquanto a **população** seria o depósito/jazida/mina sob investigação.
Assim como em várias áreas, não temos informações sobre toda a população (i.e. depósito), mas apenas sobre um subconjunto dela (i.e. furos de sondagem) (Figura 01). Segundo *Rossi & Deutsch (2013)*, em média, apenas $\frac{1}{10^9}$ de um depósito é amostrado. Isso se deve ao fato de a sondagem ser uma atividade de elevado custo ao empreendimento.
"""
# ╔═╡ b8576b51-2a2b-4614-ae62-280394944319
md"""
![Figura_01](https://i.postimg.cc/dVwQj93Q/Figura-01.png)
_**Figura 01:** A população é representada pelo depósito, enquanto a amostra é representada pelos furos de sondagem disponíveis. Figura elaborada pelo autor._
"""
# ╔═╡ b517b327-27e9-4e7c-a721-3ff8c991ff08
md"""
### Parâmetros x Estimadores
Os **parâmetros** são as quantidades da população sobre as quais temos interesse. Normalmente são representadas por letras gregas, como $\mu$ (média populacional), $\sigma^2$ (variância populacional) e $\sigma$ (desvio padrão populacional) (*Magalhães & De Lima, 2015*).
Por outro lado, os **estimadores**, às vezes chamados de **estatísticas**, correspondem à combinação dos elementos da amostra, construída com a finalidade de representar ou estimar um parâmetro de interesse na população. São representados por letras do alfabeto latino, como X̅ (média amostral), $S^2$ (variância amostral) e $S$ (desvio padrão amostral) (*Magalhães & De Lima, 2015*).
Como só temos acesso à amostra (e.g. furos de sondagem), iremos trabalhar com estimadores/estatísticas.
"""
# ╔═╡ c08e9281-bbc8-4328-b005-b867c77f725c
md"""
### Tipos de variáveis
As **variáveis qualitativas** apresentam, como possíveis realizações, uma qualidade ou atributo de um indivíduo pesquisado. Essas variáveis podem ainda ser divididas em **nominais**, quando não existe uma ordenação nas possíveis realizações, e **ordinais**, quando existe uma ordem nos seus resultados (*Bussab & Morettin, 2017*). Litologia e grau de alteração são exemplos de variáveis qualitativas nominais e ordinais, respectivamente.
As **variáveis quantitativas** também estão sujeitas a uma classificação dicotômica. As variáveis **discretas** são aquelas cujos possíveis valores formam um conjunto finito ou enumerável de números (1, 2, ...). Já as variáveis **contínuas** apresentam possíveis valores pertencentes a um intervalo de números reais resultantes de uma mensuração (*Bussab & Morettin, 2017*). Zona mineralizada e teor são exemplos de variáveis quantitativas discretas e contínuas, respectivamente.
A Figura 02 mostra um esquema com os tipos de variáveis existentes.
"""
# ╔═╡ 01280f05-2fc2-4860-add3-8b40d9bd546e
md"""
![Figura_02](https://i.postimg.cc/MGvTF2fZ/Figura-02.jpg)
_**Figura 02:** Tipos de variáveis. Modificado de *Bussab & Morettin (2017)*._
"""
# ╔═╡ 966a59b1-f8b8-4612-ab4d-ff7ec2a569d9
md"""
## 2. Importação dos dados
Neste módulo, iremos trabalhar com o banco de dados [Jura](https://github.com/fnaghetini/intro-to-geostats/blob/main/data/jura.csv), do excelente livro de *Goovaerts (1997)*. Esse banco de dados é constituído por amostras de solo que possuem os seguintes atributos:
- `Xloc` e `Yloc`: coordenadas locais X e Y.
- `Landuse` e `Rock`: tipo de uso do solo e tipo de rocha, respectivamente.
- `cadmium`, `cobalt`, `Cr`, `Cu`, `nickel`, `lead` e `Zn`: concentração de elementos no solo em ppm.
> ⚠️ Algumas modificações no banco de dados foram realizadas pelo autor para exemplificar algumas rotinas típicas da AED.
Para carregar os dados no notebook, utilizaremos os pacotes [CSV.jl](https://github.com/JuliaData/CSV.jl) e [DataFrames.jl](https://github.com/JuliaData/DataFrames.jl).
Especificamos o caminho do arquivo e redirecionamos o resultado para uma tabela `DataFrame` utilizando o operador `|>`, conhecido como *pipe*.
"""
# ╔═╡ 6ded7ce7-4239-4a17-a048-c02982dae5f9
jura = CSV.File("data/jura.csv") |> DataFrame
# ╔═╡ e34b3cdf-736d-40b8-8289-bfe968925b17
md"""
Podemos usar a função `describe()` para obter algumas informações gerais sobre o banco de dados...
"""
# ╔═╡ 2d16b0e1-ce43-46a5-a4ce-eced1d88d4e6
describe(jura)
# ╔═╡ 778ce45e-1486-433b-8c0a-1b5beddaf352
md"""
##### Observações
- Cada atributo (coluna) tem um tipo de elemento `eltype`;
- Todos os elementos, exceto `Ni` e `Pb`, têm valores faltantes. Elementos faltantes, neste caso, têm o tipo `Union{Missing,Float64}` que representa a união do tipo `Float64` com o tipo `Missing`;
- Os valores dos elementos amostrados encontram-se em escalas distintas;
- As coordenadas `Xloc` e `Yloc` são variáveis quantitativas contínuas;
- Os elementos químicos amostrados são variáveis quantitativas contínuas;
- As colunas `Landuse` e `Rock` podem ser classificadas como variáveis qualitativas nominais.
"""
# ╔═╡ 71004e57-95c2-403d-992e-4cf0875a6d2e
md"""
## 3. Limpeza dos dados
O próximo passo é a **limpeza dos dados**, uma das etapas que mais demandam tempo do fluxo de trabalho. Usaremos o [Query.jl](https://github.com/queryverse/Query.jl) para manipular os dados de forma sucinta e performática. Esse pacote introduz um conjunto de operações que podem ser facilmente concatenadas para produzir novas tabelas, como:
```julia
dados |> @rename(...) |> @filter(...)
```
Nesse sentido, iremos eliminar as linhas da tabela que contenham valores faltantes a partir da operação `@dropna`. Em seguida, algumas colunas serão renomeadas para fins de padronização. Nesse caso, a operação `@rename` será utilizada...
"""
# ╔═╡ 1014b88e-9aad-4e89-ba9d-f7701fc1a812
dados = jura |> @dropna() |> @rename(:Xloc => :X, :Yloc => :Y,
:cadmium => :Cd, :cobalt => :Co,
:nickel => :Ni, :lead => :Pb) |> DataFrame
# ╔═╡ f25cb0bc-e063-4ff1-9521-50c9e72fcbbe
md"""
##### Observações
- Após a limpeza, não há mais dados com valores faltantes;
- Os nomes das variáveis que representam os elementos químicos amostrados foram atualizados para as siglas correspondentes.
"""
# ╔═╡ 57891f5d-4db7-4e33-80f0-649c6262e516
md"""
Agora podemos definir algumas variáveis globais que serão utilizadas ao longo deste módulo..."""
# ╔═╡ fedae49c-c4e5-4bc0-a6ee-af246c966c67
begin
TEORES = ["Cd","Co","Cr","Cu","Ni","Pb","Zn"]
NOMINAIS = ["Landuse","Rock"]
LITO = unique(dados.Rock)
end;
# ╔═╡ f5bf9985-62be-48d1-8399-ecde710e1dd5
md"""
## 4. Descrição univariada
Diferentemente de outras áreas do conhecimento, como Medicina, em problemas geoespaciais, devemos nos atentar dois **tipos de espaço** distintos:
1. Espaço de atributos
2. Espaço geográfico
O **espaço de atributos** é formado pelos valores das variáveis de interesse do estudo. No nosso exemplo, esse espaço é constituído pelos elementos químicos amostrados e pelas variáveis `Landuse` e `Rock`.
Por outro lado, o **espaço geográfico** é constituído pelas coordenadas espaciais da região de estudo. No nosso caso, esse espaço é representado pelas variáveis `X` e `Y`.
Nesta seção, as principais técnicas de sumarização e visualização univariadas (i.e. uma variável por vez) e, portanto, estaremos interessados no espaço de atributos.
"""
# ╔═╡ b7820679-6ec3-4580-a502-4e4315ed44f9
md"""
### Medidas-resumo
Segundo *Isaaks & Srivastava (1989)*, as **medidas-resumo** podem ser classificadas em:
> **Medidas de posição:** trazem informações sobre várias porções de uma distribuição (e.g. centro, caudas).
> **Medidas de dispersão:** descrevem a variabilidade/erraticidade dos valores assumidos pelas variáveis.
> **Medidas de forma:** descrevem a forma de uma distribuição.
Essas medidas, em conjunto, fornecem informações valiosas acerca das variáveis de interesse do estudo.
"""
# ╔═╡ e1ff515f-c0d2-4e4b-b768-8d5611347e2d
md"""
#### Medidas de posição
Três medidas de posição serão apresentadas:
- Média - $\overline{X}$
- Mediana - $md(X)$
- Quantis - $q$
A **média aritmética**, ou simplesmente média, consiste na soma das observações dividida pelo número delas (*Bussab & Morettin, 2017*) e, portanto, traz informação sobre o centro de uma distribuição:
```math
\overline{X} = \frac{1}{n} \sum_{i=1}^{n} x_i
```
> ⚠️ Além da média aritmética, existem outros tipos de média, como geométrica e harmônica.
Podemos utilizar a função `mean` para computar a média da variável `Cr`...
"""
# ╔═╡ 17cdccaf-a34e-4b49-8156-01f6221ae00b
mean(dados.Cr)
# ╔═╡ 476e5bc7-5d9c-43fe-ac84-ead5bbbfe4b9
md"""
A **mediana** consiste no ponto médio dos valores observados, desde que as observações estejam organizadas em ordem crescente (*Isaaks & Srivastava, 1989*). Portanto, assim como a média, a mediana também traz informação sobre o centro da distribuição:
```math
\begin{equation}
md(X) =
\begin{cases}
x_{\frac{n+1}{2}} & \text{se $n$ é ímpar}\\
\frac{x_{\frac{n}{2}} + x_{\frac{n}{2}+1}}{2} & \text{se $n$ é par}\\
\end{cases}
\end{equation}
```
Podemos utilizar a função `median` para computar a mediana da variável `Cr`...
"""
# ╔═╡ 98b6bce7-8cc4-4d7f-b947-21feb4b43bf0
median(dados.Cr)
# ╔═╡ 581459c4-312a-4022-a87c-35887f625d6d
md"""
Os **quantis**, assim como a mediana, também se baseiam na ideia de separar os dados (em ordem crescente) em subconjuntos com o mesmo número de observações (*Isaaks & Srivastava, 1989*). Enquanto a mediana separa os dados em duas metades, os percentis subdividem os dados em 100 subconjuntos com o mesmo número de amostras. Nesse sentido, os percentis trazem informações sobre todas as partes de uma distribuição (i.e. centro e caudas).
Podemos utilizar a função `quantile` para computar os quantis `q(0.10)`, `q(0.50)` e `q(0.90)` da variável `Cr`...
"""
# ╔═╡ 79ff3f1a-9bf6-421e-8ab9-7a592fa21bbd
quantile(dados.Cr, [0.1,0.5,0.9])
# ╔═╡ 9b546155-55ad-4927-8f94-b021bf58934e
md"""
> ⚠️ Tanto a média quanto a mediana, por conterem informações sobre o centro de uma distribuição, são também classificadas como **medidas de tendência central**. A principal diferença entre essas duas estatísticas é que a média é muito sensível à presença de valores extremos, enquanto a mediana não. Nesse sentido, diz-se que a **média** é uma estatística **pouco robusta**, enquanto a **mediana** é uma medida **robusta**.
"""
# ╔═╡ 45735824-f693-47e8-b771-2553fb968605
md"""
#### Medidas de dispersão
Quatro medidas de dispersão serão apresentadas:
- Variância - $S^2$
- Desvio padrão - $S$
- Distância interquartil - $IQR$
- Coeficiente de variação - $C_v$
A **variância** consiste na diferença quadrática média entre os valores observados para uma variável e sua média (*Isaaks & Srivastava, 1989*). Como há termos ao quadrado, pode-se dizer que a variância é uma estatística pouco robusta (i.e. muito sensível a valores extremos) e que não se encontra na unidade da variável de interesse.
```math
S^2 = \frac{1}{n-1} \sum_{i=1}^{n} (x_i - \overline{X})^2
```
> ⚠️ A equação acima representa a **variância amostral**.
Podemos utilizar a função `var` para computar a variância da variável `Cr`...
"""
# ╔═╡ 16ba02e8-e555-4dd7-a197-fc4b1b6a7fe3
var(dados.Cr)
# ╔═╡ e23f2abb-37a2-483f-80f1-c24312de1adb
md"""
O **desvio padrão** é simplesmente a raíz quadrada da variância. Normalmente, essa estatística é utilizada para substituir a variância, uma vez que se encontra na mesma unidade de medida da variável de interesse (*Isaaks & Srivastava, 1989*). O desvio padrão também é uma estatística pouco robusta.
```math
S = \sqrt{\frac{1}{n-1} \sum_{i=1}^{n} (x_i - \overline{X})^2} = \sqrt{S^2}
```
> ⚠️ A equação acima representa ao **desvio padrão amostral**.
Podemos utilizar a função `std` para computar a variância da variável `Cr`...
"""
# ╔═╡ 746d33e3-448c-45e4-974c-093e3e001553
std(dados.Cr)
# ╔═╡ b3fb81b8-8f00-4fe5-877c-3c6a1f7ded77
md"""
A **distância interquartil**, comumente chamada de IQR (*interquartile range*), é uma medida de dispersão assim como a variância e o desvio padrão, mas, por ser baseada em quantis, é uma estatística robusta. O IQR consiste na diferença entre o quantil superior $Q_3$ e o quantil inferior $Q_1$ (*Isaaks & Srivastava, 1989*):
```math
IQR = q(0.75) - q(0.25) = Q_3 - Q_1
```
Podemos calcular o IQR da variável `Cr` utilizando a função `quantile`...
"""
# ╔═╡ 82a219b0-d1ca-4db0-8738-6b3f8e27189b
quantile(dados.Cr, 0.75) - quantile(dados.Cr, 0.25)
# ╔═╡ 3e2ea93f-0219-4766-b550-4d3788608ca4
md"""
O **coeficiente de variação** é uma medida de dispersão que, diferentemente das outras medidas apresentadas anteriormente, é uma estatística **portável**. Isso significa que podemos utilizar o coeficiente de variação para saber qual das variáveis presentes no banco de dados é a mais errática (i.e. apresenta a maior variabilidade).
O coeficiente de variação consiste na razão entre o desvio padrão e a média da variável de interesse:
```math
C_v = \frac{S}{\overline{X}}
```
> ⚠️ O coeficiente de variação é de suma importância, uma vez que fornece avisos sobre eventuais dificuldades na estimativa. Caso essa estatística seja superior a 1, possivelmente as estimativas finais terão uma grande incerteza associada em função da alta variabilidade natural da variável (*Isaaks & Srivastava, 1989*).
Podemos utilizar a função `variation` para computar o coeficiente de variação da variável `Cr`...
"""
# ╔═╡ 1c851dd2-7e85-4c94-a806-2afea3199291
variation(dados.Cr)
# ╔═╡ 2ed2fe35-8b11-41cc-8106-cddad3891b89
md""" #### Medidas de forma
Apenas uma medida de forma será apresentada, o coeficiente de assimetria - $skew(X)$.
O **coeficiente de assimetria**, também chamado de *skewness*, traz informações sobre a simetria de uma distribuição. Como apresenta termos elevados ao cubo, essa estatística é extremamente sensível à presença de valores extremos (*Isaaks & Srivastava, 1989*). Essa medida pode ser representada como:
```math
skew(X) = \frac{\frac{1}{n} \sum_{i=1}^{n} (x_i - \overline{X})^3}{S^3}
```
Com base no coeficiente de assimetria, as distribuições podem ser classificadas como:
> **Assimétrica positiva**: $skew(X) > 0$
> **Simétrica**: $skew(X) = 0$
> **Assimétrica negativa**: $skew(X) < 0$
Podemos utilizar a função `skewness` para o cálculo do coeficiente de assimetria da variável `Cr`...
"""
# ╔═╡ 57414e29-2eee-49a6-8678-94d2fdabb70a
skewness(dados.Cr)
# ╔═╡ 7f94f1b4-9ac8-4137-9787-a722670508bb
md"""
#### Sumário estatístico
Agora que já aprendemos sobre as principais estatísticas univariadas, podemos criar uma função `sumario` que retornará o sumário estatístico de uma determinada variável `teor`...
"""
# ╔═╡ cecf023e-5002-48ca-8ea5-0cb294f2e419
function sumario(teor::String)
Q₃ = quantile(dados[!,teor], 0.75)
Q₁ = quantile(dados[!,teor], 0.25)
df = DataFrame(teor = teor,
X̄ = mean(dados[!,teor]),
md = median(dados[!,teor]),
min = minimum(dados[!,teor]),
max = maximum(dados[!,teor]),
S² = var(dados[!,teor]),
S = std(dados[!,teor]),
IQR = Q₃ - Q₁,
Cᵥ = variation(dados[!,teor]),
skew = skewness(dados[!,teor]))
return df
end
# ╔═╡ 4fcf13f4-7f79-4c6d-b365-052c1fb9bb5d
md"""
Agora podemos aplicar a função `sumario` para calcular as estatísticas de cada uma das variáveis contínuas de interesse (i.e. elementos químicos amostrados)...
"""
# ╔═╡ 55e2c2b3-2727-48c8-866f-9e18f0dc44f7
begin
estats = [sumario(teor) for teor ∈ TEORES]
vcat(estats...)
end
# ╔═╡ b063ec45-fd98-4dc8-aa2f-24f0b101c5e8
md"""
> ⚠️ O símbolo $\in$ é apenas uma forma matemática de representar o comando *in*.
"""
# ╔═╡ 64b87701-bf9e-46c9-8700-89d2ef546621
md"""
##### Observações
- Os elementos químicos amostrados encontram-se em escalas distintas;
- Todas as variáveis apresentam distribuições assimétricas positivas ($skew > 0$), com exceção do `Co` que, por sua vez, mostra uma distribuição levemente assimétrica negativa ($skew < 0$);
- Os elementos químicos amostrados apresentam distribuições pouco erráticas, com $C_v < 1$;
- O `Cu` é a variável mais errática, ou seja, aquela que apresenta o maior $C_v$.
"""
# ╔═╡ bf03e7f7-82a1-413c-bc6b-3bd19242f65d
md"""
### Histograma
O **histograma** é um gráfico de barras contíguas com as bases proporcionais aos intervalos das classes e a área de cada retângulo proporcional à respectiva frequência (*Bussab & Morettin, 2017*). Esse gráfico visa representar a distribuição de uma variável contínua.
> ⚠️ O histograma é, provavelmente, o gráfico mais utilizado na AED que precede a estimativa de recursos.
Selecione, na lista suspensa abaixo, uma variável de teor para que seu histograma correspondente seja exibido (Figura 03).
Teor: $(@bind teor1 Select(TEORES))
"""
# ╔═╡ ad7306da-0936-4208-9963-b3af1815b43b
begin
X̅ = mean(dados[!,teor1])
md = median(dados[!,teor1])
histogram(dados[!,teor1], bins=:scott, label=false,
color=:honeydew2, alpha=0.75,
xlabel="$teor1 (ppm)", ylabel="Freq. Absoluta")
vline!([X̅], color=:red, label="X̅")
vline!([md], color=:green, label="md(X)")
end
# ╔═╡ f18ea3c8-fbc0-4c8c-a8f6-e2d083809a38
md"_**Figura 03:** Histograma da variável $teor1._"
# ╔═╡ 155f6b0f-5156-4f42-93c2-6f867415ef37
md"""
##### Observações
- As variáveis que apresentam distribuições assimétricas positivas possuem caudas alongadas à direita. Essa forma de distribuição é típica de elementos menores;
- A variável `Co`, que possui distribuição ligeiramente assimétrica negativa, exibe uma distribuição com cauda alongada à esquerda. Esse tipo de assimetria é mais comum em elementos maiores (e.g. Fe₂O₃+FeO, Al₂O₃);
- A variável `Cr` mostra uma distribuição aproximadamente simétrica, o que não é algo típico de elementos geoquímicos.
"""
# ╔═╡ 0acf95ad-4bd9-4022-b9f9-ce9a886ed1ed
md"""
### Boxplot
O **boxplot**, assim como o histograma, é um gráfico univariado que visa representar a distribuição de uma variável contínua. Essa visualização dá uma ideia da posição, dispersão, simetria e valores extremos de uma variável de interesse (*Bussab & Morettin, 2017*). A Figura 04 ilustra os elementos que constituem o boxplot.
![Figura 04](https://i.postimg.cc/HnRG8289/Figura-03.png)
_**Figura 04:** Exemplo de boxplot e seus elementos. Figura elaborada pelo autor._
Selecione, na lista suspensa abaixo, uma variável de teor para que seu boxplot correspondente seja exibido (Figura 05).
Teor: $(@bind teor2 Select(TEORES))
"""
# ╔═╡ 6c227179-d25f-4b13-86b1-f69e3f74bb8f
begin
media = mean(dados[!,teor2])
boxplot(dados[!,teor2], label=false, alpha=0.75,
color=:honeydew2, ylabel="$teor2 (ppm)",
xticks=false, xaxis=false)
plot!([media], seriestype = :scatter, color=:red,
marker=(:star5,5), label="X̅")
end
# ╔═╡ ef54af89-22e2-4149-9fb4-9fc0b48b76c8
md"_**Figura 05:** Boxplot da variável $teor2._"
# ╔═╡ c42132cd-b4e6-4561-a71b-13b276793f13
md"""
##### Observações
- Uma outra forma de descrever a assimetria de uma distribuição é por meio da comparação entre média e mediana:
- Se $\overline{X} > md(X)$ $\rightarrow$ assimetria positiva;
- Se $\overline{X} < md(X)$ $\rightarrow$ assimetria negativa;
- Se $\overline{X} = md(X)$ $\rightarrow$ simetria.
- O boxplot, pode ser entendido como uma "vista em planta" do histograma.
"""
# ╔═╡ a2b3a946-5ff3-4127-a797-be2fa4a2b9bf
md"""
### Gráfico de barras
O **gráfico de barras**, assim como o histograma, visa representar a distribuição de uma variável de interesse. Entretanto, esse tipo de gráfico é apropriado para a representação de variáveis qualitativas e discretas, como é o caso de `Rock` e `Landuse`.
Selecione, na lista suspensa abaixo, uma variável nominal para que seu gráfico de barras correspondente seja exibido (Figura 06).
"""
# ╔═╡ 85ac468b-452a-48b9-ae61-73a6e970c8c8
begin
df_landuse = dados |>
@groupby(_.Landuse) |>
@map({classe=key(_), contagem=length(_)}) |>
DataFrame
df_rock = dados |>
@groupby(_.Rock) |>
@map({classe=key(_), contagem=length(_)}) |>
DataFrame
end;
# ╔═╡ 9093aff6-4dac-4847-96e1-d6ef2c50cce7
md"""Variável: $(@bind var_nom Select(NOMINAIS))"""
# ╔═╡ 4dbd3eca-9a4c-4aa5-8c15-2f294e33e814
begin
if var_nom == "Landuse"
bar(df_landuse.classe, df_landuse.contagem,
label=false, color=:honeydew2,
alpha=0.75, ylabel="Freq. Absoluta")
else
bar(df_rock.classe, df_rock.contagem,
label=false, color=:honeydew2,
alpha=0.75, ylabel="Freq. Absoluta")
end
end
# ╔═╡ 49d89445-4ca2-4aab-b0a4-a632ddbb640b
md"""
_**Figura 06:** Gráfico de barras da variável_ $var_nom.
"""
# ╔═╡ 98c18d0a-95fe-4949-9507-240bb90a02b9
md"""
##### Observações
- A maior parte da área é composta por regiões de `Campo`;
- Há um grande desbalanceamento na distribuição das litologias. As rochas pertencentes ao `Kimmeridgiano` e ao `Sequentiano` são predominantes na área, enquanto litotipos associados ao `Portlandiano` são escassos.
"""
# ╔═╡ c42c2eb0-2047-4490-9ebb-9b0203466836
md"""
## 5. Descrição bivariada
A **descrição bivariada** consiste em um conjunto de estatísticas e técnicas de visualização que visam descrever a relação entre duas variáveis por vez. Segundo *Isaaks & Srivastava (1989)*, grande parte das informações presentes em conjuntos de dados geoespaciais estão associadas às relações entre variáveis.
"""
# ╔═╡ cbec4c3f-198e-4334-ba18-55d2fbcc8a0d
md"""
### Coeficiente de Pearson
O **coeficiente de Pearson** é a estatística mais comum para descrever a relação entre duas variáveis (*Isaaks & Srivastava, 1989*). Essa medida pode ser calculada como:
```math
r = \frac{\frac{1}{n} \sum_{i=1}^{n} (x_i - \overline{X})(y_i - \overline{Y})}{S_x S_y}
```
> ⚠️ O numerador da equação acima é uma estatística denominada **covariância**. Portanto, podemos dizer que o coeficiente de Pearson é a covariância normalizada.
O coeficiente de Pearson mede um tipo especial de relação, a **correlação linear**. Basicamente, existem três tipos de padrões:
- **$r > 0$** → correlação linear positiva;
- **$r < 0$** → correlação linear negativa;
- **$r \approx 0$** → ausência de correlação.
> ⚠️ Esse coeficiente assume valores no intervalo **[-1, 1]**. Desse modo, quanto maior é o módulo do coeficiente, maior é a força da correlação linear, seja ela positiva ou negativa.
Podemos utilizar a função `cor` para computar o coeficiente de correlação de Pearson entre os teores de `Cr` e `Co`...
"""
# ╔═╡ e7a33281-7f6d-45cc-bb27-d7d9d2774bee
cor(dados.Cr, dados.Co)
# ╔═╡ 1f684b7d-3cfb-4ede-aadd-e82b131e017d
md"""
Como nossos dados contém sete elementos químicos, podemos calcular uma **matriz de correlação** para facilitar a visualização das relações entre todas as variáveis de uma só vez. Um exemplo de mapa de calor confeccionado a partir de uma matriz de correlação é apresentado na Figura 07.
Selecione as variáveis de interesse nas listas suspensas abaixo para que o coeficiente de Pearson entre elas seja computado:
"""
# ╔═╡ 98912d9a-d1bb-4b4d-a7eb-f98963bf790d
md"""Variáveis: $(@bind V₁ Select(TEORES)) e $(@bind V₂ Select(TEORES))"""
# ╔═╡ fce35de6-7f4c-4817-8554-397d2bb19778
begin
mtz = Matrix(dados[!,TEORES])
cor_mtz = cor(mtz)
cc = round(cor(dados[!,V₁], dados[!,V₂]), digits=2)
heatmap(TEORES, TEORES, cor_mtz, color=:coolwarm, clims=(0,1),
title="r($V₁, $V₂) = $cc", colorbartitle="r")
end
# ╔═╡ ce8762e6-c0d7-4683-8ffe-5ac844b406d4
md"_**Figura 07:** Mapa de calor dos coeficientes de Pearson._"
# ╔═╡ d2956461-9a8f-4123-9243-523f623e1f21
md"""
##### Observações
- Todos os elementos químicos do banco de dados apresentam correlações lineares positivas entre si;
- Os elementos `Pb` e `Cu` apresentam a correlação linear mais forte ($r = 0.78$);
- Os elementos `Cu` e `Cd` apresentam a correlação linear mais fraca ($r = 0.13$).
"""
# ╔═╡ ab709b9f-a06a-4bed-a36b-f3c5d6e46265
md"""
### Diagrama de dispersão
O **diagrama de dispersão**, também chamado de *scatterplot*, é um o dispositivo útil para se verificar a associação entre duas variáveis (*Bussab & Morettin, 2017*). O eixo horizontal é representado pelos valores de uma variável, enquanto o eixo vertical é rotulado com os valores da outra variável.
> ⚠️ É sempre interessante visualizar o diagrama de dispersão (gráfico) em conjunto com o coeficiente de Pearson (estatística) para analisar a relação entre um par de variáveis.
Nas listas suspensas abaixo, selecione as variáveis de interesse para visualizar o diagrama de dispersão (Figura 08).
Variáveis: $(@bind var₁ Select(TEORES)) e $(@bind var₂ Select(TEORES))
"""
# ╔═╡ 3a75e14e-9ddb-423b-99a5-d7280218b41e
begin
x = dados[!,var₁]
y = dados[!,var₂]
r = round(cor(x,y), digits=2)
scatter(x, y, xlabel="$var₁ (ppm)", ylabel="$var₂ (ppm)",
label="r = $r", marker=(:circle,2,:black))
vline!([mean(x)], color=:red, ls=:dash, label="Média")
hline!([mean(y)], color=:red, ls=:dash, label=false)
plot!([mean(x)],[mean(y)], marker=(:square, 4, :red), label=false)
end
# ╔═╡ 0f9da683-d792-4965-9988-9c80e4e6148f
md"""
_**Figura 08:** Diagrama de dispersão entre as variáveis $var₁ e $var₂._
"""
# ╔═╡ e34c26f3-4aee-48bc-b164-2347f957a7d7
md"""
##### Observações
- O diagrama de dispersão entre as variáveis `Pb` e `Cu` mostra um padrão linear positivo bem definido;
- O diagrama de dispersão entre as variáveis `Cd` e `Cu` mostra um padrão disperso, sem qualquer alinhamento entre os dados;
- As variáveis `Cd` e `Cr` apresentam uma relação, mas que não aparenta ser linear. Por esse motivo, o coeficiente de Pearson computado ($r=0.6$) não é tão alto.
"""
# ╔═╡ 39b95c2a-df18-40a0-80c6-3c25b2b353e8
md"""
### Q-Q plot
O **Q-Q plot** é um dispositivo visual muito útil para comparação de duas distribuições que, por algum motivo, podem ser similares. Os eixos desse gráfico representam os quantis das duas variáveis (*Isaaks & Srivastava, 1989*). O Q-Q plot pode apresentar, essencialmente, três padrões:
- Distribuições com médias e dispersões similares: os dados encontram-se alinhados à reta X=Y;
- Distribuições com médias distintas e dispersões similares: os dados encontram-se alinhados paralelamente à reta X=Y, mas há uma translação;
- Distribuições com médias similares e dispersões distintas: os dados encontram-se rotacionados em relação à reta X=Y, mas sem translação.
> ⚠️ Esse gráfico é muito importante durante a **definição dos domínios de estimativa**. Durante essa etapa, geralmente é necessário agrupar os dados em subconjuntos distintos por algum critério de natureza geológica (e.g. litologia, tipologia do minério, controle estrutural). Nesse sentido, o Q-Q Plot pode ser utilizado para validar visualmente a definição desses domínios.
Abaixo, utilizamos o Q-Q plot (Figura 09) para verificar se há diferenças significativas entre as distribuições de um mesmo elemento agrupado por litologias...
"""
# ╔═╡ 0ae3c6dd-63f1-4837-b3f2-f275e06c7d8c
md"""
Variável: $(@bind Z Select(TEORES))
Litologias: $(@bind lito₁ Select(LITO)) e $(@bind lito₂ Select(LITO))
"""
# ╔═╡ cd0d4cd3-850d-4730-88c3-9d93e7a922f7
begin
# filtragem por litologia
dados_lito1 = dados |> @filter(_.Rock == lito₁) |> DataFrame
dados_lito2 = dados |> @filter(_.Rock == lito₂) |> DataFrame
# cálculo das medianas
md₁ = median(dados_lito1[!,Z])
md₂ = median(dados_lito2[!,Z])
# qq-plot
qqplot(dados_lito1[!,Z], dados_lito2[!,Z], xlabel="$Z ($lito₁)",
ylabel="$Z ($lito₂)", color=:black, marker=(:circle,2),
legend=:topleft, label=false)
# plotagem das medianas
vline!([md₁], color=:red, ls=:dash, label=false)
hline!([md₂], color=:red, ls=:dash, label="Mediana")
plot!([md₁],[md₂], marker=(:square, 4, :red), label=false)
end
# ╔═╡ 067878a2-1d5d-4b4b-9857-5a473849007b
md"""
_**Figura 09:** Q-Q plot entre os teores de $Z (ppm) nas rochas do $lito₁ e $lito₂._
"""
# ╔═╡ b1f8414f-e004-4cae-8d69-a56b57b5ea11
md"""
##### Observações
- Não há uma grande diferença entre as distribuições de `Pb` nas litologias `Sequaniano` e `Kimmeridgiano`. Repare que a maioria dos dados encontra-se alinhada ao longo da reta X=Y;
- Os teores de `Pb` nas rochas do `Kimmeridgiano` tendem a ser mais elevados do que as concentrações dessa variável nas rochas do `Argoviano`. Repare que a maioria dos dados encontra-se alinhada paralelamente à reta X=Y;
- Os teores de `Co` nas rochas do `Quaternario` são bem mais altos e erráticos do que nas rochas do `Argoviano`. Repare que há translação e rotação dos dados em relação à reta X=Y.
"""
# ╔═╡ a5fd7cc5-9460-48d1-ae90-c1a0f0dff265
md"""
## 6. Descrição espacial
Nas seções anteriores aprendemos sobre técnicas de visualização do espaço de atributos. Nesta seção, além do espaço de atributos, também iremos visualizar o **espaço geográfico**.
"""
# ╔═╡ e6a85185-8188-42e7-b639-34e8c9a8c515
md"""
### Georreferenciamento
Na linguagem Julia, o **georreferenciamento dos dados** consiste em informar quais colunas devem ser tratadas como coordenadas geográficas e quais devem ser entendidas como atributos/variáveis. Para georrefenciar os nossos dados, iremos utilizar a função `georef` do pacote [GeoStats.jl](https://juliaearth.github.io/GeoStats.jl/stable/).
"""
# ╔═╡ 447ead1b-53a3-42a3-ad9d-6bc7c099c40f
geodados = georef(dados, (:X, :Y))
# ╔═╡ fbeade43-7a37-4d16-bc24-eb857799a732
md"""
Note que, após o georreferenciamento dos dados, uma nova coluna `geometry` foi criada no lugar das antigas colunas `X` e `Y`. Esse novo atributo possui valores com geometria do tipo `Point`.
Um objeto georreferenciado apresenta um **domínio**, que representa suas coordenadas geográficas...
"""
# ╔═╡ 9da25fdb-f91a-45ed-bf30-1b0e3358e9cf
domain(geodados)
# ╔═╡ 9bcbb66d-47c2-4a38-959a-3df8169a7953
md"""
### Mapa de localização
Os **mapas de localização** indicam a posição de cada amostra no espaço geográfico e normalmente é colorido pelos valores da variável de interesse. A Figura 10 mostra um exemplo de mapa de localização.
Quando o objetivo final é a estimativa de recursos, uma prática comum é visualizar a posição das amostras **highgrade** no espaço geográfico. Caso não se tenha muitas informações, é usual adotar a convenção em que $highgrades > q(0.90)$.
Na lista suspensa abaixo, selecione a variável de interesse e, opcionalmente, marque a caixa para filtrar apenas as amostras highgrade...
"""
# ╔═╡ fc62d1b2-3bf6-4c42-bda2-840673f24e25
md"""
Variável: $(@bind Zᵤ Select(TEORES))
Filtrar highgrades $(@bind filtra_hg CheckBox())
"""
# ╔═╡ 314aaeb2-9550-4662-b84e-357b659c3635
begin
if filtra_hg
q90 = quantile(dados[!,Zᵤ], 0.9)
hg = filter(Zᵤ => x -> x > q90, dados) |> DataFrame
scatter(hg[!,:X], hg[!,:Y], marker_z=hg[!,Zᵤ],
marker=(:jet,3), legend=:topright,
xlabel="X", ylabel="Y", label="$Zᵤ (ppm)",
xlims=(0,6), ylims=(0,6), markerstrokewidth=0.3)
else
scatter(dados[!,:X], dados[!,:Y], marker_z=dados[!,Zᵤ],
marker=(:jet,3), legend=:topright,
xlabel="X", ylabel="Y", label="$Zᵤ (ppm)",
xlims=(0,6), ylims=(0,6), markerstrokewidth=0.3)
end
end
# ╔═╡ 70069594-eb84-42ae-9f52-c5c8fa0aae0b
md"_**Figura 10:** Mapa de localização das amostras de $Zᵤ._"
# ╔═╡ 7a412bca-ee60-46dc-953f-9fda81d234c2
md"""
##### Observações
- As amostras highgrade de `Cd`, `Pb` e `Zn` possivelmente apresentam uma maior continuidade espacial na direção NW-SE;
- As amostras highgrade de `Co` e `Cr` possivelmente apresentam uma maior continuidade espacial na direção NE-SW.
"""
# ╔═╡ dd91c3a4-6c9c-479c-a7a4-26f46185025e
md"""
## 7. Desagrupamento
É muito comum, na mineração, que regiões "mais ricas" de um depósito sejam mais amostradas do que suas porções "mais pobres". Essa situação se justifica pelo fato de a sondagem ser um procedimento de elevado custo e, nesse sentido, é mais coerente que amostremos mais as regiões mais promissoras do depósito.
A Teoria da Amostragem deixa claro que a amostragem de um fenômeno (*e.g.* mineralização de Cu) deve ser representativa. Em outras palavras:
> *Uma amostragem é representativa, quando qualquer parte do todo (população/depósito) tem iguais chances de ser amostrada. Se alguma parte for favorecida/desfavorecida na amostragem, a amostra não é representativa*.
Nesse sentido, como frequentemente há um agrupamento amostral preferencial nas porções ricas dos depósitos, podemos dizer que a amostragem de depósitos minerais não é representativa. Dessa maneira, como temos uma amostragem sistematicamente não representativa, teremos uma estimativa sistematicamente não fiel à realidade do depósito.
"""
# ╔═╡ 612bcc28-c174-43be-834c-8b1f74632631
md"""
Uma forma de mitigar esse viés amostral intrínseco à indústria da mineração é a utilização de técnicas de **desagrupamento** (ou declusterização). Essas técnicas atribuem um peso a cada amostra baseado na sua proximidade com as amostras circunvizinhas. Nesse sentido, dados situados em regiões de maior densidade amostral (i.e. muitas amostras próximas) recebem pesos baixos, enquanto dados localizados em porções de baixa densidade amostral ganham pesos maiores. A premissa é que dados mais próximos são mais redundantes e podem enviesar as estatísticas (*Deutsch, 2015*).
Podemos utilizar os pesos de desagrupamento para recalcular as estatísticas dos teores. Esses pesos são calculados em função de um tamanho de um bloco especificado.
Utilize o slider abaixo para alterar o tamanho do bloco de desagrupamento. Analise o efeito desse parâmetro nas estatísticas desagrupadas da variável `Cu`.
"""
# ╔═╡ dd2a6a37-ae4a-46b7-a137-74958e3ef296
md"""
Tamanho de bloco: $(@bind tam_bloco Slider(0.1:0.05:2.0, default=0.25, show_value=true))
"""
# ╔═╡ b5ac40b8-e5d9-4dd2-90cf-827360ce9c25
function sumdesagrup(teor::Symbol, id=nothing)
sum = DataFrame(teor = id,
X̄ = mean(geodados, teor, tam_bloco),
md = quantile(geodados, teor, 0.5, tam_bloco),
S² = var(geodados, teor, tam_bloco))
return sum
end;
# ╔═╡ 2125de8e-7844-4741-9301-aa84b58f7900
[sumario("Cu")[!,[1,2,3,6]]
sumdesagrup(:Cu, "Cu (desagrupado)")]
# ╔═╡ 6f329001-e19c-4685-977d-802a860fe74e
md"""
Normalmente, o tamanho do bloco de desagrupamento é escolhido em função das dimensões da malha. Nesse sentido, o valor default do slider foi definido como o espaçamento médio da malha (i.e. $\approx 0,25$).
> ⚠️ Voltaremos a mencionar as técnicas de desagrupamento no [módulo 5](https://github.com/fnaghetini/intro-to-geostats/blob/main/5-estimacao.jl). As estatísticas desagrupadas são utilizadas na validação das estimativas por Krigagem.
"""
# ╔═╡ 47cf20cd-62f6-43c2-b531-31eab994aa15
md"""
## Referências
*Bussab, W. O.; Morettin, P. A. [Estatística básica](https://www.google.com.br/books/edition/ESTAT%C3%8DSTICA_B%C3%81SICA/vDhnDwAAQBAJ?hl=pt-BR&gbpv=0). 9ª ed. São Paulo: Saraiva, 2017.*
*Deutsch, C. V. [Cell declustering parameter selection](https://geostatisticslessons.com/lessons/celldeclustering). In: Geostatistics Lessons, 2015.*
*Goovaerts, P. [Geostatistics for natural resources evaluation](https://www.google.com.br/books/edition/Geostatistics_for_Natural_Resources_Eval/CW-7tHAaVR0C?hl=pt-BR&gbpv=0). New York: Oxford University Press, 1997.*
*Isaaks, E. H.; Srivastava, M. R. [Applied geostatistics](https://www.google.com.br/books/edition/Applied_Geostatistics/gUXQzQEACAAJ?hl=pt-BR). New York: Oxford University Press, 1989.*
*Magalhães, M. N.; De Lima, A. C. P. [Noções de probabilidade e estatística](https://www.google.com.br/books/edition/No%C3%A7%C3%B5es_de_Probabilidade_e_Estat%C3%ADstica/-BAuPwAACAAJ?hl=pt-BR). 7ª ed. São Paulo: Editora da Universidade de São Paulo, 2015.*
*Rossi, M. E.; Deutsch, C. V. [Mineral resource estimation](https://www.google.com.br/books/edition/Mineral_Resource_Estimation/gzK_BAAAQBAJ?hl=pt-BR&gbpv=0). New York: Springer Science & Business Media, 2013.*
*Tukey, J. W. [Exploratory data analysis](https://www.google.com.br/books/edition/Exploratory_Data_Analysis/UT9dAAAAIAAJ?hl=pt-BR&gbpv=0&bsq=exploratory%20data%20analysis). Princeton: Addison-Wesley Publishing Company, 1977.*
"""
# ╔═╡ 5f177c03-cb3d-4268-8c33-3aa7610e337b
md"""
## Recursos adicionais
Abaixo, são listados alguns recursos complementares a este notebook:
> [Videoaula Estatística Univariada - LPM/UFRGS](https://www.youtube.com/watch?v=ZRh9d_GHfqM)
> [Videoaula Estatística Univariada - University of Texas](https://www.youtube.com/watch?v=wAcbA2cIqec&list=PLG19vXLQHvSB-D4XKYieEku9GQMQyAzjJ)
> [Videoaula Estatística Bivariada - LPM/UFRGS](https://www.youtube.com/watch?v=U0sqVJY_mzA)
> [Videoaula Desagrupamento - LPM/UFRGS](https://www.youtube.com/watch?v=lCCOwPM51dc)
"""
# ╔═╡ 0e813b9b-6bb4-4377-b297-f3789f09f42c
md"""
## Pacotes utilizados
Os seguintes pacotes foram utilizados neste notebook:
| Pacote | Descrição |
|:--------------------------------------------------------:|:-----------------------:|
|[CSV](https://github.com/JuliaData/CSV.jl) | Arquivos CSV |
|[DataFrames](https://github.com/JuliaData/DataFrames.jl) | Manipulação de tabelas |
|[Query](https://github.com/queryverse/Query.jl) | Realização de consultas |
|[StatsBase](https://github.com/JuliaStats/StatsBase.jl) | Cálculo de estatísticas |
|[Statistics](https://docs.julialang.org/en/v1/) | Cálculo de estatísticas |
|[Random](https://docs.julialang.org/en/v1/) | Números aleatórios |
|[GeoStats](https://github.com/JuliaEarth/GeoStats.jl) | Rotinas geoestatísticas |
|[PlutoUI](https://github.com/fonsp/PlutoUI.jl) | Widgets interativos |
|[Plots](https://github.com/JuliaPlots/Plots.jl) | Visualização dos dados |
|[StatsPlots](https://github.com/JuliaPlots/StatsPlots.jl) | Visualização dos dados |
"""
# ╔═╡ 00000000-0000-0000-0000-000000000001
PLUTO_PROJECT_TOML_CONTENTS = """
[deps]
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
GeoStats = "dcc97b0b-8ce5-5539-9008-bb190f959ef6"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8"
Query = "1a8c2f83-1ff3-5112-b086-8aa67b057ba1"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
StatsPlots = "f3b207a7-027a-5e70-b257-86293d7955fd"
[compat]
CSV = "~0.9.4"
DataFrames = "~1.2.2"
GeoStats = "~0.27.0"
Plots = "~1.22.2"
PlutoUI = "~0.7.11"
Query = "~1.0.0"
StatsBase = "~0.33.11"
StatsPlots = "~0.14.27"
"""
# ╔═╡ 00000000-0000-0000-0000-000000000002
PLUTO_MANIFEST_TOML_CONTENTS = """
# This file is machine-generated - editing it directly is not advised
[[AbstractFFTs]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "485ee0867925449198280d4af84bdb46a2a404d0"
uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c"
version = "1.0.1"
[[Adapt]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "84918055d15b3114ede17ac6a7182f68870c16f7"
uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
version = "3.3.1"
[[ArgCheck]]
git-tree-sha1 = "dedbbb2ddb876f899585c4ec4433265e3017215a"
uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197"
version = "2.1.0"
[[ArgTools]]
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
[[Arpack]]
deps = ["Arpack_jll", "Libdl", "LinearAlgebra"]
git-tree-sha1 = "2ff92b71ba1747c5fdd541f8fc87736d82f40ec9"
uuid = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97"
version = "0.4.0"
[[Arpack_jll]]
deps = ["Libdl", "OpenBLAS_jll", "Pkg"]
git-tree-sha1 = "e214a9b9bd1b4e1b4f15b22c0994862b66af7ff7"
uuid = "68821587-b530-5797-8361-c406ea357684"
version = "3.5.0+3"
[[ArrayInterface]]
deps = ["Compat", "IfElse", "LinearAlgebra", "Requires", "SparseArrays", "Static"]
git-tree-sha1 = "b8d49c34c3da35f220e7295659cd0bab8e739fed"
uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
version = "3.1.33"