Identificación del estudiante

Estudiante: Johann Falkao Gómez Campo (1103743226)

URL en RPubs: https://rpubs.com/Johann_2008/1461633 /Actividad_Evaluativa_1er_50

Carga el Dataset acero.csv

°Dataset CSV es un conjunto de datos estructurados guardado en un archivo de texto plano bajo el formato Comma-Separated Values (Valores Separados por Comas), donde cada línea representa una fila de la tabla y cada columna se separa mediante una coma o punto y coma. Es el formato estándar y universal en ciencia de datos y análisis de información gracias a su ligereza, simplicidad y facilidad para ser importado y procesado en software como Excel, bases de datos o lenguajes de programación como Python y R.

°Dataset CSV sobre acero es un archivo de texto plano que organiza datos de la industria siderúrgica o la ciencia de materiales en una estructura tabular, separando cada celda con comas o puntos y comas; comúnmente incluye variables como la composición química (porcentajes de carbono o cromo), propiedades mecánicas (resistencia a la tracción y dureza), registro de defectos superficiales en láminas o indicadores de consumo energético en su fabricación, lo que permite importarlo fácilmente en programas como Excel o entornos de programación como Python y R para realizar análisis cuantitativos o entrenar modelos de aprendizaje automático.

acero <- read.csv("acero (1).csv",dec = ",")
acero

Examina la estructura del datase acero

# Muestra la estructura del data frame
str(acero)
## 'data.frame':    117 obs. of  20 variables:
##  $ consumo    : num  135.3 84.1 131.6 90.5 120 ...
##  $ pr.tbc     : int  6840 443 7270 5031 9365 9281 3223 10490 7394 8654 ...
##  $ pr.cc      : int  830 903 572 694 1054 1003 1118 1077 1204 851 ...
##  $ pr.ca      : int  0 58 36 122 157 172 0 179 167 0 ...
##  $ pr.galv1   : int  579 611 982 896 403 605 643 737 580 828 ...
##  $ pr.galv2   : int  1401 1636 1963 1568 1480 1525 1424 1333 934 1326 ...
##  $ pr.pint    : int  0 717 243 0 0 473 732 93 247 607 ...
##  $ linea      : chr  "A" "A" "A" "A" ...
##  $ hora       : chr  "1º" "2º" "3º" "4º" ...
##  $ temperatura: chr  "Alta" "Alta" "Baja" "Baja" ...
##  $ averias    : chr  "Si" "No" "No" "No" ...
##  $ naverias   : int  1 0 0 0 0 1 0 0 0 3 ...
##  $ sistema    : chr  "OFF" "OFF" "OFF" "ON" ...
##  $ ProdTotal  : int  11266 7251 11066 8311 12459 13059 8555 18253 11697 13194 ...
##  $ NOx        : num  0.49 0.0725 1.49 1.715 0.465 ...
##  $ CO         : num  3.54 2.9 5.01 2.16 4.84 ...
##  $ COV        : num  0.545 0.425 0.69 0.36 0.662 ...
##  $ SO2        : num  0.038 0.047 0.062 0.066 0.086 0.056 0.07 0.103 0.058 0.066 ...
##  $ CO2        : num  101.5 63.6 98.8 70.2 88.5 ...
##  $ N2O        : num  6.35 2.23 5.99 3.66 6.06 6.15 7.75 9.09 8.69 5 ...

Mostrando algunas variables numéricas y categóricas

