Los datos provienen de una investigación http://biblioteca.usac.edu.gt/tesis/01/01_2692.pdf de fin de carrera de la Facultad de Agronomía. Algunos datos fueron modificados con el propósito de mostrar el ejemplo de análisis.

Usar la biblioteca “data.table”

Verificar que dispone de la biblioteca data.table, revisando el listado de “Packages” en el marco inferior derecho de RStudio. Si aún no está disponible realice la instalación de la siguiente manera

install.packages("data.table")

Enseguida invoque la biblioteca “data.table” que resulta útil para importar datos desde una ubicación en Internet

require(data.table)
## Loading required package: data.table

Importar los datos

Importe el archivo “papa.csv” desde una ubicación en Internet y cree el objeto “papa” de la siguiente manera:

papa<- fread("https://archive.org/download/byrong_Papa/papa.csv", sep=",", dec=".", header = T)

Puede revisar la estructura de la tabla de datos solicitando una vista de los primeros seis registros

print(head(papa))
##    variedad   peso tub
## 1:    loman 567.50  10
## 2:    loman 113.50   8
## 3:    loman 397.25   6
## 4:    loman 454.00  12
## 5:    loman 340.50  10
## 6:    loman 255.38  12

Estadísticas descriptivas

Instalar el paquete fBasics para calcular las estadísticas descriptivas

install.packages("fBasics")

Invocar el paquete “fBasics”

library(fBasics)
## Loading required package: timeDate
## Loading required package: timeSeries
## 
## Attaching package: 'fBasics'
## The following object is masked from 'package:car':
## 
##     densityPlot

Usar el paquete “fBasics”

round(basicStats(papa[,c(-1)], ci = 0.95),2)
##                 peso     tub
## nobs           88.00   88.00
## NAs             0.00    0.00
## Minimum        28.39    2.00
## Maximum      1135.00   48.00
## 1. Quartile   227.00    8.00
## 3. Quartile   461.10   24.00
## Mean          389.38   16.07
## Median        340.50   14.00
## Sum         34265.00 1414.00
## SE Mean        22.22    1.05
## LCL Mean      345.20   13.97
## UCL Mean      433.55   18.16
## Variance    43458.80   97.72
## Stdev         208.47    9.89
## Skewness        1.16    0.90
## Kurtosis        1.77    0.43

Colocar en memoria las variables de la tabla de datos “papa”

attach(papa)

Revisar la normalidad de las variables

Calcular el estadístico W de Shapiro-Wilk para cada variable

shapiro.peso<-shapiro.test(peso); shapiro.peso
## 
##  Shapiro-Wilk normality test
## 
## data:  peso
## W = 0.91488, p-value = 2.442e-05
shapiro.tub<-shapiro.test(tub); shapiro.tub
## 
##  Shapiro-Wilk normality test
## 
## data:  tub
## W = 0.92486, p-value = 7.639e-05

Construir QQ Plot para cada variable

Verificar que dispone de la biblioteca “car”, revisando el listado de “Packages” en el marco inferior derecho de RStudio. Si aún no está disponible realice la instalación de la siguiente manera

install.packages("car")

Es posible que después de instalar “car” se requiera también “carData”, si ese fuera el caso también agregarlo siguiendo el mismo procedimiento. Una vez se cuente con los paquetes instalados solicitar los gráficos de cuantil-cuantil (QQ Plot) para ambas variables.

par(mfrow=c(1,2))
qqPlot(peso)
## [1] 13 14
qqPlot(tub)

## [1] 45 53

Transformación de las variables

Usar la biblioteca MASS para graficar la familia de transformaciones de Box Cox y definir el valor de lambda para transformar las variables que no pueden ser modeladas bajo distribución normal

require(MASS)
## Loading required package: MASS
par(mfrow=c(1,2))
boxcox(peso~1)
abline(v=0.35, col="red")
boxcox(tub~1)
abline(v=0.25,col="blue")

Invocar la biblioteca fpp para calcular el valor de lambda

library(fpp)
## Loading required package: forecast
## Loading required package: fma
## 
## Attaching package: 'fma'
## The following objects are masked from 'package:MASS':
## 
##     cement, housing, petrol
## Loading required package: expsmooth
## Loading required package: lmtest
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following object is masked from 'package:timeSeries':
## 
##     time<-
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: tseries

Calcular el valor de lambda para cada variable

lambda.peso=BoxCox.lambda(peso, method=c("loglik"), lower=-5, upper=5)
lambda.peso
## [1] 0.35
lambda.tub=BoxCox.lambda(tub, method=c("loglik"), lower=-5, upper=5)
lambda.tub
## [1] 0.25

Construir diagramas de caja para las variables sin transformar

par(mfrow=c(1,2))
boxplot(peso, ylab="Peso en gramos por planta", col="green")
boxplot(tub, ylab="Número de tubérculos por planta", col="orange")

Transformación de Tukey de las variables usando el valor de lambda

