Ad01

Ad02

viernes, 13 de enero de 2023

Ejercicios con lenguaje R

 Realice lo siguiente:

i. Cree un script T6iniciales.R con R-Studio

ii. Exporte los datos en Excel adjuntos a archivos.csv

Para los datos de Iris:

iii. Importe los datos a R con read.table() en el archivo de iris hay dos datos perdidos identificados

con “?” y “&”. Considere estos valores en la lectura para denotarlos como valores perdidos NA.

iv. Utilice la función merge() para unir los archivos, utilizando la columna o variable común. Ordene

previamente los conjuntos de datos con order() o sort().

v. Con el archivo unido, identifique los datos perdidos NA a que columna y a que especie

pertenecen.

vi. Calcule la media de la columna donde se encuentra el dato perdido para la especie a que pertenece

el dato. Luego, remplace el dato perdido con la media calculada. (hacer la misma operación para

remplazar los dos datos perdidos).

vii. Grafique un boxplot de los datos por especie de iris.

viii. Calcule estadísticos (por ejemplo, mediana, media, varianza, etc.) de alguna de las columnas en

función de las especies (tratamientos).

ix. Guarde sus resultados en archivos con formato csv o RData, únicamente objetos de interés.

Para los datos de Wine:

i. Exporte de Excel a csv y luego de csv importe los datos a R.

ii. Grafique un boxplot de alguna columna (respuesta) en función de la columna factor.

iii. Calcule la matriz de correlaciones para al menos 5 variables cuantitativas.

iv. Grafique por pares las variables cuantitativas seleccionadas.

v. Efectúe una regresión lineal entre las variables que presenten mayor correlación

vi. Grafique los valores observados y predichos en función de la variable independiente.

vii. Verifique y comente la normalidad de los residuales hist (res), shapiro.test (res)

viii. Cree un objeto data.frame para guardar los valores observados, predichos, y residuales, y luego

guarde el objeto data.frame en un archivo con formato .csv.

Fin de tarea




df.iris1 <- read.table("iris_datos1.csv", header = TRUE, sep = ",")

df.iris2 <- read.table("iris_datos2.csv", header = TRUE, sep = ",")


#identificacion de de signos en los datos y su respectivo cambio


df.iris1[7,2] <- NA

df.iris1[133,3] <- NA

df.iris2[59,2] <- NA

df.iris2[123,3] <- NA


#ordenacion de los datos de las bases de datos


df.iris1.ord <- df.iris1[order(df.iris1$n_obs),]

df.iris2.ord <- df.iris2[order(df.iris2$n_obs),]


#union de los datos de las bases de datos


df.iris <- merge(df.iris1.ord, df.iris2.ord, by = c("n_obs", "especies"))


#identificaion de datos perdidos


which(is.na(df.iris$lon.sepalo))

df.iris[80,2] #columna lon.sepalo, especie setosa

which(is.na(df.iris$ancho.sepalo))

df.iris[14,2] #columna ancho.sepalo, especie virginica

which(is.na(df.iris$lon.petalo))

df.iris[116,2] #columna lon.petalo, especie versicolor

which(is.na(df.iris$ancho.petalo))

df.iris[105,2] #columna ancho.sepalo, especie versicolor


#determinacion de la media para cada columna y el reemplazo de la media en cada na


mean(as.numeric(df.iris$lon.sepalo), na.rm = TRUE)

df.iris[80,3] <- 5.849664

mean(as.numeric(df.iris$ancho.sepalo), na.rm = TRUE)

df.iris[14,4] <- 3.053691

mean(as.numeric(df.iris$lon.petalo), na.rm = TRUE)

df.iris[116,5] <- 3.755705

mean(as.numeric(df.iris$ancho.petalo), na.rm = TRUE)

df.iris[105,6] <- 1.200671


#boxplot a partir de las especies


par(mfrow=c(2,2))

boxplot(as.numeric(df.iris$lon.sepalo) ~ df.iris$especies, xlab = "Especies", 

        ylab = "Longitud sepalo")

