Los datos contienen 9358 filas de respuestas promediadas por hora de una matriz de 5 sensores químicos que tenían como finalidad evaluar la calidad del aire. El dispositivo estaba ubicado en el campo en un área significativamente contaminada, al nivel de la carretera, dentro de una ciudad italiana. Los datos se registraron desde marzo de 2004 hasta febrero de 2005 (un año). Se registraron valores de monóxido de carbono (CO), hidrocarburos no metálicos, temperaturas, humedades relativas, etc.
Para más información y adquirir los datos, click en el enlace:https://archive.ics.uci.edu/ml/datasets/Air+Quality .
Fuente:
Saverio De Vito ( saverio.devito@enea.it ), ENEA - Agencia Nacional de Nuevas Tecnologías, Energía y Desarrollo Económico Sostenible
#library(readxl)
#library(ggcorrplot)
#library(dplyr)
datos <- read_xlsx("AirQualityUCI.xlsx")
Establecemos como variables estocásticas:
\[r=\widehat{p}=\frac{\sum_{i=1}^{n}(x_i-\overline{x})(y_i-\overline{y}))}{\sqrt{\sum_{i=1}^{n}(x_i-\overline{x})^2}{\sqrt{\sum_{i=1}^{n}(y_i-\overline{y})^2}}}\] 1.1. Desarrollo utilizando la formula
up<-sum((datos$`CO(GT)`-mean(datos$`CO(GT)`))*(datos$`NO2(GT)`-mean(datos$`NO2(GT)`)))
down<-sqrt(sum((datos$`CO(GT)`-mean(datos$`CO(GT)`))^2))*sqrt(sum((datos$`NO2(GT)`-mean(datos$`NO2(GT)`))^2))
p<-up/down
p
## [1] 0.6711396
1.2.1. Verificando resultados
datos |>
select("CO(GT)","NO2(GT)") |>
cor()
## CO(GT) NO2(GT)
## CO(GT) 1.0000000 0.6711396
## NO2(GT) 0.6711396 1.0000000
1.2.2. De forma gráfica
datos |>
select("CO(GT)","NO2(GT)") |>
cor() |> ggcorrplot()
1.3. Interpretación de resultados
Dado que el parámetro obtenido es mayor que 0, podemos decir que existe una correlación positiva. Y ya que es un valor cercano a 1, concluímos que la fuerza de esta relación directa entre la variable 1 y la variable 2, es fuerte.
Usar \(\alpha = 0.05\)
Antes de empezar, es necesario hallar la estimación intervalar de la correlación:
Para lo cual primero determinamos el \(Z_r\) que nos permite estandarizar a una forma normal el valor \(r\).
\[Z_r=\frac{1}{2}log(\frac{1+r}{1-r})\]
cor(datos$`CO(GT)`,datos$`NO2(GT)`) -> p
0.5*log((1+p)/(1-p)) -> Zr
Ya con el \(Z_r\) podemos construir un intervalo de confianza. Contando con \(\alpha\) y \(n\).
\[LI(Z_p)=Z_r-Z_{1-\frac{\alpha}{2}}\sqrt{\frac{1}{n-3}}\\ LS(Z_p)=Z_r+Z_{1-\frac{\alpha}{2}}\sqrt{\frac{1}{n-3}}\]
0.05 -> alfa
length(datos$`CO(GT)`) -> n
Zr - qnorm(1-alfa/2)*sqrt(1/(n-3)) -> Zrho_inf
Zr + qnorm(1-alfa/2)*sqrt(1/(n-3)) -> Zrho_sup
Despues es necesario despejar el valor de \(r\) en función de \(Z_r\) con ayuda de la siguientes formulas.
\[r=\frac{e^{2Z_r}-1}{e^{2Z_r}+1}\\ LI(\rho)=\frac{e^{2LI(Z_p)}-1}{e^{2LI(Z_p)}+1}\\ LS(\rho)=\frac{e^{2LS(Z_p)}-1}{e^{2LS(Z_p)}+1} \]
(exp(2*Zrho_inf)-1)/(exp(2*Zrho_inf)+1) -> rho_inf
(exp(2*Zrho_sup)-1)/(exp(2*Zrho_sup)+1) -> rho_sup
c(rho_inf,rho_sup)
## [1] 0.6598504 0.6821258
Obteniendo así el valor de la estimación intervalar. Siendo el límite inferior de la correlación de Pearson: 0.6598504. Y el límte superior de la correlación de Pearson: 0.6821258.
Verificamos con el comando cor.test si los datos son correctos
cor.test(datos$`CO(GT)`, datos$`NO2(GT)`, method = "pearson", alternative = "two.sided", conf.level = 0.95)
##
## Pearson's product-moment correlation
##
## data: datos$`CO(GT)` and datos$`NO2(GT)`
## t = 87.563, df = 9355, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.6598504 0.6821258
## sample estimates:
## cor
## 0.6711396
Iniciando asi con:
2.1. La prueba de hipotesis \[H_o: \rho=0,\:H_1:\rho≠0\] Donde: Si se cumple que \(\rho=0\) entonces no existe correlación entre las variables. Pero si se cumple que \(\rho≠0\) entonces si existe correlación entre las variables.
2.2. Con un = 0.05
2.3. Determinarlos el \(t_{cal}\).
cor(datos$`CO(GT)`,datos$`NO2(GT)`) -> r
length(datos$`CO(GT)`) -> n
(r*sqrt(n-2)/sqrt(1-r**2) -> tcalc)
## [1] 87.56339
2.4. Establecemos los \(t_{crit}\).
qt(0.025/2,n-2)
## [1] -2.241764
qt(0.975/2,n-2)
## [1] -0.03133882
2.5. Notamos que el \(t_{cal}\) cae a la derecha en la zona de rechazo.
2.6. Se rechaza la hipotesis nula (\(H_o\)).
Utilizando el pvalor
pvalor <- 2*pt(abs(tcalc),n-2,lower.tail = FALSE)
Regla del pvalor: \[pvalor < \alpha \rightarrow se\:rechaza\:la\:H_o\]
pvalor < alfa
## [1] TRUE
Conclusión
A un nivel de significacia del 5%, existe evidencia estadística de correlación entre la variable 1 y 2.