Primer Intervalo de Confianza

#supuestos usa distribucion t de student

#condiciones:
# 1.teniendo intervalo de confianza con sigma desconocido 
#muestra de una variable aleatoria continua acidéz fijo
#muestra tamaño 28, significancia=0.05

muestra=sample(white$fixed.acidity,size = 28,replace = FALSE)
muestra
##  [1] 6.7 6.9 7.1 6.5 6.5 7.7 7.2 7.1 5.5 7.0 7.2 5.8 6.9 6.5 6.9 5.6 7.2 6.6 8.4
## [20] 9.2 7.6 6.9 7.0 6.2 6.5 6.2 7.9 6.6
#media muestral
media=mean(muestra) 
media
## [1] 6.907143
#desviacion estandar
s=sd(muestra)
#tamaño
n=length(muestra)
#significancia
significancia=0.05
significancia
## [1] 0.05
# variable aleatoria t de Student
t=qt(significancia/2,n-1,lower.tail = F)
t
## [1] 2.051831
#error
error=(s*t)/sqrt(n)
error
## [1] 0.3053091
#limite inferior 
liminfer=media-error
liminfer
## [1] 6.601834
#limite superior
limsuper=media+error
limsuper
## [1] 7.212452
hist(white$fixed.acidity,media=mean(muestra),s=sd(muestra),main="Histograma de Acidéz Fijo ",xlab="Acidéz Fijo",ylab="Frecuencia")

#conclusion:  Asi que para un nivel de confianza de 0.95, α/2 va a ser 0.05 y una muestra de tamaño =28, podemos decir que la media poblacional va a estar entre los valores 6.654283 y 7.360003 con un 95% de confianza.

Segundo Intervalo de Confianza

#supuestos usa distribucion t de student

#condiciones:
# 1.teniendo intervalo de confianza con sigma desconocido 
#muestra de una variable aleatoria continua acidéz volatil

#muestra de tamaño 28 y significancia 0.05


muestra=sample(white$volatile.acidity,size = 28,replace = FALSE)
muestra
##  [1] 0.220 0.160 0.370 0.410 0.260 0.260 0.190 0.330 0.170 0.200 0.280 0.140
## [13] 0.210 0.335 0.470 0.180 0.210 0.290 0.280 0.520 0.230 0.270 0.230 0.370
## [25] 0.260 0.370 0.250 0.320
#media 
media=mean(muestra)
media
## [1] 0.2780357
#desviacion estandar
s=sd(muestra)
s
## [1] 0.09293904
n=length(muestra)
#significancia
significancia=0.05
significancia
## [1] 0.05
# variable aleatoria t de student
t=qt(significancia/2,n-1,lower.tail = F)
t
## [1] 2.051831
#error
error=(s*t)/sqrt(n)
error
## [1] 0.036038
#limite inferior
liminfer=media-error
liminfer
## [1] 0.2419977
#limite superior
limsuper=media+error
limsuper
## [1] 0.3140737
hist(white$volatile.acidity,media=mean(muestra),s=sd(muestra),main="Histograma de Acidéz Volátill ",xlab="Acidéz Volátil",ylab="Frecuencia")

#conclusion:  Asi que para un nivel de confianza de 0.95, α/2 va a ser 0.05 y una muestra de tamaño =28, podemos decir que la media poblacional va a estar entre los valores 0.2430853 y 0.3272719 con un 95% de confianza.

Tercer Intervalo de Confianza

#supuestos usa distribucion t de student

#condiciones:
# 1.teniendo intervalo de confianza con sigma desconocido 
#muestra de una variable aleatoria continua acido citrico
#muestra tamaño 28, significancia=0.05

