Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 / 18 Regressão linear e polinomial Augusto Mathias Adams David Clistenes Furoni de Lima 2 / 18 Ementa ● Motivação ● Ajuste de Curvas – Método dos Mínimos Quadrados – Regressão Linear – Regressão Polinomial ● Código – Classe RegressaoMinimosQuadrados (trecho do método solve) – Classe RegressaoPolinomial (trecho do método solve) ● Aplicações – Sensor Field Mill (David) – Sensor AS3935 (Augusto) ● Agradecimentos 3 / 18 Motivação ● Problema prático: calibração de instrumentos – Equipamento em teste x Padrão de medida – Medidas dispersas entre o padrão e o equipamento(Salpicam o gráfico!!) – Pergunta: há um comportamento médio que possa dizer se o equipamento está em conformidade com o padrão de medida? 4 / 18 Motivação 5 / 18 Motivação 6 / 18 Motivação ● Há um comportamento médio!! – Podemos dizer que o equipamento em teste é calibrado para um intervalo de confiança de +/- 3km – Como chegamos a este resultado? ● Método dos mínimos quadrados 7 / 18 Método dos Mínimos Quadrados ● Ajuste de curvas: – Trata-se de achar uma solução f(x), tal que seja minimizado – Aplicações ● Identificação de sistemas ● Calibração de instrumentos ● Trabalhos acadêmicos e científicos ∑ i=1 N (f (xi)−yi) 2 8 / 18 Método dos Mínimos Quadrados ● Roteiro – Definindo f(x) como um polinômio de grau g, sendo g menor que o número de pontos existentes na amostra ( ) – Parte-se de – Encontra-se as derivadas parciais de R em relação às suas incógnitas ( ) – Reagrupa-se os termos de cada derivada parcial em função de suas incógnitas – tem-se um sistema linear – A solução do sistema linear são os coeficientes de f(x) – f(x) é a curva que melhor representa o conjunto de dados em questão para o grau g escolhido previamente R(a1,. .. , ag+1)=∑ i=1 N (f (xi)−yi) 2 a1, ... , ag+1 g<N 9 / 18 Mínimos Quadrados – Regressão Linear ● Partimos de ● Para o caso linear ( ) temos ● R é uma função quadrática que tem seu mínimo quando suas derivadas forem iguais a zero, ou seja: ● Reescrevendo as derivadas: R=∑ i=1 N (f(xi)−y i) 2 y=a1+a2x R=∑ i=1 N (a1+a2xi−yi) 2 ∂R ∂a1 = ∂ ∂a1 ∑ i=1 N (a1+a2xi−yi) 2=0 ∂R ∂a2 = ∂ ∂ a2 ∑ i=1 N (a1+a2xi−y i) 2=0 ∂R ∂a1 =2∑ i=1 N (a1+a2xi−yi)=0 ∂R ∂a2 =2∑ i=1 N xi (a1+a2xi−yi)=0 10 / 18 Mínimos Quadrados – Regressão Linear ● Reagrupando os termos em cada equação: ● Temos o sistema linear: ● Que tem solução se: a1∑ i=1 N 1+a2∑ i=1 N x i=∑ i=1 N yi a1∑ i=1 N xi+a2∑ i=1 N x i 2=∑ i=1 N xiy i [ N ∑i=1 N xi ∑ i=1 N xi ∑ i=1 N x i 2] [a1a2]=[ ∑i=1 N y i ∑ i=1 N x iyi ] N∑ i=1 N xi 2−(∑ i=1 N x i) 2 ≠0 11 / 18 Mínimos Quadrados – Regressão Linear ● Resolvendo o sistema linear, determina-se os coeficientes da equação da reta que melhor representa o conjunto de dados definido por (x,y) ● Que é a solução da equação de reta que melhor representa o conjunto de dados (x, y) a1= ∑ i=1 N x i 2⋅∑ i=1 N yi−∑ i=1 N xi⋅∑ i=1 N xi yi N∑ i=1 N x i 2−(∑i=1 N xi) 2 a2= N∑ i=1 N x iyi−∑ i=1 N xi⋅∑ i=1 N yi N∑ i=1 N xi 2−(∑i=1 N xi) 2 12 / 18 Mínimos Quadrados – Regressão Polinomial ● Caso geral: ajuste feito por várias funções [ ∑i=1 n f1(x i) 2 ∑ i=1 n f2(x i)f1(xi ) ⋯ ∑ i=1 n fm(x i) f1(xi ) ∑ i=1 n f1(xi )f2(x i) ∑ i=1 n f2(xi ) 2 ⋯ ∑ i=1 n fm(x i) f2(xi ) ∑ i=1 n f1(x i) f3(x i) ∑ i=1 n f2(x i)f3(xi ) ⋯ ∑ i=1 n fm(x i) f3(xi ) ⋮ ⋮ ⋱ ⋮ ∑ i=1 n f1(x i) fm (xi ) ∑ i=1 n f2(xi )fm(x i) ⋯ ∑ i=1 n fm(xi ) 2 ][ a1a2⋮am ]=[∑i=1 n f1(xi)yi ∑ i=1 n f2(xi )yi ∑ i=1 n f3(xi )yi ⋮ ∑ i=1 n fm(x i)yi ] 13 / 18 Mínimos Quadrados – Regressão Polinomial ● Caso particular: as funções são potências de x 14 / 18 Regressão – vantagens e desvantagens ● Vantagem: – Quando a escolha da função ou polinômio for bem feita, com um conjunto razoável de pontos, obtém-se uma reta ou curva que é representativa do comportamento médio – ajuste de curva otimizado ● Desvantagens: – Polinomial: grau do polinômio x N => se forem próximos, a regressão tende a um polinômio interpolador – nem sempre isto é desejável – Maior número de funções = matriz maior (aumento quadrático) 15 / 18 Código – Regressão Linear Trecho do método solve da classe RegressaoMinimosQuadrados n = np.size(self._data['x']) s_xy = np.sum(self._data['x'] * self._data['y']) s_xx = np.sum(self._data['x'] * self._data['x']) s_x = np.sum(self._data['x']) s_y = np.sum(self._data['y']) self._results['POG'] = dict() self._results['POG']['b1'] = (n * s_xy - s_x * s_y) / (n * s_xx - s_x ** 2) self._results['POG']['b0'] = (s_xx * s_y - s_x * s_xy) / (n * s_xx - s_x ** 2) 16 / 18 Código – Regressão Polinomial Trecho do método solve da classe RegressaoPolinomial p = self._polynomial_order + 1 regression_matrix = np.zeros((p, p), dtype='double') regression_y = np.array([0.0] * p, dtype='double') for i in range(p): regression_y[i] = np.sum(np.power(self._data['x'], i) * self._data['y']) for j in range(p): if j >= i: regression_matrix[i][j] = np.sum(np.power(self._data['x'], i + j)) regression_matrix[j][i] = regression_matrix[i][j] self._results['POG'] = np.linalg.solve(regression_matrix, regression_y) 17 / 18 Exemplos Sensor Field Mill (Simepar) Sensor AS3935 (Prata da casa) 18 / 18 Agradecimentos A quem ficou acordado, parabéns!! A apresentação foi longa, a gente entende quem estava dormindo (nós fazemos isto também) Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18
Compartilhar