Estadística
Segundo parcial
Vino Blanco- Base de Datos
Paralelo 6
Llamado y apertura de la base datos
Usamos el comando head() para mostrar los primeros 6 datos de cada una de las variables, del análisis físico-químico
#https://archive.ics.uci.edu/ml/datasets/Wine+Quality
knitr::opts_chunk$set(error = FALSE)
data=read.csv(url("https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv"),
sep=";")
head(data)
## fixed.acidity volatile.acidity citric.acid residual.sugar chlorides
## 1 7.0 0.27 0.36 20.7 0.045
## 2 6.3 0.30 0.34 1.6 0.049
## 3 8.1 0.28 0.40 6.9 0.050
## 4 7.2 0.23 0.32 8.5 0.058
## 5 7.2 0.23 0.32 8.5 0.058
## 6 8.1 0.28 0.40 6.9 0.050
## free.sulfur.dioxide total.sulfur.dioxide density pH sulphates alcohol
## 1 45 170 1.0010 3.00 0.45 8.8
## 2 14 132 0.9940 3.30 0.49 9.5
## 3 30 97 0.9951 3.26 0.44 10.1
## 4 47 186 0.9956 3.19 0.40 9.9
## 5 47 186 0.9956 3.19 0.40 9.9
## 6 30 97 0.9951 3.26 0.44 10.1
## quality
## 1 6
## 2 6
## 3 6
## 4 6
## 5 6
## 6 6
1.Intervalos de Confianza
Intervalo de Confianza para muestras pequenas, DIstribucion T
La variable a usar sera Cloruros, veremos mediante un intervalo de confianza del 95% de la media muestral estara en que rango de confianza y asi verificar si cumple las regulaciones y sacar un estimado de la varianza poblacional con estos datos de la muestra total proporcionada, en esta especifica variable.
attach(data)
## SUPUESTOS
set.seed(8)
muestra_0<-sample(chlorides,size = 28, replace = F)
tamano1<-length(muestra_0)
promedio1<-mean(muestra_0)#valor que toma el promedio
desviacion1<-sd(muestra_0) #es la desviacion (s) muestral, ya que no tenemos la desviacion poblacional
nivel_confianza<-0.95
t0_alfa_medios=qt(p=0.025,df=27,lower.tail = F)
#usamos la libreria BSDA
library(BSDA)
## Loading required package: lattice
##
## Attaching package: 'BSDA'
## The following object is masked from 'package:datasets':
##
## Orange
intervalO1= promedio1-(desviacion1/sqrt(tamano1))*t0_alfa_medios
intervalO1
## [1] 0.03770185
intervalO2=promedio1+(desviacion1/sqrt(tamano1))*t0_alfa_medios
intervalO2
## [1] 0.05315529
shapiro.test(muestra_0)
##
## Shapiro-Wilk normality test
##
## data: muestra_0
## W = 0.58317, p-value = 9.22e-08
Usando un nivel de significancia de 0.05, no da como resultado un intervalo de confianza de ( 0.03770185, 0.05315529), lo cual podemos concluir que el vino cumple los estandares y regulaciones de poseer un vino con no menos de 0.5g/l de cloruro,pero no sigue una distribucion normal
Para la variable Dioxido de sulfuro totales (Sulfuros)
attach(data)
## The following objects are masked from data (pos = 5):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
library(BSDA)
## SUPUESTOS
set.seed(8)
muestraa<-sample(total.sulfur.dioxide, size = 28, replace = F)
prome_sulfuros<-mean(muestraa)
des_sulfuros<-sd(muestraa)
t1_alfa<-qt(p=0.025,df=27, lower.tail = F)
##calculando el estadistico
intervalo_0= prome_sulfuros-(des_sulfuros/sqrt(28))*t1_alfa
interval_0= prome_sulfuros+(des_sulfuros/sqrt(28))*t1_alfa
intervalo_0
## [1] 120.3787
interval_0
## [1] 146.0498
shapiro.test(muestraa)
##
## Shapiro-Wilk normality test
##
## data: muestraa
## W = 0.92948, p-value = 0.05982
Extraemos de una muestra de 28 datos acerca del total de sulfuro, donde encontramos que la media estara entre (120.3787,146.0498) El cual se encuentra dentro del rango apropiado (<350mg/l) para el continente Americano. Cumpliendo asi tambien, el requisito de seguir un modelo poblacional.
la variable Alcohol
library(BSDA)
attach(data)
## The following objects are masked from data (pos = 3):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 6):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
# SUPUESTOS
set.seed(8)
muestra<-sample(alcohol, size = 28,replace = F)
xbarra<-mean(muestra)
desviacion2<-sd(muestra)
tamano3<-length(muestra)
talfa_medios<-qt(p=0.025,df=tamano3-1,lower.tail = F)
## INTERVALOS
intervalo1= xbarra-(desviacion2/sqrt(tamano3))*talfa_medios
intervalo2=xbarra+(desviacion2/sqrt(tamano3))*talfa_medios
intervalo1
## [1] 9.944222
intervalo2
## [1] 10.73435
shapiro.test(muestra)
##
## Shapiro-Wilk normality test
##
## data: muestra
## W = 0.96149, p-value = 0.378
Con valores de (9.944222,10.73435). Lo que calculamos aqui es una estimacion a nuestro parametro (media poblacional), y con este dato podemos decir que la cantidad total de vinos que hayan sido hechos por la empresa cumple con un porcentaje de alcohol normal y aceptable por las regulaciones de Vinos.
Variable Acidez Volatil
# 1 La variable Volatile.acidity debido a que la acidez volatil no puede ser mayor a 0.60 gramos/litro
#Usaremos el intervalo de confianza con t student, debido a que el tamano de la muestra es menor a 30, la desviacion estandar es desconocida.
set.seed(9)
muestra=c(sample(data$volatile.acidity, size=28,replace = FALSE))
xb=mean(muestra)
xb
## [1] 0.2821429
s=sd(muestra)
n=length(muestra)
alfa=0.04
t=qt(alfa/2,n-1,lower.tail= TRUE)
t
## [1] -2.157825
error=(s*t)/sqrt(n)
error
## [1] -0.06576462
xb-error #limite sup
## [1] 0.3479075
xb+error #limite inf
## [1] 0.2163782
#library(BSDA)
#zsum.test(xb,s,n,conf.level = 0.96) #CONFIRMANDO EL INT DE CONF
muestra
## [1] 0.300 0.610 0.475 0.140 0.150 0.250 0.180 0.180 0.240 0.180 0.210 0.130
## [13] 0.220 0.910 0.300 0.150 0.280 0.250 0.230 0.130 0.255 0.260 0.280 0.300
## [25] 0.310 0.380 0.270 0.330
shapiro.test(muestra)
##
## Shapiro-Wilk normality test
##
## data: muestra
## W = 0.72995, p-value = 7.776e-06
Entonces nuestro intervalo de confianza esto dado entre 0.21 y 0.34 gr/lts por lo que quiere decir que para la muestra dada los vinos no presentan olor a vinagre, ni su sabor es “picado”; Es conveniente que la acidez volatil de un vino sea lo mas baja posible.La variable no sigue una distribucion normal.
Variable Calidad
#2. Determine un intervalo de confianza para la proporcion real p de vinos de alta calidad con el 96% de confianza
##Usaremos el intervalo de confianza con proporciones, debido a que el tamano de la poblacion es muy grande, n*p>5.
n2=length(data$quality)
n2
## [1] 4898
## CREACION DE VARIABLE CUALITATIVA
xt=table((data[,"Calidad por Categoria"] = cut(data$quality , breaks = c(0,4,7,10), labels = c("Calidad baja", "Calidad media","Calidad Alta"))))
x=xt["Calidad Alta"]
x
## Calidad Alta
## 180
xt
##
## Calidad baja Calidad media Calidad Alta
## 183 4535 180
pt=x/n2
pt
## Calidad Alta
## 0.03674969
qt=1-pt
alfa=0.04
z=qnorm(alfa/2,mean=0,sd=1,lower.tail = FALSE)
z
## [1] 2.053749
e=(sqrt(pt*qt/n2))*z
e
## Calidad Alta
## 0.005521212
pt-e
## Calidad Alta
## 0.03122848
pt+e
## Calidad Alta
## 0.04227091
#install.packages("nortest")
library(nortest)
lillie.test(data$quality)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: data$quality
## D = 0.22876, p-value < 2.2e-16
El intervalo de confianza de la proporcion est? entre 0.0312 y 0.0423, lo que indica que existir muy pocos vinos de alta calidad.La variable no sigue una distribucion normal.
Variable Azucar Residual
#3.La variable que se usara sera Residual.sugar el valor promedio en vinos blancos es de 12g/L (por lo que se dice que es un vino semiseco)
#Usaremos el intervalo de confianza con t student, debido a que el tamano de la muestra es menor a 30, la desviacion estandar es desconocida.
set.seed(9)
muestra3=c(sample(data$residual.sugar , size=28,replace = FALSE))
muestra3
## [1] 13.5 8.4 1.0 1.6 1.3 1.2 1.7 9.8 2.9 1.4 1.2 1.2 9.3 1.6 7.5
## [16] 1.4 1.6 14.4 14.2 5.3 2.7 7.1 15.4 1.9 7.2 5.0 1.2 4.2
xb3=mean(muestra3)
xb3
## [1] 5.185714
s3=sd(muestra3)
n3=length(muestra3)
alfa=0.04
t3=qt(alfa/2,n3-1,lower.tail= FALSE)
t3
## [1] 2.157825
error3=(s3*t3)/(sqrt(n3))
error3
## [1] 1.922366
xb3-error3 #limite INF
## [1] 3.263348
xb3+error3 #limite SUP
## [1] 7.10808
shapiro.test(muestra3)
##
## Shapiro-Wilk normality test
##
## data: muestra3
## W = 0.81167, p-value = 0.0001726
Nuestra media poblacional no cae dentro del intervalo de confianza, concluimos que esta muestra es de seca a semiseca.No sigue una distribucion normal.
Conclusion
El uso de los Intervalos de Confianza son muy utiles en la actualidad, asi podemos observar la variabilidad encontrada en los datos depediendo del estaditistico que busquemos, que en este caso fue para la media. Y comparamos con valores promedios de la regulaciones características de diferentes vinos y encontramos que esta marca y específicamente su vino blanco, cumple con las regulaciones.
————————————
2.Prueba de Hipotesis
La variable a usar sera Cloruros
Usando la distribucion T de student como nuestro estadistico
attach(data)
## The following objects are masked from data (pos = 4):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 5):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 8):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
library(BSDA)
## SUPUESTOS
set.seed(8)
muestra_2<-sample(chlorides, size = 28,replace = F)
prom_1<-mean(muestra_2)
des_1<-sd(muestra_2)
length(muestra_2)
## [1] 28
##Para este intervalo estableceremos un valor que proponemos al parametro de la media con todos los datos presentes en esa variable
u<-mean(chlorides) ##nuestro parametro
#Probaremos si con estos supuestos podremos probar que la media poblacional sera igual a 0.04 o sino es igual a este valor.
#Por lo tanto, quedaria:
#H0: u = 0.04
#h1: u ≠ 0.04
##RESOLVIENDO
talfa1<-qt(p=0.05/2,df=28-1,lower.tail = F)
talfa1
## [1] 2.051831
T1<-(prom_1-u)/(des_1/sqrt(28))
T1
## [1] -0.09129198
##PARA COMPROBAR EL SUPUESTO CON EL VALOR P
tsum.test(prom_1,des_1,28,mu=u,alternative = "two.sided",conf.level = 0.95)
## Warning in tsum.test(prom_1, des_1, 28, mu = u, alternative = "two.sided", :
## argument 'var.equal' ignored for one-sample test.
##
## One-sample t-Test
##
## data: Summarized x
## t = -0.091292, df = 27, p-value = 0.9279
## alternative hypothesis: true mean is not equal to 0.04577236
## 95 percent confidence interval:
## 0.03770185 0.05315529
## sample estimates:
## mean of x
## 0.04542857
shapiro.test(muestra_2)
##
## Shapiro-Wilk normality test
##
## data: muestra_2
## W = 0.58317, p-value = 9.22e-08
Tenemos que el valor del estadistico es (-0.09) mayor a la del cuantil de tα/2. Por lo cual se rechaza la prueba de hipotesis nula. Comprobamos una vez mas con la prueb de shapiro, el p-value = 9.22e-08 es menor que 0.05, por ende no cumple los requisitos de normalidad.
Para la variable Dioxido de sulfuro totales (Sulfuros)
attach(data)
## The following objects are masked from data (pos = 3):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 5):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 6):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 9):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
library(BSDA)
## SUPUESTOS
set.seed(8)
muestraa<-sample(total.sulfur.dioxide, size = 28, replace = F)
prome_sulfuros<-mean(muestraa)
des_sulfuros<-sd(muestraa)
t1_alfaa<-qt(p=0.05/2,df=27, lower.tail = F)
##valor a tomar de nuestra media
u_sulfuros<-mean(total.sulfur.dioxide)
u_sulfuros
## [1] 138.3607
##probando que el promedio de mg/l de sulfuros presentes en el vino de la marca Vino Vherde es mayor a 138.36
#H0: u=138.36
#H1: u>138.36
##comprobando hipotesis
t_sulfuros<-zsum.test(prome_sulfuros,des_sulfuros,28,mu=u_sulfuros,alternative = "greater",conf.level = 0.95)
t_sulfuros
##
## One-sample z-Test
##
## data: Summarized x
## z = -0.82268, p-value = 0.7947
## alternative hypothesis: true mean is greater than 138.3607
## 95 percent confidence interval:
## 122.9246 NA
## sample estimates:
## mean of x
## 133.2143
ttt<-(prome_sulfuros- u_sulfuros)/(des_sulfuros/sqrt(28))
shapiro.test(muestraa)
##
## Shapiro-Wilk normality test
##
## data: muestraa
## W = 0.92948, p-value = 0.05982
Concluimos con efectivamente la media sera mayor que el promedio de 138.36, y lo podemos denotar con el intervalo de confianza que obtuvimos. La variable sigue una funcion normal, puesto que el valor p es mayor que 0.05 tenemos como resultado p-value = 0.7947.
Variable Alcohol
attach(data)
## The following objects are masked from data (pos = 3):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 4):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 6):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 7):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 10):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
library(BSDA)
# SUPUESTOS
set.seed(8)
muestra_4<-sample(alcohol, size = 28,replace = F)
prom_3<-mean(muestra_4)
des_3<-sd(muestra_4)
n3<-length(muestra_4)
u3<-mean(alcohol) ##valor que esta tomando nuestro parametro
#donde nuestras hipotesis comprobaremos si
#H0: u= 10.51
#H1: u< 10.51
#
talfa3<-qt(p=0.05, lower.tail = F,df=27)
talfa3
## [1] 1.703288
T3<-(prom_3-u3)/(des_3/sqrt(n3))
T3
## [1] -0.9087951
##COMPROBANDO LOS SUPUESTOS
tsum.test(prom_3,des_3,n3,mu=u3,alternative = "less",conf.level = 0.95)
## Warning in tsum.test(prom_3, des_3, n3, mu = u3, alternative = "less",
## conf.level = 0.95): argument 'var.equal' ignored for one-sample test.
##
## One-sample t-Test
##
## data: Summarized x
## t = -0.9088, df = 27, p-value = 0.1857
## alternative hypothesis: true mean is less than 10.51427
## 95 percent confidence interval:
## NA 10.66724
## sample estimates:
## mean of x
## 10.33929
shapiro.test(muestra_4)
##
## Shapiro-Wilk normality test
##
## data: muestra_4
## W = 0.96149, p-value = 0.378
En este caso nos muestra que la hipotesis alternativa es la correcta, de que el promedio sera menor que 10.51 con respecto a al valor que puede tomar la media poblacional.Ademas, no sigue una distribucion normal puesto que el valor arrojado es menor a la significancia usada(0.05).
Variable Acido Citrico
#1. La variable que se usara sera Citric.acid la cual no debera superar la cantidad de 1 g/L segun el limite juridico europeo para que no cause dano a la salud. En esta muestra los vinos no causaran dano a la salud?
#Ho: media= 1 g/L
#H1: media< 1 g/L
media= 1
set.seed(9)
muestra1=c(sample(data$citric.acid, size=28,replace = FALSE))
muestra1
## [1] 0.74 0.01 0.06 0.44 0.32 0.34 0.31 0.24 0.39 0.26 0.74 0.28 0.32 0.42 0.16
## [16] 0.34 0.29 0.28 0.39 0.29 0.22 0.29 0.35 0.25 0.35 0.33 0.40 0.31
xb1=mean(muestra1)
xb1
## [1] 0.3257143
s=sd(muestra1)
s
## [1] 0.1509827
n=length(muestra1)
n
## [1] 28
alfa=0.04
t=(xb1-media)/(s/(sqrt(n))) #ESTADISTICO
t
## [1] -23.63175
regRech=qt(alfa,n-1,lower.tail= TRUE)
regRech
## [1] -1.819126
valorp=pt(q=t,n-1,lower.tail=TRUE)
valorp
## [1] 7.127574e-20
shapiro.test(muestra1) #No sigue una distribución lineal
##
## Shapiro-Wilk normality test
##
## data: muestra1
## W = 0.85711, p-value = 0.001305
Se rechaza la hipotesis nula debido a que el valor p (7.127574e-20) es menor que el referencial (0.04) Y no sigue una distribucion normal. Los vinos no causan dano a la salud.No sigue una distribucion normal.
Variable pH
#2. El ph en el vino blanco no debe tener niveles superiores a 3.3 ya que mientras mas se acerque a 4 se hace plano, es decir, carente de acidez. La muestra a evaluar no carece de acidez?
#Ho: media= 3.3
#H1: media< 3.3
media2h=3.3
set.seed(9)
muestra2h=c(sample(data$pH, size=28,replace = FALSE))
muestra2h
## [1] 3.02 3.26 2.97 3.32 3.18 2.93 3.49 3.13 3.10 3.34 3.13 3.33 3.34 3.11 3.17
## [16] 3.32 3.48 3.12 2.98 3.44 3.75 3.08 3.23 3.36 3.14 3.32 3.13 3.18
xb2h=mean(muestra2h)
xb2h
## [1] 3.226786
s2h=sd(muestra2h)
s2h
## [1] 0.1823114
n=length(muestra2h)
alfa=0.04
t2h=(xb2h-media2h)/(s2h/(sqrt(n))) #ESTADISTICO
t2h
## [1] -2.125011
regRech2=qt(alfa,n-1,lower.tail= TRUE)
regRech2
## [1] -1.819126
valorp2h=pt(q=t2h,n-1,lower.tail=TRUE)
valorp2h
## [1] 0.02144292
shapiro.test(muestra2h)#La variable tiene distribucion normal
##
## Shapiro-Wilk normality test
##
## data: muestra2h
## W = 0.95016, p-value = 0.2
Se rechaza la hipotesis nula debido a que el valor p (0.02144292) es menor que el referencial (0.04). Los vinos no carecen de acidez, es decir, no superan el ph de 3.3.
Variable Sulphates
#3. La proporcion maxima que se puede aceptar en vinos blancos de sulfitos es de 0.2 g/lts, ya que el exceso de esta variable puede llegar a ser peligroso para la salud de los consumidores. Los vinos de nuestra data no afectan a la salud de sus consumidores?
#Ho: p = 0.2
#H1: p < 0.2
p=0.2
set.seed(9)
muestra3h=c(sample(data$sulphates, size=28,replace = FALSE))
muestra3h
## [1] 0.40 0.72 0.29 0.51 0.41 0.37 0.50 0.51 0.34 0.72 0.41 0.33 0.54 0.46 0.49
## [16] 0.62 0.56 0.38 0.48 0.37 0.76 0.36 0.50 0.66 0.53 0.44 0.45 0.48
xb3h=mean(muestra3h)
xb3h
## [1] 0.4853571
alfa=0.04
x=length(muestra3h)
n3=length(data$sulphates)
n3
## [1] 4898
ptech= x/n3
ptech
## [1] 0.005716619
z3H=(ptech-p)/(sqrt((p*(1-p)/n3)))
z3H
## [1] -33.99265
regRech3=qnorm(alfa,mean=0,sd=1,lower.tail= TRUE)
regRech3
## [1] -1.750686
valorp3h=pt(q=z3H,n3-1,lower.tail=TRUE)
valorp3h
## [1] 6.943286e-228
#Usamos lillie.test() si la muestra es mayor a 50 y shapiro.test() si es <50.
lillie.test(data$sulphates) #No sigue una distribucion normal.
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: data$sulphates
## D = 0.08685, p-value < 2.2e-16
El valor p-value < 2.2e-16 es menor que el valor referencial (0.04) por lo que rechazamos Ho a favor de H1.Los vinos de nuestra data pueden llegar a causar daño a la salud de sus consumidores.
Conclusion
Obversamos como en todos las hipotesis que dimos para la media usando la distribucion para muestras pequenas, que estimamos valores un valor de la media poblacional de los datos. Usamos en todos los supuestos para cada una de las variables, un valor para la media que deseamos estimar, y para ello usamos el promedio de los 4898 datos, ya que asi, entre mas datos, podemos tener un valor mas acertado y un resultado preciso al momento de elegir nuestra hipotesis.
Notamos que las variables 3 variables escogidas en este caso no han cumplido el principio de normalidad mediante el uso del valor p y la prueba de normalidad con el comando shapiro . Con cada uno de ellos, hemos comprobado que las hipotesis nulas son falsas porque no cumplen los supuestos necesarios para tener un vino de una calidad excelente.
————————————————————————————————–
3.Regresion Lineal
La creacion de un modelo lineal es de suma importancia para demostrar la relacion entre dos variables. Y comprobaremos que tan ligadas estas las variables de pH con la de calidad, ya que un buen vino depende netamente del pH que presenta, debido a que es el conjunto de todos los acidos organicos que hacen unico a los vinos. Emplearemos el metodo de Minimos Cuadrados Ordinarios
MODELO 3.1
attach(data)
## The following objects are masked from data (pos = 3):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 4):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 5):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 7):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 8):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 11):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
##calculamos los promedios de cada de las variables para los futuros calculos
d1<-mean(pH)
d2<-mean(quality)
b1<-cov(pH,quality)/var(pH)
##tenemos nuestro primer valor la cual es la pendiente con la interseccion de b0
b1
## [1] 0.583154
b0<-d2-(b1*d1)
b0
## [1] 4.018659
##grafica
funcion_1<-lm(pH~quality)
funcion_1
##
## Call:
## lm(formula = pH ~ quality)
##
## Coefficients:
## (Intercept) quality
## 3.08862 0.01695
plot(pH~quality)
abline(funcion_1)

