Resumen del proyecto

En el presente informe se expone la consultoría realizada al proyecto de la estudiante de economía Krismary Saray Calzadilla Sánchez, el cual fue propuesto para el espacio académico de Economía Circular en colaboración con Econometría l. El proyecto se titula: PROCESO DE PRODUCCIÓN DE ABONO CASERO CON RESIDUOS ORGÁNICOS EN EL ÁREA METROPOLITANA DE BUCARAMANGA, y su objetivo principal es determinar los kilos de desechos orgánicos que se producen en promedio en el hogar semanalmente para ser transformados en abono. Se presentará el modelo, al igual que la verificación correspondiente de los supuestos, trabajando principalmente con los problemas de datos atípicos, multicolinealidad, autocorrelación y heteroscedasticidad. Los datos corresponden a una encuesta realizada a 72 personas, que tiene como objetivo encontrar las variables que más se relacionan con la disposición que tienen las personas para utilizar los residuos orgánicos con el fin de crear abono o compost. Entre estas encontramos variables de control, como es el caso del sexo, la edad, el nivel más reciente de estudios alcanzado, y a que se dedica actualmente. También hay variables para evaluar la conciencia ambiental, variables para identificar que destino les dan las personas a los residuos orgánicos, y variables para identificar las barreras que existen. Adjunto se encuentra el link que contiene los datos recolectados a través de la encuesta: https://docs.google.com/spreadsheets/d/12UeWeiKW_6jFTGMMbg5Z6Je4ZoVClryVA2YhrO-2pNY/edit#gid=0

Para efectos del análisis, tomaremos como variable Y la disposición de las personas para utilizar los residuos orgánicos con el propósito de crear abono o compost, y como variables X: estrato; cantidad de residuos orgánicos producidos en la semana; vive con el núcleo familiar; último grado: bachiller; último grado: posgrado; ingreso de más de 2600000; guardaría el papel si no hay una caneca cerca; destino de los residuos orgánicos en canecas especiales.

Justificación

Cada persona en América Latina y el Caribe, genera cerca de 1 kilo de basura por día, esto contribuye a un acumulado de 231 millones de toneladas de desechos anuales, de los cuales, la mitad proviene de alimentos. Es por esto que surgen mejores alternativas para disponer de los residuos orgánicos. Un ejemplo de es transformas estos desechos y convertirlos en abono o compost para las plantas.

El compostaje es un proceso biológico que ocurre en presencia de oxígeno y transforma los residuos orgánicos en compost. Este proceso se lleva a cabo en condiciones controladas de ventilación, humedad y temperatura. Realizar compostaje con residuos domésticos no requiere equipos complicados ni grandes inversiones. Solo se necesita un espacio en el hogar donde colocar un compostador, que es un contenedor donde se mezclan estos residuos orgánicos y ocurre esta transformación.

Entre los beneficios que tiene el compostaje encontramos los siguientes: Se reduce la cantidad de residuos sólidos que se envían a vertederos o plantas de tratamiento, disminuyendo de esta forma, la contaminación del suelo, al igual que la emisión de gases contaminantes para la atmosfera. También disminuye el uso de fertilizantes inorgánicos, dado que e compost puede reemplazarlos, esto a su vez, representa un ahorro para los municipios y las ciudades en los costos de recolección y gestión de residuos orgánicos. De igual forma, realizar compostaje es considerado una buena forma de educación ambiental.

Metodología del trabajo

Metodología de trabajo

  1. Se realizará una revisión del documento existente sobre el proceso de producción de abono orgánico, enfocado en los materiales necesarios y en los procesos de compostaje.

  2. A través de encuestas tendremos resultados de la cantidad de desechos orgánicos que son encontrados en casa constantemente con un rango de tiempo de una semana.

  3. Se llevarán a cabo experimentos de compostaje en casa, utilizando diferentes combinaciones de materiales orgánicos como hojas y residuos de alimentos, y también se medirá la humedad necesaria para el proceso de compostaje.

  4. Por último, se evaluará la calidad del abono resultante de los experimentos de compostaje, para determinar la concentración de nutrientes y analizar sus beneficios.

