Re: [R-br] regressão polinomial: gráfico e valor máximo (resolvido)
Muito obrigado a todos. Tudo esclarecido. Maurício Em 21 de junho de 2016 13:42, Éder Comunelloescreveu: > Maurício e colegas, boa tarde! > > Mais uma opção de código para o problema. > [image: Imagem inline 1] > > # > # DIC 4 rep x 7 doses de gesso (trat): 0, 50, 100, 150, 200, 250, 300 > kg/ha > # Peso de 1.000 sementes (peso, gramas) > peso <- c(134.8, 139.7, 147.6, 132.3, 161.7, 157.7, 150.3, 144.7, >160.7, 172.7, 163.4, 161.3, 169.8, 168.2, 160.7, 161.0, >165.7, 160.0, 158.2, 151.0, 171.8, 157.3, 150.4, 160.4, >154.5, 160.4, 148.8, 154.0) > trat <- rep(seq(0,300,50), each=4) > dados <- data.frame(peso, trat=as.factor(trat)) > > # Método dos Polinômios Ortogonais - Banzato & Kronka, p. 204 > contrasts(dados$trat) = contr.poly(levels(dados$trat)); > contrasts(dados$trat) > > fit1 = aov(peso ~ trat, dados) > summary(fit1) # anova(fit1) > summary(fit1, split = list(trat = list(LIN = 1, QUA = 2, CUB=3, > DESVIOS=4:6))) > # Df Sum Sq Mean Sq F value Pr(>F) > # trat 6 1941.8 323.6 7.668 0.000188 *** > # trat: LIN 1 423.2 423.2 10.026 0.004653 ** > # trat: QUA 1 1285.8 1285.8 30.465 1.78e-05 *** > # trat: CUB 1 155.0 155.0 3.673 0.068997 . > # trat: DESVIOS 3 77.825.9 0.614 0.613269 > # Residuals 21 886.342.2 > > model.tables(fit1, "means") > trat.m <- tapply(peso, trat, mean); trat.m > > # Uso do ajuste quadrático > fit2 <- lm(peso ~ I(trat)+I(trat^2)) > summary(fit2) > coef(fit2) > eq <- paste0("Y = ", round(coef(fit2)[1], 4), " + ", > round(coef(fit2)[2], 4), "X - ", abs(round(coef(fit2)[3], > 6)), "X²"); eq > > # Coeficiente de determinação > summary(fit2)$r.sq > cor(fitted(fit2), peso)**2 > sumsq <- summary(fit1, split = list(trat = list(LIN = 1, QUA = 2, CUB=3, > RES=4:6)))[[1]][2] > rsq <- sum(sumsq[2:3,])/sumsq[1,]; rsq # Banzato & Kronka, p. 209 > eq.r <- paste0("R² = ", round(rsq, 4)); eq.r > > # Predições > pred<- data.frame(trat = seq(0,300,1)) > pred$val <- predict(fit2, pred); head(pred) > > # Gráfico > par(xpd=T) > plot(c(0,300), c(135,170), type="n", xlab="Doses de gesso (kg/ha)", > ylab="Peso de 1.000 sementes (g)", bty="n", xaxs="i", yaxs="i", las=1) > points(as.numeric(names(trat.m)), trat.m, pch=18, cex=1) > lines(pred$trat, pred$val, lwd=2, lty=1, col=1) > text(300, 129, "X") > text(-27, 170, "Y") > text(150, 153, eq, adj=c(0.5,0.5)) > text(150, 151, eq.r, adj=c(0.5,0.5)) > > # Max - Método 1 > ymax <- max(pred$val); ymax # 164.7042 gramas > xmax <- pred[which.max(pred$val), "trat"]; xmax # com 175 Kg/ha de gesso > segments(xmax, 135, xmax, ymax, lty=3, col=2) > segments(0, ymax, xmax, ymax, lty=3, col=2) > points(xmax, ymax, pch=20, col=2) > > # Max - Método 2 > # ax^2 + bx + c > coefs <- data.frame(t(coef(fit2))); names(coefs) <- letters[3:1]; coefs > with(coefs, -b/(2*a)) # 174.8403 > with(coefs, -(b^2 - 4*a*c)/(4*a)) # 164.7043 > > # Max - Método 3 > fun <- function(x) 140.7839 + 0.2736*x - 0.000782*x**2 > fun(175) > # optimize(fun, interval=c(0, 300), maximum=F) > optimize(fun, interval=c(0, 300), maximum=T) > # $maximum > # [1] 174.9361 > # > # $objective > # [1] 164.7152 > > # Max - Derivadas > > D1 <- D(expression(140.7839 + 0.2736*x - 0.000782*x**2), "x"); D1 > # 0.2736 - 0.000782 * (2 * x) > # 0.2736 - 0.001564x > > D2 <- D(D1, "x"); D2 > # -(0.000782 * 2) > # -0.001564 > > # 0.2736 - 0.001564x = 0 > solve(0.001564, 0.2736) # Máximo > # [1] 174.9361 > fun(174.9361) # 164.7152 > > deriva <- deriv(~140.7839 + 0.2736*x - 0.000782*x**2,"x"); deriva > x <- 175; eval(deriva) > x <- 174.8403; eval(deriva) > x <- 174.9361; eval(deriva) > # > > > > Éder Comunello > Researcher at Brazilian Agricultural Research Corporation (Embrapa) > DSc in Agricultural Systems Engineering (USP/Esalq) > MSc in Environ. Sciences (UEM), Agronomist (UEM) > --- > Embrapa Agropecuária Oeste, Dourados, MS, Brazil || > > GEO, -22.2752, -54.8182, 408m > UTC-04:00 / DST: UTC-03:00 > > > > > Em 20 de junho de 2016 19:34, Maurício Lordêlo > escreveu: > >> Saudações a todos desta lista, >> Estou tentando reproduzir um exemplo de regressão polinomial do livro do >> Banzatto e Kronka. >> Minhas dúvidas são: >> 1. Como reproduzir exatamente o gráfico ilustrado no exemplo? O gráfico >> que consegui fazer está parecido porém não está igual. >> O gráfico apresentado no livro encontra-se neste link: >> https://www.dropbox.com/s/qyv7ofwryegcu7m/figura.jpg?dl=0 >> 2. Como encontrar o valor de X que anula a derivada primeira? E depois >> como encontrar o máximo da função? >> Grato, >> Maurício >> >> Segue o CMR: >> >> >> #Experimento inteiramente casualizado com 4 repetições para estudar os >> efeitos de >> #7 doses de gesso (tratamentos): >>
Re: [R-br] regressão polinomial: gráfico e valor máximo
Maurício e colegas, boa tarde! Mais uma opção de código para o problema. [image: Imagem inline 1] # # DIC 4 rep x 7 doses de gesso (trat): 0, 50, 100, 150, 200, 250, 300 kg/ha # Peso de 1.000 sementes (peso, gramas) peso <- c(134.8, 139.7, 147.6, 132.3, 161.7, 157.7, 150.3, 144.7, 160.7, 172.7, 163.4, 161.3, 169.8, 168.2, 160.7, 161.0, 165.7, 160.0, 158.2, 151.0, 171.8, 157.3, 150.4, 160.4, 154.5, 160.4, 148.8, 154.0) trat <- rep(seq(0,300,50), each=4) dados <- data.frame(peso, trat=as.factor(trat)) # Método dos Polinômios Ortogonais - Banzato & Kronka, p. 204 contrasts(dados$trat) = contr.poly(levels(dados$trat)); contrasts(dados$trat) fit1 = aov(peso ~ trat, dados) summary(fit1) # anova(fit1) summary(fit1, split = list(trat = list(LIN = 1, QUA = 2, CUB=3, DESVIOS=4:6))) # Df Sum Sq Mean Sq F value Pr(>F) # trat 6 1941.8 323.6 7.668 0.000188 *** # trat: LIN 1 423.2 423.2 10.026 0.004653 ** # trat: QUA 1 1285.8 1285.8 30.465 1.78e-05 *** # trat: CUB 1 155.0 155.0 3.673 0.068997 . # trat: DESVIOS 3 77.825.9 0.614 0.613269 # Residuals 21 886.342.2 model.tables(fit1, "means") trat.m <- tapply(peso, trat, mean); trat.m # Uso do ajuste quadrático fit2 <- lm(peso ~ I(trat)+I(trat^2)) summary(fit2) coef(fit2) eq <- paste0("Y = ", round(coef(fit2)[1], 4), " + ", round(coef(fit2)[2], 4), "X - ", abs(round(coef(fit2)[3], 6)), "X²"); eq # Coeficiente de determinação summary(fit2)$r.sq cor(fitted(fit2), peso)**2 sumsq <- summary(fit1, split = list(trat = list(LIN = 1, QUA = 2, CUB=3, RES=4:6)))[[1]][2] rsq <- sum(sumsq[2:3,])/sumsq[1,]; rsq # Banzato & Kronka, p. 209 eq.r <- paste0("R² = ", round(rsq, 4)); eq.r # Predições pred<- data.frame(trat = seq(0,300,1)) pred$val <- predict(fit2, pred); head(pred) # Gráfico par(xpd=T) plot(c(0,300), c(135,170), type="n", xlab="Doses de gesso (kg/ha)", ylab="Peso de 1.000 sementes (g)", bty="n", xaxs="i", yaxs="i", las=1) points(as.numeric(names(trat.m)), trat.m, pch=18, cex=1) lines(pred$trat, pred$val, lwd=2, lty=1, col=1) text(300, 129, "X") text(-27, 170, "Y") text(150, 153, eq, adj=c(0.5,0.5)) text(150, 151, eq.r, adj=c(0.5,0.5)) # Max - Método 1 ymax <- max(pred$val); ymax # 164.7042 gramas xmax <- pred[which.max(pred$val), "trat"]; xmax # com 175 Kg/ha de gesso segments(xmax, 135, xmax, ymax, lty=3, col=2) segments(0, ymax, xmax, ymax, lty=3, col=2) points(xmax, ymax, pch=20, col=2) # Max - Método 2 # ax^2 + bx + c coefs <- data.frame(t(coef(fit2))); names(coefs) <- letters[3:1]; coefs with(coefs, -b/(2*a)) # 174.8403 with(coefs, -(b^2 - 4*a*c)/(4*a)) # 164.7043 # Max - Método 3 fun <- function(x) 140.7839 + 0.2736*x - 0.000782*x**2 fun(175) # optimize(fun, interval=c(0, 300), maximum=F) optimize(fun, interval=c(0, 300), maximum=T) # $maximum # [1] 174.9361 # # $objective # [1] 164.7152 # Max - Derivadas D1 <- D(expression(140.7839 + 0.2736*x - 0.000782*x**2), "x"); D1 # 0.2736 - 0.000782 * (2 * x) # 0.2736 - 0.001564x D2 <- D(D1, "x"); D2 # -(0.000782 * 2) # -0.001564 # 0.2736 - 0.001564x = 0 solve(0.001564, 0.2736) # Máximo # [1] 174.9361 fun(174.9361) # 164.7152 deriva <- deriv(~140.7839 + 0.2736*x - 0.000782*x**2,"x"); deriva x <- 175; eval(deriva) x <- 174.8403; eval(deriva) x <- 174.9361; eval(deriva) # Éder Comunello Researcher at Brazilian Agricultural Research Corporation (Embrapa) DSc in Agricultural Systems Engineering (USP/Esalq) MSc in Environ. Sciences (UEM), Agronomist (UEM) --- Embrapa Agropecuária Oeste, Dourados, MS, Brazil || GEO, -22.2752, -54.8182, 408m UTC-04:00 / DST: UTC-03:00 Em 20 de junho de 2016 19:34, Maurício Lordêloescreveu: > Saudações a todos desta lista, > Estou tentando reproduzir um exemplo de regressão polinomial do livro do > Banzatto e Kronka. > Minhas dúvidas são: > 1. Como reproduzir exatamente o gráfico ilustrado no exemplo? O gráfico > que consegui fazer está parecido porém não está igual. > O gráfico apresentado no livro encontra-se neste link: > https://www.dropbox.com/s/qyv7ofwryegcu7m/figura.jpg?dl=0 > 2. Como encontrar o valor de X que anula a derivada primeira? E depois > como encontrar o máximo da função? > Grato, > Maurício > > Segue o CMR: > > > #Experimento inteiramente casualizado com 4 repetições para estudar os > efeitos de > #7 doses de gesso (tratamentos): > #0, 50, 100, 150, 200, 250 e 300 kg/ha sobre diversas características do > feijoeiro > #Para a característica "peso de 1000 sementes", tem-se os resultados > obtidos em gramas > peso = c(134.8, 139.7, 147.6, 132.3, > 161.7, 157.7, 150.3, 144.7, > 160.7, 172.7, 163.4, 161.3, > 169.8, 168.2, 160.7, 161.0, > 165.7, 160.0, 158.2, 151.0, > 171.8,
Re: [R-br] regressão polinomial: gráfico e valor máximo
O ponto de máximo você aplica o cálculo. A expressão é simples. Este conjunto de dados além de outros do Banzatto e Kronka e outras obras (Pimental, Sonia Vieira, Zimmermann, mais de 15 obras e 350 datasets) então sendo documentadas no pacote desenvolvimento pelo PET Estatística UFPR (alerta de propaganda), o labestData (*lab*oratório de *est*atística): https://github.com/pet-estatistica/labestData. Este dataset é chamado de BanzattoQd7.2.1 no pacote ( https://github.com/pet-estatistica/labestData/blob/88f404857f39a1b047231d8a1aab8000fcb305b1/data-raw/BanzattoQd7.2.1.txt). O meu CMR faz a leitura a partir do fonte dos dados no repositório. Se instalar o pacote, terá à disposição datasets das obras nacionais de estatística para usar em sala de aula e tutoriais. rm(list = ls()) url <- paste0("https://raw.githubusercontent.com/pet-estatistica/;, "labestData/88f404857f39a1b047231d8a1aab8000fcb305b1/", "data-raw/BanzattoQd7.2.1.txt") BanzattoQd7.2.1 <- read.table(url, header = TRUE, sep = "\t") str(BanzattoQd7.2.1) # Polinômio ortogonal. m0 <- lm(peso ~ poly(gesso, degree = 2), data = BanzattoQd7.2.1) # Polinômio. m0 <- lm(peso ~ poly(gesso, degree = 2, raw = TRUE), data = BanzattoQd7.2.1) m0 <- lm(peso ~ gesso + I(gesso^2), data = BanzattoQd7.2.1) coef(m0) pred <- data.frame(gesso = seq(min(BanzattoQd7.2.1$gesso), max(BanzattoQd7.2.1$gesso), length.out = 30)) ci <- predict(m0, newdata = pred, interval = "confidence") pred <- cbind(pred, ci) ylim <- extendrange(c(BanzattoQd7.2.1$peso, ci)) # Do cálculo: f(x) = a * x^2 + b * x +c, # então f'(x) = 0 é max/min = -b/(2 * a). xmax <- -coef(m0)["gesso"]/(2 * coef(m0)["I(gesso^2)"]) plot(peso ~ gesso, data = BanzattoQd7.2.1) with(pred, matlines(x = gesso, y = cbind(fit, lwr, upr), col = c(1, 2, 2), lty = c(1, 2, 2))) abline(v = xmax, h = predict(m0, newdata = list(gesso = xmax)), lty = 2, col = 3) À disposição. Walmes. ___ R-br mailing list R-br@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.
Re: [R-br] regressão polinomial
se direitae esquerda se referem a residuaos posotivos e negativos use os residuos do modelo ajustado resid(OBJ do Modelo) On Wed, 25 Jul 2012, Tito Conte wrote: Paulo agora outra dúvida, tenho dez mil pontos, como comparar os que estão a direita e a esquerda dessa curva (como se fosse um dentro ou fora do sistema), já que não consigo extrair o coeficiente de da função poly? Necessito dos dados numericamente pois estes pontos serão submetidos a novos tratamentos posteriormente ___ R-br mailing list R-br@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.
Re: [R-br] regressão polinomial
Voce parece estar complicando o fácil. A sua logica de comparar o dado com o ajustao aplicando a equacao caso a caso pode ser alterada por algo mais simples O objheto com modelo retorna residuos, valores preditos me portanto voce pode obter isto diretamente bastando tomar os residuos que sao positivos ou negativos. alem disto o loop for é desnecessário resid(r) ## mostra residuos ifelse(resid(r) 0, fora, dentro) On Wed, 25 Jul 2012, Tito Conte wrote: Walmes vou criar um exemplo para facilitar o entendimento o que eu preciso é comparar pontos amostrados com os resultados de um modelo de interpolação polinomial por exemplo #minhas amostras y=seq(1:9) x=seq(3:11) #pontos do modelo xm=seq(2,11) ym=seq(0:8) #tirando os valores do modelo da reta r=lm(ym~poly(xm,1)) #extraindo coeficientes a=r$coefficients[1] b=r$coefficients[0] validacao=vector() #comparando cada ponto obtido pelo modelo ajustado com a amostra for(i in c(1:length(y)){ # calculando valor do modelo m=a*x[i]+b # comparando modelo com amostra ifelse(my[i],a='fora',a='dentro') validacao[i]=a } é algo deste estilo porém com um polinomio de grau elevado, Quando ploto os resultados eles estão bonitos, mas quando calculo ele como o método abaixo os valores extrapolam muito da realidade e não entendo o porque, veja o exemplo aqui y=c(-26.,-25.9862,-25.9343,-25.8822,-25.8433,-25.8054,-25.7948,-25.7872,-25.7668,-25.7284,-25.7015,-25.6282,-25.4612,-25.3016,-25. 2564,-25.2412,-25.2412,-25.2232,-25.0869,-25.,-25.,-24.9856,-24.9397,-24.8976,-24.8533,-24.6587,-24.6373,-24.5740,-24.5406,-24 .4379,-24.3934,-24.3628,-24.3277,-24.3042,-24.2972,-24.2973,-24.3020,-24.3068,-24.3068,-24.2956,-24.2920) x=c(-45.8529,-45.8302,-45.7575,-45.6680,-45.6107,-45.5050,-45.4574,-45.4058,-45.3538,-45.2913,-45.2634,-45.2264,-45.1667,-45.0719,-45. 0213,-45.,-45.,-44.9748,-44.8726,-44.8405,-44.8405,-44.8351,-44.8259,-44.7972,-44.7764,-44.6867,-44.6674,-44.5912,-44.5587,-44 .4927,-44.4515,-44.4115,-44.3314,-44.2664,-44.2171,-44.1729,-44.1288,-44.0820,-44.0509,-44.0118,-44.) r=lm(y~poly(x,5)) b0=r$coefficient[1] b1=r$coefficient[2] b2=r$coefficient[3] b3=r$coefficient[4] b4=r$coefficient[5] b5=r$coefficient[6] modelo=b0+b1*x+b2*x^2+b3*x^3+b4*x^4+b5*x^5 modelo veja que os resultados estão muito fora. mas deveriam ser os mesmos, como proceder? ___ R-br mailing list R-br@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.
Re: [R-br] regressão polinomial
Paulo mas o polinomio corresponde a uma borda por isso dentro fora o trabalho que estou realizando corresponde a saber se as partículas jogadas ao acaso em uma determinada área ultrapassam ou não as bordas. Os dados que passei para vocês corresponde a uma dessas bordas, Porém os dados não são responsáveis pela construção de nenhuma dessas bordas ___ R-br mailing list R-br@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.
Re: [R-br] regressão polinomial
Paulo e Walmes, encontrei a seguinte forma para resolver o problema, gostaria que dessem uma olhada #dados do limite da borda direitra y=c(-26.,-25.9862,-25.9343,-25.8822,-25.8433,-25.8054,-25.7948,-25.7872,-25.7668,-25.7284,-25.7015,-25.6282,-25.4612,-25.3016,-25.2564,-25.2412,-25.2412,-25.2232,-25.0869,-25.,-25.,-24.9856,-24.9397,-24.8976,-24.8533,-24.6587,-24.6373,-24.5740,-24.5406,-24.4379,-24.3934,-24.3628,-24.3277,-24.3042,-24.2972,-24.2973,-24.3020,-24.3068,-24.3068,-24.2956,-24.2920) x=c(-45.8529,-45.8302,-45.7575,-45.6680,-45.6107,-45.5050,-45.4574,-45.4058,-45.3538,-45.2913,-45.2634,-45.2264,-45.1667,-45.0719,-45.0213,-45.,-45.,-44.9748,-44.8726,-44.8405,-44.8405,-44.8351,-44.8259,-44.7972,-44.7764,-44.6867,-44.6674,-44.5912,-44.5587,-44.4927,-44.4515,-44.4115,-44.3314,-44.2664,-44.2171,-44.1729,-44.1288,-44.0820,-44.0509,-44.0118,-44.) # partícula 1 amostra=c(x=-45.3,y=-25.111) # inserir dados das amostras no limite x[length(x)+1]=amostra['x'] y[length(y)+1]=amostra['y'] #criar polinomio m=lm(y~poly(x,3)) xpred - data.frame(x = seq(min(x), max(x), len=250)) #plotar dados plot(y,x) lines(xpred$x, predict(m, newdata=xpred)) if(abs(resid(m[length(m)]))0.1 or resid(m[length(m)]))0 ) i='dentro' else i='fora' ___ R-br mailing list R-br@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.
Re: [R-br] regressão polinomial
Sem testar código segue um comentário genérico: Estes polinomios de alto grau podem gerar variáveis de valores muito elevados e com isto instabiliades numéricas nos calculos matriciais tente usar polinomios ortonormalizados fazendo: y ~ poly(x, 5) Os coeficientes serão diferentes mas preicoes serão as mesmas On Tue, 24 Jul 2012, Tito Conte wrote: Segue o código # pontos y=c(-26.,-25.9862,-25.9343,-25.8822,-25.8433,-25.8054,-25.7948,-25.7872,-25.7668,-25.7284,-25.7015,-25.6282,-25.4612,-25.3016,-25. 2564,-25.2412,-25.2412,-25.2232,-25.0869,-25.,-25.,-24.9856,-24.9397,-24.8976,-24.8533,-24.6587,-24.6373,-24.5740,-24.5406,-24 .4379,-24.3934,-24.3628,-24.3277,-24.3042,-24.2972,-24.2973,-24.3020,-24.3068,-24.3068,-24.2956,-24.2920) x=c(-45.8529,-45.8302,-45.7575,-45.6680,-45.6107,-45.5050,-45.4574,-45.4058,-45.3538,-45.2913,-45.2634,-45.2264,-45.1667,-45.0719,-45. 0213,-45.,-45.,-44.9748,-44.8726,-44.8405,-44.8405,-44.8351,-44.8259,-44.7972,-44.7764,-44.6867,-44.6674,-44.5912,-44.5587,-44 .4927,-44.4515,-44.4115,-44.3314,-44.2664,-44.2171,-44.1729,-44.1288,-44.0820,-44.0509,-44.0118,-44.) # regressão polinomial m=lm(y~x+I(x^2)+I(x^3)+I(x^4)+I(x^5)) # criar polinomio de ordem 5 # extraindo os coeficientes b0=coefficient(m)[1] b1=coefficient(m)[2] b2=coefficient(m)[3] b3=coefficient(m)[4] b4=coefficient(m)[5] b5=coefficient(m)[6] # recalculando m_teste=b0+b1*x+b2*x^2+b3*x^3+b4*x^4+b5*x^5 A idéia seria que os pontos de m_teste dessem semelhantes a y mas isso não acontece ___ R-br mailing list R-br@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.
Re: [R-br] regressão polinomial
O problema que voce relata é pq o polinomio nao foi ajustado com x, x^2 ... x^5 e sim pelo geado pelo poly() POnrtanto seus coneficientes nao sao compatívies com as potencias de x na forma bruta Obtenbha os falores ajustados por fitted(r) e prediçoes em outros pontos usando predict() para fazer a predicão On Wed, 25 Jul 2012, Tito Conte wrote: as dicas foram uteis e muito obrigado, muito embora quando eu dou o comando r=lm(y~poly(x,5)) e depois dou a equação pelos coeficientes b0=r$coefficient[1] b1=r$coefficient[2] b2=r$coefficient[3] b3=r$coefficient[4] b4=r$coefficient[5] b5=r$coefficient[6] m_teste=b0+b1*x+b2*x^2+b3*x^3+b4*x^4+b5*x^5 o m_teste extrapola de novo será que estou extraindo os coeficientes de forma correta? e aplicando a equação de forma correta? vocês podem me dar outra luz? obrigado ___ R-br mailing list R-br@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.
Re: [R-br] regressão polinomial
Tito seu exemplo ilustra um o problema numérico que pode ocorrer em ajustes. O perigo é que o resultado é prouzido e se não avaliao o erro pode passar desapercebido e a curva de ajuste erraa pode acabar sendo usada. Veja o efeito no gráfico. Teoricamente os ajustes deveriam ser iguais, entretanto numericamente não são. m=lm(y~x+I(x^2)+I(x^3)+I(x^4)+I(x^5)) # criar polinomio de ordem 5 coef(m) m1 - lm(y ~ poly(x, 5)) ## polinomio e ordem 5 com variáveis ortonormalizadas coef(m1) xpred - data.frame(x = seq(min(x), max(x), len=200)) plot(x, y) lines(xpred$x, predict(m, newdata=xpred)) ## ajuste/predicao com erro numérico lines(xpred$x, predict(m1, newdata=xpred), col=2) ## adequado On Tue, 24 Jul 2012, Tito Conte wrote: Segue o código # pontos y=c(-26.,-25.9862,-25.9343,-25.8822,-25.8433,-25.8054,-25.7948,-25.7872,-25.7668,-25.7284,-25.7015,-25.6282,-25.4612,-25.3016,-25. 2564,-25.2412,-25.2412,-25.2232,-25.0869,-25.,-25.,-24.9856,-24.9397,-24.8976,-24.8533,-24.6587,-24.6373,-24.5740,-24.5406,-24 .4379,-24.3934,-24.3628,-24.3277,-24.3042,-24.2972,-24.2973,-24.3020,-24.3068,-24.3068,-24.2956,-24.2920) x=c(-45.8529,-45.8302,-45.7575,-45.6680,-45.6107,-45.5050,-45.4574,-45.4058,-45.3538,-45.2913,-45.2634,-45.2264,-45.1667,-45.0719,-45. 0213,-45.,-45.,-44.9748,-44.8726,-44.8405,-44.8405,-44.8351,-44.8259,-44.7972,-44.7764,-44.6867,-44.6674,-44.5912,-44.5587,-44 .4927,-44.4515,-44.4115,-44.3314,-44.2664,-44.2171,-44.1729,-44.1288,-44.0820,-44.0509,-44.0118,-44.) # regressão polinomial m=lm(y~x+I(x^2)+I(x^3)+I(x^4)+I(x^5)) # criar polinomio de ordem 5 # extraindo os coeficientes b0=coefficient(m)[1] b1=coefficient(m)[2] b2=coefficient(m)[3] b3=coefficient(m)[4] b4=coefficient(m)[5] b5=coefficient(m)[6] # recalculando m_teste=b0+b1*x+b2*x^2+b3*x^3+b4*x^4+b5*x^5 A idéia seria que os pontos de m_teste dessem semelhantes a y mas isso não acontece ___ R-br mailing list R-br@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.
Re: [R-br] regressão polinomial
Paulo agora outra dúvida, tenho dez mil pontos, como comparar os que estão a direita e a esquerda dessa curva (como se fosse um dentro ou fora do sistema), já que não consigo extrair o coeficiente de da função poly? Necessito dos dados numericamente pois estes pontos serão submetidos a novos tratamentos posteriormente ___ R-br mailing list R-br@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.
Re: [R-br] regressão polinomial
Seja mais claro na sua colocação e forneça um CMR ilustrando com comentários os pontos em dúvida. À disposição. Walmes. == Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: wal...@ufpr.br twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 == ___ R-br mailing list R-br@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.
Re: [R-br] regressão polinomial
Walmes vou criar um exemplo para facilitar o entendimento o que eu preciso é comparar pontos amostrados com os resultados de um modelo de interpolação polinomial por exemplo #minhas amostras y=seq(1:9) x=seq(3:11) #pontos do modelo xm=seq(2,11) ym=seq(0:8) #tirando os valores do modelo da reta r=lm(ym~poly(xm,1)) #extraindo coeficientes a=r$coefficients[1] b=r$coefficients[0] validacao=vector() #comparando cada ponto obtido pelo modelo ajustado com a amostra for(i in c(1:length(y)){ # calculando valor do modelo m=a*x[i]+b # comparando modelo com amostra ifelse(my[i],a='fora',a='dentro') validacao[i]=a } é algo deste estilo porém com um polinomio de grau elevado, Quando ploto os resultados eles estão bonitos, mas quando calculo ele como o método abaixo os valores extrapolam muito da realidade e não entendo o porque, veja o exemplo aqui y=c(-26.,-25.9862,-25.**9343,-25.8822,-25.8433,-25.** 8054,-25.7948,-25.7872,-25.**7668,-25.7284,-25.7015,-25.** 6282,-25.4612,-25.3016,-25. 2564,-25.2412,-25.2412,-25.**2232,-25.0869,-25.,-25.** ,-24.9856,-24.9397,-24.**8976,-24.8533,-24.6587,-24.** 6373,-24.5740,-24.5406,-24 .4379,-24.3934,-24.3628,-24.**3277,-24.3042,-24.2972,-24.** 2973,-24.3020,-24.3068,-24.**3068,-24.2956,-24.2920) x=c(-45.8529,-45.8302,-45.**7575,-45.6680,-45.6107,-45.** 5050,-45.4574,-45.4058,-45.**3538,-45.2913,-45.2634,-45.** 2264,-45.1667,-45.0719,-45. 0213,-45.,-45.,-44.**9748,-44.8726,-44.8405,-44.** 8405,-44.8351,-44.8259,-44.**7972,-44.7764,-44.6867,-44.** 6674,-44.5912,-44.5587,-44 .4927,-44.4515,-44.4115,-44.**3314,-44.2664,-44.2171,-44.** 1729,-44.1288,-44.0820,-44.**0509,-44.0118,-44.) r=lm(y~poly(x,5)) b0=r$coefficient[1] b1=r$coefficient[2] b2=r$coefficient[3] b3=r$coefficient[4] b4=r$coefficient[5] b5=r$coefficient[6] modelo=b0+b1*x+b2*x^2+b3*x^3+b4*x^4+b5*x^5 modelo veja que os resultados estão muito fora. mas deveriam ser os mesmos, como proceder? ___ R-br mailing list R-br@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.
Re: [R-br] regressão polinomial
Certamente ficará mas facil o objetivo para quem for responder se voce mostrar o que está tentando fazer. Envie um CMR (leia o guia de postagem da lista) On Tue, 24 Jul 2012, Tito Conte wrote: Pessoal tenho o seginte conjunto de dados: f=c(-26.,-25.9862,-25.9343,-25.8822,-25.8433,-25.8054,-25.7948,-25.7872,-25.7668,-25.7284,-25.7015,-25.6282,-25.4612,-25.3016,-25. 2564,-25.2412,-25.2412,-25.2232,-25.0869,-25.,-25.,-24.9856,-24.9397,-24.8976,-24.8533,-24.6587,-24.6373,-24.5740,-24.5406,-24 .4379,-24.3934,-24.3628,-24.3277,-24.3042,-24.2972,-24.2973,-24.3020,-24.3068,-24.3068,-24.2956,-24.2920) w=c(-45.8529,-45.8302,-45.7575,-45.6680,-45.6107,-45.5050,-45.4574,-45.4058,-45.3538,-45.2913,-45.2634,-45.2264,-45.1667,-45.0719,-45. 0213,-45.,-45.,-44.9748,-44.8726,-44.8405,-44.8405,-44.8351,-44.8259,-44.7972,-44.7764,-44.6867,-44.6674,-44.5912,-44.5587,-44 .4927,-44.4515,-44.4115,-44.3314,-44.2664,-44.2171,-44.1729,-44.1288,-44.0820,-44.0509,-44.0118,-44.) se vocês plotarem eles, obteram uma curva, gostaria de obter a função desta curva ou uma regressão polinomial de grau elevado dela já tentei usar a função lm e não deu um bom resultado, quando chego em graus elevados e calculo utilizando os coeficientes obtidos os valores dão 10 vezes maiores (não sei bem porque) mas quando ploto ela aparece bonitinha no lugar que deveria aprecer em outro caso tentei na raça mesmo por multiplicação matricial mas também deu errado pois os valores da multiplicação da inversa são muito pequenos alguém pode me dar uma sugestão ou uma luz do que eu estou fazendo de errado? Tito Conte ___ R-br mailing list R-br@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.
Re: [R-br] regressão polinomial
Segue o código # pontos y=c(-26.,-25.9862,-25.**9343,-25.8822,-25.8433,-25.** 8054,-25.7948,-25.7872,-25.**7668,-25.7284,-25.7015,-25.** 6282,-25.4612,-25.3016,-25. 2564,-25.2412,-25.2412,-25.**2232,-25.0869,-25.,-25.** ,-24.9856,-24.9397,-24.**8976,-24.8533,-24.6587,-24.** 6373,-24.5740,-24.5406,-24 .4379,-24.3934,-24.3628,-24.**3277,-24.3042,-24.2972,-24.** 2973,-24.3020,-24.3068,-24.**3068,-24.2956,-24.2920) x=c(-45.8529,-45.8302,-45.**7575,-45.6680,-45.6107,-45.** 5050,-45.4574,-45.4058,-45.**3538,-45.2913,-45.2634,-45.** 2264,-45.1667,-45.0719,-45. 0213,-45.,-45.,-44.**9748,-44.8726,-44.8405,-44.** 8405,-44.8351,-44.8259,-44.**7972,-44.7764,-44.6867,-44.** 6674,-44.5912,-44.5587,-44 .4927,-44.4515,-44.4115,-44.**3314,-44.2664,-44.2171,-44.** 1729,-44.1288,-44.0820,-44.**0509,-44.0118,-44.) # regressão polinomial m=lm(y~x+I(x^2)+I(x^3)+I(x^4)+I(x^5)) # criar polinomio de ordem 5 # extraindo os coeficientes b0=coefficient(m)[1] b1=coefficient(m)[2] b2=coefficient(m)[3] b3=coefficient(m)[4] b4=coefficient(m)[5] b5=coefficient(m)[6] # recalculando m_teste=b0+b1*x+b2*x^2+b3*x^3+b4*x^4+b5*x^5 A idéia seria que os pontos de m_teste dessem semelhantes a y mas isso não acontece ___ R-br mailing list R-br@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.
Re: [R-br] regressão polinomial
O seu modelo m retorna NA nos dois ultimos coeficientes, portanto o m_teste será NA. Além disso, coefficient() é uma função de algum pacote específico? O padrão é coef(). Vc tentou predict(m) # ignora os coeficientes com NA plot(x,y) lines(x, predict(m)) ? --- Fernando Mayer Universidade Federal de Santa Catarina - UFSC Departamento de Ecologia e Zoologia - ECZ/CCB URL: http://sites.google.com/site/fernandomayer e-mail: fernandomayer [@] gmail.com 2012/7/24 Tito Conte tito.co...@gmail.com: Segue o código # pontos y=c(-26.,-25.9862,-25.9343,-25.8822,-25.8433,-25.8054,-25.7948,-25.7872,-25.7668,-25.7284,-25.7015,-25.6282,-25.4612,-25.3016,-25. 2564,-25.2412,-25.2412,-25.2232,-25.0869,-25.,-25.,-24.9856,-24.9397,-24.8976,-24.8533,-24.6587,-24.6373,-24.5740,-24.5406,-24 .4379,-24.3934,-24.3628,-24.3277,-24.3042,-24.2972,-24.2973,-24.3020,-24.3068,-24.3068,-24.2956,-24.2920) x=c(-45.8529,-45.8302,-45.7575,-45.6680,-45.6107,-45.5050,-45.4574,-45.4058,-45.3538,-45.2913,-45.2634,-45.2264,-45.1667,-45.0719,-45. 0213,-45.,-45.,-44.9748,-44.8726,-44.8405,-44.8405,-44.8351,-44.8259,-44.7972,-44.7764,-44.6867,-44.6674,-44.5912,-44.5587,-44 .4927,-44.4515,-44.4115,-44.3314,-44.2664,-44.2171,-44.1729,-44.1288,-44.0820,-44.0509,-44.0118,-44.) # regressão polinomial m=lm(y~x+I(x^2)+I(x^3)+I(x^4)+I(x^5)) # criar polinomio de ordem 5 # extraindo os coeficientes b0=coefficient(m)[1] b1=coefficient(m)[2] b2=coefficient(m)[3] b3=coefficient(m)[4] b4=coefficient(m)[5] b5=coefficient(m)[6] # recalculando m_teste=b0+b1*x+b2*x^2+b3*x^3+b4*x^4+b5*x^5 A idéia seria que os pontos de m_teste dessem semelhantes a y mas isso não acontece ___ R-br mailing list R-br@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. ___ R-br mailing list R-br@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.
Re: [R-br] Regressão polinomial. Uma discussão teórica!
Ivan, Concordo plenamente com a opinião do Paulo! Adicionalmente, efeitos cúbicos, embora significativos, são bem difíceis de serem explicados. Uma opção seria encerrar o modelo no quadrático. Abs, -- ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\ Jose Claudio Faria Estatistica - Prof. Pleno UESC/DCET/Brasil joseclaudio.faria at gmail.com ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\ Em 23 de outubro de 2011 16:32, Paulo J Ribeiro Jr paulo...@leg.ufpr.br escreveu: Ivan Uma utra forma de pensar nisto e que explica a recomendacao usual é um ajuste sequencial. O linear melhora om relacao a media geral? a seguir, o quadratico em relacao ao linear e assim por diante portanto, mesmo que o SQ do quadratico seja menor que a do linear (ou o p-valor seja menor) ele ainda é significativo. Portanto, o ajuste nao é um campeonato de p-valores ou SQ, mas sim que cada termo acrescenta algo significativo em relacao ao modelo mais simples anterior Em Dom, 2011-10-23 às 12:22 -0700, Ivan Bezerra Allaman escreveu: Bom tarde senhores!! Me deparei com uma situação que em outrora não havia questionado tal situação, seguindo então o que a literatura indicava. A situação ao qual me refiro, é que ao desdobrar a soma de quadrados de regressão em termos lineares, quadráticos e cúbicos, os três termos foram significativos. FATORES GL SQ QM F value p value Silag:ordered(Tempo):FosForm11.L 1 16.26 16.26 33.97 0. Silag:ordered(Tempo):FosForm11.Q 1 0.22 0.22 0.46 0.5000 Silag:ordered(Tempo):FosForm11.C 1 10.51 10.51 21.96 0. Residuals 108 51.68 0.48 A literatura nos recomenda escolher o termo significativo de maior grau. Sinceramente, ao pararmos para pensar, porque não escolher o termo com a maior SQ, no caso de significância é claro dos dois termos? Afinal, o SQ nos informa o quanto da variação se deve aquele fator não? Esse pensamento, podemos ter no caso de um cálculo a mão certo! Mais hoje em dia, em que temos o valor do p value, não seria mais prudente escolhermos o termo com o maior p value? que consequentemente, é claro, terá o maior SQ? Gostaria de saber a opinião dos colegas a respeito disso. Abraço a todos! (S,f,P) Allaman \begin{signature} = Prof. Dr. Ivan Bezerra Allaman Universidade Estadual de Santa Cruz Departamento de Ciências Exatas e Tecnológicas Ilhéus/BA - Brasil Fone: +55 73 3680-5076 E-mail: ivanala...@yahoo.com.br/ivanala...@gmail.com @ \end{signature} ___ R-br mailing list R-br@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. ___ R-br mailing list R-br@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. ___ R-br mailing list R-br@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.
Re: [R-br] Regressão polinomial. Uma discussão teórica!
Bom dia PJ! Realmente eu não havia pensado deste modo (embora já deveria). Obrigado pelo esclarecimento. É justamente uma grande discussão que faço comigo mesmo Faria, desde que fiz um curso em análise real para entender melhor as funções. Será mesmo que deveríamos abandonar o termo cúbico por encontrar dificuldades em interpretação prática deste termo? Após ler alguns trabalhos e fazer algumas reflexões eu não abandonarei mais este termo e nem um outro grau polinomial. Vejamos bem, um dos principais objetivos ao estabelecer uma equação, é estimar uma resposta para pontos não estudados dentro do domínio em que a equação foi estimada é claro. Um outro ponto, é que a derivada primeira da função de ordem 3 nos traz dois pontos locais, ou seja, um mínimo local e um máximo local. A grande dificuldade pode estar aí, em interpretar estes valores. Por sorte, alguns trabalhos encontraram que uma da raízes estavam fora do domínio estudado, facilitando a interpretação final do trabalho. E os trabalhos em que as duas raízes estavam dentro do domínio estudado? O único trabalho que achei (busca rápida) ignorou uma das raízes, baseando sua conclusão na outra raiz. Eu sinceramente não acho correto esta abordagem, pois dentro do âmbito da variação biológica, aquela raiz ignorada pode ter alguma interpretação. Mais o que fazer como um prestador de serviço (não só isso é claro) como a maioria de nós? Bom, na minha opinião, é dar o resultado da equação cúbica, fornecer o mínimo e o máximo local, e sugerir que em experimento futuros, os níveis sejam aumentados para verificar se o comportamento dos pontos se repetem. Qual a opinião dos colegas? Abraços! (S,f,P) Allaman \begin{signature} = Prof. Dr. Ivan Bezerra Allaman Universidade Estadual de Santa Cruz Departamento de Ciências Exatas e Tecnológicas Ilhéus/BA - Brasil Fone: +55 73 3680-5076 E-mail: ivanala...@yahoo.com.br/ivanala...@gmail.com @ \end{signature} De: Paulo J Ribeiro Jr paulo...@leg.ufpr.br Para: r-br@listas.c3sl.ufpr.br; Ivan Bezerra Allaman ivanala...@yahoo.com.br Enviadas: Domingo, 23 de Outubro de 2011 16:32 Assunto: Re: [R-br] Regressão polinomial. Uma discussão teórica! Ivan Uma utra forma de pensar nisto e que explica a recomendacao usual é um ajuste sequencial. O linear melhora om relacao a media geral? a seguir, o quadratico em relacao ao linear e assim por diante portanto, mesmo que o SQ do quadratico seja menor que a do linear (ou o p-valor seja menor) ele ainda é significativo. Portanto, o ajuste nao é um campeonato de p-valores ou SQ, mas sim que cada termo acrescenta algo significativo em relacao ao modelo mais simples anterior Em Dom, 2011-10-23 às 12:22 -0700, Ivan Bezerra Allaman escreveu: Bom tarde senhores!! Me deparei com uma situação que em outrora não havia questionado tal situação, seguindo então o que a literatura indicava. A situação ao qual me refiro, é que ao desdobrar a soma de quadrados de regressão em termos lineares, quadráticos e cúbicos, os três termos foram significativos. FATORES GL SQ QM F value p value Silag:ordered(Tempo):FosForm11.L 1 16.26 16.26 33.97 0. Silag:ordered(Tempo):FosForm11.Q 1 0.22 0.22 0.46 0.5000 Silag:ordered(Tempo):FosForm11.C 1 10.51 10.51 21.96 0. Residuals 108 51.68 0.48 A literatura nos recomenda escolher o termo significativo de maior grau. Sinceramente, ao pararmos para pensar, porque não escolher o termo com a maior SQ, no caso de significância é claro dos dois termos? Afinal, o SQ nos informa o quanto da variação se deve aquele fator não? Esse pensamento, podemos ter no caso de um cálculo a mão certo! Mais hoje em dia, em que temos o valor do p value, não seria mais prudente escolhermos o termo com o maior p value? que consequentemente, é claro, terá o maior SQ? Gostaria de saber a opinião dos colegas a respeito disso. Abraço a todos! (S,f,P) Allaman \begin{signature} = Prof. Dr. Ivan Bezerra Allaman Universidade Estadual de Santa Cruz Departamento de Ciências Exatas e Tecnológicas Ilhéus/BA - Brasil Fone: +55 73 3680-5076 E-mail: ivanala...@yahoo.com.br/ivanala...@gmail.com @ \end{signature} ___ R-br mailing list R-br@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.___ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o
Re: [R-br] Regressão polinomial. Uma discussão teórica!
Ivan, Eu dificilmente perco tempo tentando interpretar parâmetros de um modelo polinômial de grau maior ou igual à 2. Isso mesmo, quadrático eu já nem olho para os valores estimados. Só olho para o sinal do termos quadrado que indica a concavidade. Qualquer esforço de interpretação a partir daí eu acho disperdício. Eu prefiro fazer a predição com bandas de confiança e a fazer uma discussão intervalar. Quando ao modelo cúbico, penso que na maioria das vezes ele seja uma aproximação local para uma curva sigmóide (típicas em estudos de crescimento biológico). Como temos diversas maneiras de ajustar e diversos modelos com padrão sigmóide, vou direto para um modelo de regressão não linear. É difícil imaginar/justificar um fenômeno que função descresça (cresça), alcançe o mínimo (máximo), cresça (descareça), alcance o máximo (mínimo) e volte a decrescer (crescer) [padrão polinômio cúbico]. Exergo como uma simoidal (que não tem os pontos de mínimo e máximo) ou uma trigonométrica em termos de senos ou cosenos (sazonal). A media que o tempo passa, desaconselho mais e mais o uso de polinômios e estimulo à adoção de um modelo não linear. À disposição. Walmes. == Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: wal...@ufpr.br twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 == ___ R-br mailing list R-br@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.
Re: [R-br] Regressão polinomial. Uma discussão teórica!
Ivan, Apenas para não parecer que abandonei a discussão: fecho com o Walmes em relação a polinomiais 2: melhor não perder tempo. Como alternativas: investigar os não lineares ou as séries de Fourrier (estes úlimos mais flexíveis e poderosos que os polinomiais de nível elevado). Abs, -- ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\ Jose Claudio Faria Estatistica - Prof. Pleno UESC/DCET/Brasil joseclaudio.faria at gmail.com ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\ Em 24 de outubro de 2011 08:38, Paulo Justiniano paulo...@leg.ufpr.br escreveu: Caros colocando mais alternativas é bom se perguntar em cada contexto se um modelo polinomial é mesmo o que queremos. Modelos polinomiais e nao-lineares sao globais, ou seja, assumimos (ou esperamos) que sejam válidos e razoáveis em todo o domínio dos dados As vezes quermos um modelo descritivo, localmente ajustado, sem a necessicade de uma equação global. Neste casos splines gam's e similares podem ser de maior utilizada No contexto que o Walmes disse que nao se preocupa em interpretar coeficientes esa questao se coloca. O modelo nao linear é útil desde que motivado fisica/biologicamente. Sendo desconhecido/arbitrário uma gam te ajuda a encotnrar a forma da relacao com certa flexibilidade On Mon, 24 Oct 2011, Walmes Zeviani wrote: Ivan, Eu dificilmente perco tempo tentando interpretar parâmetros de um modelo polinômial de grau maior ou igual à 2. Isso mesmo, quadrático eu já nem olho para os valores estimados. Só olho para o sinal do termos quadrado que indica a concavidade. Qualquer esforço de interpretação a partir daí eu acho disperdício. Eu prefiro fazer a predição com bandas de confiança e a fazer uma discussão intervalar. Quando ao modelo cúbico, penso que na maioria das vezes ele seja uma aproximação local para uma curva sigmóide (típicas em estudos de crescimento biológico). Como temos diversas maneiras de ajustar e diversos modelos com padrão sigmóide, vou direto para um modelo de regressão não linear. É difícil imaginar/justificar um fenômeno que função descresça (cresça), alcançe o mínimo (máximo), cresça (descareça), alcance o máximo (mínimo) e volte a decrescer (crescer) [padrão polinômio cúbico]. Exergo como uma simoidal (que não tem os pontos de mínimo e máximo) ou uma trigonométrica em termos de senos ou cosenos (sazonal). A media que o tempo passa, desaconselho mais e mais o uso de polinômios e estimulo à adoção de um modelo não linear. À disposição. Walmes. == Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: wal...@ufpr.br twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 == ___ R-br mailing list R-br@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. ___ R-br mailing list R-br@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.