Learn R Programming

tikatuwq (version 0.9.0)

mk_seasonal: Teste de Mann-Kendall sazonal

Description

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.

Usage

mk_seasonal(
  df,
  param,
  date_col = "data",
  by = "ponto",
  period = c("monthly", "season"),
  season_col = "season",
  alpha = 0.05,
  locale = c("pt", "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".

Arguments

df

Data frame com ao menos a coluna do param e date_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 por season_col (requer assign_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".

Details

Algoritmo (Hirsch et al., 1982):

  1. Para cada estacao m, extrai as observacoes dentro daquela estacao e calcula \(S_m\) e \(VAR(S_m)\).

  2. Soma: \(S = \sum S_m\), \(VAR(S) = \sum VAR(S_m)\).

  3. Estatistica Z com correcao de continuidade: \(Z = (S - \text{sgn}(S)) / \sqrt{VAR(S)}\).

  4. 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. tools:::Rd_expr_doi("10.1029/WR018i001p00107")

See Also

assign_season(), trend_param()

Examples

Run this code
data("wq_demo", package = "tikatuwq")

# Mann-Kendall mensal (period = "monthly")
mk_seasonal(wq_demo, param = "turbidez", by = "ponto")

# \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")
# }

Run the code above in your browser using DataLab