muestra=sample(white$citric.acid,size = 28,replace = FALSE)
muestra
##  [1] 0.34 0.33 0.30 0.43 0.32 0.41 0.36 0.24 0.32 0.28 0.32 0.25 0.20 0.49 0.27
## [16] 0.30 0.30 0.44 0.60 0.25 0.28 0.23 0.25 0.25 0.15 0.20 0.24 0.36
#media
media=mean(muestra)
media
## [1] 0.3110714
#desviacion estandar
s=sd(muestra)
s
## [1] 0.09592973
n=length(muestra)
#significancia
significancia=0.05
significancia
## [1] 0.05
#variable aleatoria t de Student
t=qt(significancia/2,n-1,lower.tail = F)
t
## [1] 2.051831
#error
error=(s*t)/sqrt(n)
error
## [1] 0.03719767
#limite inferior
liminfer=media-error
liminfer
## [1] 0.2738738
#limite superior
limsuper=media+error
limsuper
## [1] 0.3482691
hist(white$citric.acid,media=mean(muestra),s=sd(muestra),main="Histograma de Acidéz Cítrico ",xlab="Acidéz Cítrico",ylab="Frecuencia")

str(white$citric.acid)
##  num [1:4898] 0.36 0.34 0.4 0.32 0.32 0.4 0.16 0.36 0.34 0.43 ...
head(white$citric.acid)
## [1] 0.36 0.34 0.40 0.32 0.32 0.40
#conclusion:  Asi que para un nivel de confianza de 0.95, α/2 va a ser 0.05 y una muestra de tamaño =28, podemos decir que la media poblacional va a estar entre los valores 0.2472545 y 0.3306026 con un 95% de confianza.

Primera Prueba de Hipótesis

#Supuestos: El tamaño de la muestra es n mayor o igual a 30.

#Prueba de hipotesis de media e intervalos al 95% de confianza para la variable "Acidez volatil"

#donde las condiciones: 
#X es normal
#desviacion estándar poblacional desconocida, n<30

#teniendo las hipotesis
#HO es la hipotesis nula y H1 es la hipotesis alternativa 
#H0: u=5  
#H1: U≠5

upoblacional=5
significancia=0.05
#muestra con variable aleatoria acidez volátil
muestra=sample(white$residual.sugar,size = 28,replace = FALSE)
muestra
##  [1] 19.95  1.20  1.50 14.35  1.45  4.60  1.60  2.20 12.10  1.20  1.10 17.75
## [13] 20.30 14.80  1.90  7.30  1.30  1.10  1.80  5.60  8.20  2.50  1.20  3.50
## [25]  6.90  1.20  4.70  2.70
#media
media=mean(muestra)
media
## [1] 5.857143
#desviacion estandar
s=sd(muestra)
s
## [1] 6.185313
#
tizquierda=qt(significancia,n-1,lower.tail = T)
tizquierda
## [1] -1.703288
tderecha=qt(significancia,n-1,lower.tail = F)
tderecha
## [1] 1.703288
#estadistico de prueba
estadisticodepruebat=((media-upoblacional)/(s/sqrt(n)))
estadisticodepruebat
## [1] 0.7332812
#valor p de una prueba
p=pt(estadisticodepruebat,n-1,lower.tail = T)
p
## [1] 0.7651468
hist(white$residual.sugar,media=mean(muestra),s=sd(muestra),main="Histograma de Azúcar Residual ",xlab="Azúcar Residual",ylab="Frecuencia")

#Conclusion: Como el estadstico de prueba salio menor que el limite, donde cae a la izquierda de la region critica y la prueba es mayor que la significancia, asi que concluimos que acepta Ho la media poblacional si es 5.

Segunda Prueba de Hipótesis

#Supuestos: El tamaño de la muestra es n mayor o igual a 30.

#Prueba de hipotesis de media e intervalos al 95% de confianza para la variable "PH"


#donde las condiciones: 
#X es normal
#desviacion estandar pblacion desconocido por lo que usamos desviacion estandar muestral s

#teniendo las hipotesis
#HO es la hipotesis nula y H1 es la hipotesis alternativa 
#H0: u=3.3  
#H1: U≠3.3

upoblacional=3.3
#muestra de variable aleatoria continua acidéz volátil
muestra=sample(white$pH,size = 28,replace = FALSE)
muestra
##  [1] 3.22 3.38 2.79 3.19 3.33 3.20 3.11 3.13 3.35 3.06 3.16 3.25 3.21 3.41 3.13
## [16] 3.24 3.18 2.95 3.13 3.17 3.24 3.22 2.99 3.34 3.21 3.03 3.19 3.23
media=mean(muestra)
media
## [1] 3.18
hist(white$pH,media=mean(muestra),s=sd(muestra),main="Histograma de PH ",xlab="PH",ylab="Frecuencia")

