knitr::opts_chunk$set(echo=TRUE)
Genera datos en forma de campana
En r>\(norm\), se antepone la letra \(r\) para indicar \(random\), es decir, genera datos aleatorios normales.
Genera datos en forma horizontal (aproximadamente), frecuencia tiende a ser la misma. Ningún valor predomina sobre el otro
En r>\(unif\)
set.seed(123)
# aceite del cultivo de limonaria en cc de aceite
acc=rnorm(120,5,0.25)
hist(acc,col="orange",ylim = c(0,30),main="Distribución del contenido de aceite (CC)",ylab="Contenido de aceite",breaks = 10)
rug(acc)
# Viscosidad (Pascal segundo)
vis=runif(120,2,3)
hist(vis,col="orange",ylim=c(0,30),main="Distribución de la viscosidad del aceite (Pascal/Seg)",xlab="Viscosidad de aceite",breaks=10)
# Gráfico de dispersión
plot (acc,vis,pch=19,cex=0.8,main="Contenido de aceite vs viscosidad (Pascal/seg)",ylab="Viscosidad",xlab="Contenido de aceite (CC)")
Los gráficos que presentan unidades diferentes en los ejes son muy engañosos.
\[Z=\frac{x-\mu_x}{\sigma_x}\]
#Función para estandarizar
estand=function(x){
media=mean(x)
desv=sd(x)
z=(x-media)/desv
return(z)
}
#Estandarizando acc
acc_z=estand(acc)
#Estandarización vis
vis_z=estand(vis)
par(mfrow=c(2,2))
hist(acc,main="Acc no estandarizada")
hist(acc_z,main="Acc estandarizada")
hist(vis,main="Vis no estandarizada")
hist(vis_z,main="Vis estandarizada")
(med_acc=mean(acc)) #media sin estandarizar
## [1] 5.00386
(desv_acc=sd(acc)) #desviación sin estandarizar
## [1] 0.223607
(med_acc_z=sd(acc_z)) #media estandarizada igual a 0
## [1] 1
(desv_acc_z=sd(acc_z))#desviación estandarizada=1
## [1] 1
par(mfrow=c(1,2))
plot(acc_z,vis_z,pch=19,cex=0.8,main="Estandarizado")
points(x=mean(acc_z, y=mean(vis_z),col="red",pch=19))
plot(acc,vis,pch=19,cex=0.8,main="No estandarizado")
points(x=mean(acc, y=mean(vis),col="red",pch=19))
Cambian los valores de los ejes, pero la dispersión se mantiene.
Es una medida de la asociación lineal entre un par de variables, cuando la correlación es 1 es una correlación perfecta, esto indica que una variable esta relacionada estadisticamente son la otra. Oscila entre -1 y 1.
cr=cor(acc,vis,method="pearson")
cr
## [1] -0.01905532
cr_z=cor(acc_z,vis_z,method = "pearson")
cr_z
## [1] -0.01905532
#biomasa de tubérculos
set.seed(1234)
biom=rnorm(48,3,0.25)
#tiempo para pesar
tiempo=sort(rnorm(48,30,2))
#Gráfico
plot(y=biom,x=tiempo)
#Corelación
corr=cor(biom,tiempo)
corr
## [1] -0.2020157
¿Tiene sentido en estudiar la relación la biomasa y lo que se tarda en pesar los tubérculos?
¿Según Descartes, en el eje y debe ir la vaiables dependiente y en el eje x la variable independiente? No en todos los casos, ya que se debe evaluar la situación.
#biomasa de NIÑOS
set.seed(1234)
peso=sort(rnorm(48,3,0.25))
#numero de cigueñas contadas
num=sort(floor(rnorm(48,30,2)))
#Gráfico
plot(x=peso,y=num,ylim=c(0,36),xlim=c(0,36))
#Corelación
corr=cor(peso,num)
corr
## [1] 0.9681666
set.seed(1234)
#N en el tejido en ppm
N=rnorm(120,10,0.8)
#P en el tejido en ppm
P=rnorm(120,0.1,0.02)
plot(N,P,pch=19,cex=0.8,col="green")
Nz=estand(N)
Pz=estand(P)
par(mfrow=c(1,2))
plot(N,P,pch=19,cex=0.6,main = "No estandarizado")
plot(Nz,Pz,pch=19,cex=0.6,main = "Estandarizado")
mod=lm(P~N)
plot(N,P,pch=19,cex=0.6)
abline(mod)
summary(mod)
##
## Call:
## lm(formula = P ~ N)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.066253 -0.011210 0.000317 0.011105 0.058997
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.0946880 0.0262321 3.61 0.000451 ***
## N 0.0007665 0.0026472 0.29 0.772674
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02192 on 118 degrees of freedom
## Multiple R-squared: 0.00071, Adjusted R-squared: -0.007759
## F-statistic: 0.08383 on 1 and 118 DF, p-value: 0.7727
\[y=mx+b\]
#Coeficiente de la recta
b=-0.1638
m=0.0265
# m es la tangente de teta
#tang 0=0.0265
#0=arctang(0.0265)
\[Pendiente~es~igual~a~tan(\theta)\] \[tan(\theta) = Pendiente\]
ang_r=atan(m)
ang_r
## [1] 0.0264938
ang_g=ang_r*180/pi
ang_g
## [1] 1.517983
Acacias <- read.table(file="Acacias_Meta_2011_2019_JOINT.txt",header=T)
plot (Acacias$Tmed, Acacias$RHUM,pch=19,cex=0.8,col= "darkgreen",main="Temperatura media vs Humedad Relativa",xlab="Temperatura media",ylab="Humedad Relativa")
cr_hum=cor(Acacias$Tmed, Acacias$RHUM,method = "pearson")
cr_hum
## [1] -0.6034923
#Función para estandarizar
estanda=function(x){
media=mean(x)
desv=sd(x)
z=(x-media)/desv
return(z)
}
#Estandarizando Humedad Relativa
hum_z=estanda(Acacias$RHUM)
#Estandarización Temperatura Media
tem_z=estanda(Acacias$Tmed)
par(mfrow=c(2,2))
hist(Acacias$Tmed,main="Temperatura no estandarizada",col="pink")
hist(tem_z,main="Temperatura estandarizada",col="violet")
hist(Acacias$RHUM,main="Humedad no estandarizada",col="pink")
hist(hum_z,main="Humedad estandarizada",col="violet")
aca=lm(Acacias$Tmed~Acacias$RHUM)
aca_z=lm(tem_z~hum_z)
par(mfrow=c(1,2))
plot(Acacias$Tmed, Acacias$RHUM,pch=19,cex=0.3,col="blue",main=" No estandarizado", ylab= "Humedad Relativa",xlab="Temperatura media °C")
points(x=mean(Acacias$Tmed),y=mean(Acacias$RHUM),col="purple",pch=19,cex=0.8 )
abline(aca)
grid(10,10)
plot(tem_z,hum_z,pch=19,cex=0.3,main="Estandarizado", ylab= "Humedad Relativa",xlab="Temperatura media °C")
abline(aca_z)
points(x=mean(tem_z),y=mean(hum_z),pch=19,cex=0.8,col="violet")
grid(10,10)
par(mfrow=c(1,2))
plot(Acacias$Tmed,Acacias$RHUM,pch=19,cex=0.3,col="blue",main=" No estandarizado", ylab= "Humedad Relativa",xlab="Temperatura media °C",ylim = c(0,100), xlim = c(0,100))
abline(aca)
grid(10,10)
La escala de la gráfica hace que los gráficos sin estandarizar sean engañosos.
¿Cuando un comportamiento deja de ser lineal?
R\: Los sistemas no lineales representan sistemas cuyo comportamiento no es expresable como la suma de los comportamientos de sus descriptores. En particular, el comportamiento de sistemas no lineales no está sujeto al principio de superposición, como lo es un sistema lineal. Un cambio no lineal es aquel que no se basa en una simple relación proporcional entre causa y efecto. Por lo tanto, cuando se usa para referirse a cambios, estos suelen ser bruscos, inesperados y difíciles de prever
A instalar el paquete growthmodels, se pueden identificar los diferentes modelos a usar:
#library(growthmodels)
#growthmodels::brody()
Numerosos estudios, en especial los relacionados con técnicas agronómicas, analizan la curva de Brody para ajustar los valores de su realidad empírica. La curva de Brody viene representada por la siguiente expresión
\[f(t)=b_0(1-b_1e^{-b{_2}t})\] Con\[ b_0,~~ b_1 ~~y~~ b_2 >0~~ y ~~~~t>=0\]
Curva Brody