You are on page 1of 10

Dise

no de Experimentos, c
odigo de R
Varios de los ejemplos de los apuntes estan programados en R para ayudar
al estudiante a familiarizarse con este lenguaje de programacion. Como siempre
el comando help.search(keyword) se puede usar para encontrar informacion
sobre las diferentes funciones de R.

Modelos unifactoriales

Se pueden encontrar los ficheros en la


> data<-read.table("algodon.txt", header=TRUE)
> data
algodon value
1
15%
7
2
15%
7
3
15%
15
4
15%
11
5
15%
9
6
20%
12
7
20%
17
8
20%
12
9
20%
18
10
20%
18
11
25%
14
12
25%
18
13
25%
18
14
25%
19
15
25%
19
16
30%
19
17
30%
25
18
30%
22
19
30%
19
20
30%
23
21
35%
7
22
35%
10
23
35%
11
24
35%
15

25

35%

11

> names(data)
[1] "algodon" "value"
> attach(data)
>algodon
[1] 15% 15% 15% 15% 15% 20% 20% 20% 20% 20% 25% 25% 25% 25% 25% 30% 30% 30% 30%
[20] 30% 35% 35% 35% 35% 35%
Levels: 15% 20% 25% 30% 35%
> value
[1] 7 7 15 11 9 12 17 12 18 18 14 18 18 19 19 19 25 22 19 23 7 10 11 15 11
> anova(lm(value~algodon))
Analysis of Variance Table
Response: value
Df Sum Sq Mean Sq F value
Pr(>F)
algodon
4 475.76 118.94 14.757 9.128e-06 ***
Residuals 20 161.20
8.06
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

> summary(aov(value~algodon))
Df Sum Sq Mean Sq F value
Pr(>F)
algodon
4 475.76 118.94 14.757 9.128e-06 ***
Residuals
20 161.20
8.06
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
>dettach(data)
>rm(data)

> datos<-read.table("ropa.txt")
> names(datos)<-c("tela", "resistencia")
> attach(datos)
> anova(lm(resistencia~tela))
Analysis of Variance Table

Response: resistencia
Df Sum Sq Mean Sq F value
Pr(>F)
tela
3 0.52012 0.17337 8.5344 0.002639 **
Residuals 12 0.24378 0.02031
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
>dettach(datos)
>rm(datos)

1.1

Bonferroni

El test LSD no aparece en R, pero se puede programar como se muestra en los


apuntes. El de Bonferroni se muestra abajo.
> library(stats)
> pairwise.t.test(value,algodon, p.adjust.method="bonferroni")
Pairwise comparisons using t tests with pooled SD
data:

20%
25%
30%
35%

value and algodon

15%
0.0541
0.0031
2.1e-05
1.0000

20%
1.0000
0.0251
0.1859

25%
0.3754
0.0116

30%
7.0e-05

P value adjustment method: bonferroni

1.2

Tukey

> TukeyHSD(aov(value~algodon))
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = value ~ algodon)

$algodon
20%-15%
25%-15%
30%-15%
35%-15%
25%-20%
30%-20%
35%-20%
30%-25%
35%-25%
35%-30%

diff
lwr
upr
5.6
0.2270417 10.9729583
7.8
2.4270417 13.1729583
11.8
6.4270417 17.1729583
1.0 -4.3729583 6.3729583
2.2 -3.1729583 7.5729583
6.2
0.8270417 11.5729583
-4.6 -9.9729583 0.7729583
4.0 -1.3729583 9.3729583
-6.8 -12.1729583 -1.4270417
-10.8 -16.1729583 -5.4270417

p adj
0.0385024
0.0025948
0.0000190
0.9797709
0.7372438
0.0188936
0.1162970
0.2101089
0.0090646
0.0000624

> pintura<-read.table("pinturas.txt", header=TRUE)


> pintura
Tapaporos
Metodo Efecto
1
1 Immersion
4.0
2
1 Immersion
4.5
3
1 Immersion
4.3
4
1
Rociado
5.4
5
1
Rociado
4.9
6
1
Rociado
5.6
7
2 Immersion
5.6
8
2 Immersion
4.9
9
2 Immersion
5.4
10
2
Rociado
5.8
11
2
Rociado
6.1
12
2
Rociado
6.3
13
3 Immersion
3.8
14
3 Immersion
3.7
15
3 Immersion
4.0
16
3
Rociado
5.5
17
3
Rociado
5.0
18
3
Rociado
5.0

> is.factor(Tapaporos)
Error in inherits(x, "factor") : object "Tapaporos" not found
> attach(pintura)
> is.factor(Tapaporos)

[1] FALSE
> Tapaporos<-as.factor(Tapaporos)
> is.factor(Tapaporos)
[1] TRUE
summary(aov(Efecto~Tapaporos*Metodo))
Df Sum Sq Mean Sq F value
Pr(>F)
Tapaporos
2 4.5811 2.2906 27.8581 3.097e-05 ***
Metodo
1 4.9089 4.9089 59.7027 5.357e-06 ***
Tapaporos:Metodo 2 0.2411 0.1206 1.4662
0.2693
Residuals
12 0.9867 0.0822
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