Esta consultoría está contenida en el segundo ítem de la metodología, diseñamos la encuesta a través de la cual se obtuvo la información necesaria para elaborar el modelo que explique que variables influyen de manera significativa en la disposición que tienen las personas para transformar sus residuos orgánicos en compost. Inicialmente, se había pensado trabajarlo con un enfoque desde los restaurantes, sin embargo, al considerar el poco tiempo del cual se disponía, se llegó a un acuerdo para limitar el proyecto a los hogares.

Encuesta

Se realiza una encuesta con la herramienta de Microsoft Forms. Esta encuesta consiste de 18 variables, divididas en variables independientes, de control y una variable dependiente. De esta encuesta se obtienen un total de 72 respuestas.

Preprocesamiento de datos para estadística descriptiva.

El primer paso es importar los datos y arreglarlos (cambiar los nombres de las variables). En este caso se utiliza la función read.csv() para importar los datos del link. Además, se cambian los nombres a alternativas cortas con la función colnames(); se utiliza la función attach() y names() para que R interprete cad columna como una variable y reconozca el nombre de las variables en la tabla, respectivamente.

compost=read.csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vQGhcSxMxJEFAr5jZu-tyzIUg00fCC055uMSCbDJKICGG3Wedy5mY0GY6I9Ef-W72tfqpMkQAqUC9UI/pub?output=csv")
colnames(compost)=c("sexo","edad","estrato","zona","tipocasa","vivenucleo","cantinucleo","estudi","profesi","ingreso","conoorg","cantidadorgan","concipapelper","destinoresiduos", "barreras", "concipapelnoper", "conciorg", "disporgacomp")
View(compost)
attach(compost) 
names(compost) 
##  [1] "sexo"            "edad"            "estrato"         "zona"           
##  [5] "tipocasa"        "vivenucleo"      "cantinucleo"     "estudi"         
##  [9] "profesi"         "ingreso"         "conoorg"         "cantidadorgan"  
## [13] "concipapelper"   "destinoresiduos" "barreras"        "concipapelnoper"
## [17] "conciorg"        "disporgacomp"

A continuación se muestra una tabla que presenta las preguntas de la encuesta junto con su correspondiente término en el modelo y la descripción de su importancia para el proyecto.

Pregunta Variable Importancia
Sexo sexo Variable de control. Se seleccionó con el fin de establecer una relación con la variable independiente.
Edad edad Variable de control. Se seleccionó con el fin de establecer una relación con la variable independiente
Estrato estrato Variable de control. Se seleccionó con el fin de establecer una relación con la variable independiente.
¿En qué tipo de lugar vive tu núcleo familiar? zona Variable de control. Se seleccionó con el fin de establecer una relación con la variable independiente.
¿En qué lugar vives? tipocasa Esta variable sirve para determinar si el espacio con el cual cuenta la persona en su hogar influye en la variable independiente.
¿Vive usted con su núcleo familiar? vivenucleo Esta variable se seleccionó con el fin de obtener registros del grupo familiar.
¿Cuál es el número de personas que viven en su núcleo familiar? cantinucleo Esta variable se seleccionó con el fin de obtener registros del grupo familiar.
Nivel más reciente de estudios alcanzado estudi Variable de control. Se seleccionó con el fin de establecer una relación con la variable independiente.
¿A qué se dedica actualmente? profesi Variable de control. Se seleccionó con el fin de establecer una relación con la variable independiente.
Ingreso promedio mensual ingreso Variable de control, después de realizar las pruebas, resultó que no era significativa.
¿Sabe usted que son los residuos orgánicos? conoorg Variable para indagar si la persona tiene conocimiento del tema.
Aproximadamente ¿Cuál es la cantidad estimada de residuos orgánicos que se producen en su hogar semanalmente? cantidadorgan Esta variable es empleada exclusivamente para responder al objetivo en el análisis descriptivo.
Si vas por la calle, terminas de comer un dulce y no tienes una papelera cerca, ¿Qué haces con el papel? concipapelper Esta variable se selecciona con el fin de evaluar la conciencia ambiental que tiene la persona, cuando se ve afectada.
¿Cuál es el destino de los residuos orgánicos producidos en su hogar? destinoresiduos Esta variable es empleada exclusivamente para identificar que destino le dan las personas a los residuos orgánicos.
¿Cuál consideras que es el motivo principal por el que se puede dificultar el reciclaje de los residuos orgánicos en tu vivienda? barreras Esta variable es empleada exclusivamente para identificar las barreras al momento de elaborar compost en casa.
Si ves un papel en la calle que no es tuyo, ¿Cuál es la probabilidad de que lo recojas? siendo 0 poco probable y 100 demasiado probable. concipapelnoper Esta variable se selecciona con el fin de evaluar la conciencia ambiental que tiene la persona, cuando no se ve afectada.
De 0 al 100, siendo 0 nada, y 100 demasiado, ¿Qué tan importante considera que es reciclar los residuos orgánicos? conciorg Esta variable se selecciona con el fin de evaluar la conciencia ambiental que tiene la persona.
Del 0 al 100, siendo 0 nada y 100 demasiado, ¿Qué tan dispuesto estaría a utilizar los residuos orgánicos para crear abono o compost? disporgacomp Esta es la variable dependiente para realizar el modelo.

