#ejercicio 2.1
#se crea un vector de 5 variables
x=c(1,3,5,7,9)
print(x)
## [1] 1 3 5 7 9
#se crea un vector de 6 variables
y=c(2,4,6,7,11,12)
print(y)
## [1]  2  4  6  7 11 12
#suma 1 a todas las posiciones del vector
x+1
## [1]  2  4  6  8 10
print(x+1)
## [1]  2  4  6  8 10
#duplica el valor de todas las posiciones del vector
y*2
## [1]  4  8 12 14 22 24
print(y*2)
## [1]  4  8 12 14 22 24
#muestra el tamaño o cuantas variables tiene cada vector
print(length(x))
## [1] 5
print(length(y))
## [1] 6
#suma los 2 vectores, pero al no ser del mismo tamaño lanza un mensaje de error y el ultimo valor del
#vetor y lo suma con 1 imaginario
x+y
## Warning in x + y: longitud de objeto mayor no es múltiplo de la longitud de uno
## menor
## [1]  3  7 11 14 20 13
print(x+y)
## Warning in x + y: longitud de objeto mayor no es múltiplo de la longitud de uno
## menor
## [1]  3  7 11 14 20 13
#muestra las posiciones que son mayores a 5 en el vector x
sum(x>5)
## [1] 2
print(sum(x>5))
## [1] 2
#suma los valores de las posiciones que son mayores a 5 en el vector x
sum(x[x>5])
## [1] 16
print(sum(x[x>5]))
## [1] 16
#muestra las posiciones del vector x que son mayores a 5 y menores que 3
sum(x>5|x<3)
## [1] 3
#muestra el valor de la posicion 2 del vector y
print(y[2])
## [1] 4
#muestra todos los valores del vector y menos el de la posicion 2
print(y[-2])
## [1]  2  6  7 11 12
#
print(y[x])
## [1]  2  6 11 NA NA
#el termino "NA" es usado para representar explícitamente datos perdidos, 
#omitidos o que por alguna razón son faltantes o tambien puede aparecer
#como resultado de una operación realizada, pero no tuvo éxito en su ejecución. 
###########
#muestra los valores del vector y que sean mayores o iguales a 8
print(y[y>=8])
## [1] 11 12

2.2 Un conductor europeo de viaje por Estados Unidos apunta las millas recorridas por su coche cada vez que llena el tanque de gasolina. La relación de las últimas 10 veces que lo ha llenado es la siguiente:

              65241 65665 65998 66014 66547 66857 67025 67447 66958 67002
              
  1. Crea una variable llamada “millas” que contenga los datos anotados.
millas = c(65241, 65665, 65998, 66014, 66547, 66857, 67025, 67447, 66958, 67002)
millas
##  [1] 65241 65665 65998 66014 66547 66857 67025 67447 66958 67002
  1. Crea una nueva variable “kms” y asígnale el valor de “millas” transformado en kms (una milla son 1.609 km).
kms = millas * 1.609
kms
##  [1] 104972.8 105655.0 106190.8 106216.5 107074.1 107572.9 107843.2 108522.2
##  [9] 107735.4 107806.2
  1. ¿Qué resultado produce la función diff aplicada sobre los datos anteriores?
diff(kms)
## [1]  682.216  535.797   25.744  857.597  498.790  270.312  678.998 -786.801
## [9]   70.796

El propósito principal de la funcion diff es calcular las diferencias entre los elementos de un vector para crear un nuevo vector que muestre la variación entre los elementos originales.

  1. ¿Qué funciones son adecuadas para resumir estos datos?
summary(kms)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  104973  106197  107324  106959  107789  108522

Esta función proporciona un resumen estadístico rápido que incluye el mínimo, el primer cuartil, la mediana, la media, el tercer cuartil y el máximo. Se puede usarlo para obtener una visión general de la distribución de las millas recorridas.

2.3 Una persona dispone de un contrato de pago mínimo telefónico, con el que cuenta poder controlar sus gastos. A pesar de esto cada mes tiene que pagar cantidades diferentes, que finalmente decide revisar. En el último año estas cantidades, en euros, han sido las siguientes:

                          47 32 40 36 49 31 49 30 49 35 48 32
gastos = c(47, 32, 40, 36, 49, 31, 49, 30, 49, 35, 48, 32)
  1. ¿Cuánto le ha costado la factura del último año?
