Você está na página 1de 12

12

ANÁLISE DE REGRESSÃO APLICADA EM PROBLEMAS DE PREVISÃO

UTILIZANDO UM PROGRAMA ITERATIVO

REGRESSION ANALYSIS APPLIED IN PREDICTION PROBLEMS USING AN

ITERATIVE PROGRAM

Alfredo BONINI NETO1*

Talita de Souza Fabiani TAVARES 2

Rafael Santos HERNANDES 3

RESUMO

Neste trabalho é apresentada uma análise de Regressão pelo método dos


Mínimos Quadrados que tem por finalidade prever um resultado a partir de uma
sequência de dados conhecidos. É utilizado o software Matlab para criação da
interface gráfica tornando o programa mais iterativo para o usuário. O programa
também auxilia na resolução do sistema de equações lineares do método dos
Mínimos Quadrados. Um exemplo da aplicação do método dos Mínimos
Quadrados é em exercícios de previsão. Feito através da recolha dos dados que
já foram medidos e através desses dados, obter uma função (1º ou 2º grau) que
passe o mais próximo possível dos pontos dados. Uma observação a ser feita, é
encontrar a função mais apropriada para ser utilizada, pois é esta função que
passará o mais próximo possível dos pontos conhecidos. Neste trabalho é feito o
diagrama de dispersão que tem por finalidade descobrir qual a função é mais
apropriada para ser utilizada.

Palavras-chave: Mínimos Quadrados, Previsão, Regressão, Interface Gráfica.

ABSTRACT

This paper presents a Regression analysis by Least Squares method that aims to
predict an outcome from a sequence of known data. Matlab software is used to
create graphical interface making the program more iterative for the user. The
program also assists in the resolution of the system of linear equations of the

1
* Departamento de Matemática - Faculdades de Dracena/UNIFADRA. Email: alfredoboninineto@hotmail.com
2
Departamento de Matemática - Faculdades de Dracena/UNIFADRA
3
Departamento de Matemática - Faculdades de Dracena/UNIFADRA

BioEng, Tupã, v.4 n.1, p. 12-23, Jan/Abr., 2010.


13

method of Least Squares. An example of applying the method of Least Squares is


in exercises of prevision, i.e., we can predict what will be the population of a
country in a year later. This is done by collecting data that have already been
measured and from this data, obtain a function (1 st or 2nd degree) to pass as close
as possible to the known points. Once obtained this function, just give a future
value (year) and get the image of this point (the population). An observation to be
made, is to find the most appropriate function to be used, since it is this function
that will pass as close as possible to the known points. This work is done by the
scatter diagram which aims to discover what function is more suitable for use.

Keywords: Least Squares method, Regression analysis, graphical interface

INTRODUÇÃO
(x3, y3)......(xn-1, yn-1) (xn, yn). A
Um fato que atrai pesquisadores colocação destes pares ordenados
aplicados das mais diversas áreas é num plano cartesiano, depende dos
a possibilidade de obter uma função valores de xi e yi, (i=1..n) e pode
real que passe nos pontos ou pelo fornecer um gráfico de dispersão,
menos passe próximo dos n pontos figura 1.
(xi,yi) dados, ou seja, (x1, y1) (x2, y2)

60
50
40
yi
30
20
10

2 4 6 8 10 12 14 16 18 20
xi
Figura 1- Diagrama de dispersão

Na Matemática existe a Teoria teremos obtido algo positivo e de


de Interpolação que é a área que valor científico.
estuda tais processos para obter Dentre os processos
funções que passam exatamente matemáticos que resolvem tal
pelos pontos dados, enquanto que a problema, com certeza, um dos mais
Teoria de Aproximação estuda utilizados é o método dos Mínimos
processos para obter funções que Quadrados, que serve para gerar o
passem o mais próximo possível dos que se chama em Estatística:
pontos dados. Regressão Linear ou Ajuste Linear.
É óbvio que se pudermos obter As curvas mais comuns utilizadas
funções que passem próximas dos pelos estatísticos são as funções do
pontos dados e que tenham uma primeiro grau ( y  a0  a1 x ) e a do
expressão fácil de ser manipulada, segundo grau ( y  a0  a1 x  a2 x 2 ).
BioEng, Tupã, v.4 n.1, p. 12-23, Jan/Abr., 2010.
14