Estadística descriptiva

Variables numéricas

La siguiente tabla presenta la estadística descriptiva de las variables numéricas de la encuesta.

Estadística descriptiva. Variables Numéricas
Variables Media Mediana Rango Coeficiente de variación
Estrato 3 3 1-6 0.339
Edad 21 19 16 a 48 0.270
Cantidad de personas en el núcleo familiar 4 4 2 a 6 0.286
Cantidad estimada de residuos orgánicos que se producen semanalmente 4.768 4.5 1 a 20 0.627
Si ves un papel en la calle que no es tuyo, ¿Cuál es la probabilidad de que lo recojas? siendo 0 poco probable y 100 demasiado probable. 44.333 50 0 a 100 0.628
De 0 al 100, siendo 0 nada, y 100 demasiado, ¿Qué tan importante considera que es reciclar los residuos orgánicos? 88.860 100 0 a 100 0.233
Del 0 al 100, siendo 0 nada y 100 demasiado, ¿Qué tan dispuesto estaría a utilizar los residuos orgánicos para crear abono o compost? 76.194 90 0 a 100 0.390
##Estrato
boxplot(estrato, horizontal= T, col="purple")

##Edad
boxplot(edad, horizontal= T, col="purple")

##Cantidad de personas en el núcleo familiar
boxplot(cantinucleo, horizontal= T, col="purple")

##Cantidad estimada de residuos orgánicos que se producen semanalmente
boxplot(cantidadorgan, horizontal= T, col="purple")

##Si ves un papel en la calle que no es tuyo, ¿Cuál es la probabilidad de que lo recojas? siendo 0 poco probable y 100 demasiado probable. 
boxplot(concipapelnoper, horizontal= T, col="purple")

##De 0 al 100, siendo 0 nada, y 100 demasiado, ¿Qué tan importante considera que es reciclar los residuos orgánicos? 
boxplot(conciorg, horizontal= T, col="purple")

##Del 0 al 100, siendo 0 nada y 100 demasiado, ¿Qué tan dispuesto estaría a utilizar los residuos orgánicos para crear abono o compost?
boxplot(disporgacomp, horizontal= T,col="purple")

Variables categóricas

Estás gráficas muestran la distribución de cada una de las opciones para las variables categóricas.

barplot(prop.table(table(compost$sexo)),col=c("purple"),
      ylim=c(0,0.8), main="Sexo", ylab ="Frecuencias Relativas")

barplot(prop.table(table(compost$tipocasa)),col=c("purple"),
        ylim=c(0,0.8), main="Tipo de casa", ylab ="Frecuencias Relativas")

barplot(prop.table(table(compost$zona)),col=c("purple"),
        ylim=c(0,1), main="Zona", ylab ="Frecuencias Relativas")

barplot(prop.table(table(compost$vivenucleo)),col=c("purple"),
        ylim=c(0,0.8), main="¿Vive con el núcleo familiar?", ylab ="Frecuencias Relativas")