sum_gastos = sum(gastos)
print(paste("La factura del último años le costo",sum_gastos,"euros"))
## [1] "La factura del último años le costo 478 euros"
  1. ¿Cuánto ha pagado en promedio cada mes?
mean_gastos = mean(gastos)
print(paste("En promedio lo que ha pagado la persona es",round(mean_gastos,2) ,"euros"))
## [1] "En promedio lo que ha pagado la persona es 39.83 euros"
  1. ¿Cuáles son las cantidades mínimas y máximas pagadas?
pago_maximo = max(gastos)
pago_minimo = min(gastos)
print(paste("El pago maximo es de",pago_maximo,"euros"))
## [1] "El pago maximo es de 49 euros"
print(paste("El pago minimo es de",pago_minimo,"euros"))
## [1] "El pago minimo es de 30 euros"
  1. ¿En qué mes se realizó cada pago?
meses = c("Enero", 
          "Febrero", 
          "Marzo", 
          "Abril", 
          "Mayo", 
          "Junio", 
          "Julio", 
          "Agosto", 
          "Septiembre", 
          "Octubre", 
          "Noviembre", 
          "Diciembre")
matrizColumna = cbind(meses, gastos)
matrizColumna
##       meses        gastos
##  [1,] "Enero"      "47"  
##  [2,] "Febrero"    "32"  
##  [3,] "Marzo"      "40"  
##  [4,] "Abril"      "36"  
##  [5,] "Mayo"       "49"  
##  [6,] "Junio"      "31"  
##  [7,] "Julio"      "49"  
##  [8,] "Agosto"     "30"  
##  [9,] "Septiembre" "49"  
## [10,] "Octubre"    "35"  
## [11,] "Noviembre"  "48"  
## [12,] "Diciembre"  "32"
  1. ¿Cuantos meses pagó más de 40 euros?
meses_exceso = sum(gastos>40)
print(paste("Pago de mas en",meses_exceso,"meses"))
## [1] "Pago de mas en 5 meses"
  1. ¿Qué porcentaje del gasto total representa esta cantidad?
sum_meses = sum(gastos[gastos>40])
sum_meses_total = sum(gastos)
porcentaje_total = (sum_meses/sum_meses_total) * 100
print(paste("El valor total de los meses que supera los 40 euros es",sum_meses,"euros"))
## [1] "El valor total de los meses que supera los 40 euros es 242 euros"
print(paste("El valor total del pago anual es",sum_meses_total,"euros"))
## [1] "El valor total del pago anual es 478 euros"
print(paste("El porcentaje del gasto total que representa es del",
            round(porcentaje_total,2),"%"))
## [1] "El porcentaje del gasto total que representa es del 50.63 %"

2.4 Con los datos siguientes:

                        61 88 73 49 41 72 99 07 12 13 87 91 05 17 97
vector_numeros = c(61, 88, 73, 49, 41, 72, 99, 07, 12, 13, 87, 91, 05, 17, 97)
  1. Haz un diagrama de porcentual
pie(vector_numeros, main = "Diagrama Porcentual", labels = paste0(vector_numeros, "%"))

  1. Obtén resúmenes numéricos de los datos.
summary(vector_numeros)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    5.00   15.00   61.00   54.13   87.50   99.00
  1. ¿Qué diferencias hay entre summary(x) y fivenum(x)?
summary(vector_numeros)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    5.00   15.00   61.00   54.13   87.50   99.00
fivenum(vector_numeros)
## [1]  5.0 15.0 61.0 87.5 99.0
summary(x) - proporciona un resumen más completo y general de los datos. Muestra varias estadísticas descriptivas, incluyendo el mínimo, el primer cuartil (25%), la mediana (50%), la media, el tercer cuartil (75%) y el máximo. La salida de summary() mostrará estas estadísticas en una forma más detallada y general.
      
fivenum(x) -  se utiliza para calcular cinco estadísticas principales, que son los cinco números resumen principales de tus datos. Estas estadísticas son el mínimo, el primer cuartil (25%), la mediana (50%), el tercer cuartil (75%) y el máximo. Es una forma más concisa de obtener una visión general de la distribución de tus datos, por lo tanto  mostrará únicamente estos cinco valores resumen principales.
      

2.5 R permite generar datos aleatorios con gran facilidad mediante instrucciones específicas que empiezan con “r” (rnorm, rpois, rbinom,…).

  1. Genera 100 valores de una distribución normal con rnorm(100).
