## Objetivos:
## a) Apresentar os recursos básicos do R para análise de regressão
## b) Fundamentação em regressão linear simples
## c) Fundamentação em álgebra de matrizes
## Exemplos via algebra de matrizes
N   <- c(10, 20, 30, 40, 50, 60, 70)
Pro <- c(1000, 2300, 2600, 3900, 5400, 5800, 6600)
(X <- cbind(1, N))        # Ajustando um modelo linear de 1 grau 
#(X <- cbind(N))           # Ajustando um modelo linear de 1 grau forçando para a origem
#(X <- cbind(1, N, N^2))   # Ajustando um modelo linear de 2 grau
(Y <- cbind(Pro))
(XlX     <- t(X) %*% X)
(XlX_inv <- solve(XlX))
(XlY     <- t(X) %*% Y)
(b_est   <- XlX_inv %*% XlY) # vetor das estimativas dos parâmetros do modelo ajustado: inv(X'X) * (X'Y)
(Y_est   <- X %*% b_est)     # vetor dos valores Y estimados pelo modelo ajustado
(res     <- Y - Y_est)       # vetor dos erros
plot(Pro ~ N,
     xlim=c(0, 70),
     ylim=c(0, 7000),
     pch=19,
     col='darkgreen')
lines(Y_est ~ N,
      col='red')
points(Y_est ~ N,
       col='red',
       pch=19)
##===============================================================================
## ÊNFASE NAS FUNÇÕES DO R - USO ROTINEIRO
##===============================================================================
## Gerando dados de um experimento virtual
## x: variável independente (regressor/tratamento)
## y: variável dependente (fator resposta)
set.seed(10082006)
x <- sort(rep(1:5,
              6))             # 5 tratamentos e 6 repetições
r <- rep(1:6,
         5)                   # repetições
y <- 2 + 1 * x + rnorm(30, 
                       mean=0, 
                       sd=1)  # definindo a variável de resposta, segundo um modelo linear
## pré-concebido (y = 2 + 1*x)
## com uma pertubação (erro experimental) intencional adicional
(dad  <- data.frame(x, 
                    r, 
                    y))
## Visualizando os dados
with(dad,
     plot(y ~ factor(x),
          ylim=c(0, 10)))
## Observar que x visualmente influencia y
## ANOVA preliminar segundo delineamento inteiramente casualizado - DIC
av <- aov(y ~ factor(x),
          data=dad)
summary(av)              
## Pode concluir que o efeito dos tratamentos (níveis de x) é significativo.
## Como os tratamentos são quantitativos, a análise deve ser, necessariamente,
## conduzida via análise de regressão.
## Ou seja, não se pode realizar testes de comparação de médias múltiplas,
## nem análise de contrastes, para comparar os níveis de x.
## É necessário estudar se é possível estabelecer uma relação
## funcional de y em função de x. Em outras palavras, ajustar um modelo
## matemático que permita a predição de y a medida que x varia no intervalo
## considerado, além de testar a validade do modelo.
## Calculando as médias de tratamentos
dad_m <- aggregate(y ~ x,
                   data=dad,
                   mean)
dad_m
## Ajustando modelo linear e visualizando os resultados
with(dad_m,
     plot(y ~ x,
          ylab='m(y)',
          ylim=c(0, 10),
          pch=19,
          col='blue'))
## Polinomio de 1 grau
reg <- lm(y ~ x,
          data=dad_m)
## Polinomio de 2 grau
# reg <- lm(y ~ x + I(x^2),
#           data=dad_m)
summary(reg)
ANOVAreg <- anova(reg)
ANOVAreg
## Conclusão: o r2 é elevado e 98,54% da variação na variável de resposta y,
## decorrente da variação na variável independente x, é explicada
## pelo modelo linear (y = 1.62941 + 1.09960x) ajustado.
## Em outras palavras, o modelo linear ajustado explica satisfatoriamente as
## as variações da variável dependente y em decorrência da variação na variável
## independente (ou regressora, x).
## Predizer valores y a partir de valores x
newdad <- data.frame(x=c(1.5, 2.5, 3.5, 4.5))
y_pred <- predict(reg,
                  newdata=newdad)
y_pred
## Visualizar médias e modelo linear ajustado
lines(fitted(reg) ~ dad_m$x,
      col='red')
## Visualizar valores preditos
points(x=c(1.5, 2.5, 3.5, 4.5),
       y=y_pred,
       pch=19,
       col='red')
Meu nome é Miklos Bajay, consultor sênior especializado em assessoria estatística para artigos científicos, trabalhos de conclusão de curso, dissertações de mestrado e teses de doutorados. Se você estiver precisando de apoio técnico para análise estatística do seu trabalho acadêmico, elaboramos um relatório estatístico, a partir da sua base de dados, com todas as análises descritivas, tabelas, gráficos, testes e modelos estatísticos utilizados para resolução do seu problema de pesquisa.
Análise de Regressão
Marcadores:
Análise de Regressão