barplot(prop.table(table(compost$estudi)),col=c("purple"),
        ylim=c(0,0.8), main="Nivel más reciente de estudios alcanzado", ylab ="Frecuencias Relativas")

barplot(prop.table(table(compost$profesi)),col=c("purple"),
        ylim=c(0,0.8), main="¿A qué se dedica actualmente?", ylab ="Frecuencias Relativas")

barplot(prop.table(table(compost$conoorg)),col=c("purple"),
        ylim=c(0,1), main="¿Sabes qué son los residuos orgánicos?", ylab ="Frecuencias Relativas")

barplot(prop.table(table(compost$concipapelper)),col=c("purple"),
        ylim=c(0,1), main="Si vas por la calle, terminas de comer un dulce y no tienes una papelera cerca, ¿qué haces con el papel?", ylab ="Frecuencias Relativas")

barplot(prop.table(table(compost$destinoresiduos)),col=c("purple"),
        ylim=c(0,0.8), main="¿Cuál es el destino de los residuos orgánicos producidos en su hogar?", ylab ="Frecuencias Relativas")

barplot(prop.table(table(compost$barreras)),col=c("purple"),
        ylim=c(0,0.8), main="¿Cuál consideras que es el motivo principal por el que se puede dificultar el reciclaje de los residuos orgánicos en tu vivienda?", ylab ="Frecuencias Relativas")

Modelo

El modelo presentado a continuación tiene como variable dependiente el término “disporgacomp” la cual representa la disposición a utilizar los residuos orgánicos para realizar compost. Para evaluar esta variable se utilizaron 9 variables en el modelo sin transformación y variables. Estas son: estrato; cantidad de residuos orgánicos producidos en la semana; vive con el núcleo familiar; último grado: bachiller; último grado: posgrado; ingreso de más de 2600000; guardaría el papel si no hay una caneca cerca; destino de los residuos orgánicos en canecas especiales.

Modelo original

El primer paso es convertir las variables necesarias de tipo character a tipo numeric.

compost$edad=as.numeric(as.character(edad))
compost$estrato=as.numeric(as.character(estrato))
compost$cantinucleo=as.numeric(as.character(cantinucleo))
compost$cantidadorgan=as.numeric(as.character(cantidadorgan))
compost$concipapelnoper=as.numeric(as.character(concipapelnoper))
compost$conciorg=as.numeric(as.character(conciorg))
compost$disporgacomp=as.numeric(as.character(disporgacomp))

Seguidamente convertimos algunas variables categóricas en variables dummies, y se cambia los nombres a las variables.

library(dummy)
## dummy 0.1.3
## dummyNews()
library(fastDummies)
ingresodummy=dummy_cols(compost$ingreso)
estudidummy=dummy_cols(compost$estudi)
concipapeldummy=dummy_cols(compost$concipapelper)
vivenucleodummy=dummy_cols(compost$vivenucleo)
destinoresiduosdummy=dummy_cols(compost$destinoresiduos)
colnames(ingresodummy)=c("data","0-653000","1300000-2600000", "653000-1300000","masde2600000")
colnames(estudidummy)=c("data","bachiller","educacionsuperior", "posgrado","tecnicotecnologo")
colnames(concipapeldummy)=c("data","botar", "guardar")
colnames(destinoresiduosdummy)=c("data", "canecasespeciales","basuradrenaje")
colnames(vivenucleodummy)=c("data", "no", "si")

Ahora sí, se plantea y grafica el modelo.

