Enunciado

Adjunto encontrará los archivos:

• bands.data, el cual contiene una base de datos en la que se miden ciertas características a las bandas que se usan para cubrir los cilindros de gas. Para ser más específicos, se trata de un conjunto de bandas, las cuales poseen ciertas características que fueron medidas el momento de su fabricación en una máquina. Si desea información a detalle (aunque no es necesario para el presente trabajo) de cada una de estas variables medidas, la puede encontrar en la página https://archive.ics.uci.edu/ml/ datasets/Cylinder+Bands. Note que en la base de datos, en algunas variables existe el símbolo “?”, el cual en realidad se debe interpretar como un valor perdido NA

• bands.names, el cual contiene una matriz con el nombre de las variables, el tipo de variable (nominal, numérica, etc. . . ) y en algunos casos los valores que toma la variable.

Luego de importar la base de datos y la matriz con los nombres de las variables, responda a las siguientes preguntas:

Pregunta 1

Asigne los nombres que se encuentran en la matriz bands.names, a las variables de la base de datos. Se solicita que este proceso cumpla dos requisitos:

Z

library(stringr)
## Warning: package 'stringr' was built under R version 4.2.3
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.2.2
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.4.0      ✔ purrr   1.0.1 
## ✔ tibble  3.1.8      ✔ dplyr   1.0.10
## ✔ tidyr   1.3.0      ✔ forcats 0.5.2 
## ✔ readr   2.1.3
## Warning: package 'tibble' was built under R version 4.2.2
## Warning: package 'tidyr' was built under R version 4.2.3
## Warning: package 'readr' was built under R version 4.2.2
## Warning: package 'purrr' was built under R version 4.2.3
## Warning: package 'dplyr' was built under R version 4.2.2
## Warning: package 'forcats' was built under R version 4.2.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(reshape)
## Warning: package 'reshape' was built under R version 4.2.2
## 
## Attaching package: 'reshape'
## 
## The following object is masked from 'package:dplyr':
## 
##     rename
## 
## The following objects are masked from 'package:tidyr':
## 
##     expand, smiths
library(fdth)
## Warning: package 'fdth' was built under R version 4.2.2
## 
## Attaching package: 'fdth'
## 
## The following objects are masked from 'package:stats':
## 
##     sd, var
library(readr)
b1<- "C:/Users/SEGUNDO/OneDrive - ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO/Kevin Lopez/OCTAVO ESPOCH/TRABAJOS ESTADISTICA/ESTADISTICA/bands.data.txt"

ss<- read.table(b1, header = F, sep="," )

b2 <- "C:/Users/SEGUNDO/OneDrive - ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO/Kevin Lopez/OCTAVO ESPOCH/TRABAJOS ESTADISTICA/ESTADISTICA/bands.names.txt"


jj<- read.table(b2, header = F, sep=":" )

p<-str_remove(string =jj$V2,pattern = " " )
kl<-str_replace_all(p,pattern = " " ,replacement = "_")
colnames(ss)<-kl
names(ss)
##  [1] "timestamp"           "cylinder_number"     "customer"           
##  [4] "job_number"          "grain_screened"      "ink_color"          
##  [7] "proof_on_ctd_ink"    "blade_mfg"           "cylinder_division"  
## [10] "paper_type"          "ink_type"            "direct_steam"       
## [13] "solvent_type"        "type_on_cylinder"    "press_type"         
## [16] "press"               "unit_number"         "cylinder_size"      
## [19] "paper_mill_location" "plating_tank"        "proof_cut"          
## [22] "viscosity"           "caliper"             "ink_temperature"    
## [25] "humifity"            "roughness"           "blade_pressure"     
## [28] "varnish_pct"         "press_speed"         "ink_pct"            
## [31] "solvent_pct"         "ESA_Voltage"         "ESA_Amperage"       
## [34] "wax"                 "hardener"            "roller_durometer"   
## [37] "current_density"     "anode_space_ratio"   "chrome_content"     
## [40] "band_type"

Pregunta 2

Cree una función propia de R y úsela para determinar el número de NA’s que tiene cada una de las variables en la base de datos

ss[ss=="?"]<-NA