boxplot(as.numeric(df.iris$ancho.sepalo) ~ df.iris$especies, xlab = "Especies", 

        ylab = "Ancho sepalo")

boxplot(as.numeric(df.iris$lon.petalo) ~ df.iris$especies, xlab = "Especies", 

        ylab = "Longitud petalo")

boxplot(as.numeric(df.iris$ancho.petalo) ~ df.iris$especies, xlab = "Especies", 

        ylab = "Ancho petalo")


#calculo de algunas variables estadisticas de una columna de la base de datos


tapply(as.numeric(df.iris$lon.petalo), df.iris$especies, mean)

tapply(as.numeric(df.iris$lon.petalo), df.iris$especies, median)

tapply(as.numeric(df.iris$lon.petalo), df.iris$especies, var)

tapply(as.numeric(df.iris$lon.petalo), df.iris$especies, sd)



#importacion de los datos wine


df.wine <- read.table("wine.datos.csv", header = TRUE, sep = ",")


#correlacion de las variables y grafica de variable respuesta y factor


par(mfrow=c(1,1))

boxplot(df.wine$Flavanoids ~ df.wine$Cvs, xlab = "Csv", ylab = "Flavanoids",

        main = "Boxplot de Flavanoids respecto Csv")


#determinacion de matriz de correlacion para 5 variables


cor(df.wine[5:9])


#graficas por pares


plot(df.wine$Total.phenols ~ df.wine$Flavanoids, xlab = "Flavanoids", 

     ylab = "Total phenols")


#calculo de regresiones lineales


df.wine.reg = lm(df.wine$Total.phenols ~ df.wine$Flavanoids)


#graficas de los valores observados y predichos en funci?n de la variable independiente


plot(df.wine$Total.phenols ~ df.wine$Flavanoids, xlab = "Flavanoids", ylab = "Total.phenols")

abline(df.wine.reg, col = "red")


#determinacion de la normalidad 


hist(df.wine.reg$residuals, xlab = "Residuos", ylab = "Frecuencia", 

     main = "Histograma de normalidad Flavanoids - Total phenols")

shapiro.test(df.wine.reg$residuals)


#creacion de un df con los datos observados, predichos, y residuales


data_obs <- df.wine$Total.phenols


fun <- function(x){0.5417*x+1.1958}


data_pred <- sapply(df.wine$Flavanoids, fun)


data_res <- df.wine.reg$residuals


df.nuevo <- data.frame(data_obs, data_pred, data_res)


#guardar el df creado 


write.csv(x = df.nuevo, file = "T6HJBVdfnuevo.csv")





·         Base de datos Iris

Figura 1. Boxpot de los datos de iris respecto a las especies. Fuente: propia

La especie Virginica se caracteriza por tener flores que tienen sépalos largos y pétalos largos y anchos (figura 1), en comparación a las especies Setosa y Versicolor. Las flores de la especie Setosa es todo lo contrario a la anterior, sépalos pequeños y pétalos pequeños y poco anchos.


 

·         Base de datos Wine

Figura 2. Boxplot de Flavanoids respecto a Csv. Fuente: propia

En la figura 2 se observa un boxplot de Flavanoids respecto a Csv. El Csv 1 se caracteriza por tener altos contenidos de Flavanoids en comparación al 2 y 3.

Figura 3. Regresión lineal entre Flavanoids y Total phenols

En la figura 3 se observa la relación entre los Flavanoids y Total phenols. Estas variables tienen una relación directamente proporcional y su modelo lineal es el siguiente:

y=0.5417*x+1.1958

Figura 4. Histograma de normalidad. Fuente: propia

De acuerdo a la figura 4, se observa que hay normalidad desde que los residuos se agrupan en 0. Además, el valor p de 0.01196 muestra que hay diferencias significativas, esto quiere decir que ambas variables se encuentran estrechamente relacionadas.


No hay comentarios.:

Publicar un comentario

Ad3