Objetivo: Obtener una muestra aleatoria de una base de datos, para ajustar modelos de biomasa.
El primer paso para hacer este ejercicio será cargar las siguientes librerías en r.
rm(list=ls(all=TRUE)) # Borramos todos los objetos y bases de datos existentes
dir.create("C:/EPIDOMETRIA") # Crear nuestro directorio
setwd("C:/EPIDOMETRIA") # Ajustar nuestro directorio
getwd() # Ver en que directorio de trabajo estamos
library(corrplot)
library(ecospat)
library(ggplot2)
library(dplyr)
library(tidyr)
library(sampler)
library(reshape)
library(tidyverse)
library(knitr )
Los datos que se utilizarán son de las librerías de r, estos son: data(“trees”). Estos datos vienen como: “Girth”, “Height”, y “Volume”, es decir; es la circunferencia de árbol a 1.3 m, la altura total del árbol, y el volumen. Son 31 observaciones y 3 variables de Black Cherry (Prunus serótina). Note que las unidades son en pulgadas, pies y pies cubicos, respectivamente. Para eso será necesario convertirlas al sistema métrico decimal (S.M.D.), para mejor entendimiento. Ademas re-nombraremos las variables.
data("trees") # Datos de la libreria
attach(trees) # Adjuntamos los datos como dataframe
str(trees) # Vemos la estructura de los datos
## 'data.frame': 31 obs. of 3 variables:
## $ Girth : num 8.3 8.6 8.8 10.5 10.7 10.8 11 11 11.1 11.2 ...
## $ Height: num 70 65 63 72 81 83 66 75 80 75 ...
## $ Volume: num 10.3 10.3 10.2 16.4 18.8 19.7 15.6 18.2 22.6 19.9 ...
Como se indicó anteriormente, los datos vienen en pulgadas, pies y pies cubicos. Para trabajar en nuestro sistema metrico, es necesario hacer algunas conversiones. Aqui hacemos todo esto.
Diametro<-Girth / (pi) #Convertir de "inches" a "cm" y llamar "Girth" como "Diametro"
Altura<-(Height*0.3048) #Convertir de "ft" a "m" y llamar "Height" como "Altura"
Volumen<-(Volume*0.0283168) #Convertir de "cubic ft" a "m3" y llamar "Volume" como "Volumen"
Densidad<-((0.49+0.67)/2)*1000 #Promediar la densidad y transformarla de g/cm3 a kg/m3
Biomasa<-Densidad*Volumen #Transformar el volumen (m3) a Biomasa (kg)
Datos<-data.frame(Diametro, Altura, Volumen, Biomasa)
attach(Datos) #La base de datos prelimina
## The following objects are masked _by_ .GlobalEnv:
##
## Altura, Biomasa, Diametro, Volumen
plot(Diametro, Biomasa, main="Datos originales", cex=1.5)
Cada alumno deberá generar una muestra (m) aleatoria de n=25, para trabajar los diferentes modelos que deberá probar y al final seleccionar. Aqui mismo se exporta el archivo “Muestra.csv”. Este es el que deberá importar en el paso siguiente y utilizar.
library(sampler)
library(tidyverse)
## -- Attaching packages ------------------------------------------------------ tidyverse 1.3.0 --
## v ggplot2 3.3.0 v purrr 0.3.3
## v tibble 3.0.0 v dplyr 0.8.5
## v tidyr 1.0.2 v stringr 1.4.0
## v readr 1.3.1 v forcats 0.4.0
## -- Conflicts --------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
Datos_m<-rsamp(Datos, n=25, rep=FALSE); Datos_m # Obtenemos la muestra
## Diametro Altura Volumen Biomasa
## 1 3.437747 25.2984 0.5578410 323.5478
## 2 4.456338 23.7744 0.9769296 566.6192
## 3 3.596902 24.0792 0.6852666 397.4546
## 4 5.570423 24.9936 1.5772458 914.8025
## 5 2.737465 19.8120 0.2916630 169.1646
## 6 2.801127 19.2024 0.2888314 167.5222
## 7 3.724226 21.0312 0.6031478 349.8257
## 8 4.106198 25.9080 0.9571078 555.1225
## 9 3.501409 22.8600 0.5153658 298.9121
## 10 5.506761 24.6888 1.5687507 909.8754
## 11 4.392676 19.5072 0.7050883 408.9512
## 12 3.342254 21.9456 0.4643955 269.3494
## 13 4.233521 26.2128 0.7758803 450.0106
## 14 4.615493 22.5552 1.0278998 596.1819
## 15 5.729578 24.3840 1.4441568 837.6109
## 16 3.533240 24.3840 0.6399597 371.1766
## 17 4.520000 24.3840 0.8976426 520.6327
## 18 3.405916 24.6888 0.5323558 308.7664
## 19 3.819719 22.8600 0.5408509 313.6935
## 20 5.188451 23.4696 1.2062957 699.6515
## 21 5.092958 21.9456 1.0845334 629.0294
## 22 4.360845 21.6408 0.7277418 422.0902
## 23 5.729578 24.3840 1.4583152 845.8228
## 24 3.628733 23.1648 0.5946528 344.8986
## 25 3.501409 20.1168 0.4417421 256.2104
Mios<-rename(Datos_m, c(D="Diametro", H="Altura", V="Volumen", B="Biomasa"))
attach(Mios)
plot(D, B, xlab = "Diámetro normal (cm)", ylab = "biomasa aérea (kgs", main="Datos muestra", cex=1, col="#CD1076", pch=19)
points(Diametro, Biomasa, cex=1.5)
Para ajustar modelos de regresion es necesario que los datos esten ordenados en base a la variable independiente. Aqui, los ordenamos y los exportamos.
library(knitr )
Mios[with(Mios, order(D)), ] # Ordenamos los datos de menor a mayor en base a D
## D H V B
## 5 2.737465 19.8120 0.2916630 169.1646
## 6 2.801127 19.2024 0.2888314 167.5222
## 12 3.342254 21.9456 0.4643955 269.3494
## 18 3.405916 24.6888 0.5323558 308.7664
## 1 3.437747 25.2984 0.5578410 323.5478
## 9 3.501409 22.8600 0.5153658 298.9121
## 25 3.501409 20.1168 0.4417421 256.2104
## 16 3.533240 24.3840 0.6399597 371.1766
## 3 3.596902 24.0792 0.6852666 397.4546
## 24 3.628733 23.1648 0.5946528 344.8986
## 7 3.724226 21.0312 0.6031478 349.8257
## 19 3.819719 22.8600 0.5408509 313.6935
## 8 4.106198 25.9080 0.9571078 555.1225
## 13 4.233521 26.2128 0.7758803 450.0106
## 22 4.360845 21.6408 0.7277418 422.0902
## 11 4.392676 19.5072 0.7050883 408.9512
## 2 4.456338 23.7744 0.9769296 566.6192
## 17 4.520000 24.3840 0.8976426 520.6327
## 14 4.615493 22.5552 1.0278998 596.1819
## 21 5.092958 21.9456 1.0845334 629.0294
## 20 5.188451 23.4696 1.2062957 699.6515
## 10 5.506761 24.6888 1.5687507 909.8754
## 4 5.570423 24.9936 1.5772458 914.8025
## 15 5.729578 24.3840 1.4441568 837.6109
## 23 5.729578 24.3840 1.4583152 845.8228
write.csv(Mios, file = "Muestra.csv") # Exportamos el archivo.
Una vez habiendo hecho todo esto, ya se ha creado la muestra con la que va a trabajar. En C: le aparecera una carpeta llamada “EPIDOMETRIA” y un archivo llamdo “Muestra.csv”.