Ajuste de regressão linear

Bom dia,este é um CMR hipotético. dados <- expand.grid(A=factor(paste("A", 1:3, sep="")),B=factor(paste("B", 1:4, sep="")), rep=1:4)dados$y <- rgamma(n=48,shape=2, scale = 2) summary(lm(y~rep, data = subset(dados,B=="B1")))plot(y ~resp) summary(lm(y~rep, data = subset(dados,B=="B2")))plot(y ~resp) summary(lm(y~rep, data = subset(dados,B=="B3")))plot(y ~resp) summary(lm(y~rep, data = subset(dados,B=="B4"))) Como posso automatizar estas regressões com um for? Alguma sugestão? Sem plot já está ótimo! Obrigado André Oliveira Souza

André, mão está otimizado mas já te dá um norte. Estou assumindo que o resp do plot é o rep do objeto dados b <- sort(unique(dados$B)) # ou levels(dados$B) modelos.summary <- vector(mode = 'list', length = length(b)) for (i in 1:length(b)) { dados.modelo <- subset(x = dados, subset = B == b[i]) modelos.summary[[i]] <- summary(lm(y ~ rep, data = dados.modelo)) png(paste0("Gráfico ", b[i], ".png")) plot(dados.modelo$y ~ dados.modelo$rep) dev.off() } names(modelos.summary) <- b

André, rapidamente, sem o plot e também sem testar: dados <- expand.grid(A=factor(paste("A", 1:3, sep="")),B=factor(paste("B", 1:4, sep="")), rep=1:4) dados$y <- rgamma(n=48,shape=2, scale = 2) lapply(paste("B", 1:4, sep=""), function(x){summary(lm(y~rep, data = subset(dados,B==x)))}) Se funcionar, é só colocar as linhas do plot dentro da função. abs Paulo Atenciosamente, Paulo Nogueira Starzynski 2015-07-02 8:44 GMT-03:00 Diego Miro <d.miro1089@gmail.com>:
André, mão está otimizado mas já te dá um norte.
Estou assumindo que o resp do plot é o rep do objeto dados
b <- sort(unique(dados$B)) # ou levels(dados$B) modelos.summary <- vector(mode = 'list', length = length(b)) for (i in 1:length(b)) { dados.modelo <- subset(x = dados, subset = B == b[i]) modelos.summary[[i]] <- summary(lm(y ~ rep, data = dados.modelo)) png(paste0("Gráfico ", b[i], ".png")) plot(dados.modelo$y ~ dados.modelo$rep) dev.off() } names(modelos.summary) <- b
_______________________________________________ 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.

Mais algumas opções. dados <- expand.grid(A=factor(paste("A", 1:3, sep="")), B=factor(paste("B", 1:4, sep="")), rep=1:4) dados$y <- rgamma(n=48, shape=2, scale=2) m0 <- by(data=dados, INDICES=dados$B, FUN=lm, formula=y~rep) lapply(m0, summary) lapply(m0, anova) sapply(m0, coef) require(plyr) m0 <- dlply(.data=dados, "B", .fun=lm, formula=y~rep) lapply(m0, summary) lapply(m0, anova) sapply(m0, coef) À disposição. Walmes.

Obrigado pelas belas contribuições! André Oliveira Souza. Graduação em Matemática, mestrado em estatística aplicada.Instituto Federal de Educação, Ciência e Tecnologia do Espirito Santo. IFES Em Quinta-feira, 2 de Julho de 2015 11:40, Walmes Zeviani <walmeszeviani@gmail.com> escreveu: Mais algumas opções. dados <- expand.grid(A=factor(paste("A", 1:3, sep="")), B=factor(paste("B", 1:4, sep="")), rep=1:4)dados$y <- rgamma(n=48, shape=2, scale=2) m0 <- by(data=dados, INDICES=dados$B, FUN=lm, formula=y~rep) lapply(m0, summary)lapply(m0, anova)sapply(m0, coef) require(plyr) m0 <- dlply(.data=dados, "B", .fun=lm, formula=y~rep) lapply(m0, summary)lapply(m0, anova)sapply(m0, coef) À 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.
participantes (4)
-
Andre Oliveira
-
Diego Miro
-
Paulo Nogueira Starzynski
-
Walmes Zeviani