1. INTRODUO num modelo de regresso linear mltipla prevemos uma varivel que continua com variveis que tambm so contnuas. Por exemplo, prevemos a quantidade de chuva que vai fazer amanh, em mm ou litros por metro quadrado, em funo da velocidade mdia do vento e da quantidade de chuva de hoje, assumindo-se uma relao linear e somativa em que existem parmetros ou coeficientes e uma parte desconhecida que se assume aleatria: (Chuva amanh) = a + b (Chuva hoje) + c (Temperatura hoje) + (Parte desconhecida) Sendo que a parte desconhecida vai traduzir o nosso erro de previso, um modelo multilinear possvel poderia ser o seguinte (a previso pode ser negativa que resulta de erros do modelo - assumirmos o modelo linear e haver uma parte desconhecida): (Chuva amanh) = 3.5 + 0.75 (Chuva hoje) + 0.21 (Temperatura hoje) A leitura que se faz do modelo : Se hoje no chovesse nada e a velocidade do vento fosse zero, previa-se para amanh 3.50 mm de chuva (no faz sentido uma quantidade de chuva negativa); SE chovesse mais um mm hoje, previa-se para amanh mais 0.75 mm de chuva, mantendo-se o resto constante; Se a temperatura fosse maior num grau, previa-se para amanh mais 0.21 mm de chuva, mantendo-se tudo o resto constante. 2. VARIVEIS CATEGRICAS - VARVEIS BINRIAS OU DUMMY O modelo de regresso multilinear tambm pode conter variveis categricas do tipo Sim/No. Neste caso adoptamos para cada uma um valor diferente, normalmente para uma o valor 1 e para a outra o valor 0 porque o zero no se pode comparar quantitativamente com o 1. Denomina-se esta varivel escalar obtida pela "transformao" da varivel categrica "Binria" ou "Dummy". NO CATEGRICA TER N ALTERNATIVAS, NECESSITAMOS DE UTILIZAR N-1 VARIVEIS BINRIAS E NO N.
PCosme, FEP, Nov. 2002
3. ESTIMAO DE UM MODELO DE REGRESSO MULTILINEAR COM
EXEMPLOS A sintaxe no R semelhante utilizada nas rvores de deciso ou de regresso mas a funo outra. A estimao para os parmetros do modelo vai ser feita de forma a ser minimizado o erro quadrtico mdio: EQM = [(x1yval)2 + + (xnyval)2]/n. Estimao com os 100 exemplos de preos de apartamentos no ficheiro de texto separado por vrgulas, 'u:/directrio escolhido/casas_preco.csv', com os campos "local", "estado", "idade", "tipo", "area", "garagem" e o preo de venda no campo "mil_euros": >Dados <-read.csv(u:/directrio escolhido/casas_preco.csv') >library(rpart) >modelo<-lm(mil_euros ~ idade + local + area, data = Dados)
Podemos agora "ver" o modelo:
>modelo Call: lm(formula = mil.euros ~ idade + local + area, data = Dados) Coefficients: (Intercept) idade 17.569 -2.032
localmau -11.030
localMbom localmedio 4.593 -8.535
localMmau -27.490
area 1.060
A primeira e segunda linhas dizem como o modelo estimado. Depois temos os
coeficientes em que o Intersept , termo independente ou intercepo, traduz o preo de um apartamento que tivesse zero em todas as variveis (no faz sentido porque a rea sempre positiva). O parmetro associado idade, que escalar, traduz que se um apartamento tivesse mais um ano de idade, mantendo-se tudo o resto igual, previa-se que o seu preo fosse menor em 2.032 milhares de euros. As quatro variveis DUMMY devem-se varivel categrica Local ter 5 hipteses. O parmetro -11.030 associado varivel localmau traduz que se uma casa mudasse de localbom (que a categoria que falta) para localmau, mantendo-se tudo o resto igual, previase uma desvalorizao de 11.030 milhares de euros.
PCosme, FEP, Nov. 2002
3. DETERMINAO DO ERRO DE PREVISO DO MODELO
Agora no a poda, pruning, que generaliza o modelo mas antes assumirmos que multilinear. Uma aproximao ao de previso a raiz quadrada do erro quadrtico mdio obtida com "os exemplos de treino":
>library(rpart) >modelo<-lm(mil_euros ~ idade + local + area, data = Dados) >Dados.previsto.com.modelo<-predict(modelo,Dados) >erros.quadraticos<- (Dados$mil-euros - Dados.previsto.com.modelo)^2 >erro.medio.quadratico <- sum(erros.quadraticos) / length(erros.quadraticos) >(erro.medio<- erro.medio,quadratico^0.5) >[1] 15.225 Reparar que, por coincidncia, o erro de previso considerado como a raiz quadrada do erro quadrtico mdio do modelo multilinear muito semelhante ao mesmo erro calculado com a rvore de regresso mas usaram-se menos variveis. Se se usassem todas as variveis o erro calculado seria de 6.912, sem se poder dizer que um modelo prev melhor que outro pois desconhece-se o que vai acontecer no Futuro.
4. Dados de treino diferentes dos dados de avaliao
Pode-me interessar usar, por exemplo, 70% dos dados na estimao do modelo e 30% na avaliao do erro. Supondo que j se leu o Data Frame Dados, faramos: x <- nrow(Dados)*0.7 Dados.treino <- Dados[1:x,] Dados.erro <- Dados[(x+1):nrow(Dados),] modelo<-lm(mil_euros ~ idade + local + area, data = Dados.treino) Dados.previsto.com.modelo<-predict(modelo, Dados.erro) erros.quadraticos<- (Dados.erro$mil-euros - Dados.previsto.com.modelo)^2 erro.medio.quadratico <- sum(erros.quadraticos) / length(erros.quadraticos) erro.medio<- erro.medio,quadratico^0.5 >[1] 15.22