library(stests)
## 
## Attaching package: 'stests'
## The following object is masked from 'package:stats':
## 
##     var.test
library(flextable)
library(MASS)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:MASS':
## 
##     select
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.2
library(stats)
library(nortest)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ lubridate 1.9.4     ✔ tibble    3.3.0
## ✔ purrr     1.1.0     ✔ tidyr     1.3.1
## ✔ readr     2.1.5
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ purrr::compose() masks flextable::compose()
## ✖ dplyr::filter()  masks stats::filter()
## ✖ dplyr::lag()     masks stats::lag()
## ✖ dplyr::select()  masks MASS::select()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(devtools)
## Loading required package: usethis
library(datos)
set.seed(2)
datos_d=sample_n(diamantes,120)

1. [15 puntos] Seleccione una submuestra que contenga únicamente diamantes de color G (use la función filter). Valide el supuesto de normalidad para la variable quilate. Con α = 0,05, realice una prueba de hipótesis para verificar si la varianza de los quilates de color G es diferente de 0.22: H0 : σ 2 = 0,22 vs H1 : σ2̸= 0,22

datos_ej1=datos_d %>% filter(color=="G")
datos_ej1
## # A tibble: 25 × 10
##    precio quilate corte     color claridad profundidad tabla     x     y     z
##     <int>   <dbl> <ord>     <ord> <ord>          <dbl> <dbl> <dbl> <dbl> <dbl>
##  1   1728    0.57 Ideal     G     VS2             61.6    57  5.36  5.32  3.29
##  2   5102    0.9  Muy bueno G     VVS2            59.8    60  6.23  6.28  3.74
##  3  14105    1.52 Premium   G     VVS2            62.1    58  7.4   7.31  4.57
##  4   7632    1.12 Ideal     G     VS1             61      56  6.76  6.72  4.11
##  5   2616    0.81 Premium   G     SI2             62.2    59  5.96  5.9   3.69
##  6   2634    0.75 Muy bueno G     SI1             62.1    60  5.79  5.83  3.61
##  7    612    0.32 Ideal     G     SI1             61.3    56  4.42  4.39  2.7 
##  8   3597    0.9  Muy bueno G     SI1             61.6    59  6.13  6.19  3.8 
##  9   8740    1.45 Premium   G     VS1             60.5    60  7.27  7.16  4.37
## 10   9359    1.54 Ideal     G     SI2             61.7    56  7.41  7.44  4.58
## # ℹ 15 more rows
lillie.test(datos_ej1$quilate)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  datos_ej1$quilate
## D = 0.14221, p-value = 0.2144
datos_ej1
## # A tibble: 25 × 10
##    precio quilate corte     color claridad profundidad tabla     x     y     z
##     <int>   <dbl> <ord>     <ord> <ord>          <dbl> <dbl> <dbl> <dbl> <dbl>
##  1   1728    0.57 Ideal     G     VS2             61.6    57  5.36  5.32  3.29
##  2   5102    0.9  Muy bueno G     VVS2            59.8    60  6.23  6.28  3.74
##  3  14105    1.52 Premium   G     VVS2            62.1    58  7.4   7.31  4.57
##  4   7632    1.12 Ideal     G     VS1             61      56  6.76  6.72  4.11
##  5   2616    0.81 Premium   G     SI2             62.2    59  5.96  5.9   3.69
##  6   2634    0.75 Muy bueno G     SI1             62.1    60  5.79  5.83  3.61
##  7    612    0.32 Ideal     G     SI1             61.3    56  4.42  4.39  2.7 
##  8   3597    0.9  Muy bueno G     SI1             61.6    59  6.13  6.19  3.8 
##  9   8740    1.45 Premium   G     VS1             60.5    60  7.27  7.16  4.37
## 10   9359    1.54 Ideal     G     SI2             61.7    56  7.41  7.44  4.58
## # ℹ 15 more rows
var.test(datos_ej1$quilate, alternative='two.sided',
                 null.value=.22, conf.level=0.95)