# mostrando la variable consumo y la variable de producción total
acero$consumo
##   [1] 135.31  84.08 131.62  90.46 120.04 153.68  99.09 226.38 140.07 161.22
##  [11] 135.92  83.84  57.84 102.66  66.18  61.16  99.37  82.80  92.29  95.57
##  [21] 149.24 131.95  87.34 123.58 143.07 104.00 130.08 141.55  33.18  83.63
##  [31] 147.88  87.29  83.18  76.41  66.71 197.65 124.09  99.36  54.03  90.13
##  [41] 160.49 128.62 154.28 125.91 115.92 120.04  66.39 104.76 193.44 191.32
##  [51]  63.81 135.10 167.76  49.77  19.07  38.39 163.58 197.77 141.82  39.72
##  [61]  17.50  39.38 201.88 224.51 186.18 163.53 182.48 175.06 161.52 127.07
##  [71] 245.74 193.15 137.47 165.17 131.50 220.96 179.38 143.82  85.79 165.36
##  [81] 194.92 191.02 156.03 234.39 221.26  68.30 173.10 290.72 250.73 190.64
##  [91] 180.44 200.75 126.06 165.56  97.94 156.41 136.05 146.18 163.15 185.71
## [101] 126.67 110.45 131.95 149.88 187.36 246.54 222.88 191.01 195.61 160.87
## [111] 183.26 184.70 113.75 105.06 168.88 195.61 213.23
acero$ProdTotal
##   [1] 11266  7251 11066  8311 12459 13059  8555 18253 11697 13194 11279  7661
##  [13]  9540 11425  6647  5574  9247  9023 11525 12434 12361 10964  7867 10326
##  [25] 11860  9103 10785 11749  3384  7277 12195  8186  8362  7413  6033 16048
##  [37] 10355  8943  4994  8424 13198 10729 12723 10591  9927 10081  6455  8882
##  [49] 15746 15562  5785 11282 13718  5667  2300  3870 13421 16098 11734  3850
##  [61]  2187  3879 16387 18117 15159 13466 14931 14311 13225 10656 19783 15738
##  [73] 11525 13528 11968 17776 14648 12017  7482 13531 15817 15574 12852 18892
##  [85] 17803  6075 14146 23202 20111 15540 14747 16279 10501 13594  8349 12889
##  [97] 11324 12073 13588 15137 10615 10166 11026 12407 15188 19798 17984 15511
## [109] 15916 13176 14908 14998 11322  8939 13845 15906 17247

import pandas as pd import numpy as np

Recreate the data

tipo_riego = [“Goteo”] * 60 + [“Aspersión”] * 40 estres_hidrico = [“Bajo”] * 40 + [“Medio”] * 15 + [“Alto”] * 5 + [“Bajo”] * 10 + [“Medio”] * 20 + [“Alto”] * 10

df = pd.DataFrame({“tipo_riego”: tipo_riego, “estres_hidrico”: estres_hidrico})

Contingency table (Absolutas)

tabla_absoluta = pd.crosstab(df[‘tipo_riego’], df[‘estres_hidrico’]) print(“Tabla absoluta:”) print(tabla_absoluta)

Marginales

tabla_marginales = pd.crosstab(df[‘tipo_riego’], df[‘estres_hidrico’], margins=True, margins_name=“Suma”) print(“marginales:”) print(tabla_marginales)

Proporciones

tabla_proporciones = tabla_absoluta / len(df) print(“proporciones:”) print(tabla_proporciones)

Condicional: P(Aspersión | Alto)

p_asp_dado_alto = tabla_absoluta.loc[‘Aspersión’, ‘Alto’] / tabla_marginales.loc[‘Suma’, ‘Alto’] print(f”(Aspersión | Alto) = {tabla_absoluta.loc[‘Aspersión’, ‘Alto’]} / {tabla_marginales.loc[‘Suma’, ‘Alto’]} = {p_asp_dado_alto:.4f}“)

# Datos
tipo_riego <- c(rep("Goteo", 60), rep("Aspersión", 40))
estres_hidrico <- c(rep("Bajo", 40), rep("Medio", 15), rep("Alto", 5), 
                    rep("Bajo", 10), rep("Medio", 20), rep("Alto", 10))

