Ley de Moore

Imágen 1. Fuente: ¿Qué es la Ley de Moore? de Seofilo (2015)

Regresión lineal en la Ley de Moore en microprocesadores gama premium

La Ley de Moore dice que cada 24 meses el número de transistores por unidad de superficie en circuitos integrados se duplicaba, para este análisis se agruparon datos de los que tenían los máximos números de transistores en menor espacio de todos los dispositivos de marcas comerciales año a año, tomado de distintas fuentes, desde que Intel sacó el primer microprocesador.

Importar

Importar paquetes

library(pacman)
p_load("readr", "tidyverse", "DT")

Datos

moore <- read.csv("u1a9.csv")
names(moore)
## [1] "Anio"         "Transistores" "Tamanio"
  • Gráfico de correlación, gráfico de pares
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)

Modelar

Grado de correlación lineal

  • Matriz de coeficientes de correlación:
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

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

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
  • Entonces, la recta de mínimos cuadrrados, sería la siguiente para Transistores/Tamaño:

\[ 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

Regresión simple de la normal

\[ 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

  • La tabla de análisis de varianza se obtiene con el comando 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

Redacción Personal

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.

Referencias Bibliográficas