##para comprobar los supuestos de normalidad
#Que el valor esperado de los errores sea igual a cero. Recordemos que los residuos son aquellos errores que existen, y esto asu vez es la distancia de un punto a la recta.
mean(funcion_1$residuals)
## [1] -2.884584e-17
## y comprobamos que con sus errores y la desviacion estan de los mismos, si es normal o no.
ks.test(x=funcion_1$residuals, y=pnorm, mean=0, sd=sd(funcion_1$residuals), alternative = "two.sided")
## Warning in ks.test(x = funcion_1$residuals, y = pnorm, mean = 0, sd =
## sd(funcion_1$residuals), : ties should not be present for the Kolmogorov-Smirnov
## test
##
## One-sample Kolmogorov-Smirnov test
##
## data: funcion_1$residuals
## D = 0.041996, p-value = 6.275e-08
## alternative hypothesis: two-sided
Por lo cual tendremos una recta y=3.08862x+0.01695
Por lo cual concluimos que esta funcion no cumple los supuestos de normalidad pedidos, el valor esperado de la media es muy proximo a cero por lo cual podria comprobarse en ese supuesto, pero cuando probamos con el test de Kolmorov-Smirnov probamos que no es normal, ya que da p-value = 6.275e-08 que el de la significancia. Debe cumplirse todos los supuestos.
En donde podemos calcular su coeficiente de correlacion con el siguiente comando.
cor(data$pH,data$quality, method = "pearson")
## [1] 0.09942725
Encontramos un valor positivo por lo cual se sobre entiende que existe una ligera relacion entre ambas variables, que se entre ambas variables.
MODELO 3.2
attach(data)
## The following objects are masked from data (pos = 3):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 4):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 5):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 6):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 8):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 9):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 12):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
funcion_2<-lm(residual.sugar~quality)
funcion_2
##
## Call:
## lm(formula = residual.sugar ~ quality)
##
## Coefficients:
## (Intercept) quality
## 9.6761 -0.5588
##GRAFICA
plot(residual.sugar~quality)
abline(funcion_2)

