Implementa o teste de Mann-Kendall sazonal de Hirsch, Slack & Smith (1982), adequado para series temporais de qualidade da agua com sazonalidade (periodos chuvoso/seco ou meses do ano). A estatistica S total e a soma das estatisticas S computadas separadamente por estacao, o que remove o vies introduzido pela sazonalidade nos testes convencionais.
Arguments
- df
Data frame com ao menos a coluna do
paramedate_col.- param
Character; nome da coluna do parametro a testar.
- date_col
Character; nome da coluna de datas. Default
"data".- by
Character vector; colunas de agrupamento. Default
"ponto".- period
"monthly"(default) — 12 estacoes (meses 1–12); ou"season"— 2 estacoes definidas porseason_col(requerassign_season()previamente).- season_col
Character; nome da coluna de periodo hidrologico, usado apenas quando
period = "season". Default"season".- alpha
Numeric; nivel de significancia. Default
0.05.- locale
Character; idioma dos rotulos de tendencia:
"pt"(default) ou"en".
Value
Um tibble com uma linha por grupo, contendo:
- parametro
Nome do parametro testado.
- n_obs
Total de observacoes validas.
- n_estacoes
Numero de estacoes com dados suficientes (>= 3).
- S
Estatistica S de Mann-Kendall agregada.
- varS
Variancia de S.
- Z
Estatistica Z normalizada.
- p_value
p-valor bilateral.
- tau
Tau de Kendall normalizado.
- sen_slope
Inclinacao de Sen (unidade/ano).
- significativo
Logical;
p_value < alpha.- tendencia
"crescente","decrescente"ou"sem_tendencia".
Details
Algoritmo (Hirsch et al., 1982):
Para cada estacao m, extrai as observacoes dentro daquela estacao e calcula \(S_m\) e \(VAR(S_m)\).
Soma: \(S = \sum S_m\), \(VAR(S) = \sum VAR(S_m)\).
Estatistica Z com correcao de continuidade: \(Z = (S - \text{sgn}(S)) / \sqrt{VAR(S)}\).
p-valor bilateral pela distribuicao normal padrao.
A inclinacao de Sen e calculada sobre a serie completa (mediana de todas as inclinacoes pareadas \((x_j - x_i)/(t_j - t_i)\)), expressa em unidades do parametro por ano.
Requer ao menos 3 observacoes por estacao para incluir a estacao no calculo; estacoes com menos dados sao ignoradas (com aviso).
References
Hirsch, R. M., Slack, J. R., & Smith, R. A. (1982). Techniques of trend analysis for monthly water quality data. Water Resources Research, 18(1), 107–121. doi:10.1029/WR018i001p00107
Examples
data("wq_demo", package = "tikatuwq")
# Mann-Kendall mensal (period = "monthly")
mk_seasonal(wq_demo, param = "turbidez", by = "ponto")
#> Warning: Grupo 'FBS-BRH-250': menos de 2 estacoes com dados suficientes para o teste.
#> Warning: Grupo 'FBS-BRH-300': menos de 2 estacoes com dados suficientes para o teste.
#> Warning: Grupo 'FBS-BRH-450': menos de 2 estacoes com dados suficientes para o teste.
#> Warning: Grupo 'FBS-BRH-950': menos de 2 estacoes com dados suficientes para o teste.
#> # A tibble: 4 × 12
#> ponto parametro n_obs n_estacoes S varS Z p_value tau sen_slope
#> <chr> <chr> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 FBS-BRH-… turbidez 5 0 0 0 NA NA 0 -6.37
#> 2 FBS-BRH-… turbidez 5 0 0 0 NA NA 0 -0.821
#> 3 FBS-BRH-… turbidez 5 0 0 0 NA NA 0 -2.34
#> 4 FBS-BRH-… turbidez 5 0 0 0 NA NA 0 -5.48
#> # ℹ 2 more variables: significativo <lgl>, tendencia <chr>
# \donttest{
# Mann-Kendall por periodo hidrologico
d <- assign_season(wq_demo, region = "bahia")
mk_seasonal(d, param = "turbidez", by = "ponto",
period = "season", season_col = "season")
#> Warning: Grupo 'FBS-BRH-250': menos de 2 estacoes com dados suficientes para o teste.
#> Warning: Grupo 'FBS-BRH-300': menos de 2 estacoes com dados suficientes para o teste.
#> Warning: Grupo 'FBS-BRH-450': menos de 2 estacoes com dados suficientes para o teste.
#> Warning: Grupo 'FBS-BRH-950': menos de 2 estacoes com dados suficientes para o teste.
#> # A tibble: 4 × 12
#> ponto parametro n_obs n_estacoes S varS Z p_value tau sen_slope
#> <chr> <chr> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 FBS-BRH-… turbidez 5 1 1 3.67 NA NA 0.1 -6.37
#> 2 FBS-BRH-… turbidez 5 1 3 3.67 NA NA 0.3 -0.821
#> 3 FBS-BRH-… turbidez 5 1 -1 3.67 NA NA -0.1 -2.34
#> 4 FBS-BRH-… turbidez 5 1 -4 8.67 NA NA -0.4 -5.48
#> # ℹ 2 more variables: significativo <lgl>, tendencia <chr>
# }