peso.t<-peso^lambda.peso
peso.t
##  [1]  9.202123  5.239002  8.122175  8.510784  7.695574  6.958496 10.352205
##  [8]  9.808475  9.663478  7.219840  7.695574  9.038424 11.728664 11.625211
## [15]  9.038424  8.693332  8.868965  9.038424  6.677425  6.677425  3.225581
## [22]  8.510784  9.808475  8.868965 10.480157  6.958496  8.320727  9.949646
## [29]  6.037825  6.037825  9.038424  6.958496  7.219840  7.695574  7.695574
## [36]  5.664641  6.037825  7.695574  8.510784  7.695574  9.808475  9.949646
## [43]  8.510784  6.037825  7.219840  7.219840  5.664641  8.320727  6.677425
## [50]  8.510784  8.510784  8.320727 10.352205  9.202123  7.695574  9.808475
## [57]  8.510784  6.677425  8.868965  6.677425  6.958496  7.219840  6.677425
## [64]  6.677425  6.677425  6.677425  8.510784  8.122175  8.510784  6.677425
## [71]  8.510784  6.677425  7.695574  6.372586  8.510784  7.219840  7.464787
## [78]  7.695574  7.361943  7.695574  6.037825  4.110438  6.037825  6.677425
## [85]  6.677425  8.510784  8.122175  6.372586
tub.t<-tub^lambda.tub
tub.t
##  [1] 1.778279 1.681793 1.565085 1.861210 1.778279 1.861210 1.934336
##  [8] 1.898829 2.000000 1.316074 1.565085 2.030543 1.861210 1.898829
## [15] 1.626577 1.732051 1.778279 1.732051 1.414214 1.495349 1.189207
## [22] 1.626577 1.732051 1.778279 1.495349 1.626577 1.681793 1.626577
## [29] 1.565085 1.495349 1.778279 1.565085 1.626577 1.681793 1.626577
## [36] 1.565085 1.861210 1.681793 1.778279 1.681793 1.732051 1.565085
## [43] 1.967990 1.495349 2.632148 2.340347 2.114743 2.059767 1.967990
## [50] 2.030543 2.059767 2.114743 2.560750 2.236068 2.279507 2.432299
## [57] 2.340347 2.059767 2.340347 2.114743 2.236068 2.279507 2.165737
## [64] 1.967990 2.059767 2.114743 2.340347 2.165737 2.432299 2.545730
## [71] 2.300327 2.059767 2.213364 2.213364 2.059767 2.213364 2.213364
## [78] 2.279507 2.236068 1.934336 1.934336 1.316074 1.861210 2.000000
## [85] 2.000000 2.279507 2.279507 2.213364

Transformación de Box Cox de las variables usando el valor de lambda

peso.t1<-((peso^lambda.peso-1)/lambda.peso)
peso.t1
##  [1] 23.434638 12.111434 20.349073 21.459382 19.130210 17.024276 26.720586
##  [8] 25.167071 24.752794 17.770971 19.130210 22.966927 30.653326 30.357746
## [15] 22.966927 21.980948 22.482757 22.966927 16.221216 16.221216  6.358801
## [22] 21.459382 25.167071 22.482757 27.086162 17.024276 20.916363 25.570417
## [29] 14.393785 14.393785 22.966927 17.024276 17.770971 19.130210 19.130210
## [36] 13.327547 14.393785 19.130210 21.459382 19.130210 25.167071 25.570417
## [43] 21.459382 14.393785 17.770971 17.770971 13.327547 20.916363 16.221216
## [50] 21.459382 21.459382 20.916363 26.720586 23.434638 19.130210 25.167071
## [57] 21.459382 16.221216 22.482757 16.221216 17.024276 17.770971 16.221216
## [64] 16.221216 16.221216 16.221216 21.459382 20.349073 21.459382 16.221216
## [71] 21.459382 16.221216 19.130210 15.350245 21.459382 17.770971 18.470820
## [78] 19.130210 18.176979 19.130210 14.393785  8.886964 14.393785 16.221216
## [85] 16.221216 21.459382 20.349073 15.350245
tub.t1<-((tub^lambda.tub-1)/lambda.tub)
tub.t1
##  [1] 3.1131176 2.7271713 2.2603383 3.4448389 3.1131176 3.4448389 3.7373457
##  [8] 3.5953157 4.0000000 1.2642961 2.2603383 4.1221727 3.4448389 3.5953157
## [15] 2.5063062 2.9282032 3.1131176 2.9282032 1.6568542 1.9813951 0.7568285
## [22] 2.5063062 2.9282032 3.1131176 1.9813951 2.5063062 2.7271713 2.5063062
## [29] 2.2603383 1.9813951 3.1131176 2.2603383 2.5063062 2.7271713 2.5063062
## [36] 2.2603383 3.4448389 2.7271713 3.1131176 2.7271713 2.9282032 2.2603383
## [43] 3.8719587 1.9813951 6.5285921 5.3613893 4.4589701 4.2390686 3.8719587
## [50] 4.1221727 4.2390686 4.4589701 6.2429984 4.9442719 5.1180282 5.7291971
## [57] 5.3613893 4.2390686 5.3613893 4.4589701 4.9442719 5.1180282 4.6629471
## [64] 3.8719587 4.2390686 4.4589701 5.3613893 4.6629471 5.7291971 6.1829196
## [71] 5.2013065 4.2390686 4.8534554 4.8534554 4.2390686 4.8534554 4.8534554
## [78] 5.1180282 4.9442719 3.7373457 3.7373457 1.2642961 3.4448389 4.0000000
## [85] 4.0000000 5.1180282 5.1180282 4.8534554