A idéia básica para qualquer grau e três incógnitas e três


uma das funções citadas é tentar equações para a função do segundo
descobrir quais são os valores das grau, ambas as matrizes quadradas.
incógnitas ao, a1 para função do Existem vários métodos para a
primeiro grau e ao, a 1 e a2 para resolução do sistema de equações
função do segundo grau, de tal modo lineares, como, escalonamento,
que a soma dos quadrados das Gauss-Seidel ou X  A 1. B , onde X
distâncias (tomadas na vertical) da representa a matriz das incógnitas
referida curva y=f(x) a cada um dos -1
X  (a0 , a1 , a2 )t , A é a inversa da
pontos dados (yi) seja a menor matriz dos coeficientes encontrados
possível, daí o nome método dos pela sequência da Regressão Linear
Mínimos Quadrados. e B é a matriz dos termos
Portanto, para obtenção das
independentes, este método será
incógnitas das funções, basta utilizado nesse trabalho através do
resolver o sistema de equações
programa Matlab.
lineares com duas incógnitas e duas
equações para a função do primeiro

MÉTODOS DOS MÍNIMOS QUADRADOS


obter essa função y=f(x) em que a
Seja (xi, yi) = (x1, y1) (x2, y2) (x3, soma dos quadrados das distâncias
y3)......(xn-1, yn-1) (xn, yn) os n pontos (tomadas na vertical) do referido
dados onde se deseja obter uma gráfico da função y=f(x) a cada um
função que passe o mais próximo dos pontos dados (yi) seja a menor
possível desse pontos. O método dos possível, ver Figura 2.
Mínimos Quadrados tem por objetivo

Figura 2- Distância de um ponto (xi; yi) ao gráfico da função y = f(x)

Com isso, um sistema de formado para obtenção da função do


equações não lineares é formado primeiro grau y  a0  a1 x :
com o intuito de obter os valores das   n  n
incógnitas a0, a1 para função do  na0    xi a1   yi
primeiro grau e a0, a1 e a2 para   i 1  i 1

  n   n 2 n
função do segundo grau Aguiar e   xi a0    xi a1   xi yi
  i 1   i 1 
Moreira, (2009). O sistema a seguir é  i 1

(1)
BioEng, Tupã, v.4 n.1, p. 12-23, Jan/Abr., 2010.
15

onde n é o número de ponto dados, e


os coeficientes são:   n   n  n
n  na0   xi a1    xi 2 a2   yi

 xi  x1  x2  x3  ....  xn 
  n 
 i 1 
 n 2
 i 1
 n 3
 i 1
n
i 1    xi a0    xi a1    xi a2   xi yi
(2) 
  i 1   i 1   i 1  i 1
n

 yi  y1  y2  y3  ....  yn      
n n n n
   xi 2 a0    xi 3 a1    xi 4 a2   xi 2 yi
i 1 
  i 1   i 1   i 1  i 1
(3) (7)
n
 xi 2
 x1  x2  x3  ....  xn
2 2 2 2

onde os demais coeficientes são:


i 1
(4)
n n
 xi yi  x1 y1  x2 y2  x3 y3  ....  xn yn
i 1
 xi 3  x13  x23  x33  ....  xn 3
i 1
(5) (8)
n
Existem vários métodos na  xi 4  x14  x2 4  x34  ....  xn 4
literatura que resolvem sistemas i 1

lineares. Neste trabalho será aplicado (9)


o método A.X  B , pois a matriz dos
n

coeficientes (A) sempre possui o


 xi 2 yi  x12 y1  x2 2 y2  x32 y3  ....  xn 2 yn
i 1
mesmo numero de linhas e colunas (10)
(quadrada), permitindo assim um
1
modo rápido de resolução X  A . B . A solução de (7) será:
Portanto, para resolver o sistema de
 n n   n 
