En un artículo de AT&T technical journal (vol.65,pp.39-50) se describe la aplicación de diseños factoriales de dos niveles en la fabricación de circuitos integrados. Un paso básico del procesamiento es hacer crecer una capa epitaxial sobre obleas de silicio pulidas. Las obleas se montan en un suseptor, se colocan en el interior de una campana de cristal y se introducen vapores químicos. El suseptor se hace girar y se aplica calor hasta que la capa epitaxial tiene el espesor suficiente. Se corrió un experimento utilizando dos factores rapidez de flujo de arsénico (A) y tiempo de deposición (B).Se corrieron cuatro réplicas y se midió el espesor de la capa epitaxial (en um). Los datos se muestran a continuación:(Montgomery, 2004)
| Replica | Niveles de factores | |||||||
|---|---|---|---|---|---|---|---|---|
| A | B | I | II | III | IV | Bajo(-) | Alto(+) | |
| - | - | 14.037 | 16.165 | 13.972 | 13.907 | A | 55% | 59% |
| + | - | 13.880 | 13.860 | 14.032 | 13.914 | |||
| - | + | 14.821 | 14.757 | 14.843 | 14.878 | B | Corto | Largo |
| + | + | 14.888 | 14.921 | 14.415 | 14.932 | 10 min | 15 min |
Primero que nada, se debe extraer de un archivo los datos necesarios para resolver este inciso y los demas, para ello se importan del lugar en el cual se tengan guardados y posterior a ello se procede a resolverlos:
El inciso A se resuelve de la siguiente manera:
library(printr)
## Registered S3 method overwritten by 'printr':
## method from
## knit_print.data.frame rmarkdown
datos=read.table("dataset.txt",header = TRUE)
str(datos)
## 'data.frame': 16 obs. of 3 variables:
## $ Capa : num 14 13.9 14.8 14.9 16.6 ...
## $ Arsenico: int -1 1 -1 1 -1 1 -1 1 -1 1 ...
## $ Tiempo : int -1 -1 1 1 -1 -1 1 1 -1 -1 ...
attach(datos)
A continuación se muestra la tabla, la cual se interpretará como un conjunto de variables:
head(datos, n= 16L)
| Capa | Arsenico | Tiempo |
|---|---|---|
| 14.037 | -1 | -1 |
| 13.880 | 1 | -1 |
| 14.821 | -1 | 1 |
| 14.888 | 1 | 1 |
| 16.615 | -1 | -1 |
| 13.860 | 1 | -1 |
| 14.757 | -1 | 1 |
| 14.921 | 1 | 1 |
| 13.972 | -1 | -1 |
| 14.032 | 1 | -1 |
| 14.843 | -1 | 1 |
| 14.415 | 1 | 1 |
| 13.907 | -1 | -1 |
| 13.914 | 1 | -1 |
| 14.878 | -1 | 1 |
| 14.932 | 1 | 1 |
A continuación se determinaran los siguientes efectos:
modelo=lm(Capa~(Arsenico+Tiempo+Arsenico*Tiempo))
summary(modelo)
##
## Call:
## lm(formula = Capa ~ (Arsenico + Tiempo + Arsenico * Tiempo))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.72575 -0.14431 -0.00563 0.10188 1.98225
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 14.5420 0.1686 86.229 <2e-16 ***
## Arsenico -0.1868 0.1686 -1.107 0.290
## Tiempo 0.2649 0.1686 1.571 0.142
## Arsenico:Tiempo 0.1689 0.1686 1.001 0.336
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6746 on 12 degrees of freedom
## Multiple R-squared: 0.2813, Adjusted R-squared: 0.1016
## F-statistic: 1.565 on 3 and 12 DF, p-value: 0.249
library(FrF2)
experimento=FrF2(nruns = 4, nfactors = 2, factor.names = list(Arsenico=c(-1,1),Tiempo=c(-1,1)),replications = 4,randomize = FALSE)
experimento_respuesta=add.response(design=experimento,response = Capa)
grafica_efectos_principales=MEPlot(experimento_respuesta, main= "Gráfica de Efectos Individuales")
grafica_interacciones=IAPlot(experimento_respuesta, main= "Gráfica de Interacciones")
head(grafica_efectos_principales)
| Arsenico | Tiempo | |
|---|---|---|
| - | 14.72875 | 14.27712 |
| + | 14.35525 | 14.80687 |
head(grafica_interacciones)
| Arsenico:Tiempo | |
|---|---|
| -:- | 14.63275 |
| +:- | 13.92150 |
| -:+ | 14.82475 |
| +:+ | 14.78900 |
Una vez observadas las graficas anteriores de interacciones entre los factores, se procede a lo siguiente:
Se debe verificar la significancia de os factores individuales y de las interacciones, esto mediante un analisis de varianza ANOVA con los siguientes codigos:
anova=aov(modelo)
summary(anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## Arsenico 1 0.558 0.5580 1.226 0.290
## Tiempo 1 1.123 1.1225 2.467 0.142
## Arsenico:Tiempo 1 0.456 0.4563 1.003 0.336
## Residuals 12 5.461 0.4551
En vista de lo anterior, se puede decir que el Valor P del efecto producido por el flujo de arsénico no es significativo, entonces se de acepta la hipótesis nula y se concluye que no existen diferencias significativas entre los grosores promedio producido por los niveles del factor de tratamiento considerados para el flujo de arsénico.
En el caso del factor tiempo de exposición, se acepta la hipótesis nula para los niveles del factor y se concluye que no existen diferencias significativas entre los niveles probados para este factor.
Ahora en el caso de las interacciones, se concluye que no existen diferencias significativas entre las diferentes interacciones generadas.
Ahora se verificaran las pruebas de adecuación del modelo, en donde se efectuan las 2 pruebas que se muestran a continuacion:
A continuacion se utilizara la prueba de bondad y ajuste a la distribucion normal de shapiro-wilks en el caso de la normalidad.
En esta prueba primero se plantean 2 hipotesis:
\[H_0:x∈N(μ=0,σ^2=Constante)\]
\[H_1:x∉N(μ=0,σ^2=Constante)\]
Y se utilizara ademas los siguientes comandos:
normalidad=shapiro.test(resid(modelo))
print(normalidad)
##
## Shapiro-Wilk normality test
##
## data: resid(modelo)
## W = 0.69647, p-value = 0.0001543
#Gráfica de Probabiliad Normal
qqnorm(resid(modelo), main= "Gráfica de Probabilidad para los Residuales del Modelo", xlab="Cuantiles Teoricos", ylab = "Cuantiles de muestra")
qqline(resid(modelo))
Visto lo anterior se aprecia la falta de normalidad en los residuos, y como conclusion se puede decir que existen datos atípicos para el modelo propuesto, estos provocan que el modelo no sea el correcto para explicar el grosor de la capa epitaxial en función del flujo de arsénico y el tiempo de exposición al baño químico al que se somenten las obleas de silicio pulido.
En la Prueba de Homocedasticidad, o de Varianzas Iguales, se realiza mediante la Prueba de Bartlett, esta Prueba tiene las siguientes hipótesis:
\[H0:σ^2_i=σ^2_j=Constante\]
\[H1:σ^2_i≠σ^2_j≠Constante\]
Y se realiza con la siguiente línea de comandos, una por cada factor:
homocedasticidad_flujo=bartlett.test(Capa~Arsenico, data=datos)
print(homocedasticidad_flujo)
##
## Bartlett test of homogeneity of variances
##
## data: Capa by Arsenico
## Bartlett's K-squared = 2.0048, df = 1, p-value = 0.1568
homocedasticidad_tiempo=bartlett.test(Capa~Tiempo, data=datos)
print(homocedasticidad_tiempo)
##
## Bartlett test of homogeneity of variances
##
## data: Capa by Tiempo
## Bartlett's K-squared = 13.934, df = 1, p-value = 0.0001893
Para aceptar la igualdad de varianzas, los residuales deben ser homocedásticos para todos los factores, en el caso de el factor Tiempo de exposición, se rechaza la hipótesis de igualdad de varianzas.Por lo anterior, se concluye que el modelo no es adecuado para explicar los cambios en el grosor de la capa epitaxial en función del flujo de arsénico y el tiempo de exposición al baño químico para las obleas de silicio pulido.
El modelo presentado anteriormente presento valores atipicos, los cuales hacen que se difiera en la muestra. El putno atipico potencial encontrado en el inciso d se podria resolver de varias formas, mismas que se reportan en el siguiente enlace:
Link: https://rpubs.com/ydmarinb/429759
Ademas, se sabe que existen los datos atipicos univariados y multivariados, solo es cuestion de identificar como son los datos utilizados para identificar cual es la forma correcta en que se debe aplicar.