datos = rnorm(100)
datos
##   [1] -0.81188550 -2.29901325 -0.38241801  0.99417483  0.54723370 -0.88963952
##   [7] -0.29678199  1.09085821  1.00356955 -1.06450801 -0.46862280  1.82612088
##  [13] -0.20646524 -0.30665927  2.13081737  0.14619590  1.51216709 -0.81133938
##  [19] -1.53022284  1.90550049  0.02868573  0.88418139  0.05674149 -2.05389167
##  [25]  1.24243099  0.53759246  0.73046618 -1.12293949 -0.01106127  0.34939840
##  [31] -0.64912892 -0.16904087  1.00806956 -0.03196967  1.67784179 -0.30588206
##  [37]  1.12245203 -0.78318404 -1.48518253  0.45233486 -0.19793537  2.01391845
##  [43] -0.42866845  0.63163373  0.48448750 -0.84856390  0.10518118 -1.27443512
##  [49] -0.74708923  2.17507852  0.23499610 -1.93094258 -0.88229074 -0.43859878
##  [55]  2.98167198 -1.62649624  0.71747830 -1.15562766 -2.43587148 -0.85286339
##  [61]  1.79138484  1.06558964 -1.19622750 -1.07726451 -1.01571818 -0.56384468
##  [67] -0.35846908  0.59879014 -0.04470711 -1.89212617 -1.22874868  0.29375682
##  [73] -0.41456698  0.61725278 -0.72399810  0.15259095 -1.04360958 -0.60647595
##  [79]  2.20984324 -0.19200792  0.18321662  0.63371737  0.99174996  1.15248922
##  [85]  0.83054038  1.53077138  0.11748640  1.89090738 -1.30125177 -1.03300383
##  [91] -0.93307321 -0.56907215 -0.70663777  0.28155248  1.72501420  1.34830516
##  [97]  1.71614069 -0.11367374 -0.12539159  0.37055811
  1. Realiza un histograma de los valores. Repite el proceso un par de veces. ¿Qué observas?
hist(datos)

Segunda prueba

datos2 = rnorm(100)
datos2
##   [1] -0.358056432 -0.721329849 -1.193891157  0.991039265  1.043212905
##   [6]  0.765836251  0.148221630 -0.432736303  0.081569093  1.636828712
##  [11]  0.027864882  1.884353854  1.781097835  0.695438742  0.790107736
##  [16]  0.236288474 -0.124211431 -0.701310302  1.157618240  1.042002407
##  [21] -0.093889921  0.888784647  0.193885027 -1.545106125  0.874607276
##  [26] -0.252481014 -1.391201118 -1.055499484  0.335730254 -0.226881579
##  [31]  1.392591285  0.084583089 -0.571204261  0.473009238  0.423195700
##  [36] -0.671785817 -1.094341336 -0.450133803 -0.727852305  0.646062571
##  [41] -1.574827602 -1.932265208 -0.531388960 -1.281427637 -0.861649213
##  [46]  0.271950616  1.231728965 -0.194343808 -1.410768167  0.376052351
##  [51]  0.525204265  0.462713482  1.076949754  0.080117769 -0.741206325
##  [56]  2.020013376 -1.467414004 -0.985148086  0.849202746 -0.574795534
##  [61]  0.926010731 -0.982265961 -0.140088090  0.079677156 -1.049269861
##  [66]  0.054901169 -0.568616935 -1.710732652  0.007874836  0.879022483
##  [71]  0.208131552  0.358906809 -0.237072015 -0.088867421  0.143400639
##  [76] -2.087402910 -0.232737948  0.476878818 -1.353031799  1.007154826
##  [81]  0.008699385  2.340152307 -0.976613301  0.616150394 -1.016663177
##  [86]  0.173949574 -0.493207883 -1.063768545 -0.203138026  0.425312762
##  [91] -0.661309314 -1.432924971  1.361430311  0.339122688 -0.836330198
##  [96] -0.928027726 -1.022420797 -0.542577682 -0.744488419  0.458007407
hist(datos2)

Tercer prueba

