Skip to main content

Inconsistency

Oferece um conjunto de funções para o tratamento e análise de inconsistências em séries de dados hidrológicos. Ele abrange métodos de regressão, cálculo de correlação, interpolação por spline e detecção de inconsistências por análise de derivada e janela deslizante.

Índice

  1. Visão Geral
  2. Regressão
  3. Regressão 2
  4. Corr
  5. Sliding w erro regressão
  6. Sliding w correlacão
  7. Derivada limite inferior
  8. Regressão defasagem ótima
  9. Spline cúbica
  10. R squared

Visão Geral

O módulo inconsistency_lib centraliza uma variedade de ferramentas matemáticas e estatísticas para o tratamento de dados hidrológicos, focando em:

  • Modelagem de Regressão: Funções para ajustar polinômios a conjuntos de dados e prever valores.
  • Análise de Correlação: Cálculo do coeficiente de correlação linear para avaliar a relação entre duas séries de dados.
  • Detecção de Inconsistências: Métodos baseados em janela deslizante e análise de derivadas para identificar pontos de dados inconsistentes.
  • Interpolação Avançada: Implementações de spline cúbica e quadrática para preenchimento de lacunas em dados.
  • Métricas de Desempenho: Cálculo do coeficiente de determinação (R²) para avaliar a qualidade dos modelos.

Regressão

Gera uma lista de dados corrigidos utilizando um modelo de regressão polinomial.

Parâmetros: x (list): Lista com os índices (ou valores da variável independente) das cotas usadas para a regressão. y (list): Lista com as cotas (valores da variável dependente) nos índices de x. x_correcao: Lista com os índices dos dias que precisam ser corrigidos. grau (int): O grau do polinômio da regressão.

Retorno: list: Os valores de cotas corrigidos.

Regressão 2

Calcula os coeficientes de um polinômio de regressão.

Parâmetros: x: Array ou lista de valores da variável independente. y: Array ou lista de valores da variável dependente. ordem (int): A ordem (grau) do polinômio.

Retorno: np.ndarray: Um array contendo os coeficientes do polinômio de regressão.

Corr

Calcula o coeficiente de correlação linear entre duas séries de dados.

Parâmetros: dado1 (list): Lista com as cotas de uma estação. dado2 (list): Lista com as cotas de uma estação adjacente à primeira. Deve conter o mesmo número de elementos que dado1.

Retorno: float64: O coeficiente de correlação linear entre os dados.

Sliding w erro regressão

Gera um DataFrame com informações sobre inconsistências contextuais de variação no formato das curvas, utilizando análise de erro de regressão em janela deslizante.

Parâmetros: input_df (pd.DataFrame): DataFrame de entrada (e.g., no formato ana_cota_horaria_regua). input_df2 (pd.DataFrame): DataFrame de entrada de uma estação adjacente. dict_colunas (dictionary): Dicionário com 'tempo' (nome da coluna de timestamp) e 'amostra' (nome da coluna de amostras). size (int): Número de dados dentro da janela deslizante. step (int): Passo entre duas janelas subsequentes. Deve ser menor que size. tolerancia (float64): Limite inferior para a diferença angular entre as inclinações de regressão (em graus, convertido para radianos internamente).

Retorno: df_marcacao_inconsistencia (pd.DataFrame): DataFrame com marcações de inconsistências, contendo colunas: data (timestamp), hora (timestamp), cota (float).

Sliding w correlação

Gera um DataFrame com informações sobre inconsistências contextuais de variação no formato das curvas, utilizando a técnica de análise do coeficiente de correlação linear com janela deslizante.

Parâmetros: input_df (pd.DataFrame): DataFrame de entrada (e.g., no formato ana_cota_horaria_regua). input_df2 (pd.DataFrame): DataFrame de entrada de estação adjacente à anterior. dict_colunas (dictionary): Dicionário com 'tempo' (nome da coluna de timestamp) e 'amostra' (nome da coluna de amostras). size (int): Número de dados dentro da janela. step (int): Passo entre duas janelas subsequentes. Precisa ser menor que size. tolerancia (float64): Limite inferior para o coeficiente de correlação linear.

Retorno: df_marcacao_inconsistencia (pd.DataFrame): DataFrame com marcações de inconsistências, contendo colunas: data (timestamp), hora (timestamp), cota (float).

Derivada limite inferior

Gera um DataFrame com informações sobre o estado de inconsistência das amostras, utilizando a técnica de análise da derivada com limite inferior.

Parâmetros: input_df (pd.DataFrame): DataFrame de entrada (e.g., no formato ana_cota_horaria_regua). dict_colunas (dictionary): Dicionário com 'tempo' (nome da coluna de timestamp) e 'amostra' (nome da coluna de amostras). hora_amostra (int): Horário da amostra a ser analisada. limite_inferior (float64): Limite para o valor absoluto da primeira ou segunda derivada. derivada (int): Ordem da derivada que será analisada (1 ou 2).

Retorno: df_marcacao_inconsistencia (pd.DataFrame): DataFrame com marcações de inconsistências, contendo colunas: codigo_estacao, data, hora, cota_bruta, data_hora.

Regressão defasagem ótima

Realiza uma regressão com defasagem ótima para corrigir valores em séries de dados, buscando a defasagem que maximiza a correlação entre as séries.

Parâmetros: x: Dados da primeira série (variável independente). y: Dados da segunda série (variável dependente). indice_inconsistencias: Índices onde as inconsistências foram detectadas. n_pontos (int): Número de pontos a serem considerados antes e depois das inconsistências. n_dias (int): Número máximo de dias para testar a defasagem.

Retorno: tuple: Uma tupla contendo: np.ndarray: Array com os valores corrigidospara os índices de inconsistência. float: O coeficiente de determinação (R²) correspondente à defasagem ótima.

Spline cúbica

Gera uma lista com dados corrigidos utilizando o método de spline cúbica.

Parâmetros: x (list): Lista com os índices (ou valores da variável independente) das cotas usadas para a interpolação. y (list): Lista com as cotas (valores da variável dependente) nos índices de x. x_correcao: Lista com os índices dos dias que precisam ser corrigidos.

Retorno: list: Os valores de cotas corrigidos pela spline cúbica.

Spline quadrática

Gera uma lista com dados corrigidos utilizando o método de spline quadrática.

Parâmetros: x (list): Lista com os índices (ou valores da variável independente) das cotas usadas para a interpolação. y (list): Lista com as cotas (valores da variável dependente) nos índices de x. x_correcao: Lista com os índices dos dias que precisam ser corrigido.

Retorno: list: Os valores de cotas corrigidos pela spline quadrática.

R squared

Calcula o coeficiente de determinação (R²) entre valores reais e estimados.

Parâmetros: df (pd.DataFrame): DataFrame contendo as colunas com os real_label (str): Nome da coluna com os valores reais. pred_label (str): Nome da coluna com os valores estimados.

Retorno: np.float64: O coeficiente de determinação (R²).