Está en la página 1de 7

Prueba de comparaciones

roly ramos

22 de septiembre de 2018

Pruebas de comparación

Cargar la data
coag=read.table("coag.txt",TRUE)
coag

## Tiempo dieta aleatorizacion


## 1 62 A 4
## 2 60 A 15
## 3 63 A 24
## 4 59 A 9
## 5 63 B 12
## 6 67 B 18
## 7 71 B 22
## 8 64 B 17
## 9 65 B 8
## 10 66 B 5
## 11 68 C 2
## 12 66 C 19
## 13 71 C 13
## 14 67 C 7
## 15 68 C 23
## 16 68 C 20
## 17 56 D 1
## 18 62 D 14
## 19 60 D 3
## 20 61 D 6
## 21 63 D 10
## 22 64 D 11
## 23 63 D 16
## 24 59 D 21

Prueba T
coag<-read.table("coag.txt",header=TRUE)
tiempo<-coag[,1]
dieta<-coag[,2]
pairwise.t.test(tiempo,dieta,p.adjust.method="none")
##
## Pairwise comparisons using t tests with pooled SD
##
## data: tiempo and dieta
##
## A B C
## B 0.00380 - -
## C 0.00018 0.15878 -
## D 1.00000 0.00086 2.3e-05
##
## P value adjustment method: none

La cantidad de hipotesis a comparar es de t(t-1)/2 comparaciones, donde t: es el numero de


tratamientos. Para casa prueba existe el riesgod e cometer error tipo I, es decir, rechazar
H0 cuando en realidad es verdadera. Al realizar 6 pruebas de hipotesis dicho error tipo I ,
se eleva a potencia 6.
De este modo es preferible utilizar un test d ecomparacion que asocie el error tipo de forma
global. dicha mejora lo propone Bonferroni.

Prueba de Bonferroni
pairwise.t.test(tiempo,dieta,p.adjust.method="bonferroni")

##
## Pairwise comparisons using t tests with pooled SD
##
## data: tiempo and dieta
##
## A B C
## B 0.02282 - -
## C 0.00108 0.95266 -
## D 1.00000 0.00518 0.00014
##
## P value adjustment method: bonferroni

Prueba de Duncan
#separamos previamente las variables en estudio
Tiempo<-coag$Tiempo
dieta<-coag$dieta
library(agricolae)
anva<-aov(Tiempo~dieta,coag)
compd<-duncan.test(anva,"dieta")
compd

## $statistics
## MSerror Df Mean CV
## 5.6 20 64 3.69755
##
## $parameters
## test name.t ntr alpha
## Duncan dieta 4 0.05
##
## $duncan
## NULL
##
## $means
## Tiempo std r Min Max Q25 Q50 Q75
## A 61 1.825742 4 59 63 59.75 61.0 62.25
## B 66 2.828427 6 63 71 64.25 65.5 66.75
## C 68 1.673320 6 66 71 67.25 68.0 68.00
## D 61 2.618615 8 56 64 59.75 61.5 63.00
##
## $comparison
## NULL
##
## $groups
## Tiempo groups
## C 68 a
## B 66 a
## A 61 b
## D 61 b
##
## attr(,"class")
## [1] "group"

compd1=duncan.test(anva,"dieta",group=FALSE)#muestra los pvalores


compd1

## $statistics
## MSerror Df Mean CV
## 5.6 20 64 3.69755
##
## $parameters
## test name.t ntr alpha
## Duncan dieta 4 0.05
##
## $duncan
## NULL
##
## $means
## Tiempo std r Min Max Q25 Q50 Q75
## A 61 1.825742 4 59 63 59.75 61.0 62.25
## B 66 2.828427 6 63 71 64.25 65.5 66.75
## C 68 1.673320 6 66 71 67.25 68.0 68.00
## D 61 2.618615 8 56 64 59.75 61.5 63.00
##
## $comparison
## difference pvalue signif. LCL UCL
## A - B -5 0.0020 ** -7.937680 -2.0623197
## A - C -7 0.0001 *** -10.083577 -3.9164227
## A - D 0 1.0000 -3.176298 3.1762981
## B - C -2 0.1710 -4.937680 0.9376803
## B - D 5 0.0027 ** 1.916423 8.0835773
## C - D 7 0.0001 *** 4.062320 9.9376803
##
## $groups
## NULL
##
## attr(,"class")
## [1] "group"

Prueba de Tukey
yp<-tapply(Tiempo,dieta,mean) #calcula las media segun tratamiento
sort(yp) #ordena las media de los tratamientos

## A D B C
## 61 61 66 68

Previamente se debe realizar


anva<-aov(Tiempo~dieta,data=coag)
summary(anva)

## Df Sum Sq Mean Sq F value Pr(>F)


## dieta 3 228 76.0 13.57 4.66e-05 ***
## Residuals 20 112 5.6
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

comandos basicos para Tukey


TukeyHSD(anva,"dieta")

## Tukey multiple comparisons of means