# Tabla de frecuencias absolutas
tabla_absoluta <- table(tipo_riego, estres_hidrico)
print(tabla_absoluta)
##            estres_hidrico
## tipo_riego  Alto Bajo Medio
##   Aspersión   10   10    20
##   Goteo        5   40    15
tabla_marginales <- addmargins(tabla_absoluta)
print(tabla_marginales)
##            estres_hidrico
## tipo_riego  Alto Bajo Medio Sum
##   Aspersión   10   10    20  40
##   Goteo        5   40    15  60
##   Sum         15   50    35 100
tabla_proporciones <- prop.table(tabla_absoluta)
print(tabla_proporciones)
##            estres_hidrico
## tipo_riego  Alto Bajo Medio
##   Aspersión 0.10 0.10  0.20
##   Goteo     0.05 0.40  0.15

Mostrando los calculos manuales de las probabilidades del acero

Calculos manuales

Calculos manuales

Calculos manuales de probabilidades
Calculos manuales de probabilidades
Calculos manuales de probabilidad
Calculos manuales de probabilidad

Dataset Soils del paquete CarData

El paquete carData (que acompaña al libro An R Companion to Applied Regression de John Fox y Sanford Weisberg) incluye el dataset Soils, el cual proviene de un estudio edafológico clásico realizado para analizar las propiedades químicas del suelo en función de la profundidad y la topografía.

1. Resumen y Origen del Dataset:

Nombre en R: Soils

Paquete: carDataFuente

original: Horton, I. F., Russell, J. S., & Moore, A. W. (1968). Multivariate-covariance analysis. Biometrics, 24, 845–858.

Descripción: Contiene mediciones de propiedades físicas y químicas de muestras de suelo recolectadas en diferentes posiciones topográficas y a varias profundidades.

Estructura: \(48\) observaciones y \(14\) variables.

2. Variables del Dataset

Las variables están divididas entre factores de diseño de experimento y mediciones físico-químicas del suelo:

1) Variables Factoriales / Categorizaciones (Diseño Experimental)

1. Group: Factor que combina la ubicación y la profundidad (\(12\) grupos en total).

2. Contour: Posición topográfica/del terreno (\(3\) niveles: Top [Cresta/Cima], Slope [Ladera/Pendiente], Depression [Depresión/Bajo]).

3. Depth: Profundidad de la muestra tomada en el perfil del suelo (\(4\) niveles: 0-10 cm, 10-30 cm, 30-60 cm, 60-90 cm).

4. GP: Código de identificación del grupo (\(1\) a \(12\)).

5. Block: Bloque/réplica dentro del experimento (\(4\) bloques: 1, 2, 3, 4).

2) Variables Continuas (Propiedades Químicas y Físicas)

6. pH: Acidez o alcalinidad del suelo.

7. N: Nitrógeno total (%).

8. Dens: Densidad aparente del suelo (\(g/cm^3\)).

9. P: Fósforo disponible (\(ppm\)).

10. Ca: Calcio intercambiable (\(meq/100g\)).

11. Mg: Magnesio intercambiable (\(meq/100g\)).

12. K: Potasio intercambiable (\(meq/100g\)).

13. Na: Sodio intercambiable (\(meq/100g\)).

14. Conduc: Conductividad eléctrica (medida de salinidad).

3. Casos de Uso Estadístico y Aplicaciones en R

El dataset Soils es ampliamente utilizado en la enseñanza de la estadística multivariada por tener múltiples variables respuesta fuertemente correlacionadas:

1. MANOVA (Análisis Multivariado de Varianza):

Permite evaluar si el tipo de contorno (Contour) o la profundidad (Depth) afectan simultáneamente el perfil de nutrientes (\(pH, Ca, Mg, K, Na\)).

2. Análisis de Componentes Principales (PCA):

Útil para reducir la dimensionalidad de los nutrientes del suelo e identificar patrones o gradientes de fertilidad y salinidad.

3. Análisis Discriminante Lineal (LDA):