funcion<- function(nas){
detec<-apply(X = is.na(nas), MARGIN = 2, FUN = sum)
detec
}
funcion(ss)
##           timestamp     cylinder_number            customer          job_number 
##                   0                   0                   0                   0 
##      grain_screened           ink_color    proof_on_ctd_ink           blade_mfg 
##                  49                   0                  57                  60 
##   cylinder_division          paper_type            ink_type        direct_steam 
##                   0                   0                   0                  25 
##        solvent_type    type_on_cylinder          press_type               press 
##                  55                  18                   0                   0 
##         unit_number       cylinder_size paper_mill_location        plating_tank 
##                   0                   3                 156                  18 
##           proof_cut           viscosity             caliper     ink_temperature 
##                  55                   5                  27                   2 
##            humifity           roughness      blade_pressure         varnish_pct 
##                   1                  30                  63                  56 
##         press_speed             ink_pct         solvent_pct         ESA_Voltage 
##                  10                  56                  56                  57 
##        ESA_Amperage                 wax            hardener    roller_durometer 
##                  55                   6                   7                  55 
##     current_density   anode_space_ratio      chrome_content           band_type 
##                   7                   7                   3                   0

Pregunta 3

Cree una nueva base de datos, exclusivamente con las bandas cuyo tipo de papel (paper_type) y tipo de tinta (ink_type) son recubiertas (UNCOATED). Las preguntas posteriores serán exclusivamente contestadas a partir de esta nueva base de datos. No imprima la base de datos. Solo muestre el número de filas y columnas que posee

nueva<-rename(ss,c(paper_type="UNCOATED",ink_type="UNCOATED"))
str(nueva)
## 'data.frame':    540 obs. of  40 variables:
##  $ timestamp          : int  19910108 19910109 19910104 19910104 19910111 19910104 19910111 19910111 19910112 19910114 ...
##  $ cylinder_number    : chr  "X126" "X266" "B7" "T133" ...
##  $ customer           : chr  "TVGUIDE" "TVGUIDE" "MODMAT" "MASSEY" ...
##  $ job_number         : int  25503 25503 47201 39039 37351 38039 35751 35751 47201 37000 ...
##  $ grain_screened     : chr  "YES" "YES" "YES" "YES" ...
##  $ ink_color          : chr  "KEY" "KEY" "KEY" "KEY" ...
##  $ proof_on_ctd_ink   : chr  "YES" "YES" "YES" "YES" ...
##  $ blade_mfg          : chr  "BENTON" "BENTON" "BENTON" "BENTON" ...
##  $ cylinder_division  : chr  "GALLATIN" "GALLATIN" "GALLATIN" "GALLATIN" ...
##  $ UNCOATED           : chr  "UNCOATED" "UNCOATED" "UNCOATED" "UNCOATED" ...
##  $ UNCOATED           : chr  "UNCOATED" "UNCOATED" "COATED" "UNCOATED" ...
##  $ direct_steam       : chr  "NO" "NO" "NO" "NO" ...
##  $ solvent_type       : chr  "LINE" "LINE" "LINE" "LINE" ...
##  $ type_on_cylinder   : chr  "YES" "YES" "YES" "YES" ...
##  $ press_type         : chr  "Motter94" "Motter94" "WoodHoe70" "WoodHoe70" ...
##  $ press              : int  821 821 815 816 816 816 827 827 802 815 ...
##  $ unit_number        : int  2 2 9 9 2 2 2 9 7 2 ...
##  $ cylinder_size      : chr  "TABLOID" "TABLOID" "CATALOG" "CATALOG" ...
##  $ paper_mill_location: chr  "NorthUS" "NorthUS" "NorthUS" "NorthUS" ...
##  $ plating_tank       : chr  "1911" NA NA "1910" ...
##  $ proof_cut          : chr  "55" "55" "62" "52" ...
##  $ viscosity          : chr  "46" "46" "40" "40" ...
##  $ caliper            : chr  "0.2" "0.3" "0.433" "0.3" ...
##  $ ink_temperature    : chr  "17" "15" "16" "16" ...
##  $ humifity           : chr  "78" "80" "80" "75" ...
##  $ roughness          : chr  "0.75" "0.75" NA "0.3125" ...
##  $ blade_pressure     : chr  "20" "20" "30" "30" ...
##  $ varnish_pct        : chr  "13.1" "6.6" "6.5" "5.6" ...
##  $ press_speed        : chr  "1700" "1900" "1850" "1467" ...
##  $ ink_pct            : chr  "50.5" "54.9" "53.8" "55.6" ...
##  $ solvent_pct        : chr  "36.4" "38.5" "39.8" "38.8" ...
##  $ ESA_Voltage        : chr  "0" "0" "0" "0" ...
##  $ ESA_Amperage       : chr  "0" "0" "0" "0" ...
##  $ wax                : chr  "2.5" "2.5" "2.8" "2.5" ...
##  $ hardener           : chr  "1" "0.7" "0.9" "1.3" ...
##  $ roller_durometer   : chr  "34" "34" "40" "40" ...
##  $ current_density    : chr  "40" "40" "40" "40" ...
##  $ anode_space_ratio  : chr  "105" "105" "103.87" "108.06" ...
##  $ chrome_content     : chr  "100" "100" "100" "100" ...
##  $ band_type          : chr  "band" "noband" "noband" "noband" ...