#desviacion estandar
s=sd(muestra)
s
## [1] 0.1334721
#significancia
significancia=0.05

#limites de la region de rechazo
tizquierda=qt(significancia,n-1,lower.tail = T)
tizquierda
## [1] -1.703288
tderecha=qt(significancia,n-1,lower.tail = F)
tderecha
## [1] 1.703288
#estadístico de prueba
estadisticodepruebat=(media-upoblacional)/(s/sqrt(n))
estadisticodepruebat
## [1] -4.757399
#valor p de una prueba
p=pt(estadisticodepruebat,n-1,lower.tail = T)
p
## [1] 2.923056e-05
#Conclusion: Como el estadstico de prueba salio menor que el limite, donde cae a la izquierda de la region critica y la prueba es menor que la significancia, asi que concluimos que se rechaza Ho y la media poblacional es diferente a 3.3.

Tercer Prueba de Hipótesis

Supuestos: Los datos provienen de una poblacion normal

#Supuestos: El tamaño de la muestra es n mayor o igual a 30.

#Prueba de hipotesis de media e intervalos al 95% de confianza para la variable "Alcohol"

#donde las condiciones: 
#X es normal
#desviacion estandar pblacion desconocido por lo que usamos desviacion estandar muestral s
#n<30

#teniendo las hipotesis
#HO es la hipotesis nula y H1 es la hipotesis alternativa 
#H0: u=10 
#H1: U≠10

upoblacional=11
#muestra de variable aleatoria continua acidéz volátil
muestra=sample(white$alcohol,size = 28,replace = FALSE)
muestra
##  [1] 11.5  9.3 12.4  8.8  9.1  9.2 11.0 12.4 12.5 10.6 12.2 12.2  9.0 10.7 10.7
## [16] 12.6 12.2  9.9  9.3 11.2  9.1 10.8  8.9 11.7 10.8 11.2 11.5  9.8
media=mean(muestra)
media
## [1] 10.73571
#desviacion estandar
s=sd(muestra)
s
## [1] 1.287033
#significancia
significancia=0.05

#limites de la region de rechazo
tizquierda=qt(significancia,n-1,lower.tail = T)
tizquierda
## [1] -1.703288
tderecha=qt(significancia,n-1,lower.tail = F)
tderecha
## [1] 1.703288
#estadístico de prueba
estadisticodepruebat=(media-upoblacional)/(s/sqrt(n))
estadisticodepruebat
## [1] -1.086583
#valor p de una prueba
p=pt(estadisticodepruebat,n-1,lower.tail = T)
p
## [1] 0.1434135
hist(white$alcohol,media=mean(muestra),s=sd(muestra),main="Histograma de Alcohol ",xlab="Alcohol",ylab="Frecuencia")

#Como el estadstico de prueba salio mayor que el limite, donde cae a la derecha de la region critica y la prueba es mayor que la significancia, asi que concluimos que se acepta Ho y la media poblacional es igual a 11.

Primer Modelo de Regresion Lineal

pairs(white)

Al parecer existe una relacion lineal bastante clara entre dioxido de sulfuro libre y dioxido de sulfuro total, pero no entre los otros dos pares de variables.Por otra parte el fichero contiene un dato atípico.

Para cuantificar el grado de relacion lineal, calculamos la matriz de coeficientes de correlacion

#datos<-data.frame(white$free.sulfur.dioxide,white$total.sulfur.dioxide)

cor(white[,c(6,7)])
##                      free.sulfur.dioxide total.sulfur.dioxide
## free.sulfur.dioxide             1.000000             0.615501
## total.sulfur.dioxide            0.615501             1.000000

Cálculo y represetación de la recta de mínimos cuadrados

y ~ x variable respuesta o dependiente (y) es free.sulfur.dioxide

la variable regresora o independiente (x) es total.sulfur.dioxide