Sirve para clasificar una muestra desconocida dentro de un tipo de contorno o profundidad según sus análisis de laboratorio.

4.Guía Rápida de Código en R

Para cargar, explorar y analizar este dataset en R Markdown o RStudio:

# 1. Cargar el paquete y los datos
library(carData)
data("Soils")

# 2. Exploración estructural básica
str(Soils)
## 'data.frame':    48 obs. of  14 variables:
##  $ Group  : Factor w/ 12 levels "1","2","3","4",..: 1 1 1 1 2 2 2 2 3 3 ...
##  $ Contour: Factor w/ 3 levels "Depression","Slope",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ Depth  : Factor w/ 4 levels "0-10","10-30",..: 1 1 1 1 2 2 2 2 3 3 ...
##  $ Gp     : Factor w/ 12 levels "D0","D1","D3",..: 9 9 9 9 10 10 10 10 11 11 ...
##  $ Block  : Factor w/ 4 levels "1","2","3","4": 1 2 3 4 1 2 3 4 1 2 ...
##  $ pH     : num  5.4 5.65 5.14 5.14 5.14 5.1 4.7 4.46 4.37 4.39 ...
##  $ N      : num  0.188 0.165 0.26 0.169 0.164 0.094 0.1 0.112 0.112 0.058 ...
##  $ Dens   : num  0.92 1.04 0.95 1.1 1.12 1.22 1.52 1.47 1.07 1.54 ...
##  $ P      : int  215 208 300 248 174 129 117 170 121 115 ...
##  $ Ca     : num  16.4 12.2 13 11.9 14.2 ...
##  $ Mg     : num  7.65 5.15 5.68 7.88 8.12 ...
##  $ K      : num  0.72 0.71 0.68 1.09 0.7 0.81 0.39 0.7 0.74 0.77 ...
##  $ Na     : num  1.14 0.94 0.6 1.01 2.17 2.67 3.32 3.76 5.74 5.85 ...
##  $ Conduc : num  1.09 1.35 1.41 1.64 1.85 3.18 4.16 5.14 5.73 6.45 ...
summary(Soils)
##      Group          Contour     Depth          Gp     Block        pH       
##  1      : 4   Depression:16   0-10 :12   D0     : 4   1:12   Min.   :3.740  
##  2      : 4   Slope     :16   10-30:12   D1     : 4   2:12   1st Qu.:4.058  
##  3      : 4   Top       :16   30-60:12   D3     : 4   3:12   Median :4.545  
##  4      : 4                   60-90:12   D6     : 4   4:12   Mean   :4.669  
##  5      : 4                              S0     : 4          3rd Qu.:5.140  
##  6      : 4                              S1     : 4          Max.   :6.670  
##  (Other):24                              (Other):24                         
##        N                Dens             P               Ca        
##  Min.   :0.03000   Min.   :0.780   Min.   : 79.0   Min.   : 3.820  
##  1st Qu.:0.05075   1st Qu.:1.127   1st Qu.:108.8   1st Qu.: 5.040  
##  Median :0.08450   Median :1.400   Median :131.0   Median : 7.305  
##  Mean   :0.10194   Mean   :1.316   Mean   :166.2   Mean   : 8.029  
##  3rd Qu.:0.12925   3rd Qu.:1.502   3rd Qu.:214.2   3rd Qu.: 9.735  
##  Max.   :0.29800   Max.   :1.600   Max.   :445.0   Max.   :16.350  
##                                                                    
##        Mg               K                Na             Conduc      
##  Min.   : 5.150   Min.   :0.1400   Min.   : 0.600   Min.   : 0.670  
##  1st Qu.: 7.537   1st Qu.:0.2750   1st Qu.: 2.545   1st Qu.: 2.790  
##  Median : 8.515   Median :0.4250   Median : 5.520   Median : 6.635  
##  Mean   : 8.465   Mean   :0.4662   Mean   : 5.600   Mean   : 6.589  
##  3rd Qu.: 9.648   3rd Qu.:0.6425   3rd Qu.: 8.355   3rd Qu.: 9.852  
##  Max.   :10.960   Max.   :1.0900   Max.   :11.040   Max.   :13.320  
## 
# 3. Ejemplo de MANOVA
# Evaluar si la profundidad y la topografía afectan el Ca, Mg, K y Na
modelo_manova <- manova(cbind(Ca, Mg, K, Na) ~ Contour + Depth, data = Soils)
summary(modelo_manova)
##           Df  Pillai approx F num Df den Df    Pr(>F)    
## Contour    2 0.76489   6.1929      8     80 3.298e-06 ***
## Depth      3 1.36324   8.5371     12    123 1.304e-11 ***
## Residuals 42                                             
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# 4. Análisis de Componentes Principales (PCA)
pca_soils <- prcomp(Soils[, c("pH", "N", "Dens", "P", "Ca", "Mg", "K", "Na", "Conduc")], scale. = TRUE)
summary(pca_soils)
## Importance of components:
##                           PC1     PC2     PC3     PC4     PC5     PC6     PC7
## Standard deviation     2.5583 0.86034 0.73223 0.65704 0.57095 0.44175 0.37814
## Proportion of Variance 0.7272 0.08224 0.05957 0.04797 0.03622 0.02168 0.01589
## Cumulative Proportion  0.7272 0.80946 0.86903 0.91700 0.95322 0.97490 0.99079
##                            PC8     PC9
## Standard deviation     0.26026 0.12316
## Proportion of Variance 0.00753 0.00169
## Cumulative Proportion  0.99831 1.00000
biplot(pca_soils)