##comprobamos los supuestos de normalidad
##Si el Valor esperado de los errores es igual a cero.
mean(funcion_2$residuals)
## [1] -1.392755e-15
##Con la prueba de Kolmorov-Smirnov probamos que cumpla la normalidad con un promedio de cero(valor esperado), y con cualquier varianza usada.
ks.test(x=funcion_2$residuals, y= pnorm, mean=0, sd= sd(funcion_2$residuals), alternative = "two.sided")
## Warning in ks.test(x = funcion_2$residuals, y = pnorm, mean = 0, sd =
## sd(funcion_2$residuals), : ties should not be present for the Kolmogorov-Smirnov
## test
##
## One-sample Kolmogorov-Smirnov test
##
## data: funcion_2$residuals
## D = 0.11924, p-value < 2.2e-16
## alternative hypothesis: two-sided
Tendremos que para esta funcion es y= -0.5588x+ 9.6761 que representa la funcion lineal estimada de todos los puntos entre la relacion de contenido de azucar en le vino. Comprobamos una vez mas que, no sigue una distribucion normal, puesto que el valor de la media es negativo y no cero. Y no pasa la prueba de K.S., ya que el p-value < 2.2e-16 y es menor que el nivel de significancia para talfa/2.
Calculando su coeficiente de corelacion
cor(data$residual.sugar, data$quality)
## [1] -0.09757683
Nos damos cuenta de que el azucar que queda despues del proceso de fermentacion, no afecta mucho en la calidad de un vino.
MODELO 3.3
attach(data)
## The following objects are masked from data (pos = 3):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 4):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 5):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 6):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 7):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 9):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 10):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 13):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
x=c(quality)
y=c(volatile.acidity)
b11=cov(x,y)/var(x) #Pendiente de la ecuacion
b11
## [1] -0.02216143
b00=mean(y)-(b1*mean(x))
b00
## [1] -3.149485
rcuadrado1=100*cor(x,y)^2
rcuadrado1
## [1] 3.791703
modd=lm(quality~volatile.acidity)
modd
##
## Call:
## lm(formula = quality ~ volatile.acidity)
##
## Coefficients:
## (Intercept) volatile.acidity
## 6.354 -1.711
head(modd$residuals) #Muestra los errores del modelo
## 1 2 3 4 5 6
## 0.10799053 0.15931895 0.12510000 0.03955263 0.03955263 0.12510000
#Grafica
plot(quality~volatile.acidity)
abline(modd)