## 
##  X-squared test for variance
## 
## data:  datos_ej1$quilate
## X-squared = 19.602, df = 24, p-value = 0.5616
## alternative hypothesis: true variance is not equal to 0.22
## 95 percent confidence interval:
##  0.1095500 0.3477368
## sample estimates:
## variance of x 
##     0.1796807
#de lo anterior observamos que el pvalue es mayor que la 
#significancia,asi en este caso no rechazamos la hipotesis nula
#existe suficiente evidencia estadistica para asegurar que la varianza de la variable quilate es igual a 0.22

***2. [10 puntos] Se quiere probar que el precio de los diamantes por las categorías Bajo, Medio y Alto son independientes del color. Realice una prueba de independencia chi-cuadrado al nivel de significancia α = 0,05. La tabla se presenta a continuación:

datos <- data.frame(
  Color= c("D","E","F","G","H","Otros"),
  Bajo= c(4,7,6,8,5,3),
  Medio= c(6,5,4,7,6,2),
  Alto= c(5,6,5,6,4,3)
  )
datos
##   Color Bajo Medio Alto
## 1     D    4     6    5
## 2     E    7     5    6
## 3     F    6     4    5
## 4     G    8     7    6
## 5     H    5     6    4
## 6 Otros    3     2    3
c1=c(4,7,6,8,3,5)
c2=c(6,5,4,7,6,2)
c3=c(5,6,5,6,4,3)
tabla=as.table(cbind(c1,c2,c3))
rownames(tabla)=c("D","E","F","G","H","otros")
colnames(tabla)=c("Bajo","Medio","Alto")
## interpretacion 
# como el pvalue es mayor que el nivel de significancia
#aceptamos la hipotesis nula que establece la dependencia
#entre el precio del diamante y el color del precio 

3. [10 puntos] Con la muestra datos_d, realice un ANOVA de una vía para contrastar si el precio medio difiere según el corte del diamante. Las hipótesis son: H0 :µD = µE = µF = µG = µH = µI = µJ H1 :Al menos dos de las medias no son iguales. - Encuentre el valor-p de la prueba - Exprese su decisión

summary(aov(datos_d$precio~datos_d$corte))
##                Df   Sum Sq  Mean Sq F value Pr(>F)
## datos_d$corte   4 4.75e+07 11874950   0.803  0.525
## Residuals     115 1.70e+09 14780565
#observamos que el pvalue para esta ANOVA de una via 
# es de 0.525 que es mayor que el nivel de significancia de 0.05 
#asi,existe evidencia estadistica suficiente para aceptar que los precios medio por corte son iguales
boxplot(datos_d$precio~datos_d$corte)

4. [15 puntos] Ajuste un modelo de regresión lineal simple con precio como variable dependiente y quilate como variable independiente. - Elabore un gráfico de dispersión - Encuentre la recta que mejor se ajuste al conjunto de datos - Encuentre un intervalo de confianza del 95 % para la pendiente β1

cor(datos_d$precio,datos_d$quilate)
## [1] 0.9088288
modelo=lm(quilate~precio,data = datos_d)

plot(datos_d$precio,datos_d$quilate,main="Grafico")
abline(modelo,col="cadetblue",lty=5)

summary(modelo)
## 
## Call:
## lm(formula = quilate ~ precio, data = datos_d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.60015 -0.12503 -0.00356  0.12613  0.53094 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 3.958e-01  2.668e-02   14.83   <2e-16 ***
## precio      1.087e-04  4.592e-06   23.66   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1919 on 118 degrees of freedom
## Multiple R-squared:  0.826,  Adjusted R-squared:  0.8245 
## F-statistic:   560 on 1 and 118 DF,  p-value: < 2.2e-16
modelo$coefficients
##  (Intercept)       precio 
## 0.3957550783 0.0001086709