Profundización del analisis de Dataset

1. Visualización Avanzada de Perfiles de Nutrientes por Profundidad

Un gráfico faceted con ggplot2 para comparar simultáneamente múltiples variables químicas (pH, Ca, Mg, K) según la profundidad y el contorno del terreno.

library(carData)
library(ggplot2)
library(tidyr)

data("Soils")

# Reestructurar datos a formato largo (long format)
soils_long <- pivot_longer(Soils, 
                           cols = c("pH", "Ca", "Mg", "K"), 
                           names_to = "Variable", 
                           values_to = "Valor")

# Gráfico de líneas de perfil medio
ggplot(soils_long, aes(x = Depth, y = Valor, color = Contour, group = Contour)) +
  stat_summary(fun = mean, geom = "line", linewidth = 1) +
  stat_summary(fun = mean, geom = "point", size = 2) +
  facet_wrap(~ Variable, scales = "free_y") +
  theme_bw() +
  labs(title = "Comportamiento de Nutrientes por Profundidad y Contorno",
       x = "Profundidad (Depth)",
       y = "Concentración / Valor",
       color = "Topografía (Contour)")

2. Clustering Jerárquico (Agrupamiento no supervisado)

Permite agrupar las muestras de suelo según su similitud química y física general sin tener en cuenta las etiquetas previas, evaluando si el suelo se agrupa de forma natural según el contorno o la profundidad.

library(carData)
data("Soils")

# Normalización de variables continuas
datos_num <- scale(Soils[, c("pH", "N", "Dens", "P", "Ca", "Mg", "K", "Na", "Conduc")])

# Matriz de distancias euclidianas
distancias <- dist(datos_num, method = "euclidean")

# Agrupamiento jerárquico usando el método de Ward
hc <- hclust(distancias, method = "ward.D2")

# Graficar el dendrograma con etiquetas de contorno
plot(hc, labels = Soils$Contour, main = "Dendrograma de Clustering del Suelo",
     xlab = "Muestras (Etiquetadas por Contour)", sub = "", cex = 0.8)

# Cortar en 3 clusters principales
rect.hclust(hc, k = 3, border = "red")

3. Modelo de Regresión Lineal Múltiple para el pH