regresion<- lm(total.sulfur.dioxide ~ free.sulfur.dioxide,data=white)

summary(regresion)
## 
## Call:
## lm(formula = total.sulfur.dioxide ~ free.sulfur.dioxide, data = white)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -98.163 -24.891  -3.273  21.407 227.844 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         84.05553    1.10304   76.20   <2e-16 ***
## free.sulfur.dioxide  1.53804    0.02815   54.65   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 33.5 on 4896 degrees of freedom
## Multiple R-squared:  0.3788, Adjusted R-squared:  0.3787 
## F-statistic:  2986 on 1 and 4896 DF,  p-value: < 2.2e-16
 plot(white$free.sulfur.dioxide,white$total.sulfur.dioxide,xlab="Dioxido de Sulfuro Libre",ylab="Dioxido de Sulfuro Total")

abline(regresion)

Cálculo de Predicciones

nuevas.sulfurogratis <- data.frame(free.sulfur.dioxide = seq(20, 40))

predict(regresion,nuevas.sulfurogratis)
##        1        2        3        4        5        6        7        8 
## 114.8163 116.3543 117.8923 119.4304 120.9684 122.5064 124.0445 125.5825 
##        9       10       11       12       13       14       15       16 
## 127.1206 128.6586 130.1966 131.7347 133.2727 134.8107 136.3488 137.8868 
##       17       18       19       20       21 
## 139.4248 140.9629 142.5009 144.0390 145.5770

Inferencia en el modelo de regresión simple

Suponemos ahora que los datos proceden de un modelo de regresión simple de la forma: yi=β0+β1xi+ϵi, i=1,…,n.

Los p-valores aparecen en la columna Pr(>|t|). En este caso son muy pequeños por lo que se rechazan ambas hipótesis para los niveles de significación habituales.

El estimador de la desviacion típica de los errores σ aparece como Residual standard error y su valor en el ejemplo es 33.5

confint(regresion,level = 0.95)
##                         2.5 %    97.5 %
## (Intercept)         81.893073 86.217988
## free.sulfur.dioxide  1.482858  1.593216
d<-predict(regresion,nuevas.sulfurogratis,interval  ='confidence')
# Grafico de dispersion y recta

plot(white$free.sulfur.dioxide,white$total.sulfur.dioxide,xlab="Dioxido de Sulfuro Libre",ylab="Dioxido de Sulfuro Total")
abline(regresion)

#Intervalos de confianza de la respuesta media:

lines(nuevas.sulfurogratis$free.sulfur.dioxide, lty = 2)
lines(nuevas.sulfurogratis$free.sulfur.dioxide, lty = 2)

# Intervalos de prediccion

d<- predict(regresion,nuevas.sulfurogratis,interval = 'prediction')
lines(nuevas.sulfurogratis$free.sulfur.dioxide, lty = 2,col='red')
lines(nuevas.sulfurogratis$free.sulfur.dioxide, lty = 2,col='red')

#tabla de análisis de la varianza
anova(regresion)
## Analysis of Variance Table
## 
## Response: total.sulfur.dioxide
##                       Df  Sum Sq Mean Sq F value    Pr(>F)    
## free.sulfur.dioxide    1 3350625 3350625    2986 < 2.2e-16 ***
## Residuals           4896 5493775    1122                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Diagnóstico del modelo

#Los valores ajustados y^i y los residuos ei=y^i−yi se pueden obtener con los comandos fitted y residuals respectivamente.

residuos<- rstandard(regresion)
valores.ajustados<- fitted(regresion)
plot(valores.ajustados,residuos)

No se observa ningún patron especial, por lo tanto la homocedasticidad como la linealidad resultan hipótesis razonables.

la hipótesis de normalidad se suele comprobar mediante un QQ plot de los residuos.

qqnorm(residuos)
qqline(residuos)

Dado que los puntos estan bastantes alineados, donde no se cumple el patron y la normalidad se observa un patron especial, por lo tanto la homocedasticidad como la linealidad resultan hipótesis razonables. Por lo que no se rechaza la hipótesis nula por lo que se concluyen que dicha variable si sigue una distribucion normal.