datos3 = rnorm(100)
datos3
##   [1] -0.955404128 -0.970996193 -0.864556177 -0.157759330 -1.210824352
##   [6] -1.651215871 -0.437101240 -0.099609795  0.994462784 -1.079052539
##  [11]  0.929619924 -1.475604937 -0.183758614 -0.732285385 -0.625943103
##  [16]  0.073869496  0.711205330  0.468059605  0.338791122 -1.315812695
##  [21]  0.814874421  0.943459111 -0.730490815  0.505501920  0.279509996
##  [26]  0.490869572 -1.431566032  1.177773429 -0.137722441  0.040357321
##  [31] -0.677358066 -0.546183300  1.431208559 -0.123789860  0.152111885
##  [36] -0.436361517 -0.534366000  2.998205664  0.364551414 -0.097560191
##  [41] -0.207489851 -0.092949039  0.425490707 -1.517891869  1.593153778
##  [46]  1.032666268 -1.928723383  0.673161029  1.409931244 -0.546505545
##  [51]  0.359111000 -1.702456413  1.452890684  0.679214398 -1.158165152
##  [56] -1.254358255  1.614709083  1.423805171  0.090828832  1.513583102
##  [61]  0.015908271  0.589636899  1.005335705 -0.191945454  1.352910224
##  [66] -0.591883700 -1.865703803 -0.016952072 -1.310855495 -1.484189979
##  [71]  1.247878554 -1.286409723 -1.342007897  0.295481780 -0.821582622
##  [76] -0.067470582 -0.489784002 -0.525116712  0.239484588 -0.890702262
##  [81] -0.113591910 -1.112340175  0.008285712 -0.094103671 -0.423848136
##  [86] -0.407341185  0.326347080 -0.752322896  1.642500209  0.761375278
##  [91] -0.654888019 -1.282836252  0.173988060 -1.216620909  0.322237425
##  [96] -1.290681454 -0.232227950  0.342471830 -0.774887725  0.465846757
hist(datos3)

Cuando se uso el comando rnorm(100) genero una muestra de 100 números aleatorios de una distribución normal estándar, por lo que al repetirlo dos veces se obtuvieron otras dos muestras independientes de 100 números aleatorios cada una. Se puede apreciar que estas tres muestras se generarán de manera independiente y al representar el histograma de cada una de las muestras se puede apreciar en cada uno lo que seria una campana de gauss
  1. Realiza un resumen numérico de los datos.

Resumen numerico de la primer muestra

summary(datos)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -2.43587 -0.81148 -0.03834  0.04454  0.84395  2.98167

Resumen numerico de la segunda muestra

summary(datos2)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -2.08740 -0.74203 -0.04050 -0.07186  0.48896  2.34015

Resumen numerico de la tercer muestra

summary(datos3)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -1.9287 -0.7866 -0.1066 -0.1035  0.4738  2.9982

2.6 De forma similar al ejercicio genera 30 valores de una distribución binomial de parámetros (n=5 y p=0,9).

datos4 = rbinom(30, 5, 0.9)
datos4
##  [1] 3 5 5 5 5 5 5 5 5 5 5 4 5 5 5 4 5 3 5 4 4 5 4 5 5 5 4 5 5 4
  1. Representa los resultados con un diagrama de barras o de pastel.
tabla_datos4 = table(datos4)
barplot(tabla_datos4, 
        main = "Diagrama de Barras - Distribución Binomial", 
        xlab = "Valores",
        ylab = "Frecuencia")

  1. Realiza un resumen numérico de los datos y compáralo con el del ejercicio anterior. ¿Qué deberías hacer para obtener un resumen similar?

Resumen numerico de los datos de la distribucion normal

summary(datos)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -2.43587 -0.81148 -0.03834  0.04454  0.84395  2.98167

Resumen numerico de los datos de la distribucion binomial

summary(datos4)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   3.000   4.000   5.000   4.633   5.000   5.000

2.7 El número de fallos en los 23 primeros intentos de puesta en órbita de un satélite fue: 0 1 0 NA 0 0 0 0 0 1 1 1 0 0 3 0 0 0 0 0 2 0 1 (NA significa ”not available” – se ha perdido el dato).

orbita = c(0, 1, 0, NA, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 3, 0, 0, 0, 0, 0, 2, 0, 1)
#crear una tabla de frecuencias con los datos del vector , el valor ifany es para 
#contar los valores NA si hay alguno
tablaorbitaconNA = table(orbita,useNA ="ifany")
print(tablaorbitaconNA)
## orbita
##    0    1    2    3 <NA> 
##   15    5    1    1    1
#tabla de datos sin el valor NA
tablaorbitasinNA = table(orbita)
print(tablaorbitasinNA)
## orbita
##  0  1  2  3 
## 15  5  1  1
# Crear un diagrama de barras de la tabla de frecuencias hecha con los datos y teniendo en
#cuenta el NA
barplot(tablaorbitaconNA, main="Número de Fallos en los Intentos de Puesta en Órbita", 
        xlab="Número de Fallos", ylab="Frecuencia",
        ylim =  c(0, 20))

