[R-br] Forçar a aparecer grau máximo em um modelo linear

Henrique Ewbank henrique.ewbank em coppead.ufrj.br
Quarta Dezembro 21 09:47:22 BRST 2011


Bom dia a todos,

Possuo dados gerados aleatoriamente e gostaria de modelá-los linearmente
com diversos graus.
A intenção é medir qual grau apresenta a melhor modelagem.
Não trabalharei com previsão, mas sim buscarei as raízes reais desses
polinômios.

O problema ocorre quando é feita a modelagem para um polinômio de alto
grau. Se tentar modelar com grau 20, por exemplo, não necessariamente a
resposta terá grau 20, mas poderá apresentar qualquer grau inferior, como
19, por exemplo.
É possível fixar que o maior grau exigido conste na resposta, ao modelar
dados linearmente?

Segue abaixo um exemplo de código.

---
a<-NULL
LT<-round(urtriang(10000,2.5,10,12.5))
DLT<-matrix(nrow=10000)

for (i in 1:10000){
  DLT[i]=sum(urtriang(LT[i],2.5,10,12.5))
}
H<-hist(DLT[DLT>0],breaks=100,plot=FALSE)
Dens<-H$density
Int<-H$mids

for (degreeTest in 2:20){
           model<-lm(Dens~poly(Int,degreeTest,raw=TRUE))
           Coeff1<-data.frame(model$coefficients[])
           for (m in 1:nrow(Coeff1)) a <- c(a,Coeff1[m,1])    #end for m
           a <- c(a,rep(NA,21-m))
}
b<-array(a,c(21,19),c("Coef","Grau"))
----

Os coeficientes de cada polinômio estão em *b*, sendo b[n,] os coeficientes
de grau n-1. Exemplo: b[21,] = coeficientes de grau 20.
Em *b* será possível observar que nem todos os graus (colunas) apresentarão
coeficiente para seu maior expoente desejado.

Obrigado,

Henrique Ewbank
Centro de Estudos em Logística
COPPEAD
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20111221/40bca590/attachment.html>


Mais detalhes sobre a lista de discussão R-br