Construir diagramas de caja para las variables transformadas

par(mfrow=c(1,2))
boxplot(peso.t, ylab="Peso en gramos por planta", col="green")
boxplot(tub.t, ylab="Número de tubérculos por planta", col="orange")

Calcular el estadístico W de Shapiro-Wilk para cada variable transformada

shapiro.pesot<-shapiro.test(peso.t); shapiro.pesot
## 
##  Shapiro-Wilk normality test
## 
## data:  peso.t
## W = 0.98055, p-value = 0.209
shapiro.tubt<-shapiro.test(tub.t); shapiro.tubt
## 
##  Shapiro-Wilk normality test
## 
## data:  tub.t
## W = 0.98432, p-value = 0.3688

Box plot por grupos para las variables transformadas

par(mfrow=c(1,1))
boxplot(peso.t~variedad, col="yellow", xlab="Variedades de papa", ylab="Peso en gramos por planta")

boxplot(tub.t~variedad, col="yellow", xlab="Variedades de papa", ylab="Número de tubérculos por planta")

Pruebas de medias

Prueba de medias para las variedades para poblaciones independientes

var.test(peso.t~variedad, conf.level=0.95)
## 
##  F test to compare two variances
## 
## data:  peso.t by variedad
## F = 0.46108, num df = 43, denom df = 43, p-value = 0.01266
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.2515902 0.8450214
## sample estimates:
## ratio of variances 
##          0.4610847
t.test(peso.t~variedad, var.equal=F)
## 
##  Welch Two Sample t-test
## 
## data:  peso.t by variedad
## t = -2.1711, df = 75.701, p-value = 0.03306
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -1.30181794 -0.05605626
## sample estimates:
##  mean in group icta mean in group loman 
##            7.470416            8.149353
var.test(tub.t~variedad, conf.level=0.95)
## 
##  F test to compare two variances
## 
## data:  tub.t by variedad
## F = 1.5185, num df = 43, denom df = 43, p-value = 0.1748
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.8285903 2.7830038
## sample estimates:
## ratio of variances 
##           1.518542
t.test(tub.t~variedad, var.equal=T)
## 
##  Two Sample t-test
## 
## data:  tub.t by variedad
## t = 11.483, df = 86, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  0.4015272 0.5696528
## sample estimates:
##  mean in group icta mean in group loman 
##            2.172705            1.687115
tapply(peso,variedad,mean)
##     icta    loman 
## 332.4866 446.2634
tapply(tub,variedad,mean)
##      icta     loman 
## 23.522727  8.613636

Prueba de medias para las variables para poblaciones dependientes

t.test(peso.t~variedad, paired=T)
## 
##  Paired t-test
## 
## data:  peso.t by variedad
## t = -2.6367, df = 43, p-value = 0.0116
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -1.1982184 -0.1596558
## sample estimates:
## mean of the differences 
##              -0.6789371
t.test(tub.t~variedad, paired=T)
## 
##  Paired t-test
## 
## data:  tub.t by variedad
## t = 11.819, df = 43, p-value = 4.274e-15
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  0.4027327 0.5684472
## sample estimates:
## mean of the differences 
##                 0.48559

Remover las variables de la tabla de datos “papa” de la memoria

detach(papa)

Ejercicio

En el archivo: https://archive.org/download/zanahoria/zanahoria.csv, se presentan cinco variables, correspondientes al estudio de mercado de zanahoria (Daucus carota L.) realizado por Paredes (2013) en el municipio de Chimaltenango, disponibles en http://www.repositorio.usac.edu.gt/6202/1/TESIS%20OTTO%20PAREDES.pdf.

Las variables medidas fueron:

Encuesta: relacionada con el número de la encuesta; Edad: edad del entrevistado; PNF: número de personas en el núcleo familiar; FCS: frecuencia de compra por semana; VC: volumen de compra por unidad.

De manera individual:

  1. Importe la tabla de datos a RStudio
  2. Calcule las medidas de tendencia central para cada una de las variables numéricas
  3. Calcule las medidas de dispersión para cada una de las variables numéricas
  4. Divida la tabla de datos en tres grupos, de acuerdo con la Edad: Grupo 1: menor a 30 años Grupo 2: de 30 a 45 años Grupo 3: más de 45 años

  5. Calcule la cantidad de encuestados por cada grupo, la cantidad promedio de personas por núcleo familiar, la frecuencia promedio de compra por semana y el volumen total de compra por grupo.

Regresar a la página principal de Scripts