1 Arquivo iris

library(stats)
library(ggplot2)
head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa

2 Análise de Correlação

2.1 Gráfico de Dispersão

ggplot()+
  aes(x=iris$Petal.Length,y=iris$Sepal.Length )+
  geom_point()+
  geom_smooth(method=lm)+
  labs(
   
    title = "Gráfico de Dispersão com linha de tendência",
    
  ) 
## `geom_smooth()` using formula 'y ~ x'

2.2 Medida de Correlação

correlacao=cor(iris$Sepal.Length, iris$Petal.Length)
print(correlacao)
## [1] 0.8717538

3 Ajuste do Modelo de Regressão

3.1 lm(y~x) Linear Models

reg<-lm(Sepal.Length~Petal.Length, data=iris)
summary(reg)
## 
## Call:
## lm(formula = Sepal.Length ~ Petal.Length, data = iris)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.24675 -0.29657 -0.01515  0.27676  1.00269 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   4.30660    0.07839   54.94   <2e-16 ***
## Petal.Length  0.40892    0.01889   21.65   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4071 on 148 degrees of freedom
## Multiple R-squared:   0.76,  Adjusted R-squared:  0.7583 
## F-statistic: 468.6 on 1 and 148 DF,  p-value: < 2.2e-16

3.2 Valores Cálculados.

3.2.1 Mostra todos os parâmentros cálculados pela regressão.

names(reg)
##  [1] "coefficients"  "residuals"     "effects"       "rank"         
##  [5] "fitted.values" "assign"        "qr"            "df.residual"  
##  [9] "xlevels"       "call"          "terms"         "model"

3.2.1.1 \(\to\) reg$fitted.values: calcula os valores preditos da variável resposta para cada elemento da amostra (faz uma previsão);

3.2.1.2 \(\to\) reg$residuals: calcula o erro ou os resíduos (valor observado - valor predito) para cada ponto da amostra;

3.2.1.3 \(\to\) reg$coefficients: obtém uma estimativa dos coeficientes da regressão.

3.3 Verificação do Ajuste do Modelo

3.3.1 1. Normalidade dos Erros.

qqnorm(reg$residuals, pch = 20, frame = FALSE)
qqline(reg$residuals, col = "red", lwd = 2)

hist(reg$residuals)

3.3.2 2. Resíduos vs valores Ajustados

ggplot()+
  aes(x=reg$fitted.values,y=reg$residuals )+
  geom_point()+
  geom_hline(yintercept = 0, col="red")

3.3.3 3. Residuos vs variaveis explicativas

ggplot()+
  aes(x=iris$Petal.Length,y=reg$residuals )+
  geom_point()+
  geom_hline(yintercept = 0, col="blue")

3.3.4 4. Gráfico dos Resíduos contra o tempo ou ordem de coleta.

y=reg$residuals
length(reg$residuals)
## [1] 150
x=seq(1:150)

dado_temporal<-data.frame(x,y)

ggplot(dado_temporal)+
  aes(x=x,y=y )+
  geom_point()+
  geom_hline(yintercept = 0, col="red")+
 labs(
  x = "Tempo",
  y = "Resíduos",
  title = "Gráfico Residuos vs tempo",
 
) 

4 Outra Maneira

par(mfrow=c(2,2))

plot(reg, wich=2, pch=20)

5 Metodo de Minimos Quadrados.

Mat_x <- matrix(c(1,1,1,1,1,1,1,1,1,1,6,5,9,10,3,4,8,7,6,2),10,2)
Est_y <-matrix(c(7,6,10,9,2,3,9,5,6,3),10,1)

beta=solve(t(Mat_x)%*%Mat_x)%*%t(Mat_x)%*%Est_y
print(beta)
##           [,1]
## [1,] 0.1000000
## [2,] 0.9833333

6 Métodos dos Momentos.

vet_x<-c(6,5,9,10,3,4,8,7,6,2)
vet_y<-c(7,6,10,9,2,3,9,5,6,3)
covxy<-cov(vet_x, vet_y)
varx<-var(vet_x)
b1<-covxy/varx
b0<-mean(vet_y)-b1*mean(vet_x)
print(data.frame(b0,b1))
##    b0        b1
## 1 0.1 0.9833333