Cuando se realizan diseños experimentales, se presentan oportunidades en las que las variables se encuentran en unidades o escalas diferentes, por lo que el método de \(estandarización\) puede facilitar el manejo de los datos.
La \(estandarización\) es un proceso que transforma los datos de tal manera que su media adquiera un Valor de 0 y la desviación estandar un valor de 1, sin alterar la estructura o dinámica de los datos.
Además, la estandarización puede evitar la mal interpretación de gráficas y solucionar las inconcistencias de las regresiones lineales con las verdaderas relaciones entre las variables.
Planteamiento ejemplo
Se tomarán unos datos climatologicos de la region de las Acacias, donde se estudiarán las variables de la temperatura media y la humedad relativa.
library(readxl)
Libro1 <- read_excel("C:/Users/Maiker/Downloads/Libro1.xlsx",
col_types = c("numeric", "numeric"))
Acacias=Libro1
par(mfrow= c(1,2))
hist(Acacias$Tmed, col= "cadetblue1", main = "Distribución temperatura \n media de las Acacias ", xlab = "Temperatura en °C", ylab = "Frecuencia", breaks = 20)
hist(Acacias$RHUM, col= "aquamarine1", main = "Distribución de Humedad \n Relativa de las Acacias", xlab = "Humedad Relativa en %", ylab = "Frecuencia", breaks = 20)
En estas graficas podemos observar que los datos se distirbuyen de forma normal, donde la temperatura media busca tener una simetria, mientras que la humedad relativa se sesga negativamente. Sin embargo los datos manejan unidades fuertemente diferentes, pues mientras en la temperatura tiene una maxima de casi 30°, en la humedad relativa este dato esta cerca del 100%.
Esto se puede evidenciar a la hora de comparar las dos varibles en una tabla de distirbución de puntos, donde sostener los ejes con la misma escala (que es lo correcto) no beneficia los propositos del investigador de relacionar las dos variables de forma lineal
library(readxl)
Libro1 <- read_excel("C:/Users/Maiker/Downloads/Libro1.xlsx",
col_types = c("numeric", "numeric"))
par(bg='white', fg = 'darkred', mfrow = c(1,2))
plot(x=Acacias$Tmed, y=Acacias$RHUM, pch = 16, cex = 0.4, main = "Temperatura media vs \n Humedad Relativa \n ajustada", xlab = "Temperatura media", ylab = "Humedad Relativa", col = "blue")
grid(nx = 10, ny=10, lwd = 1, col = "black")
plot(x=Acacias$Tmed, y=Acacias$RHUM, pch = 16, cex = 0.4, main = "Temperatura media \n vs Humedad Relativa \n no ajustada", xlab = "Temperatura media", ylab = "Humedad Relativa", col = "blue", ylim = c(0,100), xlim = c(0,100) )
grid(nx = 10, ny=10, lwd = 1, col = "black")
Los graficos que presentan unidades diferentes en los ejes son muy engañosos.
Cambian los valores de los ejes, pero la dispersión se mantiene.
La puntuación Z posible el proceso de estadarización y para comparar los resultados se dará en forma de función
\[Z = \frac{x-\mu_x}{\sigma_x}\]
estandarizacion = function(x){
media = mean(x)
desv = sd(x)
z = (x - media)/desv
return(z)
}
Tmed_z<-estandarizacion(Acacias$Tmed)
RHUM_z<-estandarizacion(Acacias$RHUM)
par(mfrow= c(2,2))
hist(Acacias$Tmed, col = "cadetblue1", main = "Distribución temperatura \n media de las Acacias ", xlab = "Temperatura en °C", ylab = "Frecuencia", breaks = 20)
hist(Tmed_z, col = "cadetblue1", main = "Distribución temperatura \n media de las Acacias estandarizada", xlab = "Temperatura en °C", ylab = "Frecuencia", breaks = 20)
hist(Acacias$RHUM, col= "aquamarine1", main = "Distribución de Humedad \n Relativa de las Acacias", xlab = "Humedad Relativa en %", ylab = "Frecuencia", breaks = 20)
hist(RHUM_z, col= "aquamarine1", main = "Distribución de Humedad \n Relativa de las Acacias estandarizada", xlab = "Humedad Relativa en %", ylab = "Frecuencia", breaks = 20)
como se puede observar, los datos no presentaron cambios en sus distribución y/o caracteristicas estadisticas, sin embargo, tanto la temperatura emdia estandarizada como la humedad relativa estandarizada presente un mismo formato de unidades lo que facilita el proceso de análisis estadÃstico y correlación.
Con los siguientes resultados podemos comprobar que tanto la temperatura media como la humedad relativa presentan desviaciones estandar de 1 y medias muy cercanas a 0.
mean(Tmed_z)
## [1] -8.148022e-16
sd(Tmed_z)
## [1] 1
mean(RHUM_z)
## [1] 2.866366e-16
sd(RHUM_z)
## [1] 1
Ahora bien, al hacer una distribución de puntos entre los daots normales y los estandarizados, veremos que los datos se conservar en distribución pero tanto el eje y como el x en el estandarizado tienen las mismas escalas.
par(mfrow=c(1,2))
plot(x=Acacias$Tmed, y=Acacias$RHUM, pch = 16, cex = 0.4, main = "Temperatura media vs \n Humedad Relativa \n no estandarizada", xlab = "Temperatura media", ylab = "Humedad Relativa", col = "blue")
grid(nx = 10, ny=10, lwd = 1, col = "black")
plot(x=Tmed_z, y=RHUM_z, pch = 16, cex = 0.4, main = "Temperatura media vs \n Humedad Relativa \n estandarizada", xlab = "Temperatura media", ylab = "Humedad Relativa", col = "blue")
grid(nx = 10, ny=10, lwd = 1, col = "black")
Ahora bien, pongamolo en escalas reales y comparemoslos.
par(mfrow=c(1,2))
plot(x=Acacias$Tmed, y=Acacias$RHUM, pch = 16, cex = 0.4, main = "Temperatura media \n vs Humedad Relativa \n no estandarizada", xlab = "Temperatura media", ylab = "Humedad Relativa", col = "darkgreen", ylim = c(0,100), xlim = c(0,100) )
grid(nx = 10, ny=10, lwd = 1, col = "black")
plot(x=Tmed_z, y=RHUM_z, pch = 16, cex = 0.4, main = "Temperatura media \n vs Humedad Relativa \n estandarizada", xlab = "Temperatura media", ylab = "Humedad Relativa", col = "darkgreen" )
grid(nx = 10, ny=10, lwd = 1, col = "black")
Con esto, al moemnto de realizar la correlación de datos obtener resultados muy diferentes entre los mismos que en muchos casos benefician al investigador
Correlación entre las variables
En este proceso se pueden usar dos métodos principales para bscar relaciones entre las variables:
El método de Pearson: este busca relaciones lineales entre las variables
El método de Spearman: este busca la relación monotono, es decir que todos los datos mantenga una forma creciente o decreciente de manera uniforme.
corr<-cor(Acacias$Tmed, Acacias$RHUM, method = "pearson")
corr_z<-cor(Tmed_z,RHUM_z, method = "pearson")
corr;corr_z
## [1] -0.6034923
## [1] -0.6034923
De tal forma que la relación en ambos conjuntos de datos se sostiene y al realizar una regresión para la presunción de datos.
Regresión lineal
En una primera parte se definbe que en el eje x debe de ir la variable independiente, como la temepratura, pues esta no es controlada por otros factores involucrados, a diferencia de la humedad relativa que es probable se vea infgluenciada por la temperatura.
par(mfrow = c(1,2))
mod=lm(Acacias$Tmed~Acacias$RHUM)
mod_z<-lm(Tmed_z~RHUM_z)
plot(x=Acacias$Tmed, y=Acacias$RHUM, pch = 16, cex = 0.4, main = "Temperatura media \n vs Humedad Relativa \n no estandarizada", xlab = "Temperatura media", ylab = "Humedad Relativa", col = "darkgreen", ylim = c(0,100), xlim = c(0,100) )
grid(nx = 10, ny=10, lwd = 1, col = "black")
abline(mod, col = "darkred")
plot(x=Tmed_z, y=RHUM_z, pch = 16, cex = 0.4, main = "Temperatura media \n vs Humedad Relativa \n estandarizada", xlab = "Temperatura media", ylab = "Humedad Relativa", col = "darkgreen" )
grid(nx = 10, ny=10, lwd = 1, col = "black")
abline(mod_z, col = "darkred")
como se puede observar, en los datos no estandarizados no, hay congruencia entre los datos y la regresión lineal, pues los calculos se dan para escalas diferentes y esto perjudica la confiabilidad de los resultados.
par(mfrow = c(1,2))
plot(x=Acacias$Tmed, y=Acacias$RHUM, pch = 16, cex = 0.4, main = "Temperatura media \n vs Humedad Relativa \n no estandarizada", xlab = "Temperatura media", ylab = "Humedad Relativa", col = "darkgreen", ylim = c(0,100), xlim = c(0,100) )
grid(nx = 10, ny=10, lwd = 1, col = "black")
abline(mod, col = "darkred")
plot(x=Acacias$Tmed, y=Acacias$RHUM, pch = 16, cex = 0.4, main = "Temperatura media vs \n Humedad Relativa \n ajustada", xlab = "Temperatura media", ylab = "Humedad Relativa", col = "blue")
grid(nx = 10, ny=10, lwd = 1, col = "black")
abline(mod, col = "darkred")
Donde los cambios de escala no permiten un correcto desarrollo de la regresión lineal.
En ultimas se obtiene lo siguiente:
mod;mod_z
##
## Call:
## lm(formula = Acacias$Tmed ~ Acacias$RHUM)
##
## Coefficients:
## (Intercept) Acacias$RHUM
## 35.0840 -0.1009
##
## Call:
## lm(formula = Tmed_z ~ RHUM_z)
##
## Coefficients:
## (Intercept) RHUM_z
## -9.708e-16 -6.035e-01
\[Regresión~lineal~sin~estadarización\\y=-0.1x + 35\] \[Regresión~lineal~con~estadarización\\y=-0.6x\] Donde evidentemente los datos estandarizados son más confiables, demuestran mejor una posible relación entre la huemdad relativa y la temepratura y se hacen datos confiables
Otros modelos agronómicos
Blumberg
\[y(t)=\frac{\alpha + (t+t_0)^m}{\omega_0 + (t+t_0)^m}\]
library(growthmodels)
growth <- blumberg(0:100, 10, 2, 0.5)
par(bg = 'white', fg = 'darkred')
plot(growth, pch = 19, cex = 0.5, main = 'Modelo de crecimiento Blumberg', xlab = 'Time', col = 'darkblue')
grid(nx = 10, ny = 10, lwd = 1,col = 'black')
Brody \[y(t)= \alpha -(\alpha-\omega_0)exp(-kt)\]
growth1<- brody(0:100, 10, 2, 0.5)
# Calculate inverse function
time1<- brody.inverse(growth, 10, 5, 0.3)
plot(y=growth1,x=time1,pch = 19, cex = 0.5, main = 'Modelo de crecimiento Brody', xlab = 'Time1', col = 'darkblue')
grid(nx = 10, ny = 10, lwd = 1,col = 'black')
Champman Richards
\[y(t)=\alpha(1-\beta exp(-kt)^\frac {1}{(1-m)} )\]
growth2<- chapmanRichards(0:100, 10, 0.5, 0.3, 0.5)
# Calculate inverse function
time2<- chapmanRichards.inverse(growth, 10, 0.5, 0.3, 0.5)
plot(y=growth2,x=time2,pch = 19, cex = 0.5, main = 'Modelo de crecimiento champman Richards', xlab = 'Time2', col = 'darkblue')
grid(nx = 10, ny = 10, lwd = 1,col = 'black')
Morgan-Mercer-Flodin growth model
\[y(t)= \frac {(\omega_0 \gamma +\alpha t^m)}{\gamma}+t^m\]
library(growthmodels)
growth3<- mmf(0:100, 10, 0.5, 4, 1)
# Calculate inverse function
time3<- mmf.inverse(growth, 10, 0.5, 4, 1)
plot(y=growth3, x= time3,pch = 19, cex = 0.5, main = 'Modelo de crecimiento Morgan-Mercer-Flodin growth model', xlab = 'Time3', col = 'darkblue')
grid(nx = 10, ny = 10, lwd = 1,col = 'black')