Exemplo de Regressão Linear Simples

Full text

(1)

Y 25 13 8 20 25 12 10 15

Figura 1: Gráfico de pontos de Y versus X.

2

2

x2

2

2

2

2

x

(2)

y2

2

2

2

2

y

xy2

xy

2

2

y x

xy xy

1

2

x xy

1

0

0

1

2 2

2 2

2

2

xy

y x

xy

i

i

0

1

i

i

i

i

2

i

2

i

i

2

2

i

y

(3)

0

1

A

1

1;6

1;6

A questão que fica: O que dizer desse ajuste?

(4)

###################################

Sol.R <- c(190,118,149,313,299,99,256,290,274,65,334,307,78,322,44,8,320,25,92, 13,252,279,127,291,323,148,191,37,120,137,248,236,175,314,276,267, 272,175,264,175)

Wind <- c(7.4,8,12.6,11.5,8.6,13.8,9.7,9.2,10.9,13.2,11.5,12,18.4,11.5,9.7,9.7, 16.6,9.7,12,12,14.9,7.4,9.7,13.8,11.5,8,14.9,9.2,11.5,10.3,9.2,9.2, 4.6,10.9,5.1,6.3,5.7,7.4,14.3,14.9)

Temp <- c(67,72,74,62,65,59,69,66,68,58,64,66,57,68,62,59,73,61,61,67,81,76,82, 90,87,82,77,65,73,76,85,81,83,83,88,92,92,89,73,81)

Ozone <- c(41,36,12,18,23,19,16,11,14,18,14,34,6,30,11,1,11,4,32,23,45,37,29,71, 39,23,21,20,12,13,49,32,64,40,77,97,97,85,10,27)

cor(cbind(Ozone,Sol.R,Wind,Temp)) # corelações plot(Sol.R,Ozone,pch=19)

plot(Wind,Ozone,pch=19) plot(Temp,Ozone,pch=19)

## Ajustando o modelo para as variáveis Ozone vs. Temp

## X = Temp e Y = Ozone

## --- n <- length(Temp)

xbar <- mean(Temp) ybar <- mean(Ozone)

Sx2 <- sum(Temp^2)-n*(xbar^2) Sy2 <- sum(Ozone^2)-n*(ybar^2) Sxy <- sum(Ozone*Temp)-n*xbar*ybar rxy <- Sxy/sqrt(Sx2*Sy2)

beta1 <- Sxy/Sx2

beta0 <- ybar-beta1*xbar c(beta0,beta1)

ych <- beta0+beta1*Temp # valores ajustados res <- Ozone-ych # resíduos

# Análise gráfica dos resíduos

par(mfrow = c(2,2)) # esse comando divide a janela gráfica numa matriz 2x2

# histograma dos resíduos

hist(res, col = "bisque", xlab="Resíduos padronizados", ylab=" ", main="Histograma dos Resíduos", cex.main=1)

# gráfico normal qq-plot dos resíduos

qqnorm(res, pch=19, col="red", xlab="Quantis teóricos", ylab="Quantis amostrais", main="Normal Q-Q plot dos Resíduos", cex.main=1) qqline(res, col="blue3")

# gráfico resíduos x valores ajustados

lines(c(0,max(ych)),c(0,0),lty=2)

# resíduos x ordem (timeplot)

lines(res, col="blue3")

lines(c(0,max(ych)),c(0,0),lty=2) par(mfrow = c(1,1))

(5)

# gráfico de pontos com modelo ajustado

plot(Temp,Ozone,pch=19, xlab="Temperatura", ylab="Conc.Ozone (ppm)", main="Gráfico XY", cex.main=1)

lines(Temp[order(Temp)],ych[order(Temp)], col="blue3", lwd=2)

#########################################

x <- c(2.5,3.6,5.0,3.7,3.8,3.2,4.3,3.6,4.6,4.3,4.3,4.2,3.0,2.1,2.6,3.1,2.0, 2.2,4.9,4.0,4.9,3.3,2.5,3.5,4.1,2.6,3.9,4.6,4.1,2.3,4.6,3.5,4.4,3.6, 2.9,2.7,4.7,3.6,3.8,3.8)

y <- c(27.2,43.0,146.6,73.4,57.6,37.1,82.0,74.0,104.1,70.8,79.3,105.9,27.5, 21.3,42.6,45.3,18.5,12.2,135.0,70.4,138.9,36.2,26.6,51.3,76.4,14.5, 71.4,130.7,89.3,23.9,111.2,61.6,101.4,77.6,36.8,16.4,144.0,72.1,83.0, 57.5)

cor(x,y)

plot(x,y,pch=19) # gráfico de pontos com relação quadrática entre X e Y

## Ajustando o modelo linear entre X e Y

## ---

ajuste <- lm(y~x) # modelo RLS com variável quadrática coef(ajuste) # coeficientes beta0 e beta1 estimados summary(ajuste) # testes de hipóteses

# Análise gráfica dos resíduos

# ---

res <- ajuste\$res # resíduos

par(mfrow = c(2,2)) # esse comando divide a janela gráfica numa matriz 2x2

# histograma dos resíduos

hist(sdres, col = "bisque", xlab="Resíduos padronizados", ylab=" ", main="Histograma dos Resíduos", cex.main=1)

# gráfico normal qq-plot dos resíduos