rlsin1=lm(disporgacomp~estrato+cantidadorgan+vivenucleodummy$no+estudidummy$bachiller+estudidummy$posgrado+ingresodummy$masde2600000+concipapeldummy$guardar+destinoresiduosdummy$canecasespeciales+conciorg, data = compost)
summary(rlsin1)  
## 
## Call:
## lm(formula = disporgacomp ~ estrato + cantidadorgan + vivenucleodummy$no + 
##     estudidummy$bachiller + estudidummy$posgrado + ingresodummy$masde2600000 + 
##     concipapeldummy$guardar + destinoresiduosdummy$canecasespeciales + 
##     conciorg, data = compost)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -45.550 -12.109   4.394  16.303  54.246 
## 
## Coefficients:
##                                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            -13.1371    25.4293  -0.517  0.60726    
## estrato                                 -1.6549     2.8196  -0.587  0.55939    
## cantidadorgan                           -1.0031     1.0631  -0.944  0.34908    
## vivenucleodummy$no                       8.6547     6.9113   1.252  0.21518    
## estudidummy$bachiller                   -7.1153     6.0492  -1.176  0.24399    
## estudidummy$posgrado                    54.4342    19.6296   2.773  0.00733 ** 
## ingresodummy$masde2600000              -11.2698     7.9130  -1.424  0.15940    
## concipapeldummy$guardar                 35.4634    17.1441   2.069  0.04277 *  
## destinoresiduosdummy$canecasespeciales   7.7080     5.9556   1.294  0.20038    
## conciorg                                 0.7302     0.1415   5.162 2.74e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 23.78 on 62 degrees of freedom
## Multiple R-squared:  0.4378, Adjusted R-squared:  0.3562 
## F-statistic: 5.365 on 9 and 62 DF,  p-value: 2.056e-05
plot(estrato+cantidadorgan+vivenucleodummy$no+estudidummy$bachiller+estudidummy$posgrado+ingresodummy$masde2600000+concipapeldummy$guardar+destinoresiduosdummy$canecasespeciales+conciorg,disporgacomp)

Como se puede observar, el modelo tiene un p valor menor a 0.05, un R cuadrado ajustado de 0.3562, y hay algunas variables significativas, por lo que se puede concluir que es un buen modelo.

A continuación se presentan las pruebas al modelo de datos atípicos, multicolinealidad, autocorrelación, heteroscedasticidad.

Datos atípicos.

El primer paso es utilizar la función cooks.distance(). También se grafica.

distancia_cook= cooks.distance(rlsin1)
plot(distancia_cook, pch = 20, main = "Gráfico de Distancia de Cook")
abline(h = 4/length(distancia_cook), col = "purple", lty = 2)

Identificamos las observaciones atípicos.

observaciones_atipicas <- which(distancia_cook > 4/length(distancia_cook))

Creamos un modelo sin las observaciones atípicas

compost$logdisporgacomp = log(compost$disporgacomp) 
nuevo_data_frame =compost[-observaciones_atipicas]
nuevo_modelo <- lm(logdisporgacomp~estrato+cantidadorgan+estudidummy$posgrado+concipapeldummy$guardar+conciorg,data=nuevo_data_frame)
summary(nuevo_modelo)
## 
## Call:
## lm(formula = logdisporgacomp ~ estrato + cantidadorgan + estudidummy$posgrado + 
##     concipapeldummy$guardar + conciorg, data = nuevo_data_frame)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.91226 -0.18936  0.04761  0.20864  1.66787 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              1.083714   0.709500   1.527   0.1314    
## estrato                 -0.012621   0.082105  -0.154   0.8783    
## cantidadorgan           -0.079969   0.030629  -2.611   0.0112 *  
## estudidummy$posgrado     1.379679   0.564008   2.446   0.0171 *  
## concipapeldummy$guardar  1.123939   0.496866   2.262   0.0270 *  
## conciorg                 0.026297   0.004228   6.219 3.86e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7226 on 66 degrees of freedom
## Multiple R-squared:  0.4937, Adjusted R-squared:  0.4554 
## F-statistic: 12.87 on 5 and 66 DF,  p-value: 9.619e-09

Sin estos valores atípicos, el R cuadrado ajustado aumentó a 0.4554. El nuevo p valor es menor al p valor del modelo con los datos atípicos. Por lo que el modelo mejoró.

Multicolinealidad

Se utiliza el paquete car(), y de este se toma la función vif(). Se evaluará en el nuevo modelo (sin valores atípicos)

library(car)
## Loading required package: carData
vif_modelo= vif(nuevo_modelo)

Realizamos una gráfica creando primero un data frame con los valores de VIF y los nombres de las variables.

library(ggplot2)
df_vif <- data.frame(Variable = names(vif_modelo), VIF = vif_modelo)
grafico_vif <- ggplot(data = df_vif, aes(x = Variable, y = VIF)) +
  geom_bar(stat = "identity", fill = "purple") +
  labs(title = "Valores de VIF", x = "Variable", y = "VIF")