Pregunta 4

Usando la base de datos encontrada en la Pregunta 3, realice una tabla de frecuencias pertinente para la variable press (prensa)

aftiempo <- fdt(nueva$press, start = 802, end = 828, breaks = "Sturges")

aftiempo
##  Class limits   f   rf rf(%)  cf cf(%)
##     [802,807)  62 0.11 11.48  62 11.48
##     [807,812)   0 0.00  0.00  62 11.48
##     [812,817) 240 0.44 44.44 302 55.93
##     [817,822)  77 0.14 14.26 379 70.19
##     [822,827) 122 0.23 22.59 501 92.78

Pregunta 5

Realice un diagrama adecuado para representar las frecuencias absolutas de la tabla de fecuencias de la Pregunta 4

plot(aftiempo, type = "fh", v = T)

Pregunta 6

Usando la base de datos encontrada en la Pregunta 3, realice una tabla de frecuencias pertinente para la variable paper_mill_location (ubicación de la fábrica de papel). Note que existe un pequeño error en algunas observaciones que se recogieron con el valor de “CANAdiAN”, cuando en realidad debió ser “CANADIAN”. Antes de realizar la tabla de frecuencias, debe corregir este error

nueva[nueva=="CANAdiAN"]<-"CANADIAN"

tfrec2 <- fdt_cat(nueva$paper_mill_location, decreasing = T)
tfrec2

Pregunta 7

Realice un diagrama de pastel que represente las frecuencias relativas en porcentaje de la tabla de frecuencia de la Pregunta 6. Debe mostrar el valor de las frecuencias en el gráfico

pie(tfrec2$rf, radius = 1, labels = tfrec2$Category,border = "red", 
    col = rainbow(4), main = "Diagrama de Pastel")

Pregunta 8

Usando la base de datos encontrada en la Pregunta 3, realice una tabla de frecuencias pertinente para la variable humifity (humedad)

h<-as.numeric(nueva$humifity)
tt <- fdt(h,start=57,end=105,h=4.8)
tt
##  Class limits   f   rf rf(%)  cf cf(%)
##     [57,61.8)   4 0.01  0.74   4  0.74
##   [61.8,66.6)  18 0.03  3.33  22  4.07
##   [66.6,71.4)  76 0.14 14.07  98 18.15
##   [71.4,76.2) 132 0.24 24.44 230 42.59
##     [76.2,81) 145 0.27 26.85 375 69.44
##     [81,85.8)  74 0.14 13.70 449 83.15
##   [85.8,90.6)  54 0.10 10.00 503 93.15
##   [90.6,95.4)  19 0.04  3.52 522 96.67
##    [95.4,100)  15 0.03  2.78 537 99.44
##     [100,105)   1 0.00  0.19 538 99.63

Pregunta 9

Realice un diagrama adecuado para representar las frecuencias relativas de la tabla de fecuencias de la Pregunta 8

plot(tt, type = "rfh", v = T)

Pregunta 10

Realice un diagrama adecuado para representar las frecuencias relativas acumuladas de la tabla de fecuencias de la Pregunta 8

plot(tt, type = "cfpp", col = "black", v = T)