library(pacman)
p_load("readr","DT","prettydoc","fdth","modeest")
datosob <- read_csv("datosob.csv")
## Parsed with column specification:
## cols(
##   mes = col_character(),
##   temp = col_double(),
##   prec = col_double()
## )
datatable(datosob)

Primer repaso de la unidad 1 de la materia de estadĆ­stica aplicada

Definición de estadística

es la rama de las matemÔticas que estudia la variabilidad, así como el proceso aleatorio que la genera siguiendo las leyes de la probabilidad.2. Como parte de la matemÔtica, la estadística es una ciencia formal deductiva, con un conocimiento propio, dinÔmico y en continuo desarrollo obtenido a través del método científico formal. En ocasiones, las ciencias fÔcticas necesitan utilizar técnicas estadísticas durante su proceso de investigación factual, con el fin de obtener nuevos conocimientos basados en la experimentación y en la observación. En estos casos, la aplicación de la estadística permite el anÔlisis de datos provenientes de una muestra representativa, que busca explicar las correlaciones y dependencias de un fenómeno físico o natural, de ocurrencia en forma aleatoria o condicional.

La estadƭstica se divide en dos grandes Ɣreas:

  • EstadĆ­stica descriptiva: Se dedica a la descripción, visualización y resumen de datos originados a partir de los fenómenos de estudio. Los datos pueden ser resumidos numĆ©rica o grĆ”ficamente. Su objetivo es organizar y describir las caracterĆ­sticas sobre un conjunto de datos con el propósito de facilitar su aplicación, generalmente con el apoyo de grĆ”ficas, tablas o medidas numĆ©ricas. Ejemplos bĆ”sicos de parĆ”metros estadĆ­sticos son: la media y la desviación estĆ”ndar. Ejemplos grĆ”ficos son: histograma, pirĆ”mide poblacional, grĆ”fico circular, entre otros.

  • EstadĆ­stica inferencial: Se dedica a la generación de los modelos, inferencias y predicciones asociadas a los fenómenos en cuestión teniendo en cuenta la aleatoriedad de las observaciones. Se usa para modelar patrones en los datos y extraer inferencias acerca de la población bajo estudio. Estas inferencias pueden tomar la forma de respuestas a preguntas sĆ­/no (prueba de hipótesis), estimaciones de unas caracterĆ­sticas numĆ©ricas (estimación), pronósticos de futuras observaciones, descripciones de asociación (correlación) o modelamiento de relaciones entre variables (anĆ”lisis de regresión). Otras tĆ©cnicas de modelamiento incluyen anĆ”lisis de varianza, series de tiempo y minerĆ­a de datos. Su objetivo es obtener conclusiones Ćŗtiles para lograr hacer deducciones acerca de la totalidad de todas las observaciones hechas, basĆ”ndose en la información numĆ©rica.

Distribuciones de frecuencia

Tabla de distribución de frecuencia

dist <- fdt(datosob, breaks="Sturges")
dist
## temp 
##     Class limits f   rf rf(%) cf  cf(%)
##  [17.226,20.225) 3 0.25 25.00  3  25.00
##  [20.225,23.223) 2 0.17 16.67  5  41.67
##  [23.223,26.222) 1 0.08  8.33  6  50.00
##   [26.222,29.22) 2 0.17 16.67  8  66.67
##   [29.22,32.219) 4 0.33 33.33 12 100.00
## 
## prec 
##     Class limits f   rf rf(%) cf cf(%)
##   [0.396,19.365) 6 0.50    50  6    50
##  [19.365,38.335) 3 0.25    25  9    75
##  [38.335,57.304) 0 0.00     0  9    75
##  [57.304,76.274) 0 0.00     0  9    75
##  [76.274,95.243) 3 0.25    25 12   100
#nos brinda una tabla con los calculos de la distribución de frecuencias.
#Donde
#f= frecuencia absoluta
#rf= frecuencia relativa
#rf(%) frecuencia relativa porcentual
#cf= frecuencia acumulada
#cf(%)=frecuencia acumulada porcentual

