CARGA DE DATOS
#Carga de datos
setwd("~/UNI/ESTADISTICA/ESTADISTICA")
datos <- read.csv("Depositos_Sulfuros.csv", header = TRUE, sep = ";",
dec = ".")
CARGA DE LIBRERIAS
#Carga de librerias
library(dplyr)
library(knitr)
library(gt)
library(scatterplot3d)
cobre <- as.numeric(datos$cobre)/100
zinc <- as.numeric(datos$zinc)/100
plomo <- as.numeric(datos$plomo)/100
TPV <- data.frame(y = cobre, x1 = zinc, x2 = plomo)
# quitar NA
TPV <- na.omit(TPV)
# solo positivos
TPV <- TPV[TPV$y > 0 & TPV$x1 > 0 & TPV$x2 > 0, ]
#función para filtrar outliers
filtro_iqr <- function(v){
Q1 <- quantile(v, 0.25)
Q3 <- quantile(v, 0.75)
IQRv <- Q3 - Q1
li <- Q1 - 1.5 * IQRv
ls <- Q3 + 1.5 * IQRv
return(v >= li & v <= ls)
}
# TABLA SIN OUTLIERS
TPV <- TPV[filtro_iqr(TPV$y) & filtro_iqr(TPV$x1) & filtro_iqr(TPV$x2), ]
TPV
## y x1 x2
## 17 1.5823 1.8149 0.4994
## 27 1.3377 0.3008 0.9571
## 28 1.3316 1.0382 0.8933
## 29 1.3227 1.8133 0.3049
## 30 1.3226 0.6790 0.9596
## 31 1.3182 2.0540 0.0551
## 32 1.3049 0.4471 0.8889
## 33 1.2910 0.1184 1.1041
## 34 1.2909 0.7168 1.0963
## 35 1.2455 0.7692 0.8935
## 36 1.2253 1.2268 0.5752
## 37 1.2248 1.2639 0.2242
## 38 1.2217 1.2661 0.4598
## 39 1.2204 1.3474 0.3320
## 40 1.2194 1.6189 0.2105
## 41 1.2177 1.5329 0.2010
## 43 1.1993 1.6453 0.0584
## 44 1.1977 0.8783 0.5767
## 45 1.1928 0.9719 0.6218
## 46 1.1767 1.3231 0.2838
## 47 1.1635 1.0429 0.6154
## 48 1.1609 1.9851 0.1279
## 49 1.1550 1.1334 0.3720
## 58 1.0364 0.8856 0.4847
## 59 1.0203 0.3920 0.7069
## 60 1.0189 1.4881 0.2136
## 61 0.9929 1.2008 0.1834
## 62 0.9850 1.4382 0.1997
## 63 0.9848 0.0287 0.7590
## 64 0.9836 0.3439 0.8310
## 65 0.9833 0.6692 0.7103
## 66 0.9710 0.7666 0.3581
## 67 0.9698 0.7638 0.3542
## 68 0.9610 0.5873 0.6177
## 69 0.9596 0.7942 0.2684
## 70 0.9572 1.0510 0.1885
## 71 0.9437 0.2648 0.6865
## 72 0.9375 0.4795 0.7116
## 73 0.9315 0.5549 0.4422
## 74 0.9175 1.0684 0.3091
## 75 0.9147 0.4568 0.6250
## 76 0.8973 0.3722 0.6381
## 77 0.8842 1.0201 0.4446
## 78 0.8746 0.2691 0.6199
## 79 0.8735 0.8115 0.3186
## 80 0.8727 1.4246 0.0610
## 81 0.8533 0.5867 0.5130
## 82 0.8530 0.9276 0.2424
## 83 0.8464 0.7483 0.3135
## 84 0.8172 0.7252 0.3297
## 85 0.8061 0.2569 0.4568
## 86 0.7975 0.3071 0.3956
## 87 0.7923 0.2968 0.4592
## 88 0.7910 0.4114 0.2968
## 89 0.7898 0.9634 0.0363
## 90 0.7870 0.2428 0.3968
## 91 0.7780 0.3648 0.4453
## 92 0.7648 0.7690 0.3475
## 93 0.7578 0.1553 0.6544
## 94 0.7547 0.4909 0.2804
## 95 0.7373 0.1967 0.4795
## 96 0.7307 0.6276 0.1664
## 97 0.7302 0.5775 0.2945
## 98 0.7102 0.7936 0.1044
## 99 0.6988 0.2917 0.3607
## 100 0.6972 0.0269 0.7770
## 101 0.6956 0.8430 0.1382
## 102 0.6817 1.0675 0.1887
## 103 0.6727 0.7457 0.2368
## 104 0.6604 0.4021 0.2895
## 105 0.6602 0.1176 0.6862
## 106 0.6525 0.7109 0.3795
## 107 0.6389 0.3364 0.3490
## 108 0.6318 0.3260 0.2504
## 109 0.6289 0.4325 0.4463
## 110 0.6225 0.3981 0.2749
## 111 0.6223 0.7497 0.3596
## 112 0.6093 0.0820 0.4389
## 113 0.6051 0.4448 0.2053
## 114 0.5971 0.7529 0.2935
## 124 0.4351 0.1536 0.2195
## 125 0.4020 0.1067 0.4804
## 126 0.3859 0.3430 0.1669
## 127 0.3487 0.2282 0.3064
## 128 0.3473 0.3556 0.0364
## 129 0.2392 0.1757 0.1476
## 130 0.1468 0.2697 0.0162
#Extraer las variables de la tabla
x1<-TPV$x1 #Variable Independiente
x2<-TPV$x2 #Variable independiente
y<-TPV$y #Variable dependiente
#Diagrama de Dispersion
Cobrereg<-scatterplot3d(x1,x2,y, angle = 60,pch = 16,color = "blue",
main ="Gráfica N°1: Diagrama de disperción del contenido de cobre,zinc y plomo",
xlab =" zinc (%)",
ylab = "plomo (%)",
zlab = "cobre(%)")
Diagrama de dispersión
#Diagrama de dispersión
Cobrereg<-scatterplot3d(x1,x2,y, angle = 60,pch = 16,color = "blue",
main ="Gráfica N°2: Comparacion de la realidad
con el modelo multivariable lineal del
contenido de cobre, zinc y plomo",
xlab =" zinc (%)",
ylab = "Plomo (%)",
zlab = " cobre (%)" )
#CÁLCULO DE PARAMETROS
regresion_multiple<-lm(y~x1+x2)
regresion_multiple
##
## Call:
## lm(formula = y ~ x1 + x2)
##
## Coefficients:
## (Intercept) x1 x2
## 0.1727 0.5114 0.8364
#Creacion del plano
Cobrereg$plane3d(regresion_multiple)
#Formamos la ecuación
plot(1, type = "n", axes = FALSE, xlab = "", ylab = "") # Crear un gráfico vacío
text(x = 1, y = 1,
labels = " Ecuación Multiple Lineal \n Y = a+bx1+cx2 \n Y = 0.173+0.511x1+0.836x2",
cex = 2, # Tamaño del texto (ajustable)
col = "blue", # Color del texto
font =6) #tipo
TEST DE PEARSON
#TEST DE PEARSON
r <-cor(y,x1+x2)
r*100
## [1] 87.73297
APRUEBA EL TEST PEARSON
Coeficiente de determinación
#Coeficiente de determinación
r2<-r^2 *100
r2
## [1] 76.97074
RESTRICCIONES
Dado que las variables están expresadas en porcentaje, el dominio del modelo queda restringido al intervalo [0, 100] %. Cualquier predicción fuera de dicho rango carece de significado físico, por lo que la interpretación del modelo se limita estrictamente a ese dominio.
¿Qué porcentaje de cobre se espera al tener un porcentaje de zinc del 1% y de plomo del 0.5 % ?
#Cálculo de Estimaciones
C_Est<-regresion_multiple$coefficients[1]+
regresion_multiple$coefficients[2]*1+
regresion_multiple$coefficients[3]*0.5
C_Est
## (Intercept)
## 1.10236
plot(1, type = "n", axes = FALSE, xlab = "", ylab = "") # Crear un gráfico vacío
text(x = 1, y = 1,
labels = "¿Qué porcentaje de cobre se espera al
tener un porcentaje de zinc del 1% y de
plomo del 0.5 %?
\n R= 1.102 % ",
cex = 2, # Tamaño del texto (ajustable)
col = "blue", # Color del texto
font = 6)
Entre el porcentaje de cobre y la combinacion del porcentaje de zinc y plomo existe una regresión de multiple lineal.
El porcentaje de cobre esta influencia por el 76.97% por la combinación del porcentaje de zinc y plomo y el resto se debe a otros factores.Donde si existe restricciones
Por ejemplo: Cuando el porcentaje de zinc es del 1.0% y el porcentaje de plomo del 0.5% se espera un porcentaje de 1.102% de cobre