library(ggplot2)
library(readr) # para leer y cargar documentos de exel (csv)
library(readxl) # Para cargar documentos de Excel
library(dplyr) # Para manipular elementos como matrix, data.frame y list
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
Con el fin de incentivar e incorporar un lenguaje de programación, enfocado en el análisis de datos y la estadística, el programa de R es un lenguaje apropiado para hacer practica esto, y con este escrito se presentará detalles del eje temático tratado en este curso.
En R áreas de trabajo comunes que son muy importantes para el uso e investigación estadística como lo son el Script y el RMarkdown, estas definidas como:
El Script donde es redactado cada uno de los códigos para que estos puedan ejercer o compilar una función o comando.
El RMarkdown que lleva en si un conjunto de códigos y escritura sin el uso de comentarios propiamente (si puede hacerse uso). Donde en este archivo puede caber en si una estructura y un documento más estético.
También está la consola que permite el uso de códigos sin hacer un registro detallado de aquel. Y otras áreas como la pestaña Environment que es aquella que archiva o guarda cada una de la información de tipo carácter o numérico de los códigos como por ejemplo: un vector.
El modo adecuado para la asignación de variables en R es dado por el símbolo “<-” ya que este es más eficiente. Ahora dado que el símbolo “=” es usado como un asignador de variables en la mayoría de otros programas o lenguajes de programación, es más común en R que este sea un verificador, es decir, halla la verdad (TRUE) dado un enunciado como también la mentira (FALSE).
Ejemplo:
5 == 5
## [1] TRUE
3 == 4
## [1] FALSE
Los elementos que son tratados en este programa son las variables, vectores y matrices (De tipo numérico y caracteres).
Ejemplo: `
a <- "sal" # variable de caracteres
b <- 1000 # variable numérico
A <-c (20, 25, 30, 22, 32, 28, 25, 24) # vector de caracteres
B <-c ("alto", "bajo", "mediano")# vector numérico
Cada uno de estos elementos podemos por medio de códigos identificar su clase o bien tipo de variable; Por ejemplo:
# Aquí vamos a mirar de que clase son los vectores A y B respectivamente.
class(A)
## [1] "numeric"
class(B)
## [1] "character"
También en el programa de R están las operaciones matemáticas (suma, resta, multiplicación, división, etc.) entre los elementos que se crean. es decir:
Ejemplo:
c <- 20
b <- 19
cbs <- b + c # Operación de la suma entre dos elementos
cbs
## [1] 39
cbm <- b * c # Operación de la multiplicación entre dos elementos
cbm
## [1] 380
las características de las variables numéricas están definidas de forma entera y decimal (los números decimales se escriben haciendo uso del punto “.”), es decir,
entero = 4347239
decimal <- 4347.239
En el lenguaje de R es posible por medio de códigos crear de manera puntual elementos aleatorios. es decir, un valor que se selecciona de una manera que no sigue un patrón especifico, si no que cada valor tiene la misma probabilidad de elección.
En R estos elementos aleatorios pueden ser una variable, un vector, matrices y todos los demás elementos antes mencionados.
Para crear vectores aleatorios tenemos los siguientes Códigos, que crean vectores numéricos (enteros y decimales) y también de caracteres.
Ejemplo:
Aleatorio <- runif(6, min = 0, max = 10)
Aleatorio # Este imprime números aleatorios decimales.
## [1] 2.6847720 4.7556580 0.5906645 7.1564488 3.1382121 0.2524303
Aleatorioo<-sample(1:10, 6, replace=TRUE)
Aleatorioo # Imprime directamente números enteros
## [1] 10 8 8 7 2 9
Aleatorio_cara <- sample(c("N", "Y", "D", "I"), 10, replace=TRUE)
Aleatorio_cara # Para imprimir vectores aleatorios pero solo caracteres
## [1] "N" "N" "Y" "I" "D" "N" "Y" "N" "D" "D"
Para crear matrices Aleatorias tenemos los siguientes Códigos, que las crean tanto tipo numérico (enteros y decimales) y también de caracteres.
Ejemplo:
matriz <- matrix(1:4, nrow = 2, ncol = 2)
matriz # crear matriz
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
matriz_aleatoria <- matrix(rnorm(9), nrow = 3)
matriz_aleatoria # crear matriz aleatoria
## [,1] [,2] [,3]
## [1,] 0.6679762 0.004251236 1.1977095
## [2,] -2.3177720 1.049930239 -0.6999274
## [3,] -0.8392823 0.142291237 0.4462473
En este caso hacemos uso y estructuramos nuestro data frame de forma aleatoria con el siguiente Código
Ejemplo:
mi_dataframe <- data.frame(
Id = sample(1:100, 10),
eda = sample(18:65, 10, replace = TRUE),
ciudad = sample(c("Bogota", "Medellin", "Cali"), 10, replace = TRUE))
mi_dataframe
## Id eda ciudad
## 1 54 50 Cali
## 2 13 43 Bogota
## 3 18 62 Bogota
## 4 49 26 Bogota
## 5 39 34 Cali
## 6 97 32 Bogota
## 7 62 51 Cali
## 8 57 20 Bogota
## 9 65 31 Cali
## 10 16 40 Medellin
Para la creación de datos e incluso insertarlos hay distinción de códigos y formas. Tales que, son caracterizadas con forme al uso. Y corresponde a una estructura característica y distintiva entre ellas. Por ejemplo:
Para la manipulación de datos, las listas son estructuras que permiten agrupar distintos tipos de objetos en uno único.
Ejemplo:
df <- list(numeros =c(1, 2, 3, 4, 5),
nombres =c("Ana", "Luis", "Carlos"), matriz =(matrix(1:9, nrow = 3, ncol = 3)))
print(df)
## $numeros
## [1] 1 2 3 4 5
##
## $nombres
## [1] "Ana" "Luis" "Carlos"
##
## $matriz
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
Este sirve para hacer un marco o estructura de datos, encasillando y ordenando cada dato. también a partir de data.frame se pueden editar los datos eliminando filas, columnas y celdas, completar datos e incluso cambiarlos según corresponda la necesidad de quien hace uso de aquel.
Ejemplo:
edadd<-c(20, 18, 19, 25, 21, 23)
notaa<-c(3.4, 3.8, 4.0, 3.5, 3.1, 3.0)
materiaa<-c("q", "w", "e", "r", "t", "y")
datoss<-data.frame(edadd, notaa, materiaa)
datoss
## edadd notaa materiaa
## 1 20 3.4 q
## 2 18 3.8 w
## 3 19 4.0 e
## 4 25 3.5 r
## 5 21 3.1 t
## 6 23 3.0 y
nrow(datoss) # Obtengo el número de datos de mi data frame.
## [1] 6
datos_filtrado <- datoss %>% filter(edadd > 18) # Para filtrar los datos como la edad.
datos_filtrado
## edadd notaa materiaa
## 1 20 3.4 q
## 2 19 4.0 e
## 3 25 3.5 r
## 4 21 3.1 t
## 5 23 3.0 y
datoss$edadd <- NULL # Para eliminar columnas del marco de datos o data frame.
datoss
## notaa materiaa
## 1 3.4 q
## 2 3.8 w
## 3 4.0 e
## 4 3.5 r
## 5 3.1 t
## 6 3.0 y
Para importar un archivo en R el uso de códigos es el principal componente.
Usualmente son manejados archivos de Exel y es utilizado el Código read_excel(), al importarlo se le asigna un nombre para su manipulación y respectivo análisis.
Ejemplo:
final <- read_excel("final.xlsx")
final
## # A tibble: 7 × 3
## Edad Nota Curso
## <dbl> <dbl> <chr>
## 1 22 4 Analisis
## 2 18 3.6 Calculo
## 3 19 3.4 Calculo
## 4 23 4.6 Calculo
## 5 21 5 Analisis
## 6 20 3.4 Analisis
## 7 17 3 Calculo
también el uso de datos de la web es posible así que por un medio de códigos es posible extraer estos datos, al importarlo se le asigna un nombre para su manipulación y respectivo análisis.
Ejemplo:
url <- ('https://raw.githubusercontent.com/fhernanb/datos/master/babies.txt')
Data_de_la_wed <- read.table(url, header = TRUE, sep = '\t')
ncol(Data_de_la_wed) # numero de columnas
## [1] 7
head(Data_de_la_wed, n = 4) # Para imprimir una cantidad limitada de los datos
## bwt gestation parity age height weight smoke
## 1 120 284 First born 27 62 100 Not
## 2 113 282 First born 33 64 135 Not
## 3 128 279 First born 28 64 115 Yes
## 4 123 NA First born 36 69 190 Not
summary(Data_de_la_wed) # Para resumir la información estadística de la data
## bwt gestation parity age
## Min. : 55.0 Min. :148.0 Length:1236 Min. :15.00
## 1st Qu.:108.8 1st Qu.:272.0 Class :character 1st Qu.:23.00
## Median :120.0 Median :280.0 Mode :character Median :26.00
## Mean :119.6 Mean :279.3 Mean :27.26
## 3rd Qu.:131.0 3rd Qu.:288.0 3rd Qu.:31.00
## Max. :176.0 Max. :353.0 Max. :45.00
## NA's :13 NA's :2
## height weight smoke
## Min. :53.00 Min. : 87.0 Length:1236
## 1st Qu.:62.00 1st Qu.:114.8 Class :character
## Median :64.00 Median :125.0 Mode :character
## Mean :64.05 Mean :128.6
## 3rd Qu.:66.00 3rd Qu.:139.0
## Max. :72.00 Max. :250.0
## NA's :22 NA's :36
str(Data_de_la_wed) # Para dar una descripción de la data y sus elementos
## 'data.frame': 1236 obs. of 7 variables:
## $ bwt : int 120 113 128 123 108 136 138 132 120 143 ...
## $ gestation: int 284 282 279 NA 282 286 244 245 289 299 ...
## $ parity : chr "First born" "First born" "First born" "First born" ...
## $ age : int 27 33 28 36 23 25 33 23 25 30 ...
## $ height : int 62 64 64 69 67 62 62 65 62 66 ...
## $ weight : int 100 135 115 190 125 93 178 140 125 136 ...
## $ smoke : chr "Not" "Not" "Yes" "Not" ...
Para el programa de R que es una herramienta especialmente para el análisis estadístico, la visualización de datos por medio de distintas gráficas y la programación de aquellos. Es importante incluir la estadística descriptiva como aquella que formula recomendaciones a resumir de forma clara en tablas, figuras o bien gráficos. También es incluida allí los cálculos de las medidas de tendencia central como aquellos datos que informan cual es el centro de entorno al cual es ubicado un conjunto de datos resumiendo drásticamente la información.
summary(final$Nota)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.000 3.400 3.600 3.857 4.300 5.000
mean(final$Nota)
## [1] 3.857143
Es el promedio de datos en conjunto, calculado con todos los valores y dividido por la cantidad de observaciones de los datos
median(final$Nota)
## [1] 3.6
Se trata del valor central de un conjunto de dados ordenados, es decir el valor del centro con los datos en orden.
var(final$Nota)
## [1] 0.5161905
Este resultado mide el promedio de las diferencias entre cada dato y la media, es decir, muestra cuanto se dispersan los datos respecto a la media
sd(final$Nota)
## [1] 0.718464
Este resultado muestra cuanto se dispersan los datos respecto a la media
range(final$Nota)
## [1] 3 5
Indica la diferencia entre el valor mas alto y el mas bajo de un conjunto de datos
Las gráficas se manejan con respecto a su forma y características distintivas entre ellas, para ello cada una cumplen con un Código o comando.
Ahora bien, para graficar los elementos se llaman en el Código con un vector distintivo.
hist(final$Edad, freq = TRUE)
barplot(final$Edad)
boxplot(final$Edad, freq = TRUE)
pie(final$Edad)
plot(final$Edad)
En R la estadística inferencial es una herramienta poderosa en la toma de decisiones basadas en datos. Donde por medio de códigos y análisis se realiza un proceso que permite hacer generalizaciones precisas sobre una población a partir de una muestra.
Para ello es necesario dar descripción de unos conceptos de esta área. tales como:
La población, es un conjunto de datos con características en común de quienes se busca estudiar.
La muestra, es un subconjunto de los datos que representan la población.
Parámetro, este es un valor que describe la característica a estudiar de la población.
Estadístico, este también es un valor numérico que describe la característica a estudiar de la muestra de la población.
Error de muestreo, es la diferencia entre el estadístico muestral y el valor del parámetro poblacional.
Nivel de significancia, este es la probabilidad de cometer un error tipo I.
Pruebas de normalidad, estos son procedimientos que se utilizan para determinar si los datos siguen una distribución normal estadísticamente, como por ejemplo la Shapiro - Will.
Grafico de dispersión, es aquel grafico utilizado para visualizar la relación entre dos variables.
Correlación, esta medida indica la dirección y fuerza de la relación entre dos variables, y durante este periodo académico se trataron tres tipos de correlación: Pearson, Spearman y Kendall.
Prueba de hipótesis, es un procedimiento para determinar o tomar decisiones sobre una población, esto formando unas hipótesis como ayuda, estas corresponden a la hipótesis nula y la alterna. La hipótesis nula se define como la afirmación inicial, considerada verdadera hasta que se pueda demostrar lo contrario, en cambio la hipótesis alterna se dice que esta hipótesis es la negación de la hipótesis nula o bien lo contrario.
Valor - p, este es el valor de probabilidad de obtener un resultado igual o más extremo.
Intervalo de confianza, este intervalo de confianza es un rango de valores, del que se espera este un parámetro poblacional con un cierto nivel de confianza.
Datos paramétricos, estas son cuando los datos cumplen ciertas características como lo son: una distribución normal, se trata de datos cuantitativos y que las varianzas sean homogéneas.
Datos no paramétricos, estas son cuando los datos no tienen una distribución normal y se basan mayormente en rangos y no en valores concretos.
Con el fin de hacer énfasis en las definiciones anteriores mostraremos un ejemplo para hacer aplicación de la inferencia estadística.
Para el ejemplo se hará uso de un dataset que se encuentra ya dentro de las opciones de datos en R.
Este dataset se trata de iris, es el registro de medidas en centímetros de las variables longitud y ancho del sépalo y pétalos, para 50 flores de cada una de las tres especies de iris que son: Setosa, Versicolor y la Virginica.
Cargamos data:
data(iris)
iris
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
## 51 7.0 3.2 4.7 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 54 5.5 2.3 4.0 1.3 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 56 5.7 2.8 4.5 1.3 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 58 4.9 2.4 3.3 1.0 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 60 5.2 2.7 3.9 1.4 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 99 5.1 2.5 3.0 1.1 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
## 101 6.3 3.3 6.0 2.5 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
Para este análisis vamos a evaluar si la longitud del pétalo es significativamente diferente a la longitud del sépalo de la especie setosa del conjunto de datos iris.
iris$Sepal.Width <- NULL
iris$Petal.Width <- NULL
datiris <- subset(iris, Species == "setosa")
datiris
## Sepal.Length Petal.Length Species
## 1 5.1 1.4 setosa
## 2 4.9 1.4 setosa
## 3 4.7 1.3 setosa
## 4 4.6 1.5 setosa
## 5 5.0 1.4 setosa
## 6 5.4 1.7 setosa
## 7 4.6 1.4 setosa
## 8 5.0 1.5 setosa
## 9 4.4 1.4 setosa
## 10 4.9 1.5 setosa
## 11 5.4 1.5 setosa
## 12 4.8 1.6 setosa
## 13 4.8 1.4 setosa
## 14 4.3 1.1 setosa
## 15 5.8 1.2 setosa
## 16 5.7 1.5 setosa
## 17 5.4 1.3 setosa
## 18 5.1 1.4 setosa
## 19 5.7 1.7 setosa
## 20 5.1 1.5 setosa
## 21 5.4 1.7 setosa
## 22 5.1 1.5 setosa
## 23 4.6 1.0 setosa
## 24 5.1 1.7 setosa
## 25 4.8 1.9 setosa
## 26 5.0 1.6 setosa
## 27 5.0 1.6 setosa
## 28 5.2 1.5 setosa
## 29 5.2 1.4 setosa
## 30 4.7 1.6 setosa
## 31 4.8 1.6 setosa
## 32 5.4 1.5 setosa
## 33 5.2 1.5 setosa
## 34 5.5 1.4 setosa
## 35 4.9 1.5 setosa
## 36 5.0 1.2 setosa
## 37 5.5 1.3 setosa
## 38 4.9 1.4 setosa
## 39 4.4 1.3 setosa
## 40 5.1 1.5 setosa
## 41 5.0 1.3 setosa
## 42 4.5 1.3 setosa
## 43 4.4 1.3 setosa
## 44 5.0 1.6 setosa
## 45 5.1 1.9 setosa
## 46 4.8 1.4 setosa
## 47 5.1 1.6 setosa
## 48 4.6 1.4 setosa
## 49 5.3 1.5 setosa
## 50 5.0 1.4 setosa
H_0: La longitud del pétalo de la especie Setosa es igual a la longitud del sépalo de la especie Setosa.
H_a: La longitud del pétalo de la especie Setosa es diferente a la longitud del sépalo de la especie Setosa.
plot(datiris$Sepal.Length, ylab = ("Longitud del Sépalo cm"))
plot(datiris$Petal.Length, ylab = ("Longitud del Pétalo cm"))
Aquí vamos a identificar si nuestra base de datos sigue o no una distribución normal.
planteamos Hipótesis nula y alterna para identificar la normalidad
n_o. los datos presentan una distribucion normal
n_a. los datos no presentan una distribucion normal
shapiro.test(datiris$Sepal.Length)
##
## Shapiro-Wilk normality test
##
## data: datiris$Sepal.Length
## W = 0.9777, p-value = 0.4595
shapiro.test(datiris$Petal.Length)
##
## Shapiro-Wilk normality test
##
## data: datiris$Petal.Length
## W = 0.95498, p-value = 0.05481
Como podemos ver el valor de p-value es mayor que 0.05 entonces no rechazamos la hipótesis nula.
Dado que los datos estimados son de distribución normal hacemos uso de la prueba t-student.
t.test(datiris$Petal.Length, datiris$Sepal.Length)
##
## Welch Two Sample t-test
##
## data: datiris$Petal.Length and datiris$Sepal.Length
## t = -63.774, df = 71.464, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -3.654793 -3.433207
## sample estimates:
## mean of x mean of y
## 1.462 5.006
Conclución. Dada la prueba entonces, aceptamos la H_a: La longitud del pétalo de la especie Setosa es diferente a la longitud del sépalo de la especie Setosa.