data <- read.csv("https://raw.githubusercontent.com/geovannychoez/prueba/master/abalone.data", header = FALSE)
names(data) <- c('Sex','Length','Diameter','Height','Whole_weight','Shucked_weight','Viscera_weight','Shell_weight','Rings')
summary(data)
## Sex Length Diameter Height
## Length:4177 Min. :0.075 Min. :0.0550 Min. :0.0000
## Class :character 1st Qu.:0.450 1st Qu.:0.3500 1st Qu.:0.1150
## Mode :character Median :0.545 Median :0.4250 Median :0.1400
## Mean :0.524 Mean :0.4079 Mean :0.1395
## 3rd Qu.:0.615 3rd Qu.:0.4800 3rd Qu.:0.1650
## Max. :0.815 Max. :0.6500 Max. :1.1300
## Whole_weight Shucked_weight Viscera_weight Shell_weight
## Min. :0.0020 Min. :0.0010 Min. :0.0005 Min. :0.0015
## 1st Qu.:0.4415 1st Qu.:0.1860 1st Qu.:0.0935 1st Qu.:0.1300
## Median :0.7995 Median :0.3360 Median :0.1710 Median :0.2340
## Mean :0.8287 Mean :0.3594 Mean :0.1806 Mean :0.2388
## 3rd Qu.:1.1530 3rd Qu.:0.5020 3rd Qu.:0.2530 3rd Qu.:0.3290
## Max. :2.8255 Max. :1.4880 Max. :0.7600 Max. :1.0050
## Rings
## Min. : 1.000
## 1st Qu.: 8.000
## Median : 9.000
## Mean : 9.934
## 3rd Qu.:11.000
## Max. :29.000
model <- lm(Rings ~ Length + Diameter + Whole_weight + Shell_weight, data = data)
summary(model)
##
## Call:
## lm(formula = Rings ~ Length + Diameter + Whole_weight + Shell_weight,
## data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.1248 -1.4787 -0.5107 0.8940 16.2683
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.0535 0.2833 14.310 < 2e-16 ***
## Length -4.8644 1.9541 -2.489 0.0128 *
## Diameter 16.5681 2.3930 6.924 5.08e-12 ***
## Whole_weight -5.8585 0.2987 -19.611 < 2e-16 ***
## Shell_weight 27.3266 0.9224 29.625 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.39 on 4172 degrees of freedom
## Multiple R-squared: 0.4511, Adjusted R-squared: 0.4506
## F-statistic: 857.1 on 4 and 4172 DF, p-value: < 2.2e-16
La ecuación del modelo de regresión lineal múltiple es:
\[ \hat{Rings} = 4.05 - 4.86 \times \text{Length} + 16.57 \times \text{Diameter} - 5.86 \times \text{Whole_weight} + 27.33 \times \text{Shell_weight} \]
Donde: - \(\hat{Rings}\) es la
variable dependiente (nĆŗmero de anillos predicho). - Length
es la longitud del abulón. - Diameter es el diÔmetro del
abulón. - Whole_weight es el peso total del abulón. -
Shell_weight es el peso de la concha del abulón.
Las pruebas de hipótesis individuales evalúan si los coeficientes de las variables independientes en el modelo de regresión lineal múltiple son significativamente diferentes de cero. Las hipótesis para cada coeficiente \(\beta_i\) son:
# Mostrar el resumen del modelo
summary(model)
##
## Call:
## lm(formula = Rings ~ Length + Diameter + Whole_weight + Shell_weight,
## data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.1248 -1.4787 -0.5107 0.8940 16.2683
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.0535 0.2833 14.310 < 2e-16 ***
## Length -4.8644 1.9541 -2.489 0.0128 *
## Diameter 16.5681 2.3930 6.924 5.08e-12 ***
## Whole_weight -5.8585 0.2987 -19.611 < 2e-16 ***
## Shell_weight 27.3266 0.9224 29.625 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.39 on 4172 degrees of freedom
## Multiple R-squared: 0.4511, Adjusted R-squared: 0.4506
## F-statistic: 857.1 on 4 and 4172 DF, p-value: < 2.2e-16
El coeficiente de determinación \(R^2\) indica la proporción de la varianza
en la variable dependiente Rings que es explicada por las
variables independientes en el modelo de regresión lineal múltiple.
# Obtener el resumen del modelo
model_summary <- summary(model)
# Extraer el coeficiente de determinación (R^2)
r_squared <- model_summary$r.squared
# Mostrar el valor de R^2
r_squared
## [1] 0.4510902
# Seleccionar solo las variables cuantitativas
data_quant <- data[, c('Length', 'Diameter', 'Height', 'Whole_weight',
'Shucked_weight', 'Viscera_weight', 'Shell_weight', 'Rings')]
# Realizar el ACP
pca_result <- prcomp(data_quant, scale. = TRUE)
El grÔfico a continuación muestra cómo las variables originales contribuyen a las componentes principales:
library(factoextra)
## Cargando paquete requerido: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
# GrƔfico de los coeficientes de las componentes principales
fviz_pca_var(pca_result, col.var = "contrib",gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),repel = TRUE)
El siguiente grƔfico muestra la cantidad de varianza explicada por cada componente principal:
# GrƔfico de la varianza explicada por cada componente
fviz_eig(pca_result, addlabels = TRUE, ylim = c(0, 50))
El biplot a continuación muestra tanto las variables como las observaciones en el espacio de las dos primeras componentes principales:
# Crear un biplot
fviz_pca_biplot(pca_result, repel = TRUE,col.var = "#2E9FDF", col.ind = "#696969")