# Crear un diagrama de barras de la tabla de frecuencias hecha con los datos y sin tener
# en cuenta el NA
barplot(tablaorbitasinNA, main="Número de Fallos en los Intentos de Puesta en Órbita", 
        xlab="Número de Fallos", ylab="Frecuencia",
        ylim =  c(0, 20))

# Calcular el número medio de errores , con la funcion na.rm=TRUE se excluye los valores NA
orbita_errores = mean(orbita, na.rm = TRUE)
print(orbita_errores)
## [1] 0.4545455

2.8 En una encuesta en la que se evalúa el funcionamiento de un curso se han recogido las siguientes respuestas de 10 estudiantes a tres preguntas P1, P2 y P3:

  1. Entra los datos mediante c(), scan(), read.table() y data.entry().
estudiantes = c(1,2,3,4,5,6,7,8,9,10)
p1 = c(3,3,3,4,3,4,3,4,4,3)
p2 = c(5,5,2,2,5,2,2,5,5,2)
p3 = c(1,3,1,3,3,3,1,3,1,1)
tabla_estudiantes = rbind(estudiantes, p1, p2, p3)
tabla_estudiantes
##             [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## estudiantes    1    2    3    4    5    6    7    8    9    10
## p1             3    3    3    4    3    4    3    4    4     3
## p2             5    5    2    2    5    2    2    5    5     2
## p3             1    3    1    3    3    3    1    3    1     1
# modo opcional de ingresar los datos mediante matriz
datos_respuestas = matrix(c(
  3, 3, 3, 4, 3, 4, 3, 4, 4, 3,
  5, 5, 2, 2, 5, 2, 2, 5, 5, 2,
  1, 3, 1, 3, 3, 3, 1, 3, 1, 1
), nrow = 3, byrow = TRUE)

# Asignar nombres a las filas y columnas
rownames(datos_respuestas) = c("P1", "P2", "P3")
colnames(datos_respuestas) = c("Estudiante 1", "Estudiante 2", "Estudiante 3", "Estudiante 4", "Estudiante 5",
                     "Estudiante 6", "Estudiante 7", "Estudiante 8", "Estudiante 9", "Estudiante 10")

# Mostrar la matriz de datos
print(datos_respuestas)
##    Estudiante 1 Estudiante 2 Estudiante 3 Estudiante 4 Estudiante 5
## P1            3            3            3            4            3
## P2            5            5            2            2            5
## P3            1            3            1            3            3
##    Estudiante 6 Estudiante 7 Estudiante 8 Estudiante 9 Estudiante 10
## P1            4            3            4            4             3
## P2            2            2            5            5             2
## P3            3            1            3            1             1
tabla_estudiantes3 = read.table(file = "/Users/carlo/Desktop/vectores.txt", header = FALSE)
## Warning in read.table(file = "/Users/carlo/Desktop/vectores.txt", header =
## FALSE): incomplete final line found by readTableHeader on
## '/Users/carlo/Desktop/vectores.txt'
tabla_estudiantes3
##            V1 V2                      V3
## 1 estudiantes  = c(1,2,3,4,5,6,7,8,9,10)
## 2          p1  =  c(3,3,3,4,3,4,3,4,4,3)
## 3          p2  =  c(5,5,2,2,5,2,2,5,5,2)
## 4          p3  =  c(1,3,1,3,3,3,1,3,1,1)
  1. Tabula los resultados de cada pregunta por separado.

Tabulacion de los resultados de la pregunta 1

tabulacion_p1 = table(p1)
tabulacion_p1
## p1
## 3 4 
## 6 4
tabla_p1 = barplot(tabulacion_p1,
                   main="Tabulacion de los resultados de la pregunta 1",
                   xlab="Resultado",
                   ylab="Numero de veces repetidos")

Tabulacion de los resultados de la pregunta 2

tabulacion_p2 = table(p2)
tabulacion_p2
## p2
## 2 5 
## 5 5
tabla_p2 = barplot(tabulacion_p2,
                   main="Tabulacion de los resultados de la pregunta 2",
                   xlab="Resultado",
                   ylab="Numero de veces repetidos")