Dise
no bifactorial con replicaciones

Ejemplo de las baterias


> data<-read.table("baterias.txt", header=TRUE)
> data
Material Temperatura Efecto
1
1
15F
130
2
1
15F
155
3
1
15F
74
4
1
15F
180
5
1
70F
34
6
1
70F
40
7
1
70F
80
8
1
70F
75
9
1
125F
20
10
1
125F
70
11
1
125F
82
12
1
125F
58
13
2
15F
150
14
2
15F
188
15
2
15F
159
16
2
15F
126
17
2
70F
136
18
2
70F
122

19
2
70F
106
20
2
70F
115
21
2
125F
25
22
2
125F
70
23
2
125F
58
24
2
125F
45
25
3
15F
138
26
3
15F
110
27
3
15F
168
28
3
15F
160
29
3
70F
174
30
3
70F
120
31
3
70F
150
32
3
70F
139
33
3
125F
96
34
3
125F
104
35
3
125F
82
36
3
125F
60
> attach(data)
> Material<-as.factor(Material)
> is.factor(Temperatura)
[1] TRUE
> summary(aov(Efecto~Material*Temperatura))
Df Sum Sq Mean Sq F value
Pr(>F)
Material
2 10684
5342 7.9114 0.001976
Temperatura
2 39119
19559 28.9677 1.909e-07
Material:Temperatura 4
9614
2403 3.5595 0.018611
Residuals
27 18231
675
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1

Modelo de efectos aleatorios

Ejemplo de la pieza de vehculo. Ver la nota al final del ejercicio:

> data<-read.table("piezas.txt", header=TRUE)


> data
Material Temperatura Efecto
1
1
10C
130

**
***
*

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3

10C
10C
10C
15C
15C
15C
15C
32C
32C
32C
32C
10C
10C
10C
10C
15C
15C
15C
15C
32C
32C
32C
32C
10C
10C
10C
10C
15C
15C
15C
15C
32C
32C
32C
32C

155
74
180
34
40
80
75
20
70
82
58
150
188
159
126
136
122
106
115
25
70
58
45
138
110
168
160
174
120
150
139
96
104
82
60

> attach(data)
> Material<-as.factor(Material)
> summary(aov(Efecto~Material*Temperatura))
7

Df Sum Sq Mean Sq F value


Pr(>F)
Material
2 10684
5342 7.9114 0.001976
Temperatura
2 39119
19559 28.9677 1.909e-07
Material:Temperatura 4
9614
2403 3.5595 0.018611
Residuals
27 18231
675
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1

**
***
*

> summary(aov(Efecto~Material+Temperatura))
Df Sum Sq Mean Sq F value
Pr(>F)
Material
2 10684
5342 5.9472 0.006515 **
Temperatura 2 39119
19559 21.7759 1.239e-06 ***
Residuals
31 27845
898
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

NOTA: R ha hecho este experimento como si todos los factores fueran de


efectos fijos y por lo tanto los valores observados del estadstico no son los
mismos que en los apuntes. Digamos que tenemos un factor A de efectos fijos
y uno B aleatorio con interaccion que es aleatoria. Entonces entonces el valor
observado de A se calcula como FA=MCA/MCAB en vez de FA=MCA/MCE
como en el caso de los efectos fijos. Por lo que se, R no puede usarse en este
caso especial.

Cuadrados latinos

Del ejemplo que aprece en los apuntes, hacemos el fichero latinsquares.txt.


> read.table("latinsquares.txt")->data
> names(data)<-c("letra", "fila","col", "respuesta")
> data
letra fila col respuesta
1
A
1
1
-1
2
B
1
2
-5
3
C
1
3
-6
4
D
1
4
-1
5
E
1
5
-1
6
B
2
1
-8
7
C
2
2
-1
8
D
2
3
5
8

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

E
A
C
D
E
A
B
D
E
A
B
C
E
A
B
C
D

2
2
3
3
3
3
3
4
4
4
4
4
5
5
5
5
5

4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5

2
11
-7
13
1
2
-4
1
6
1
-2
-3
-3
5
-5
4
6

> fila<-as.factor(fila)
> col<-as.factor(col)
> is.factor(letra)
[1] TRUE
> model1<-aov(respuesta~fila+col+letra)
> summary(model1)
Df Sum Sq Mean Sq F value
Pr(>F)
fila
4 68.00
17.00 1.5937 0.239059
col
4 150.00
37.50 3.5156 0.040373 *
letra
4 330.00
82.50 7.7344 0.002537 **
Residuals
12 128.00
10.67
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
> model.tables(model1, "mean")
Tables of means
Grand mean
0.4
fila
fila
9

1
-2.8

2
1.8

3
1.0

4
0.6

5
1.4

col
col
1
-3.6

2
3
3.6 -0.8

4
1.0

5
1.8

letra
letra
A
B
C
3.6 -4.8 -2.6

D
4.8

E
1.0

10

You might also like