Como los valores son menores a 5, no hay multicolinealidad en el modelo.

Autocorrelación

Para evaluar la autocorrelación se utiliza la función Durbin Watson, durbinWatsonTest().

library(car)
dw_test <- durbinWatsonTest(nuevo_modelo)
print(dw_test)
##  lag Autocorrelation D-W Statistic p-value
##    1     -0.06223752      2.123896    0.62
##  Alternative hypothesis: rho != 0

Teniendo en cuenta que el p valor es de 0.582, no hay evidencia sufciente para rechazar la hipótesis nula de no autocorrelación. Esto significa que los residuos del modelo no muestran autocorrelación significativa. En la siguiente gráfica se puede observar un gráfico para analizar la autocorrelación.

Heteroscedasticidad

Para evaluar la heteroscedasticidad se utilizará la prueba Breush-Pagan con la función bptest() del paquete lmtest.

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
resultado_bp= bptest(nuevo_modelo)
print(resultado_bp)
## 
##  studentized Breusch-Pagan test
## 
## data:  nuevo_modelo
## BP = 33.927, df = 5, p-value = 2.462e-06

Teniendo en cuenta que el p valor es menor al valor crítico (0.05) ,hay evidencia para rechazar la hipótesis nula de homoscedasticidad y se concluye que hay heteroscedasticidad en el modelo.

Modelo con transformación

Se toma el modelo inicial y se trasnforma la variable dependiente. Primero, creamos una nueva columna con los datos trasformados y creamos el modelo.

rlsin2=lm(logdisporgacomp~estrato+cantidadorgan+vivenucleodummy$no+estudidummy$bachiller+estudidummy$posgrado+ingresodummy$masde2600000+concipapeldummy$guardar+destinoresiduosdummy$canecasespeciales+conciorg, data = compost)
summary(rlsin2)
## 
## Call:
## lm(formula = logdisporgacomp ~ estrato + cantidadorgan + vivenucleodummy$no + 
##     estudidummy$bachiller + estudidummy$posgrado + ingresodummy$masde2600000 + 
##     concipapeldummy$guardar + destinoresiduosdummy$canecasespeciales + 
##     conciorg, data = compost)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.86560 -0.28689  0.06991  0.24586  1.48613 
## 
## Coefficients:
##                                          Estimate Std. Error t value Pr(>|t|)
## (Intercept)                             0.7669376  0.7568410   1.013  0.31484
## estrato                                -0.0000568  0.0839194  -0.001  0.99946
## cantidadorgan                          -0.0630676  0.0316410  -1.993  0.05064
## vivenucleodummy$no                      0.3154278  0.2056983   1.533  0.13025
## estudidummy$bachiller                  -0.3271568  0.1800387  -1.817  0.07403
## estudidummy$posgrado                    1.4972720  0.5842272   2.563  0.01282
## ingresodummy$masde2600000              -0.2347155  0.2355115  -0.997  0.32282
## concipapeldummy$guardar                 1.4100729  0.5102539   2.763  0.00752
## destinoresiduosdummy$canecasespeciales  0.1250224  0.1772535   0.705  0.48325
## conciorg                                0.0266486  0.0042102   6.329 3.06e-08
##                                           
## (Intercept)                               
## estrato                                   
## cantidadorgan                          .  
## vivenucleodummy$no                        
## estudidummy$bachiller                  .  
## estudidummy$posgrado                   *  
## ingresodummy$masde2600000                 
## concipapeldummy$guardar                ** 
## destinoresiduosdummy$canecasespeciales    
## conciorg                               ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7077 on 62 degrees of freedom
## Multiple R-squared:  0.5438, Adjusted R-squared:  0.4776 
## F-statistic: 8.213 on 9 and 62 DF,  p-value: 6.421e-08
plot(estrato+cantidadorgan+vivenucleodummy$no+estudidummy$bachiller+estudidummy$posgrado+ingresodummy$masde2600000+concipapeldummy$guardar+destinoresiduosdummy$canecasespeciales+conciorg,compost$logdisporgacomp)