Tabulacion de los resultados de la pregunta 3

tabulacion_p3 = table(p3)
tabulacion_p3
## p3
## 1 3 
## 5 5
tabla_p3 = barplot(tabulacion_p3,
                   main="Tabulacion de los resultados de la pregunta 3",
                   xlab="Resultado",
                   ylab="Numero de veces repetidos")

  1. Realiza tablas de contingencia cruzadas para cada pregunta, de 2 en 2 y las 3 a la vez.

Tabla de contingencia cruzada para la pregunta 1 (P1)

table(p1)
## p1
## 3 4 
## 6 4

Tabla de contingencia cruzada para la pregunta 2 (P2)

table(p2)
## p2
## 2 5 
## 5 5

Tabla de contingencia cruzada para la pregunta 3 (P3)

table(p3)
## p3
## 1 3 
## 5 5

Tabla de contingencia cruzada para la pregunta 1 y 2 (P1 y P2)

table(p1, p2)
##    p2
## p1  2 5
##   3 3 3
##   4 2 2

Tabla de contingencia cruzada para la pregunta 2 y 3 (P2 y P3)

table(p2, p3)
##    p3
## p2  1 3
##   2 3 2
##   5 2 3

Tabla de contingencia cruzada para las tres preguntas

table(p1, p2, p3)
## , , p3 = 1
## 
##    p2
## p1  2 5
##   3 3 1
##   4 0 1
## 
## , , p3 = 3
## 
##    p2
## p1  2 5
##   3 0 2
##   4 2 1
  1. Haz un diagrama de barras apiladas de las preguntas 2 y 3.
library(ggplot2)
library(tidyr)
estudiantes = c(1,2,3,4,5,6,7,8,9,10)
datos = data.frame(estudiantes, p2, p3)
conjunto_datos = gather(datos, pregunta, calificacion, -estudiantes)

ggplot(conjunto_datos, aes(x = estudiantes, y = calificacion, fill = pregunta)) +
  geom_bar(stat = "identity") +
  labs(
    title = "Diagrama de Barras Apiladas",
    x = "Estudiante",
    y = "Calificacion",
    fill = "Pregunta"
  )

  1. Haz un diagrama de barras con las tres preguntas simultáneamente.
datos = data.frame(estudiantes, p1, p2, p3)
conjunto_datos = gather(datos, pregunta, calificacion, -estudiantes)

ggplot(conjunto_datos, aes(x = estudiantes, y = calificacion, fill = pregunta)) +
  geom_bar(stat = "identity") +
  labs(
    title = "Diagrama de Barras Apiladas",
    x = "Estudiante",
    y = "Calificacion",
    fill = "Pregunta"
  )

2.9 Genera 2 vectores de 50 valores cada de una distribución normal con rnorm (50).

vector1 = rnorm(50)
vector1
##  [1] -1.237589419  0.983849197 -0.452588422  0.504864499 -0.240496330
##  [6] -0.788719911  1.229873525  0.261833986  0.528022497  0.531855724
## [11] -1.090265840 -1.955290404  0.096697489  0.982876989  0.245357349
## [16]  0.091274796 -0.510328265  0.256326180  0.104227204 -0.906598477
## [21]  1.587626517 -0.727245876  0.259807584  0.289847725 -0.123448569
## [26] -1.366788635 -1.634318840  0.266132732 -0.001535102 -0.325800479
## [31] -0.002224707  0.155102233  3.601709710 -1.463294983 -0.596066967
## [36]  1.862642642  0.272501890 -0.748609166 -0.320784860 -0.004343529
## [41]  0.018382577  0.774854378  0.724767939 -0.662623786 -0.886067286
## [46]  0.212990936  0.755909866  2.025502265 -0.670907464  0.565121828
vector2 = rnorm(50)
vector2
##  [1] -1.34843120  0.46380573 -1.28910466  0.03466131  0.68671456 -0.35267718
##  [7] -0.53300338 -0.59555012  2.72700235 -0.54660715 -0.60290672 -0.38181777
## [13] -0.13321855  0.34384744 -0.04292758 -1.04881646 -0.74489361  0.51086415
## [19]  1.06045728  0.33691535 -0.99796779  0.97306803 -1.20227234  0.38798986
## [25] -0.77616664 -0.81049423 -0.21315035 -1.58148656  1.18198233 -0.18872936
## [31]  1.47860799  0.07319360 -1.23452670  0.97357365  1.29090880 -1.28456051
## [37]  0.31631857  0.54810563  1.15551756  0.64897611  1.52934207  0.21960104
## [43] -0.24311444 -0.06233440  1.58622010 -0.07648638 -1.45075557 -0.75168259
## [49] -1.50897910 -1.79618367
  1. Realiza una prueba de normalidad mediante Shapiro-Wilk de cada vector.