Se puede observar que la calidad de un vino es mayor si la acidez volatil es menor.
La ecuacion que representa la ecuacion de regresion lineal: y= -0.02216143x+ 0.408504 entre calidad y acidez volatil.La variable no sigue una distribucion lineal. Comprobamos una vez mas que, no sigue una distribucion normal
cor(data$quality,data$volatile.acidity, method = "pearson") #Coeficiente de correlacion
## [1] -0.194723
Se pude decir que la fuerza de la relacion lineal es debil. Como el valor del coeficiente de correlacion es negativo, se dice que cuando el valor de la variable “x” aumenta el valor de la variable “y” disminuye
#Comprobaremos el supuesto de normalidad
#El valor esperado de los errores debe de ser igual a cero ya que los residuos son aquellos errores que existen, y esto a su vez es la distancia de un punto a la recta.
mean(modd$residuals)
## [1] 1.589316e-16
ks.test(x=modd$residuals, y=pnorm, mean=0, sd=sd(modd$residuals), alternative = "two.sided")
## Warning in ks.test(x = modd$residuals, y = pnorm, mean = 0, sd =
## sd(modd$residuals), : ties should not be present for the Kolmogorov-Smirnov test
##
## One-sample Kolmogorov-Smirnov test
##
## data: modd$residuals
## D = 0.11913, p-value < 2.2e-16
## alternative hypothesis: two-sided
Se concluye que esta funcion no cumple el supuesto de normalidad,aunque valor esperado de la media es muy proximo a cero se pondria suponer que si es normal, pero cuando probamos con el test de Kolmorov-Smirnov probamos que no es normal, debido a que p-value < 2.2e-16, este valor es menor al valor de significancia. Se deben de cumplir todos los supuestos
MODELO 3.4
attach(data)
## The following objects are masked from data (pos = 3):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 4):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 5):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 6):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 7):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 8):
##
## alcohol, Calidad por Categoria, chlorides, citric.acid, density,
## fixed.acidity, free.sulfur.dioxide, pH, quality, residual.sugar,
## sulphates, total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 10):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 11):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
## The following objects are masked from data (pos = 14):
##
## alcohol, chlorides, citric.acid, density, fixed.acidity,
## free.sulfur.dioxide, pH, quality, residual.sugar, sulphates,
## total.sulfur.dioxide, volatile.acidity
x=c(data$fixed.acidity)
y=c(data$alcohol)
b111=cov(x,y)/var(x) #Pendiente de la ecuacion
b111
## [1] -0.176282
b000=mean(y)-(b1*mean(x))
b000
## [1] 6.51687
rcuadrado2=100*cor(x,y)^2
rcuadrado2
## [1] 1.461225
mod2=lm(fixed.acidity~alcohol)
head(mod2$residuals) #Muestra los errores del modelo
## 1 2 3 4 5 6
## 0.003114507 -0.638861583 1.210873197 0.294294937 0.294294937 1.210873197
#Gráfica
plot(fixed.acidity~alcohol)
abline(mod2)

