library("readr")
triangulos <- read_csv("Triangulosdatos.csv")
## Parsed with column specification:
## cols(
## base = col_double(),
## altura = col_double(),
## area = col_double()
## )
*Matriz de diagramas de dispersion
pairs(triangulos)
A continuacion se hara una cuantidicacion del grado de relacion lineal, por medio de la matriz de coeficientes de correlacion
cor(triangulos)
## base altura area
## base 1.0000000 1.0000000 0.9702989
## altura 1.0000000 1.0000000 0.9702989
## area 0.9702989 0.9702989 1.0000000
regresion <- lm(altura ~ base, data=triangulos)
summary(triangulos)
## base altura area
## Min. : 1.00 Min. : 2.0 Min. : 1.00
## 1st Qu.: 8.25 1st Qu.:16.5 1st Qu.: 68.25
## Median :15.50 Median :31.0 Median :240.50
## Mean :15.50 Mean :31.0 Mean :315.17
## 3rd Qu.:22.75 3rd Qu.:45.5 3rd Qu.:517.75
## Max. :30.00 Max. :60.0 Max. :900.00
\[y = 102.5751 + 5.3207x \]
plot(triangulos$base, triangulos$altura, xlab = "Base", ylab ="Altura")
abline(regresion)
nuevas.bases <- data.frame(base = seq(30,50))
predict(regresion, nuevas.bases)
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
## 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98
## 21
## 100
\[y_i = \beta_0 + \beta_1 x_i + \epsilon_i, \ \ \ \ i=1,\ldots,n, \] Donde: * Los errores aleatorios \(\epsilon_i\) son independientes con distribucion normal 0 y varianza \(\sigma^2\)
confint(regresion)
## Warning in summary.lm(object, ...): essentially perfect fit: summary may be
## unreliable
## 2.5 % 97.5 %
## (Intercept) -7.290265e-15 -3.087876e-15
## base 2.000000e+00 2.000000e+00
confint(regresion, level=0.90)
## Warning in summary.lm(object, ...): essentially perfect fit: summary may be
## unreliable
## 5 % 95 %
## (Intercept) -6.93404e-15 -3.444101e-15
## base 2.00000e+00 2.000000e+00
nuevas.edades <- data.frame(edad = seq(30,60))
# Grafico de dispersion y recta
plot(triangulos$base, triangulos$altura, xlab = "Base", ylab ="Altura")
abline(regresion)
# Intervalos de confianza de la respuesta media
# ic es una matriz de 3 columnas:
# La primera es la prediccion, y las otras son los extremos del intervalo
ic <- predict(regresion, nuevas.bases, interval = "confidence")
lines(nuevas.bases$base, ic[,2], lty = 2)
lines(nuevas.bases$base, ic[,3], lty = 2)
# Intervalo de predicción
ic <- predict(regresion, nuevas.bases, interval = "prediction")
lines(nuevas.bases$base, ic[,2], lty = 2, col = "red")
lines(nuevas.bases$base, ic[,3], lty = 2, col = "red")