## 95% family-wise confidence level
##
## Fit: aov(formula = Tiempo ~ dieta, data = coag)
##
## $dieta
## diff lwr upr p adj
## B-A 5 0.7245544 9.275446 0.0183283
## C-A 7 2.7245544 11.275446 0.0009577
## D-A 0 -4.0560438 4.056044 1.0000000
## C-B 2 -1.8240748 5.824075 0.4766005
## D-B -5 -8.5770944 -1.422906 0.0044114
## D-C -7 -10.5770944 -3.422906 0.0001268
Con la libreria multcomp podemos econtrar mas detalles de la salida
library(multcomp)

## Loading required package: mvtnorm

## Loading required package: survival

## Loading required package: TH.data

## Loading required package: MASS

##
## Attaching package: 'TH.data'

## The following object is masked from 'package:MASS':


##
## geyser

cht <- glht(anva, linfct = mcp(dieta = "Tukey"))


summary(cht)

##
## Simultaneous Tests for General Linear Hypotheses
##
## Multiple Comparisons of Means: Tukey Contrasts
##
##
## Fit: aov(formula = Tiempo ~ dieta, data = coag)
##
## Linear Hypotheses:
## Estimate Std. Error t value Pr(>|t|)
## B - A == 0 5.000e+00 1.528e+00 3.273 0.01840 *
## C - A == 0 7.000e+00 1.528e+00 4.583 < 0.001 ***
## D - A == 0 2.991e-15 1.449e+00 0.000 1.00000
## C - B == 0 2.000e+00 1.366e+00 1.464 0.47487
## D - B == 0 -5.000e+00 1.278e+00 -3.912 0.00438 **
## D - C == 0 -7.000e+00 1.278e+00 -5.477 < 0.001 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- single-step method)

Prueba de Dunnet
Compara los tratamientos respecto a uno testigo o control. Generalmente el testigo es el
tratamiento común o conocido, así que comparar con este permite averiguar cuales de los
nuevos tratamientos. Suponemos que el tratamiento A es el testigo:
library(multcomp)
anva<-aov(Tiempo~dieta,data=coag)
cdu <- glht(anva, linfct = mcp(dieta = "Dunnett"))
summary(cdu)

##
## Simultaneous Tests for General Linear Hypotheses
##
## Multiple Comparisons of Means: Dunnett Contrasts
##
##
## Fit: aov(formula = Tiempo ~ dieta, data = coag)
##
## Linear Hypotheses:
## Estimate Std. Error t value Pr(>|t|)
## B - A == 0 5.000e+00 1.528e+00 3.273 0.0094 **
## C - A == 0 7.000e+00 1.528e+00 4.583 <0.001 ***
## D - A == 0 2.991e-15 1.449e+00 0.000 1.0000
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- single-step method)

Prueba de contrastes ortogonales


Suponga que se tiene cuatro fertilizantes que se desea comparar, con tal motivo se realizó
un experimento bajo un DCA con cinco repeticiones por tratamiento, de la cual se obtuvo
los siguientes promedios de tratamientos:73.8 74.2 69.0 71.8 Ademas la SCE es 10.4
Presentar todos los contrastes ortogonales para comporar los pares de tratamientos
(1y2)VS(3y4)
vp<-c(73.8,74.2,69,71.8)
sce<-10.4
r=5
ct<-c(-1,-1,1,1)
scc1<-r*((t(ct)%*%vp)^2)/(sum(ct^2))
scc1

## [,1]
## [1,] 64.8

ct2<-c(-1,1,0,0)
scc2<-r*((t(ct2)%*%vp)^2)/(sum(ct2^2))
scc2

## [,1]
## [1,] 0.4

ct3<-c(0,0,-1,1)
scc3<-r*((t(ct3)%*%vp)^2)/(sum(ct3^2))
scc3
## [,1]
## [1,] 19.6

tr<-4
gle<-r*tr-tr
gle

## [1] 16

cme<-sce/gle
fuente<-c("Q1","Q2","Q3","Residuals")
gl<-c(1,1,1,gle)
SC<-c(scc1,scc2,scc3,sce)
CM<-SC/gl
Fc<-c(round(CM[1:3]/CM[4],4),"")
Fc1<-as.numeric(Fc[1:3])
pvalue1<-round(1-pf(Fc1,1,gle),4)
pvalue<-c(pvalue1,"")
data.frame(fuente,gl,SC,CM,Fc,pvalue)

## fuente gl SC CM Fc pvalue
## 1 Q1 1 64.8 64.80 99.6923 0
## 2 Q2 1 0.4 0.40 0.6154 0.4442
## 3 Q3 1 19.6 19.60 30.1538 0
## 4 Residuals 16 10.4 0.65

Prueba de Scheffe
tiempo<-coag[,1]
dieta<-coag[,2]
yp<-tapply(tiempo,dieta,mean)
ci<-c(1,1,-1,-1)
lab<-abs(t(ci)%*%yp)
lab

## [,1]
## [1,] 2

re<-tapply(tiempo,dieta,length)
mod<- lm(tiempo~dieta)
cme<-deviance(mod)/df.residual(mod)
sdl<-sqrt(cme*(sum(ci^2/re)))
vcs5<-sdl*sqrt(3*qf(0.95,3,20))
vcs5

## [1] 6.072138

vcs10<-sdl*sqrt(3*qf(0.9,3,20))
vcs10

## [1] 5.321939