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
- Visão Geral
- Regressão
- Regressão 2
- Corr
- Sliding w erro regressão
- Sliding w correlacão
- Derivada limite inferior
- Regressão defasagem ótima
- Spline cúbica
- 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²).