Como se puede observar este modelo es mejor al modelo inicial, tanto por un p valor menor, como por un R cuadrado ajustado mayor.

Verificación de supuestos

Datos atípicos

distancia_cook= cooks.distance(rlsin2)
plot(distancia_cook, pch = 20, main = "Gráfico de Distancia de Cook")
abline(h = 4/length(distancia_cook), col = "purple", lty = 2)

observaciones_atipicas <- which(distancia_cook > 4/length(distancia_cook))
nuevo_data_frame =compost[-observaciones_atipicas]
nuevo_modelo1 <- lm(logdisporgacomp~estrato+cantidadorgan+estudidummy$posgrado+concipapeldummy$guardar+conciorg,data = nuevo_data_frame)
summary(nuevo_modelo1)
## 
## Call:
## lm(formula = logdisporgacomp ~ estrato + cantidadorgan + estudidummy$posgrado + 
##     concipapeldummy$guardar + conciorg, data = nuevo_data_frame)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.91226 -0.18936  0.04761  0.20864  1.66787 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              1.083714   0.709500   1.527   0.1314    
## estrato                 -0.012621   0.082105  -0.154   0.8783    
## cantidadorgan           -0.079969   0.030629  -2.611   0.0112 *  
## estudidummy$posgrado     1.379679   0.564008   2.446   0.0171 *  
## concipapeldummy$guardar  1.123939   0.496866   2.262   0.0270 *  
## conciorg                 0.026297   0.004228   6.219 3.86e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7226 on 66 degrees of freedom
## Multiple R-squared:  0.4937, Adjusted R-squared:  0.4554 
## F-statistic: 12.87 on 5 and 66 DF,  p-value: 9.619e-09

El modelo aumentó su valor del error estándar, disminuyó el R cuadrado y disminuyó su p valor, por lo que no mejoró el modelo.

Multicolinealidad

library(car)
vif_modelo= vif(rlsin2)
library(ggplot2)
df_vif <- data.frame(Variable = names(vif_modelo), VIF = vif_modelo)
grafico_vif <- ggplot(data = df_vif, aes(x = Variable, y = VIF)) +
  geom_bar(stat = "identity", fill = "purple") +
  labs(title = "Valores de VIF", x = "Variable", y = "VIF")
print(grafico_vif)

En este modelo, los valores también son menores a 5 por lo que no hay multicolinealidad.

Autocorrelación

library(car)
dw_test <- durbinWatsonTest(rlsin2)
print(dw_test)
##  lag Autocorrelation D-W Statistic p-value
##    1      -0.1595136      2.318363   0.194
##  Alternative hypothesis: rho != 0

El valor es cercano a 2 por lo que no hay autocorrelación. Además, como el p valor es mayor a 0.05 no hay evidencia suficiente para rechazar la hipótesis nula de no autocorrelación. Se concluye que el modelo no muestra autocorrelación significativa para el desfase correspondiente.

Heteroscedasticidad

library(lmtest)
resultado_bp= bptest(rlsin2)
print(resultado_bp)
## 
##  studentized Breusch-Pagan test
## 
## data:  rlsin2
## BP = 28.16, df = 9, p-value = 0.0008968

En el nuevo valor de heterossedasticidad y es menor a 0.05, hay evidencia para rechazar la hipótesis nula de homoscedasticidad y se sugiere la presencia de heteroscedasticidad en el modelo.

Conclusiones

El mejor modelo de los tres presentados fue el modelo con trasformación en la variable independiente. En los tres modelos, la multicolinealidad, la autocorrelación fueron favorables, mientras que la heteroscedasticidad mostró valores menores a 0.05, por lo que hay presencia de heteroscedasticidad, esto quiere decir que la varianza de los errores no es constante en todas las observaciones realizadas

Las variables más significativas fueron: la cantidad de orgánicos producidos semanalmente en promedio, si tenía estudios de posgrado, si tiene conciencia ambiental mediante la pregunta de si guardaría el papel si no tiene una caneca cerca, y qué tan consciente es de la importancia de reciclar o darle una segunda vida a los residuos orgánicos.