Se puede observar que la recta de la ecuacion de la regresion lineal es casi constante, esto se da porque el equilibrio de estas dos variables depende que no sobresalga ni el dulce del alcohol (escondiendo así la acidez), ni que exista un exceso de acidez (la cual reduciria la sensacion alcoholica).ECUACION DE LA REGRESION LINEAL quedaria como y= -0.176282x+ 11.72264.
cor(data$fixed.acidity,data$alcohol, method = "pearson") #Coeficiente de correlacion
## [1] -0.1208811
Se pude decir que la fuerza de la relacion lineal es debil. Como el valor del coeficiente de correlacion es negativo, se dice que cuando el valor de la variable “x” aumenta el valor de la variable “y” disminuye
#Comprobaremos el supuesto de normalidad
#El valor esperado de los errores debe de ser igual a cero ya que los residuos son aquellos errores que existen, y esto a su vez es la distancia de un punto a la recta.
mean(mod2$residuals)
## [1] 4.096345e-16
ks.test(x=mod2$residuals, y=pnorm, mean=0, sd=sd(mod2$residuals), alternative = "two.sided")
## Warning in ks.test(x = mod2$residuals, y = pnorm, mean = 0, sd =
## sd(mod2$residuals), : ties should not be present for the Kolmogorov-Smirnov test
##
## One-sample Kolmogorov-Smirnov test
##
## data: mod2$residuals
## D = 0.046583, p-value = 1.173e-09
## alternative hypothesis: two-sided
Se concluye que esta funcion no cumple el supuesto de normalidad,aunque valor esperado de la media es muy proximo a cero se pondria suponer que si es normal, pero cuando probamos con el test de Kolmorov-Smirnov probamos que no es normal, debido a que p-value = 1.173e-09, este valor es menor al valor de significancia.Se deben de cumplir todos los supuestos
—————————–