equações (1) será utilizado o
programa Matlab, através da forma
 n  xi  xi 2  a0    yi 
 i 1 i 1     i 1 
matricial:  n 3    n 
n n

 xi  xi 2  xi . a1    xi yi 
 i 1 i 1 i 1     i 1 
 n   n   n 2     
 n  xi  a0    yi   xi
n
 xi 3
n n
 xi 4  a2   xi 2 yi 
 i 1  .     i 1   i 1 i 1 i 1   i 1 
 n 2    n 
n

 xi  xi   a1   xi yi 
 i 1 i 1   i 1  ou
ou ainda, 1
 n n
2
 n 
 n  
1 n  a0   n  xi  xi    yi 
a0   n  xi    yi     i 1 i 1   i 1 
  i 1  .  i 1     n n n
3  n 
   n n
2  n  a1    xi  xi 2  xi  .  xi yi 
 a1   xi  xi   xi yi     i 1 i 1 i 1   i 1 
 i 1 i 1   i 1     n 2 n n   n 
(6) a2   xi  xi 3  xi 4   xi 2 yi 
 i 1 i 1 i 1   i 1 
O sistema a seguir é formado (11)
para obtenção da função do segundo
grau y  a0  a1 x  a2 x 2 :
BioEng, Tupã, v.4 n.1, p. 12-23, Jan/Abr., 2010.
16

O SOFTWARE MATLAB

O Matlab é uma linguagem de funções matemáticas, geração de


programação apropriada ao gráficos e manipulação de dados que
desenvolvimento de aplicativos de auxiliam muito o trabalho do
natureza técnica. Para isso, possui programador. E ainda possui uma
facilidades de computação, vasta coleção de bibliotecas
programação e baixo custo, dentro de denominadas toolboxes para áreas
um ambiente amigável e de fácil específicas como: equações
aprendizado (Huang, Zhang, 2000). diferenciais ordinárias, estatística,
Com o Matlab é possível resolver processamento de imagens,
problemas computacionais mais processamento de sinais, finanças,
rápido do que com linguagens de entre outras.
programação tradicionais, como C, C Os recursos instalados também
+ + e Fortran (Mathworks, 2009). O podem ser estendidos pelo usuário
Matlab foi desenvolvido no início da através da implementação de funções
década de 80 por Cleve Moler, no Matlab (M-files) ou de rotinas escritas
Departamento de Ciência da em linguagem C ou Fortran.
Computação da Universidade do A necessidade de um programa
Novo México, EUA. As versões em língua portuguesa para atender
posteriores ao Matlab 4.0, foram as necessidades das aulas e permitir
desenvolvidas na firma comercial ao aluno de graduação um primeiro
MathWorks Inc., que detêm os contato com os computadores e
direitos de autores destas programas de computadores
implementações. O Matlab foi relacionados à pesquisa científica.
originalmente desenvolvido para Além de permitir o uso do programa
prover um acesso amigável ao por pesquisadores (alunos e
tratamento de vetores e matrizes. professores) dos cursos de pós-
Atualmente o Matlab dispõe de uma graduação.
biblioteca bastante abrangente de

CARACTERÍSTICAS DOS RECURSOS GRÁFICOS DO MATLAB

Existem muitos comandos para dx=0.2850;


criação da interface gráfica no dy=0.2200;
pos = [(1-dx)*0.5, (1-dy)*0.5, dx, dy];
Matlab, citaremos alguns dos h0 = figure('Color',[ 0.800 0.800 0.800], ...
comandos. Podemos criar uma janela 'Units','normalized', ...
através da função Figure e formatar 'MenuBar','none', ...
essa janela através de seus 'NumberTitle','off', ...
parâmetros (alguns destes 'Position',pos, ...
'Resize','off', ...
parâmetros serão mostrados a 'name','');
seguir). A figura 3 mostra uma janela
feita com a função Figure e seus
parâmetros devidamente configurado.

BioEng, Tupã, v.4 n.1, p. 12-23, Jan/Abr., 2010.


17

Figura 3 - Exemplo da função Figure.

Parâmetros da Função Figure:

Color: Representa a cor de fundo da Name: Dá um nome para a janela. O


