Repaso primer parcial probabilidad y estadística
setwd("~/Pye 1pm")library(pacman)
p_load("DT", "prettydoc", "xfun")#Lo que hacemos cuando escribimos “library”es abrir el “libro” que acabamos de comprar.
library(fdth)##
## Attaching package: 'fdth'
## The following objects are masked from 'package:stats':
##
## sd, var
library(modeest)##
## Attaching package: 'modeest'
## The following object is masked from 'package:fdth':
##
## mfv
#Este cojunto de datos proporciona la estatura y el peso promedio de las mujeres estadunidenses de 30 a 39 años.
#Se realizara un analisis de frecuencia, tablas, histogramas y poligonos. Con datos relacionados a las mujeres estadunidenses.
Mujeres <- women#Datos de la altura promedio de las mujeres estadunidenses
Mujer <- c(58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,70, 71, 72)Tabla de frecuencias
Que te dice con que frecuencia de los datos se repiten dentro de un intervalo.
tabla <- fdt(Mujer, breaks = "Sturges")
tabla## Class limits f rf rf(%) cf cf(%)
## [57.42,60.48) 3 0.2 20 3 20
## [60.48,63.54) 3 0.2 20 6 40
## [63.54,66.6) 3 0.2 20 9 60
## [66.6,69.66) 3 0.2 20 12 80
## [69.66,72.72) 3 0.2 20 15 100
#Donde f= frecuencia absoluta rf= frecuencia relativa rf(%) frecuencia relativa porcentual cf= frecuencia acumulada cf(%)=frecuencia acumulada porcentual
Se ordenan los datos de menor a mayor
sort(Mujer)## [1] 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
Histograma de frecuencia absoluta
Donde se usa para representar las frecuencias absoluta de los valores dados.
plot(tabla, type="fh") ## Histograma de frecuencia acumulada Donde se usa para representar las frecuencias acumulada de los valores dados.
plot(tabla, type="cfh") ## Histograma de frecuencia relativa Donde se usa para representar las frecuencias relatia de los valores dados.
plot(tabla, type="rfh") ## Poligonos de frecuencia Donde los polignos de frecuencia marcan exactamente el medio de las barras de los histogramas de frecuencia, marcandolos con un poligono, normalmente señalados con un circulo.
Poligono de frecuencia absoluta
plot(tabla, type="fp") ## Poligono de frecuencia acumulada
plot(tabla, type="cfp") ## Poligono de frecuencia relativa
plot(tabla, type="rfp") ## Tabla interactiva
datatable(Mujeres)Medidas de tendencia central
Media
Donde la media es la sumatoria de todos nuestros datos dividiendolos entre el numero de datos que tenemos. Donde en nuestro caso es 65.
mean(Mujer)## [1] 65
Mediana
La mediana es el numero que se encuentra exactamente en el medio de todos nuestros datos.
median(Mujer)## [1] 65
Moda
La moda es el dato que más se repite.
mlv(Mujer, method="mfv")## [1] 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
Cuartiles
En los cuartiles se puede mostrar el valor mínimo, primer cuartil, mediana, media, tercer cuartil, valor máximo de nuestros datos de altura de las mujeres.
summary(Mujer)## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 58.0 61.5 65.0 65.0 68.5 72.0
Gráfico de caja y bigote
Manera de representar los cuartiles de manera más visual en una gráfica.
boxplot(Mujer) ## Medidas de dispersión
Varianza
La varianza es lo que varia de nuestros datos respecto a la media.
var(Mujer)## [1] 20
Desviación estándar
La raíz cuadrada de la varianza es la desviación estándar. La desviación estándar es la cantidad que se desvia de nuestro limite de desviación.
sd(Mujer)## [1] 4.472136
Gráfico de dispersión lineal
plot(Mujeres) ## Regresión lineal #Tenemos 2 variables el peso y la altura de las mujeres estadunidenses. Todo esto para poder conocer que tan asociados estan nuestros datos representandola en una matriz de diagramas de dispersión, que significa que ordenamos en filas y columnas.Donde el fichero contiene un dato atípico.
pairs(Mujeres) ## Cálculo y representación de la recta de mínimos cuadrados
El comando básico es lm (linear models).
El primer argumento de este comando es una fórmula y ~ x donde se puede observar cuál es la variable respuesta o dependiente (y) y cuál es la variable regresora o independiente (x).
El segundo argumento, llamado data especifica cuál es el fichero en el que se encuentran las variables. El resultado lo guardamos en un objeto llamado regresion. Este objeto es una lista que contiene toda la información relevante sobre el análisis. Mediante el comando summary obtenemos un resumen de los principales resultados:
regresion <- lm(height ~ weight, data = Mujeres)
summary(regresion)##
## Call:
## lm(formula = height ~ weight, data = Mujeres)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.83233 -0.26249 0.08314 0.34353 0.49790
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 25.723456 1.043746 24.64 2.68e-12 ***
## weight 0.287249 0.007588 37.85 1.09e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.44 on 13 degrees of freedom
## Multiple R-squared: 0.991, Adjusted R-squared: 0.9903
## F-statistic: 1433 on 1 and 13 DF, p-value: 1.091e-14
##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,
Tenemos a beta_0 y beta_1 que con ellos construimos la ecuación de la recta d elos minimos cuadrados
La columna t value contiene el estadístico t, es decir, cociente entre cada estimador y su error típico. Estos cocientes son la base para llevar a cabo los contrastes H0:β0=0 y H0:β1=0 . Los correspondientes 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.
confint(regresion)## 2.5 % 97.5 %
## (Intercept) 23.4685789 27.9783326
## weight 0.2708562 0.3036423
confint(regresion, level=0.90)## 5 % 95 %
## (Intercept) 23.8750505 27.5718609
## weight 0.2738112 0.3006872
##Indice de correlación El indice de correlación nos dice que tan corelaccionado esta una variable como la y con una variable causal como la x
cor(Mujeres)## height weight
## height 1.0000000 0.9954948
## weight 0.9954948 1.0000000
#Por lo tanto, en este ejemplo la ecuación de la recta de mínimos cuadrados es: Los parámetros de la ecuación de la recta de mínimos cuadrados que relaciona la cantidad de grasas en la sangre en función del peso vienen dados por la columna ´Estimate´ de la tabla ´Coefficients´ de la salida anterior.
Por lo tanto, en este ejemplo la ecuación de la recta de mínimos cuadrados es:
y=25.723456 + 0.287249x ## Aquí se eligio una persona de 32 años de edad
y=25.723456 + 0.287249*(32)
y## [1] 34.91542
##Gráfica
plot(Mujeres$weight, Mujeres$Mujeres, xlab="Edad de las mujeres", ylab="Peso promedio de las mujeres")
abline(regresion)##Estimación de predicciones Supongamos que queremos utilizar la recta de mínimos cuadrados para predecir el peso de las mujeres americanas de edades 31,31,32,…,39 . Basta crear un fichero de datos que contenga las nuevas variables regresoras y usar el comando predict:
nuevos.weigths <- data.frame(weight = seq(20,60))
predict(regresion, nuevos.weigths)## 1 2 3 4 5 6 7 8
## 31.46844 31.75569 32.04294 32.33019 32.61744 32.90469 33.19194 33.47918
## 9 10 11 12 13 14 15 16
## 33.76643 34.05368 34.34093 34.62818 34.91543 35.20268 35.48993 35.77718
## 17 18 19 20 21 22 23 24
## 36.06443 36.35168 36.63893 36.92618 37.21342 37.50067 37.78792 38.07517
## 25 26 27 28 29 30 31 32
## 38.36242 38.64967 38.93692 39.22417 39.51142 39.79867 40.08592 40.37317
## 33 34 35 36 37 38 39 40
## 40.66042 40.94766 41.23491 41.52216 41.80941 42.09666 42.38391 42.67116
## 41
## 42.95841
nuevos.weights <- data.frame(weight = seq(20,50))
nuevos.weights## weight
## 1 20
## 2 21
## 3 22
## 4 23
## 5 24
## 6 25
## 7 26
## 8 27
## 9 28
## 10 29
## 11 30
## 12 31
## 13 32
## 14 33
## 15 34
## 16 35
## 17 36
## 18 37
## 19 38
## 20 39
## 21 40
## 22 41
## 23 42
## 24 43
## 25 44
## 26 45
## 27 46
## 28 47
## 29 48
## 30 49
## 31 50
#Gráfico de dispersión y recta
plot(Mujeres$weight, Mujeres$Mujeres, xlab="Peso de las personas", ylab="Edad de las mujeres")
abline(regresion)
# Intervalos de confianza de la respuesta media:
# ic es una matriz con tres columnas: la primera es la prediccion, las otras dos son los extremos del intervalo
ic <- predict(regresion, nuevos.weights, interval = "confidence")
lines(nuevos.weights$weight, ic[,2], lty=2)
lines(nuevos.weights$weight, ic[,3], lty=2)