Segundo Modelo de Regresion Lineal

pairs(white)

Para cuantificar el grado de relacion lineal, calculamos la matriz de coeficientes de correlacion

#datos<-data.frame(white$free.sulfur.dioxide,white$total.sulfur.dioxide)

cor(white[,c(11,12)])
##           alcohol   quality
## alcohol 1.0000000 0.4355747
## quality 0.4355747 1.0000000

Cálculo y represetación de la recta de mínimos cuadrados

variable respuesta o dependiente(y) es calidad variable regresora o independiente (x) es alcohol

y ~ x 
## y ~ x
regresion<- lm(quality ~ alcohol,data=white)

summary(regresion)
## 
## Call:
## lm(formula = quality ~ alcohol, data = white)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5317 -0.5286  0.0012  0.4996  3.1579 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 2.582009   0.098008   26.34   <2e-16 ***
## alcohol     0.313469   0.009258   33.86   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7973 on 4896 degrees of freedom
## Multiple R-squared:  0.1897, Adjusted R-squared:  0.1896 
## F-statistic:  1146 on 1 and 4896 DF,  p-value: < 2.2e-16
 plot(white$alcohol,white$quality,xlab="Alcohol",ylab="Calidad")

abline(regresion)

Cálculo de Predicciones

nuevas <- data.frame(alcohol = seq(20, 40))

predict(regresion,nuevas)
##         1         2         3         4         5         6         7         8 
##  8.851395  9.164865  9.478334  9.791803 10.105273 10.418742 10.732211 11.045681 
##         9        10        11        12        13        14        15        16 
## 11.359150 11.672619 11.986088 12.299558 12.613027 12.926496 13.239966 13.553435 
##        17        18        19        20        21 
## 13.866904 14.180374 14.493843 14.807312 15.120781

Inferencia en el modelo de regresión simple

Suponemos ahora que los datos proceden de un modelo de regresión simple de la forma: yi=β0+β1xi+ϵi, i=1,…,n.

Supuestos: Los datos provienen de una poblacion normal

Los p-valores aparecen en la columna Pr(>|t|). En este caso son muy pequeños por lo que se rechazan ambas hipótesis para los niveles de significación habituales.

El estimador de la desviacion típica de los errores σ aparece como Residual standard error y su valor en el ejemplo es 0.7973

confint(regresion,level = 0.95)
##                2.5 %    97.5 %
## (Intercept) 2.389870 2.7741487
## alcohol     0.295319 0.3316196
d<-predict(regresion,nuevas,interval  ='confidence')
# Grafico de dispersion y recta

plot(white$alcohol,white$quality,xlab="Alcohol",ylab="Calidad")
abline(regresion)

#Intervalos de confianza de la respuesta media:

lines(nuevas$alcohol, lty = 2)
lines(nuevas$alcohol, lty = 2)

# Intervalos de prediccion

d<- predict(regresion,nuevas,interval = 'prediction')
lines(nuevas$alcohol, lty = 2,col='red')
lines(nuevas$alcohol, lty = 2,col='red')

#tabla de análisis de la varianza
anova(regresion)
## Analysis of Variance Table
## 
## Response: quality
##             Df  Sum Sq Mean Sq F value    Pr(>F)    
## alcohol      1  728.73  728.73  1146.4 < 2.2e-16 ***
## Residuals 4896 3112.26    0.64                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Diagnóstico del modelo

#Los valores ajustados y^i y los residuos ei=y^i−yi se pueden obtener con los comandos fitted y residuals respectivamente.

residuos<- rstandard(regresion)
valores.ajustados<- fitted(regresion)
plot(valores.ajustados,residuos)

la hipótesis de normalidad se suele comprobar mediante un QQ plot de los residuos.

qqnorm(residuos)
qqline(residuos)

Dado que los puntos estan bastantes alineados,por lo que no se cumple el supuesto de homocedasticidad de los con lo que la homocedasticidad como la linealidad resultan hipótesis razonables. Asi que por lo que no se rechaza la hipótesis nula por lo que se concluyen que dicha variable si sigue una distribucion normal.