Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
disciplinas:ce709-2010:atividades [2010/10/04 14:12] – walmes | disciplinas:ce709-2010:atividades [2010/10/20 20:01] (atual) – walmes | ||
---|---|---|---|
Linha 5: | Linha 5: | ||
Saudações. Está previsto para a disciplina de estudos dirigidos em estatística a abordagem do tópico Modelos Não Lineares. Para início de discussão os seguintes materiais devem ser lidos: | Saudações. Está previsto para a disciplina de estudos dirigidos em estatística a abordagem do tópico Modelos Não Lineares. Para início de discussão os seguintes materiais devem ser lidos: | ||
- | * Capítulo | + | * Capítulo |
* Apêndice do John Fox sobre regressão não linear com o R ([[http:// | * Apêndice do John Fox sobre regressão não linear com o R ([[http:// | ||
* Exemplo de ajuste de modelo não linear com o R da página do Prof Paulo Justiniano ([[http:// | * Exemplo de ajuste de modelo não linear com o R da página do Prof Paulo Justiniano ([[http:// | ||
Linha 52: | Linha 52: | ||
# | # | ||
# daqui em diante é com você... | # daqui em diante é com você... | ||
+ | |||
+ | # | ||
+ | # exemplo de uso da optim() | ||
+ | |||
+ | x <- 1:9 | ||
+ | A <- 5 | ||
+ | B <- 1 | ||
+ | y <- A*x/ | ||
+ | plot(y~x) | ||
+ | curve(A*x/ | ||
+ | |||
+ | # | ||
+ | # definição da função objetivo | ||
+ | |||
+ | fun.objetivo <- function(theta, | ||
+ | sum((y-theta[1]*x/ | ||
+ | } | ||
+ | |||
+ | # | ||
+ | # escolha de valores iniciais | ||
+ | |||
+ | start <- c(3,0.5) | ||
+ | |||
+ | # | ||
+ | # optimização da função objetivo | ||
+ | |||
+ | opt <- optim(start, | ||
+ | opt | ||
+ | |||
+ | curve(opt$par[1]*x/ | ||
+ | |||
+ | # | ||
+ | # usando outra função objetivo | ||
+ | |||
+ | fun.objetivo <- function(theta, | ||
+ | n <- length(y) | ||
+ | -(-n/ | ||
+ | sum((y-theta[1]*x/ | ||
+ | } | ||
+ | |||
+ | # | ||
+ | # os chutes | ||
+ | |||
+ | start <- c(3, | ||
+ | |||
+ | # | ||
+ | # optimização | ||
+ | |||
+ | opt <- optim(start, | ||
+ | opt | ||
+ | |||
+ | curve(opt$par[1]*x/ | ||
+ | # | ||
+ | |||
+ | # | ||
+ | |||
+ | library(gWidgetsRGtk2) | ||
+ | |||
+ | da <- data.frame(x=1: | ||
+ | da$y <- 10*da$x/ | ||
+ | plot(y~x, data=da) | ||
+ | |||
+ | # | ||
+ | |||
+ | limits <- list(A=c(0, | ||
+ | |||
+ | plotMM <- function(...){ | ||
+ | plot(y~x, data=da) | ||
+ | curve(svalue(A)*x^svalue(n)/ | ||
+ | } | ||
+ | |||
+ | w <- gwindow(" | ||
+ | |||
+ | tbl = glayout(cont=w) | ||
+ | for(i in 1: | ||
+ | tbl[i,1] <- paste(" | ||
+ | tbl[i,2, expand=TRUE] <- (assign(names(limits)[i], | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | plotMM() | ||
+ | |||
+ | # | ||
</ | </ | ||