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

Leonard de Assis assis.leonard em gmail.com
Quarta Dezembro 21 12:37:13 BRST 2011


Henrique,

Li umas 10 vezes sua pergunta e não entendi o seu objetivo.

Seria bom ter um exemplo que possa ser reproduzido, para que fique claro
a todos.

Pelo que pude supor, você está gerando diversos números aleatórios (uma
quantidade bastante grande) e quer ajustar um polinomio grau 18 neste.

A parte quer eu não entendi é o X da questão

Você quer apenas um modelo, contendo TODOS OS GRAUS, de 0 a 18, ou você
quer 190 modelos (Todas as combinações de polinomios de grau 0 até 18),
contendo polinomios de graus 0 a 18, para verificar qual se comporta melhor.

Note que a resposta para cada uma das opções é diferente.

Não sei seu objetivo com isto, mas eu definitivamente utilizaria uma
abordagem tentando ajustar exponenciais, ou até splines. Mas como sua
pergunta não foi direcionada a saber a melhor estratégia ...

[]s
Leonard de Assis
assis <dot> leonard <at> gmail <dot> com


Em 21/12/2011 09:47, Henrique Ewbank escreveu:
> 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
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20111221/d80b201e/attachment.html>


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