R Markdown

Cargar el dataset Abalone

data <- read.csv("https://raw.githubusercontent.com/geovannychoez/prueba/master/abalone.data", header = FALSE)

Renombrar las columnas

names(data) <- c('Sex','Length','Diameter','Height','Whole_weight','Shucked_weight','Viscera_weight','Shell_weight','Rings')

Resumen estadĆ­stico de las variables

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

Ajustar el modelo de regresión lineal múltiple

model <- lm(Rings ~ Length + Diameter + Whole_weight + Shell_weight, data = data)

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

Ecuación MatemÔtica del Modelo

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.

Pruebas de Hipótesis Individuales

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:

  • Hipótesis nula (\(H_0\)): \(\beta_i = 0\) (La variable \(X_i\) no tiene un efecto significativo en \(Y\)).
  • Hipótesis alternativa (\(H_A\)): \(\beta_i \neq 0\) (La variable \(X_i\) tiene un efecto significativo en \(Y\)).
# 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

Coeficiente de Determinación (\(R^2\))

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

Conclusiones

AnƔlisis de componentes principales (ACP)

# 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)

GrƔfica de los Coeficientes de las Componentes y Variables Originales

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)

GrƔfico de la Varianza Explicada por Cada Componente

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))

Biplot de las Dos Primeras Componentes

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")