Histograma de distribución de frecuencia

plot(dist, type="fh") # histograma de frecuencia absoluta

plot(dist, type="cfh") # histograma de frecuencia acumulada

plot(dist, type="rfh") # histograma de frecuencia relativa

Polígono de distribución de frecuencia

plot(dist, type="fp") # Poligono de frecuencia absoluta

plot(dist, type="cfp") # Poligono de frecuencia acumulada

plot(dist, type="rfp") # Poligono de frecuencia relativa

Medidas de tendencia central

Media

mean(datosob$temp)
## [1] 24.94167
mean(datosob$prec)
## [1] 31.40833

Mediana

median(datosob$temp)
## [1] 25.2
median(datosob$prec)
## [1] 17.5

Moda

mfv(datosob$temp, method="discrete")
##  [1] 17.4 17.9 18.6 20.3 22.1 23.5 26.9 27.5 30.6 31.0 31.6 31.9
mfv(datosob$prec, method="discrete")
##  [1]  0.4  2.2  4.6  6.4 11.4 14.2 20.8 25.0 28.7 83.6 85.3 94.3

Ordenar datos de menor a mayor

sort(datosob$temp)
##  [1] 17.4 17.9 18.6 20.3 22.1 23.5 26.9 27.5 30.6 31.0 31.6 31.9
sort(datosob$prec)
##  [1]  0.4  2.2  4.6  6.4 11.4 14.2 20.8 25.0 28.7 83.6 85.3 94.3

Cuantiles

summary(datosob$temp)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   17.40   19.88   25.20   24.94   30.70   31.90
summary(datosob$prec)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.40    5.95   17.50   31.41   42.42   94.30

Valores maximos y minimos

TempMax <- max(datosob$temp)
TempMin <- min(datosob$temp)

Grafico (diagrama) de caja y bigote

boxplot(datosob$temp)

boxplot(datosob$prec)

Medidas de dispersión

Amplitud (rango, alcance)

amp <- (TempMax - TempMin)

Varianza

var(datosob$temp)
## [1] 31.83902
var(datosob$prec)
## [1] 1236.344

Desviacion estandar

sd(datosob$temp)
## [1] 5.642607
sd(datosob$prec)
## [1] 35.16169

Analisis de correlacion

Correlacion pearson

temp <- datosob$temp
prec <- datosob$prec
clima <- data.frame(temp,prec)
cor(clima)
##          temp     prec
## temp 1.000000 0.626233
## prec 0.626233 1.000000

Diagramas de dispersion

pairs(clima)

Regresion lineal simple

regresion <- lm (prec ~ temp, data=clima )
summary(regresion)
## 
## Call:
## lm(formula = prec ~ temp, data = clima)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -47.09 -15.41  -0.69  22.06  36.91 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  -65.923     39.207  -1.681   0.1236  
## temp           3.902      1.536   2.540   0.0294 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.75 on 10 degrees of freedom
## Multiple R-squared:  0.3922, Adjusted R-squared:  0.3314 
## F-statistic: 6.452 on 1 and 10 DF,  p-value: 0.02936

Recta de minimos cuadrados

Ecuacion de la recta

\[ y= -65.923 + 3.902 x\]

Ajuste de la recta

plot(clima$temp, clima$prec, xlab = "Temperatura", ylab = "Precipitacion")
abline(regresion)

Prediccion

