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