qqnorm(sdres, pch=19, col="red", xlab="Quantis teóricos", ylab="Quantis amostrais", main="Normal Q-Q plot dos Resíduos", cex.main=1) qqline(sdres, col="blue3")

# gráfico resíduos x valores ajustados

lines(c(min(ych),max(ych)),c(0,0),lty=2)

# resíduos x ordem (timeplot)

lines(sdres, col="blue3")

lines(c(0,mlength(sdres)),c(0,0),lty=2) par(mfrow = c(1,1))

(6)

#---

plot(x,y,pch=19, xlab="X", ylab="Y", main="Gráfico XY", cex.main=1) lines(x[order(x)],ych[order(x)], col="red2", lwd=2)

## Ajustando o modelo quadrático entre X e Y

## --- x.q <- x^2

ajuste.q <- lm(y~x.q) # modelo RLS com variável quadrática coef(ajuste.q) # coeficientes beta0 e beta1 estimados summary(ajuste.q) # testes de hipóteses

# Análise gráfica dos resíduos

# ---

res.q <- ajuste.q\$res # resíduos

par(mfrow = c(2,2)) # esse comando divide a janela gráfica numa matriz 2x2

# histograma dos resíduos

hist(sdres.q, col = "bisque", xlab="Resíduos padronizados", ylab=" ", main="Histograma dos Resíduos", cex.main=1)

# gráfico normal qq-plot dos resíduos

qqnorm(sdres.q, pch=19, col="red", xlab="Quantis teóricos", ylab="Quantis amostrais", main="Normal Q-Q plot dos Resíduos", cex.main=1)

qqline(sdres.q, col="blue3")

# gráfico resíduos x valores ajustados

lines(c(min(ych.q),max(ych.q)),c(0,0),lty=2)

# resíduos x ordem (timeplot)

lines(sdres.q, col="blue3")

lines(c(0,length(sdres.q)),c(0,0),lty=2) par(mfrow = c(1,1))

#---

plot(x,y,pch=19, xlab="X", ylab="Y", main="Gráfico XY - modelo quadrático em X", cex.main=1)

lines(x[order(x)],ych.q[order(x)], col="red2", lwd=2)

(7)

###########################

x1 <- c(18,18,20,23,23,19,22,22,17,20,21,20,17,22,18,22,21,18) x2 <- c(11,12,13,12,13,10,12,12,13,14,11,13,14,13,13,11,13,14) x3 <- c( 6,32,34,66,33,30,41,46,25,33,37,15,34,11,22,49,41,27) y <- c( 3, 6, 9,13, 9, 3,10,12, 8, 8, 8, 7, 8, 1, 6,10,11, 9) cor(cbind(y,x1,x2,x3)) # corelações

## Realize os três ajustes e verifique os testes F para Ho: beta1 = 0 em cada um deles

## --- plot(x2,y,pch=19)

ajuste2 <- lm(y~x2) # modelo RLS entre x2 e y

summary(ajuste2) # Estatística-F: 0.5625 com 1 e 16 GL, p-valor: 0.4641 plot(x2,y,pch=19, xlab="X2", ylab="Y", main="Gráfico Y vs. X2", cex.main=1) lines(x2[order(x2)],ajuste2\$fit[order(x2)], col="red2", lwd=2)

plot(x1,y,pch=19)

ajuste1 <- lm(y~x1) # modelo RLS entre x1 e y

summary(ajuste1) # Estatística-F: 3.12 com 1 e 16 GL, p-valor: 0.0964 plot(x1,y,pch=19, xlab="X1", ylab="Y", main="Gráfico Y vs. X1", cex.main=1) lines(x1[order(x1)],ajuste1\$fit[order(x1)], col="red2", lwd=2)

plot(x3,y,pch=19)

ajuste1 <- lm(y~x3) # modelo RLS entre x3 e y

summary(ajuste3) # Estatística-F: 34.69 com 1 e 16 GL, p-valor: 0.00002282 plot(x3,y,pch=19, xlab="X3", ylab="Y", main="Gráfico Y vs. X3", cex.main=1) lines(x3[order(x3)],ajuste3\$fit[order(x3)], col="red2", lwd=2)

# Exemplo - 4

#############

y <- c(727.86,735.84,426.53,596.63,1035.7,1141.44,658.88,792.8,783.4,644.13, 504.54,774.79,923.65,702.38,925.6)

x1 <- c(25,26,20,23,30,31,25,28,27,24,22,26,28,25,29) x2 <- c(4,2,4,3,7,6,1,3,2,3,1,4,5,6,3)

cor(cbind(y,x1,x2)) # corelações plot(x2,y,pch=19)

ajuste2 <- lm(y~x2) # modelo RLS entre x1 e y

summary(ajuste2) # Verifique a estatística F e o p-valor

plot(x2,y,pch=19, xlab="X2", ylab="Y", main="Gráfico Y vs. X2", cex.main=1) lines(x2[order(x2)],ajuste2\$fit[order(x2)], col="red2", lwd=2)

plot(x1,y,pch=19)

ajuste1 <- lm(y~x1) # modelo RLS entre x1 e y

summary(ajuste1) # Verifique a estatística F e o p-valor

plot(x1,y,pch=19, xlab="X1", ylab="Y", main="Gráfico Y vs. X1", cex.main=1) lines(x1[order(x1)],ajuste1\$fit[order(x1)], col="red2", lwd=2)

Updating...