1 Informações gerais para simulação
1.1 Objetivos
- Simular dados para as variáveis diâmetro a 1,30m do solo (\(d\)) e altura (\(h\)) para a espécie 🌳Khaya Ivorensis🌳.
- Calcular o volume das árvores usando a fórmula \(v_i = \dfrac{(\pi d^2)}{40000}(h)(0,7)\).
1.2 Características admitidas para simulação
As seguintes características serão admitidas para a população florestal:
- A população florestal de 🌳Khaya Ivorensis🌳 possui 15 anos de idade, e foi implantada usando o espaçamento 5m x 5m e pleno sol. Sob este espaçamento são possíveis estabelecer até 400 árvores por hectare.
- A população florestal é um retângulo de 500m x 200m, ou seja, com área total de 10 hectares. (Obviamente, na natureza ter-se-á polígonos irregulares!)
- A população florestal será subdividida em áreas de 100m x 100m (1 hectare). Portanto, o número de parcelas possíveis na população será igual a 10 (N = 10). (Será útil na AAS!)
- Não ocorreu mortalidade no plantio até os 15 anos de idade (Um sonho!😀). Portanto, a população de 🌳Khaya Ivorensis🌳 será composta de 4000 árvores.
- O intervalo de variação dos diâmetros a 1,30m do solo na população é de 25cm (mínimo) a 27cm (máximo).
- O intervalo de variação das alturas comerciais na população é de 9m (mínimo) a 10m (máximo).
População Hipotética de Khaya Ivorensis.
2 Simulação de dados dendrométricos
Na simulação admitiu-se que:
- Os dados das variáveis (\(d\) e \(h\)) seguem a distribuição Gaussiana (Normal).
- A média aritmética e desvio padrão das variáveis variam por parcela.
Foram usadas as seguintes funções para obter dados aleatórios:
- A função
runif()
: usada para gerar dados aleatórios da distribuição uniforme para os valores de média e desvio padrão para cada variável (\(d\) e \(h\)). Esta possui 3 parâmetros: n = número de observações; min = limite inferior da distribuição; e max = limite superior da distribuição. Esses valores serão usados na funçãornorm()
. - A função
rnorm()
: usada para gerar dados aleatórios da distribuição normal para as variáveis \(d\) e \(h\). Esta possui 3 parâmetros: n = número de observações; mean = vetor de médias; e sd = vetor de desvio padrão.
## Gera dados aleatórios da distribuição uniforme
## Para cada parcela será usada uma média e um desvio padrão diferente
set.seed(10)
df <- data.frame(
mean_d = runif(n = 10, min = 25, max = 27),
sd_d = runif(n = 10, min = 1, max = 2),
mean_h = runif(n = 10, min = 9, max = 10),
sd_h = runif(n = 10, min = .5, max = 1)
) %>%
mutate(across(everything(), round, 2))
Warning: There was 1 warning in `mutate()`.
ℹ In argument: `across(everything(), round, 2)`.
Caused by warning:
! The `...` argument of `across()` is deprecated as of dplyr 1.1.0.
Supply arguments directly to `.fns` through an anonymous function instead.
# Previously
across(a:b, mean, na.rm = TRUE)
# Now
across(a:b, \(x) mean(x, na.rm = TRUE))
mean_d | sd_d | mean_h | sd_h |
---|---|---|---|
26.01 | 1.65 | 9.86 | 0.77 |
25.61 | 1.57 | 9.62 | 0.55 |
25.85 | 1.11 | 9.78 | 0.58 |
26.39 | 1.60 | 9.36 | 0.95 |
25.17 | 1.36 | 9.41 | 0.71 |
25.45 | 1.43 | 9.71 | 0.87 |
25.55 | 1.05 | 9.84 | 0.91 |
25.54 | 1.26 | 9.24 | 0.98 |
26.23 | 1.40 | 9.77 | 0.84 |
25.86 | 1.84 | 9.36 | 0.75 |
## Simula dados com distribuição normal para a variável diâmetro (para cada parcela)
arv_parc <- 1:400 # número de observações/parcela (árvores/parcela)
n <- 10 # número de parcelas
set.seed(100)
simul_d <- map_dfr(arv_parc, ~ setNames(rnorm(n, mean = df$mean_d, sd = df$sd_d),
stringr::str_c("P", 1:10))) %>%
pivot_longer(everything(), names_to = "Parc", values_to = "d") %>%
mutate(across(where(is_character), forcats::as_factor)) %>%
mutate(across(where(is_double), round, 2)) %>%
arrange(Parc, desc(d))
## Simula dados com distribuição normal para a variável altura (para cada parcela)
set.seed(100)
simul_h <- map_dfr(arv_parc, ~ setNames(rnorm(n, mean = df$mean_h, sd = df$sd_h),
stringr::str_c("P", 1:10))) %>%
pivot_longer(everything(), names_to = "Parc", values_to = "h") %>%
mutate(across(where(is_character), forcats::as_factor)) %>%
mutate(across(where(is_double), round, 1)) %>%
arrange(Parc, desc(h))
## Combina dados simulados e calcula volume de madeira individual
data <- bind_cols(simul_d, simul_h[c("h")]) %>%
mutate(v = ((pi*(d^2))/40000)*h*0.7) %>%
mutate(across(c(v), round, 4))
# writexl::write_xlsx(data, 'data/Khaya-simulado.xlsx')
## Visualiza as 2 primeiras linhas de cada parcela
data %>%
group_by(Parc) %>%
top_n(n = 2) %>%
knitr::kable()
Parc | d | h | v |
---|---|---|---|
P1 | 30.77 | 12.1 | 0.6298 |
P1 | 30.40 | 11.9 | 0.6046 |
P2 | 30.80 | 11.4 | 0.5946 |
P2 | 30.20 | 11.2 | 0.5616 |
P3 | 29.46 | 11.7 | 0.5583 |
P3 | 29.12 | 11.5 | 0.5361 |
P4 | 31.04 | 12.1 | 0.6409 |
P4 | 30.74 | 11.9 | 0.6182 |
P4 | 30.74 | 11.9 | 0.6182 |
P5 | 28.88 | 11.3 | 0.5182 |
P5 | 28.66 | 11.2 | 0.5058 |
P6 | 29.98 | 12.5 | 0.6177 |
P6 | 29.87 | 12.4 | 0.6082 |
P7 | 28.67 | 12.5 | 0.5649 |
P7 | 28.29 | 12.2 | 0.5368 |
P8 | 29.09 | 12.0 | 0.5583 |
P8 | 28.76 | 11.7 | 0.5320 |
P9 | 30.08 | 12.1 | 0.6019 |
P9 | 29.84 | 11.9 | 0.5825 |
P10 | 30.55 | 11.3 | 0.5798 |
P10 | 30.53 | 11.3 | 0.5791 |
## Calcula média, desvio e total do volume por Parcela
data %>%
group_by(Parc) %>%
summarise(across(#.cols = where(is.numeric),
.cols = v,
.fns = list(media=mean, desv=sd, soma=sum),
na.rm = TRUE,
.names = "{.col}.{.fn}"
)
) %>%
knitr::kable()
Parc | v.media | v.desv | v.soma |
---|---|---|---|
P1 | 0.3706925 | 0.0761411 | 148.2770 |
P2 | 0.3539250 | 0.0656689 | 141.5700 |
P3 | 0.3631830 | 0.0503256 | 145.2732 |
P4 | 0.3629817 | 0.0851519 | 145.1927 |
P5 | 0.3292880 | 0.0610615 | 131.7152 |
P6 | 0.3512310 | 0.0755966 | 140.4924 |
P7 | 0.3576338 | 0.0611954 | 143.0535 |
P8 | 0.3352352 | 0.0666380 | 134.0941 |
P9 | 0.3769272 | 0.0708400 | 150.7709 |
P10 | 0.3461675 | 0.0751899 | 138.4670 |
Consideração Final
- Foram simulados dados aleatórios (com distribuição normal) para uma população florestal de 🌳Khaya Ivorensis🌳 (10 hectares) com 4000 árvores (sem mortalidade!). Portanto, via simulação temos os dados populacionais!.
- Supondo a realização de IF amostral, admitiu-se o uso de parcelas de 100m x 100m (1ha). Portanto, seria possível instalar 10 parcelas de 1ha na população florestal.
- Na prática, porém, em inventários florestais, comumente os dados dendrométricos são medidos em parcelas amostrais sob algum processo de amostragem. Em seguida, a variável de interesse é extrapolada para a população (inferência).
- Portanto, na sequência, vamos admitir esses dados para simular o uso da Amostragem Aleatória Simples - AAS em inventários florestais. Ou seja, admitir-se-á que apenas dados de algumas parcelas amostrais estarão disponíveis!