Prueba de normalidad Shapiro-Wilk para el primer vector

prueba_shapiro1 = shapiro.test(vector1)
prueba_shapiro1
## 
##  Shapiro-Wilk normality test
## 
## data:  vector1
## W = 0.95105, p-value = 0.03768

Prueba de normalidad Shapiro-Wilk para el segundo vector

prueba_shapiro2 = shapiro.test(vector2)
prueba_shapiro2
## 
##  Shapiro-Wilk normality test
## 
## data:  vector2
## W = 0.97694, p-value = 0.4312
  1. Determine si entre los vectores hay o no diferencias significativas, t-student test
prueba_test = t.test(vector1, vector2)
prueba_test
## 
##  Welch Two Sample t-test
## 
## data:  vector1 and vector2
## t = 0.57849, df = 98, p-value = 0.5643
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.2792637  0.5090715
## sample estimates:
##   mean of x   mean of y 
##  0.04948046 -0.06542343
## Tras realizar la prueba t-student se observa que el p-value supera el umbral 0.05 lo que indica que no hay diferencia significativa en los datos, ademas que de entrada los dos vectores cuentan con una distribucion normal por lo que el t-student asume que los valores siguen una campana simétrica.

2.10 Genera un vector de 50 valores por medio de rnorm y un vector de 50 valores por medio rbinom.

vector3 = rnorm(50)
vector3
##  [1]  1.073590478  0.570843106 -1.561201423  0.495415995  0.343747441
##  [6] -0.459044149 -0.797616030  0.176701140  0.139486546  0.969465687
## [11]  0.054892824 -1.902378774  0.395567333  1.044512115  0.629092092
## [16] -0.172688457 -1.839395884 -1.044717570  0.463548075  0.049911528
## [21] -1.487239243  0.224188465 -0.644283247 -0.860121513  0.956640068
## [26]  0.627876640 -0.610615703 -0.236174694  0.573612246 -0.281497182
## [31] -0.973572426  0.639154769  1.261315592 -0.869320747  0.632036167
## [36] -1.334691129  1.210868463  0.535075426  0.116264674  1.521864234
## [41]  0.896932552 -0.377313647 -0.310604000  0.009696502  0.856828248
## [46]  0.132117955 -0.541042038  0.479350808 -0.404848425  0.077143302
vector4 = rbinom(50, 5, 0.9)
vector4
##  [1] 5 4 3 4 5 5 5 4 5 5 4 5 5 4 4 4 4 5 3 4 4 4 5 3 4 4 4 5 5 3 5 5 4 5 5 5 4 5
## [39] 5 5 5 5 5 5 5 5 4 4 5 4
  1. Realiza una prueba de normalidad mediante Shapiro-Wilk de cada vector.

Prueba de normalidad Shapiro-Wilk para el primer vector

prueba_shapiro3 = shapiro.test(vector3)
prueba_shapiro3
## 
##  Shapiro-Wilk normality test
## 
## data:  vector3
## W = 0.96904, p-value = 0.2114

Prueba de normalidad Shapiro-Wilk para el segundo vector

prueba_shapiro4 = shapiro.test(vector4)
prueba_shapiro4
## 
##  Shapiro-Wilk normality test
## 
## data:  vector4
## W = 0.73054, p-value = 3.053e-08
  1. Determine si entre los vectores hay o no diferencias significativas, t-student test
prueba_test2 = t.test(vector3,vector4)
prueba_test2
## 
##  Welch Two Sample t-test
## 
## data:  vector3 and vector4
## t = -29.833, df = 92.185, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -4.747324 -4.154701
## sample estimates:
##   mean of x   mean of y 
## 0.008987484 4.460000000
## Tras realizar la prueba t-student se observa que el p-value no supera el umbral 0.05 lo que indica que hay diferencia significativa en los datos, teniendo en cuenta que de entrada solo uno de los vectores sigue una distribucion normal mientras que el otro sigue una distribucion binomial.