Imágen 1. Fuente: ¿Qué es la Ley de Moore? de Seofilo (2015)
library(pacman)
p_load("readr", "tidyverse", "DT")
moore <- read.csv("u1a9.csv")
names(moore)
## [1] "Anio" "Transistores" "Tamanio"
head(moore)
## Anio Transistores Tamanio
## 1 1974 4500 1500
## 2 1976 6500 1500
## 3 1978 29000 1500
## 4 1979 29000 1500
## 5 1982 134000 1500
## 6 1985 275000 1400
pairs(moore)
Anio <- as.vector(moore$Anio)
Anio <- as.numeric(moore$Anio)
Transistores <- as.vector(moore$Transistores)
Transistores <- as.numeric(moore$Transistores)
Tamanio <- as.vector(moore$Tamanio)
Tamanio <- as.numeric(moore$Tamanio)
moore1 <- data.frame(Anio, Transistores, Tamanio)
cor(moore)
## Anio Transistores Tamanio
## Anio 1.0000000 0.6875046 -0.9504936
## Transistores 0.6875046 1.0000000 -0.4967278
## Tamanio -0.9504936 -0.4967278 1.0000000
regr <- lm(Tamanio ~ Transistores, data=moore1)
regr1 <- lm(Transistores ~ Anio, data=moore1)
summary (regr)
##
## Call:
## lm(formula = Tamanio ~ Transistores, data = moore1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -565.3 -338.1 -285.7 270.4 842.9
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.572e+02 1.070e+02 6.141 1.25e-06 ***
## Transistores -9.245e-08 3.053e-08 -3.028 0.00523 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 504.4 on 28 degrees of freedom
## Multiple R-squared: 0.2467, Adjusted R-squared: 0.2198
## F-statistic: 9.172 on 1 and 28 DF, p-value: 0.005235
summary (regr1)
##
## Call:
## lm(formula = Transistores ~ Anio, data = moore1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.543e+09 -1.760e+09 -8.550e+08 1.505e+09 5.293e+09
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.170e+11 6.363e+10 -4.982 2.92e-05 ***
## Anio 1.594e+08 3.182e+07 5.010 2.70e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.268e+09 on 28 degrees of freedom
## Multiple R-squared: 0.4727, Adjusted R-squared: 0.4538
## F-statistic: 25.1 on 1 and 28 DF, p-value: 2.701e-05
\[ y = 6.572^2 + (-9.245*10e-8) x \] * Entonces, la recta de mínimos cuadrrados, sería la siguiente para Transistores/Año:
\[ y = -3.170^11 + 1.594^8 x \] ### Representación gráfica de las rectas
plot(moore1$Tamanio, moore$Transistores, xlab = "Tamaño de arquitectura en nm", ylab = "Transistores")
abline(regr)
plot(moore1$Anio, moore$Transistores, xlab = "Año", ylab = "Transistores")
abline(regr1)
### Modelación de valores
nuevos.anios <- data.frame(Anio = seq (2010, 2018))
predict(regr, nuevos.anios)
## Warning: 'newdata' had 9 rows but variables found have 30 rows
## 1 2 3 4 5 6
## 657.1590187 657.1588338 657.1567537 657.1567537 657.1470462 657.1340104
## 7 8 9 10 11 12
## 657.1363217 657.0503196 656.8728333 656.6509484 656.4660442 656.4660442
## 13 14 15 16 17 18
## 654.6262480 653.2764477 652.9990915 652.0745708 619.2540849 646.8048026
## 19 20 21 22 23 24
## 630.2558816 619.1616328 481.5004964 444.5196673 416.7840454 370.5580090
## 25 26 27 28 29 30
## 485.1985793 143.1259099 0.7497177 -82.4571478 -239.6256716 -267.3612935
\[ y_i = \beta_0 + \beta_1 x_i + \epsilon_i, \ \ \ \ i=1,\ldots,n, \] en donde: Los errores aleatorios \(\epsilon_i\) son independientes con distribución normal de media 0 y varianza \(\sigma^2\)
Bajo este modelo
Los errores típicos de los estimadores de los parámetros \(\beta_0\) y \(\beta_1\) se encuentran en la columna std Error de la salida anterior. Los valores son: 29.6376 y 0.7243 respectivamente.
Los intervalos de confianza de los parámetros se obtienen con el comando confint. El parámetro level permite elegir el nivel de confianza (por lo regular es 0.95).
confint(regr)
## 2.5 % 97.5 %
## (Intercept) 4.379715e+02 8.763473e+02
## Transistores -1.549849e-07 -2.991921e-08
confint(regr1)
## 2.5 % 97.5 %
## (Intercept) -447322042936 -186637627310
## Anio 94228213 224589389
confint(regr, level = 0.90)
## 5 % 95 %
## (Intercept) 4.751315e+02 8.391874e+02
## Transistores -1.443834e-07 -4.052070e-08
confint(regr1, level = 0.90)
## 5 % 95 %
## (Intercept) -425224508375 -208735161871
## Anio 105278588 213539014
¿Qué tan confiable es este modelo? Comparación de datos reales vs datos parecidos.
Los intervalos de confianza para la respuesta media y los intervalos de confianza para la respuesta se pueden obtener con el comando predict. Por ejemplo el código que vamos a poner a continuación estima y calcula o representa los dos tipos de intervalos (para el rango de edades de 20 a 60 años), los de predicción en rojo.
nuevos.anios <- data.frame (Anio = seq(1989, 2018)) #Maestro como nota le dejo que no pude hacer un intervalo más pequeño pues me marca un error de longitudes diferentes entre X y Y, supe donde se originó el error, pero no pude corregirlo. Por lo que no pude profundizar más en el análisis con datos, pues la regresión es practicamente igual.
#Gráfico de dispersión y recta
plot(moore1$Anio, moore1$Transistores,xlab = "Año", ylab = "Transistores")
abline(regr)
#Intervalos de confianza de la respuesta media
#IC es una matriz con tres columnas:
#la primera es la predicción, y las otras son los extremos del intervalo.
ic <- predict(regr, nuevos.anios, interval = "confidence")
lines(nuevos.anios$Anio, ic[, 2], lty= 2)
lines(nuevos.anios$Anio, ic[, 3], lty= 2)
#Intervalos de predicción
ic <- predict(regr, nuevos.anios, interval = "prediction")
lines(nuevos.anios$Anio, ic[, 2], lty= 2, col = "red")
lines(nuevos.anios$Anio, ic[, 3], lty= 2, col = "red")
## ANOVA
anova(regr)
## Analysis of Variance Table
##
## Response: Tamanio
## Df Sum Sq Mean Sq F value Pr(>F)
## Transistores 1 2333761 2333761 9.1717 0.005235 **
## Residuals 28 7124677 254453
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(regr1)
## Analysis of Variance Table
##
## Response: Transistores
## Df Sum Sq Mean Sq F value Pr(>F)
## Anio 1 1.2905e+20 1.2905e+20 25.097 2.701e-05 ***
## Residuals 28 1.4398e+20 5.1423e+18
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Lo que Moore dijo que sucedería se cumple si tomamos de muestra todos los nuevos microprocesadores de equipos comerciales con estándares que van aplicados al público en general, sin embargo esto deja de suceder si lo aplicamos solamente con lo mejor de lo mejor que sale año con año (la muestra de este análisis), los cuales no necesariamente cumplen con estándares de nivel comercial al público en general, sino que son hechos para dispositivos de alto rendimiento que requieren operaciones más complejas.
Lo curioso de esta Ley es que hay intervención de más variables que las que se muestran en este análisis, los fabricantes e ingenieros han hecho estratégias para que esta ley se siga cumpliendo a propósito para que el consumo sea regular, se generen más ingresos y cada año que pasa se gasta menos en costos de producción.
Todo esto anterior se resume en que con cada año que pasa más transistores trabajan más rápido en un menor espacio por un costo más barato de producción con lo cuál a las empresas les conviene seguir desarrollando estas tecnologías bajo la Ley de Moore, que poco a poco se acerca a que deje de funcionar como una ley.
En datos estadísticos se puede ver con la imágen 1 de la regresión lineal de la Ley de Moore en todos los dispositivos que tiene un margen de error, que numéricamente es ciertamente confiable, lo cual no sucede con los datos del análisis realizado en esta actividad, los cuales arrojan datos demasiado dispersos a lo que su regresión lineal indican y a lo que la Ley de Moore afirma, con lo cual se puede decir que los microprocesadores de gama alta quedan completamente fuera de esta Ley y ya no deberían de considerarse para muestras estadísticas de esta ley.
Por problemas con los datos no se puede profundizar en en análisis basado en datos de confiabilidad, pero sí basado en lo que muestran las anteriores gráficas, pues me dicen que en un intervalo menor de tiempo después del 2008 hay datos más homogéneos que en los datos antes a este año.