Evalúa qué variables químicas contribuyen significativamente a explicar la variabilidad de la acidez/alcalinidad del suelo (pH).

library(carData)
data("Soils")

# Modelo de regresión lineal múltiple
modelo_ph <- lm(pH ~ Ca + Mg + K + Na + Conduc + N, data = Soils)

# Resumen del modelo (coeficientes, R^2 y p-valores)
summary(modelo_ph)
## 
## Call:
## lm(formula = pH ~ Ca + Mg + K + Na + Conduc + N, data = Soils)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.57798 -0.23274 -0.04028  0.17803  1.26626 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  4.89457    0.58107   8.423 1.75e-10 ***
## Ca           0.14206    0.03793   3.746 0.000554 ***
## Mg          -0.05409    0.04913  -1.101 0.277354    
## K           -0.51679    0.38999  -1.325 0.192464    
## Na           0.16617    0.08209   2.024 0.049496 *  
## Conduc      -0.20811    0.07262  -2.866 0.006535 ** 
## N           -2.22085    1.76153  -1.261 0.214526    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3669 on 41 degrees of freedom
## Multiple R-squared:  0.7398, Adjusted R-squared:  0.7018 
## F-statistic: 19.43 on 6 and 41 DF,  p-value: 1.408e-10
# Diagnóstico de residuos del modelo
par(mfrow = c(2, 2))
plot(modelo_ph)

par(mfrow = c(1, 1))

Análisis de Frecuencias y Prueba Chi-Cuadrado

# 1. Definición de los vectores de datos
tipo_riego <- c(rep("Goteo", 60), rep("Aspersión", 40))
estres_hidrico <- c(rep("Bajo", 40), rep("Medio", 15), rep("Alto", 5), 
                    rep("Bajo", 10), rep("Medio", 20), rep("Alto", 10))

# 2. Tabla de frecuencias absolutas
tabla_absoluta <- table(tipo_riego, estres_hidrico)
print("--- Tabla de Frecuencias Absolutas ---")
## [1] "--- Tabla de Frecuencias Absolutas ---"
print(tabla_absoluta)
##            estres_hidrico
## tipo_riego  Alto Bajo Medio
##   Aspersión   10   10    20
##   Goteo        5   40    15
# 3. Frecuencias marginales por filas y columnas
print("--- Frecuencias Marginales por Filas (Tipo de Riego) ---")
## [1] "--- Frecuencias Marginales por Filas (Tipo de Riego) ---"
print(margin.table(tabla_absoluta, margin = 1))
## tipo_riego
## Aspersión     Goteo 
##        40        60
print("--- Frecuencias Marginales por Columnas (Estrés Hídrico) ---")
## [1] "--- Frecuencias Marginales por Columnas (Estrés Hídrico) ---"
print(margin.table(tabla_absoluta, margin = 2))
## estres_hidrico
##  Alto  Bajo Medio 
##    15    50    35
# 4. Tabla con marginales añadidas
tabla_marginales <- addmargins(tabla_absoluta)
print("--- Tabla General con Marginales ---")
## [1] "--- Tabla General con Marginales ---"
print(tabla_marginales)
##            estres_hidrico
## tipo_riego  Alto Bajo Medio Sum
##   Aspersión   10   10    20  40
##   Goteo        5   40    15  60
##   Sum         15   50    35 100
# 5. Tabla de proporciones (frecuencias relativas)
tabla_proporciones <- prop.table(tabla_absoluta)
print("--- Tabla de Proporciones ---")
## [1] "--- Tabla de Proporciones ---"
print(tabla_proporciones)
##            estres_hidrico
## tipo_riego  Alto Bajo Medio
##   Aspersión 0.10 0.10  0.20
##   Goteo     0.05 0.40  0.15
# 6. Prueba de independencia Chi-cuadrado (chisq.test)
prueba_chi <- chisq.test(tabla_absoluta)
print("--- Prueba Chi-Cuadrado de Independencia ---")
## [1] "--- Prueba Chi-Cuadrado de Independencia ---"