sort(prec)
##  [1]  0.4  2.2  4.6  6.4 11.4 14.2 20.8 25.0 28.7 83.6 85.3 94.3
nuevas.prec <- data.frame(prec=seq(0,100))
nuevas.temp <- data.frame(temp=seq(0,100))
predict(regresion,nuevas.temp)
##           1           2           3           4           5           6 
## -65.9227116 -62.0203643 -58.1180170 -54.2156697 -50.3133225 -46.4109752 
##           7           8           9          10          11          12 
## -42.5086279 -38.6062806 -34.7039334 -30.8015861 -26.8992388 -22.9968916 
##          13          14          15          16          17          18 
## -19.0945443 -15.1921970 -11.2898497  -7.3875025  -3.4851552   0.4171921 
##          19          20          21          22          23          24 
##   4.3195393   8.2218866  12.1242339  16.0265812  19.9289284  23.8312757 
##          25          26          27          28          29          30 
##  27.7336230  31.6359703  35.5383175  39.4406648  43.3430121  47.2453593 
##          31          32          33          34          35          36 
##  51.1477066  55.0500539  58.9524012  62.8547484  66.7570957  70.6594430 
##          37          38          39          40          41          42 
##  74.5617903  78.4641375  82.3664848  86.2688321  90.1711793  94.0735266 
##          43          44          45          46          47          48 
##  97.9758739 101.8782212 105.7805684 109.6829157 113.5852630 117.4876103 
##          49          50          51          52          53          54 
## 121.3899575 125.2923048 129.1946521 133.0969993 136.9993466 140.9016939 
##          55          56          57          58          59          60 
## 144.8040412 148.7063884 152.6087357 156.5110830 160.4134303 164.3157775 
##          61          62          63          64          65          66 
## 168.2181248 172.1204721 176.0228193 179.9251666 183.8275139 187.7298612 
##          67          68          69          70          71          72 
## 191.6322084 195.5345557 199.4369030 203.3392503 207.2415975 211.1439448 
##          73          74          75          76          77          78 
## 215.0462921 218.9486393 222.8509866 226.7533339 230.6556812 234.5580284 
##          79          80          81          82          83          84 
## 238.4603757 242.3627230 246.2650703 250.1674175 254.0697648 257.9721121 
##          85          86          87          88          89          90 
## 261.8744593 265.7768066 269.6791539 273.5815012 277.4838484 281.3861957 
##          91          92          93          94          95          96 
## 285.2885430 289.1908903 293.0932375 296.9955848 300.8979321 304.8002793 
##          97          98          99         100         101 
## 308.7026266 312.6049739 316.5073212 320.4096684 324.3120157

Intervalos de confianza

confint(regresion)
##                    2.5 %    97.5 %
## (Intercept) -153.2812572 21.435834
## temp           0.4792123  7.325482
nuevas.temp <- data.frame(temp=seq(17,32))
#Recta ajustada al grafico de dispersion
plot(clima$temp, clima$prec, xlab = "Temperatura", ylab = "Precipitacion")
abline(regresion)

#intervalos de confianza para la respuesta media
# ic es una matriz con tres columnas: laprimera es la prediccion, las otras dos son los extremos del intervalo

ic <- predict(regresion, nuevas.temp, interval = 'confidence')
lines(nuevas.temp$temp, ic[, 2], lty = 2)
lines(nuevas.temp$temp, ic[, 3], lty = 2)

# Intervalo de prediccion
ic <- predict(regresion, nuevas.temp, interval = 'prediction')
lines(nuevas.temp$temp, ic[, 2], lty = 2, col = "red")
lines(nuevas.temp$temp, ic[, 3], lty = 2, col = "red")

##" Analisis ANOVA (Analisis de varianza)

anova(regresion)
## Analysis of Variance Table
## 
## Response: prec
##           Df Sum Sq Mean Sq F value  Pr(>F)  
## temp       1 5333.4  5333.4  6.4519 0.02936 *
## Residuals 10 8266.4   826.6                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Diagnostico del modelo

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

##Pruebas de normalidad

No se observa ningun patron especial, por lo que tanto la homocedasticidad como la linealidad resultan hipotesis razonables.

La hipotesis de normalidad se suele comprobar mediante un QQ plot de los residuos. El siguiente codigo sirve para obtenerlo:

qqnorm(residuos)
qqline(residuos)

Shapiro-wilk

shapiro.test(residuos)
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos
## W = 0.95053, p-value = 0.6448