janela. É um vetor com os valor desta propriedade deve ser
componentes RGB. Exemplo: a uma string.
seqüência Color [0 0 0] equivale a cor Controlando os Controles
preta e a seqüência Color[1 1 1]
equivale a cor branca. No Matlab existe uma maneira
Units: É uma unidade usada para muito prática de se programar a
posicionar o controle. A posição e resposta de um controle ao usuário.
tamanho de um controle dentro da Por exemplo, ao apertar-se um botão
janela, que são feitos através de queremos que seja plotado um
coordenadas como: Normalized gráfico, ou fechar a janela que se
(máximo e mínimo da janela está operando. Os controles também
correspondendo a 0 e 1) e Pixels( servem para retornar algum valor
pontos gráficos). para o usuário de maneira mais
MenuBar: Se o valor dessa amigável.
propriedade for ‘none’ nenhum menu
é mostrado na janela. Se for ‘Figure’ O Comando Uicontrol
a janela terá o menu padrão de O Uicontrol é um comando de
figuras. controle para a janela que está ativa.
NumberTitle: Se o valor dessa Para criar os controles, deve-se
propriedade for ‘on’ aparecerá o configurar apropriadamente seus
nome e o número da janela. Se for parâmetros. A figura 4 apresenta o
‘off’ a barra de título aparece em exemplo de BackgroundColor.
branco. h0 = figure('Color',[ 0.800 0.800
0.800], ...
Position: Especifica a posição e 'Units','normalized', ...
tamanho da janela através das 'MenuBar','none', ...
propriedades: [left, bottom, width, 'NumberTitle','off', ...
height]. 'Position',pos, ...
'Resize','off', ...
Resize: Se estiver em ‘on’ a janela 'name','');
pode ter seu tamanho alterado. Se h1 = uicontrol('Parent',h0, ...
tiver em ‘off’ o tamanho da janela não `Units','normalized', ...
'BackgroundColor',[ 1 1 1], ...
pode ser alterado.

BioEng, Tupã, v.4 n.1, p. 12-23, Jan/Abr., 2010.


18

'ForegroundColor',[0.000 0.000 'String','Sistemas:', ...


0.502],... 'FontSize',17,...
'Fontname','Arial',...
'HorizontalAlignment','center', 'Style','text', ...
... 'Tag','StaticText1');
'Position',[0.0787 0.7678 0.8287
0.1547], ...

Figura 4 - Exemplo do BackgroundColor.

RESULTADOS E DISCUSSÃO
Serão apresentados exercícios população brasileira entre os anos de
de aplicações, onde são 1872 e 2000; com isso podemos
apresentados exercícios de previsão prever qual será a população em um
para um valor posterior e outro em ano posterior.
que encontraremos valores entre dois Considere a tabela 1 a seguir
pontos conhecidos. apresenta a população brasileira (em
Um exemplo de aplicação para milhões) obtidas pelo censo (IBGE,
obtenção de um ponto posterior seria 2009):
para ajustar uma curva aos dados da

BioEng, Tupã, v.4 n.1, p. 12-23, Jan/Abr., 2010.


19

Tabela 1 - Populações brasileiras entre 1872 e 2010 (em milhões)


Censo de 1872 10,112 habitantes.
Censo de 1890 14,333 habitantes.
Censo de 1900 17,318 habitantes.
Censo de 1920 30,635 habitantes.
Censo de 1940 41,165 habitantes.
Censo de 1950 51,941 habitantes.
Censo de 1960 70,070 habitantes.
Censo de 1970 93,139 habitantes.
Censo de 1980 119,002 habitantes.
Censo de 1991 146,825 habitantes.
Censo de 2000 169,799 habitantes.
* ano de 2015 *210,405 habitantes.
*obtido pelo método dos mínimos quadrados através do programa proposto

Para resolver o exercício no botão “MÉTODO DOS MÍNIMOS


anterior foi proposto um programa por QUADRADOS” outra tela é aberta
meio de uma interface gráfica para (figura 6), esta tela representa a
obter a função y. A figura 5 apresenta figura de entrada de dados do
a tela inicial do programa. Ao clicar exercício.

Figura5- Tela inicial do programa.

BioEng, Tupã, v.4 n.1, p. 12-23, Jan/Abr., 2010.


20

Figura 6- tela de entrada de dados.

Observam-se na figura 6 as diagrama de dispersão para analisar


opções que o usuário tem de qual a função mais adequada para os
escolher. Nesta tela o usuário entra pontos basta clicar no botão
com o valor de n que é o número de “Diagrama de dispersão”. A figura 7
pontos conhecidos e em seguida com representa o diagrama de dispersão
os valores de x e de y dos n pontos. para os pontos do exercício anterior.
Caso o usuário queira montar o

Figura 7- Diagrama de dispersão do exercício de população

Observando a figura 7, constata- (figura 6), a qual abrirá uma tela para
se que os pontos representam melhor escolher a função, reta para a função
uma parábola, assim o usuário pode do primeiro grau e parábola para a
clicar no botão “Escolher função” função do segundo grau. Clicando no
BioEng, Tupã, v.4 n.1, p. 12-23, Jan/Abr., 2010.
21

botão “Parábola”, a função e o gráfico figura 9.


serão mostrados na figura 7, ver

Figura 8 - Tela para escolha da função, 1º ou 2º grau.

Figura 9 - Função e gráfico obtidos pelo método dos Mínimos Quadrados do


exercício de população.

Caso o usuário queira saber um obtém-se a resposta logo abaixo do


valor futuro para a população, por botão, o valor obtido é
exemplo, 2015, basta inserir 2015 aproximadamente 210,405 milhões
(ano) no quadro da figura 9 e basta de habitantes, ver figura 10.
clicar no botão “Prever 2º grau”

BioEng, Tupã, v.4 n.1, p. 12-23, Jan/Abr., 2010.


22

Figura 10 - Valor previsto para a população no ano de 2015.

CONCLUSÕES
baseados em exercícios de previsão,
Neste trabalho foi apresentado o ou seja, previmos qual foi a
método dos Mínimos Quadrados população de um determinado país
desenvolvido a partir de uma em um ano posterior. Isso foi feito
interface gráfica que tem por colhendo os dados que já foram
finalidade prever um resultado a partir medidos e através desses dados, foi
de uma sequência de dados obtida uma função (1º ou 2º grau) que
conhecidos. Foi utilizado o software passe o mais próximo possível dos
Matlab para criação da interface pontos dados. A ideia deste trabalho
gráfica tornando o programa mais é prever qualquer tipo de problema
iterativo para o usuário. O programa que envolva pontos de duas variáveis
também auxiliou na resolução do (xi, yi). Neste trabalho também foi
sistema de equações lineares do feito o diagrama de dispersão que
método dos Mínimos Quadrados. Os tem por finalidade descobrir qual a
exemplos da aplicação do método função mais apropriada para ser
dos Mínimos Quadrados foram utilizada.

REFERÊNCIAS BIBLIOGRÁFICAS
es/quadrados_minimos.pdf>. Acesso
AGUIAR, F. L. E MOREIRA, W. I. em: 06 out. 2009.
Ajuste de curvas por quadrados HUANG, G.M.; ZHANG, H. A. New
mínimos lineares. Disponível em: < Education Matlab Software for
http://www.mat.ufmg.br/gaal/aplicaco Teaching Power Analysis that
Involves the Slack Bus Concept and

BioEng, Tupã, v.4 n.1, p. 12-23, Jan/Abr., 2010.


23

Allocation Issues. Power Engineering


Society Winter Meeting. IEEE, v. 2,
23-27, p. 1150- 1158, Jan 2000.
MATHWORKS. Disponível em: <
http://www.mathworks.com>. Acesso
em: 15 mar. 2009.
IBGE. Instituto Brasileiro de
Geografia e Estatística. Disponível
em: <http://www.ibge.gov.br/home/>.
Acesso em: 06 out. 2009.

BioEng, Tupã, v.4 n.1, p. 12-23, Jan/Abr., 2010.

Você também pode gostar