Carga del Dataset soils y muestra de sus contenidos

install.packages("carData")   # una sola vez
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.6'
## (as 'lib' is unspecified)
library(carData)
data(Soils)
str(Soils)
## 'data.frame':    48 obs. of  14 variables:
##  $ Group  : Factor w/ 12 levels "1","2","3","4",..: 1 1 1 1 2 2 2 2 3 3 ...
##  $ Contour: Factor w/ 3 levels "Depression","Slope",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ Depth  : Factor w/ 4 levels "0-10","10-30",..: 1 1 1 1 2 2 2 2 3 3 ...
##  $ Gp     : Factor w/ 12 levels "D0","D1","D3",..: 9 9 9 9 10 10 10 10 11 11 ...
##  $ Block  : Factor w/ 4 levels "1","2","3","4": 1 2 3 4 1 2 3 4 1 2 ...
##  $ pH     : num  5.4 5.65 5.14 5.14 5.14 5.1 4.7 4.46 4.37 4.39 ...
##  $ N      : num  0.188 0.165 0.26 0.169 0.164 0.094 0.1 0.112 0.112 0.058 ...
##  $ Dens   : num  0.92 1.04 0.95 1.1 1.12 1.22 1.52 1.47 1.07 1.54 ...
##  $ P      : int  215 208 300 248 174 129 117 170 121 115 ...
##  $ Ca     : num  16.4 12.2 13 11.9 14.2 ...
##  $ Mg     : num  7.65 5.15 5.68 7.88 8.12 ...
##  $ K      : num  0.72 0.71 0.68 1.09 0.7 0.81 0.39 0.7 0.74 0.77 ...
##  $ Na     : num  1.14 0.94 0.6 1.01 2.17 2.67 3.32 3.76 5.74 5.85 ...
##  $ Conduc : num  1.09 1.35 1.41 1.64 1.85 3.18 4.16 5.14 5.73 6.45 ...

Bitácora Ética del Uso de Inteligencia Artificial

En cumplimiento con las directrices de integridad académica e ingeniería responsable, a continuación se detalla el uso de herramientas de Inteligencia Artificial Generativa durante la realización de esta actividad:

  • Herramientas utilizadas: Modelos de lenguaje como asistente de programación y análisis de datos.
  • Fases del trabajo con soporte de IA:
    • Optimización y corrección de código: Asistencia en la reestructuración de funciones estadísticas en R (table(), margin.table(), prop.table(), addmargins(), chisq.test()) y sintaxis de visualización avanzada con ggplot2.
    • Estructuración del documento: Apoyo en el formato de encabezados YAML, organización de bloques de código en RMarkdown e incrustación adecuada de imágenes mediante rutas relativas.
    • Clarificación teórica: Consultas conceptuales sobre la interpretación de modelos de regresión, componentes principales y análisis multivariado aplicados al dataset Soils.
  • Declaración de Autoría y Verificación Humana: Todo el código generado fue probado, ejecutado y validado de manera manual. Los razonamientos estadísticos, la resolución manual de cálculos probabilísticos e imágenes adjuntas corresponden a un trabajo autógrafo y verificado de forma independiente antes de su publicación final en RPubs.

Conclusion:

A través del trabajo realizado con el dataset Soils del paquete carData, logramos explorar a fondo cómo se comportan los componentes químicos y físicos del suelo según la profundidad y la forma del terreno (Contour, Depth, Block, Group). Aplicando análisis de perfiles, modelos multivariados, regresión lineal múltiple y clustering jerárquico, identificamos patrones clave en la distribución de nutrientes y entendimos qué elementos influyen directamente en la variación del \(pH\). En conclusión, este ejercicio permitió transformar un conjunto de datos agronómicos complejos en información clara y útil para orientar decisiones prácticas sobre el manejo y la conservación del suelo.