#Chapitre 5
#page 225
library(BioStatR)
attach(Mesures5)
table(graines,espece)
## espece
## graines bignone glycine blanche glycine violette laurier rose
## 1 0 7 4 0
## 2 0 19 22 0
## 3 0 11 16 0
## 4 0 10 6 0
## 5 0 5 5 0
## 6 0 1 1 0
## 7 0 1 2 0
table(graines,espece,useNA="ifany")
## espece
## graines bignone glycine blanche glycine violette laurier rose
## 1 0 7 4 0
## 2 0 19 22 0
## 3 0 11 16 0
## 4 0 10 6 0
## 5 0 5 5 0
## 6 0 1 1 0
## 7 0 1 2 0
## <NA> 70 0 0 72
(table.cont<-table(factor(graines),espece,dnn=c("nbr.graines","espece"),
exclude=c("bignone","laurier rose")))
## espece
## nbr.graines glycine blanche glycine violette
## 1 7 4
## 2 19 22
## 3 11 16
## 4 10 6
## 5 5 5
## 6 1 1
## 7 1 2
## <NA> 0 0
#page 226
(table.cont<-table(factor(graines),espece,dnn=c("nbr.graines","espece"),
exclude=c("bignone","laurier rose"),useNA="no"))
## espece
## nbr.graines glycine blanche glycine violette
## 1 7 4
## 2 19 22
## 3 11 16
## 4 10 6
## 5 5 5
## 6 1 1
## 7 1 2
#En plus : deuxi\`eme mani\`ere de faire
(table.cont<-table(factor(graines),espece,dnn=c("nbr.graines","espece"),
exclude=c("bignone","laurier rose",NA)))
## espece
## nbr.graines glycine blanche glycine violette
## 1 7 4
## 2 19 22
## 3 11 16
## 4 10 6
## 5 5 5
## 6 1 1
## 7 1 2
library(ggplot2)
#Couleur
ggplot(Mesures,aes(x=masse,y=taille,color=espece))+geom_point(size=3,shape=19)+
ggtitle("Taille en fonction de la masse par esp\`ece")
#Noir et blanc
ggplot(Mesures,aes(x=masse,y=taille,shape=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()
#page 228
#En plus : code figure 51A
pdf("fig51A.pdf")
print(ggplot(Mesures,aes(x=masse,y=taille,shape=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw())
dev.off()
## quartz_off_screen
## 2
addmargins(table.cont)
## espece
## nbr.graines glycine blanche glycine violette Sum
## 1 7 4 11
## 2 19 22 41
## 3 11 16 27
## 4 10 6 16
## 5 5 5 10
## 6 1 1 2
## 7 1 2 3
## Sum 54 56 110
#page 227
print(prop.table(table.cont),digits=3)
## espece
## nbr.graines glycine blanche glycine violette
## 1 0.06364 0.03636
## 2 0.17273 0.20000
## 3 0.10000 0.14545
## 4 0.09091 0.05455
## 5 0.04545 0.04545
## 6 0.00909 0.00909
## 7 0.00909 0.01818
#page 228
margin.table(table.cont,1)
## nbr.graines
## 1 2 3 4 5 6 7
## 11 41 27 16 10 2 3
margin.table(table.cont,2)
## espece
## glycine blanche glycine violette
## 54 56
margin.table(prop.table(table.cont),1)
## nbr.graines
## 1 2 3 4 5 6 7
## 0.10000000 0.37272727 0.24545455 0.14545455 0.09090909 0.01818182 0.02727273
margin.table(prop.table(table.cont),2)
## espece
## glycine blanche glycine violette
## 0.4909091 0.5090909
#page 229
prop.table(table.cont,1)
## espece
## nbr.graines glycine blanche glycine violette
## 1 0.6363636 0.3636364
## 2 0.4634146 0.5365854
## 3 0.4074074 0.5925926
## 4 0.6250000 0.3750000
## 5 0.5000000 0.5000000
## 6 0.5000000 0.5000000
## 7 0.3333333 0.6666667
#page 230
prop.table(table.cont,2)
## espece
## nbr.graines glycine blanche glycine violette
## 1 0.12962963 0.07142857
## 2 0.35185185 0.39285714
## 3 0.20370370 0.28571429
## 4 0.18518519 0.10714286
## 5 0.09259259 0.08928571
## 6 0.01851852 0.01785714
## 7 0.01851852 0.03571429
#page 233
cov(masse,taille)
## [1] 24.80598
#page 234
cor(masse,taille)
## [1] 0.7520708
#page 235
require(BioStatR)
eta2(Mesures5$taille,Mesures5$espece)
## [1] 0.1195181
#page 236
#Couleur
plot(taille~masse,col=rainbow(4)[espece],pch=19,data=Mesures)
legend("bottomright",levels(Mesures$espece),pch=19,col=rainbow(4))
title("Taille en fonction de la masse par esp\`ece")
#Noir et blanc
plot(taille~masse,pch=1:4,data=Mesures)
legend("bottomright",levels(Mesures$espece),pch=1:4)
title("Taille en fonction de la masse par esp\`ece")
#En plus : code figure 51B
pdf("fig51B.pdf")
plot(taille~masse,pch=1:4,data=Mesures)
legend("bottomright",levels(Mesures$espece),pch=1:4)
title("Taille en fonction de la masse par esp\`ece")
dev.off()
## quartz_off_screen
## 2
#Les m^emes figures avec ggplot2 (code page 225 et 226)
library(ggplot2)
#Couleur
ggplot(Mesures,aes(x=masse,y=taille,color=espece))+geom_point(size=3,shape=19)+
ggtitle("Taille en fonction de la masse par esp\`ece")
#Noir et blanc
ggplot(Mesures,aes(x=masse,y=taille,shape=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()
#page 238
library(lattice)
show.settings()
show.settings(x=standard.theme(color=FALSE))
lattice.options(default.theme=standard.theme(color=FALSE))
#page 239
lattice.options(default.theme=NULL)
trellis.device(theme=standard.theme(color=FALSE))
dev.off()
## quartz_off_screen
## 2
trellis.device(color=FALSE)
dev.off()
## quartz_off_screen
## 2
#Pour obtenir les graphiques en noir et blanc
trellis.device(theme=standard.theme(color=FALSE),new=FALSE)
#page 240
xyplot(taille~masse,groups=espece,auto.key = list(corner = c(1, 0)),
main="Taille en fonction de la masse par esp\`ece",data=Mesures)
xyplot(taille~masse|espece,groups=espece,data=Mesures)
xyplot(taille~masse|espece,groups=espece,scales="free",data=Mesures)
#page 242
xyplot(taille~masse|espece,data=Mesures,groups=espece,
prepanel=function(x,y) prepanel.loess(x,y,span=1),
panel=function(x,y,subscripts,groups) {
panel.grid(h=-1,v=2)
panel.xyplot(x,y,pch=groups[subscripts])
panel.loess(x,y,span=1,lwd=2,pch=groups[subscripts])})
#d\'ebut page 242 et fin page 243
xyplot(taille~masse|espece,data=Mesures,groups=espece,scales="free",
prepanel=function(x,y) prepanel.loess(x,y,span=1),
panel=function(x,y,subscripts,groups) {
panel.grid(h=-1,v=2)
panel.xyplot(x,y,pch=groups[subscripts])
panel.loess(x,y,span=1,lwd=2,pch=groups[subscripts])
}
)
#page 243
xyplot(masse+masse_sec~taille|espece,data=Mesures5,scales="free",
layout=c(2,2),auto.key=list(x=-.01,y=.37,corner=c(0,0)))
#d\'ebut page 243 et fin page 244
xyplot(masse+masse_sec~taille|espece,data=Mesures5,scales="free",
layout=c(2,2),auto.key=list(x=-.01,y=.37,points=FALSE,
col=c("black","grey50"),font=2,corner=c(0,0)),
panel=function(x,y,subscripts,groups) {
panel.grid(h=-1,v= 2)
panel.xyplot(x,y,pch=19,col=c("black","grey50")[groups[subscripts]])
}
)
#page 244
#contruction des graphiques pr\'ec\'edents en couleur
trellis.device(theme=NULL,color = TRUE,new=FALSE)
#ceux de la page 240
xyplot(taille~masse,groups=espece,auto.key = list(corner = c(1, 0)),
main="Taille en fonction de la masse par esp\`ece",data=Mesures)
xyplot(taille~masse|espece,groups=espece,data=Mesures,pch=19)
xyplot(taille~masse|espece,groups=espece,scales="free",data=Mesures,pch=19)
#ceux de la page 242
xyplot(taille~masse|espece,data=Mesures,groups=espece,prepanel=function(x,y) prepanel.loess(x,y,span=1),
panel=function(x,y,subscripts,groups) {
panel.grid(h=-1,v=2)
panel.xyplot(x,y,pch=19,col=groups[subscripts])
panel.loess(x,y,span=1,lwd=2,col=groups[subscripts])})
xyplot(taille~masse|espece,data=Mesures,groups=espece,scales="free",
prepanel=function(x,y) prepanel.loess(x,y,span=1),
panel=function(x,y,subscripts,groups) {
panel.grid(h=-1,v=2)
panel.xyplot(x,y,pch=19,col=groups[subscripts])
panel.loess(x,y,span=1,lwd=2,col=groups[subscripts])})
#ceux de la page 243
xyplot(masse+masse_sec~taille|espece,data=Mesures5,scales="free",layout=c(2,2),
auto.key=list(x=-.01,y=.37,corner=c(0,0)))
xyplot(masse+masse_sec~taille|espece,data=Mesures5,scales="free",layout=c(2,2),
auto.key=list(x=-.01,y=.37,points=FALSE,col=c("black","red"),corner=c(0,0)),
panel=function(x,y,subscripts,groups) {
panel.grid(h=-1,v= 2)
panel.xyplot(x,y,pch=19,col=groups[subscripts])
}
)
#page 246
#Contruction des graphiques pr\'ec\'edents avec ggplot2
#Noir et blanc
library(ggplot2)
#ceux de la page 240
ggplot(Mesures,aes(x=masse,y=taille,shape=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()+
theme(legend.position="bottom")
ggplot(Mesures,aes(x=masse,y=taille,shape=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()+
facet_wrap(~espece)
ggplot(Mesures,aes(x=masse,y=taille,shape=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()+
facet_wrap(~espece,scales = "free")
#ceux de la page 242
ggplot(Mesures,aes(x=masse,y=taille,shape=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()+
facet_wrap(~espece)+stat_smooth(color="grey50")
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
ggplot(Mesures,aes(x=masse,y=taille,shape=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()+
facet_wrap(~espece,scales = "free")+stat_smooth(color="grey50")
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
#ceux de la page 243
ggplot(Mesures5,aes(x=taille,y=masse,shape=espece))+geom_point(aes(x=taille,y=masse_sec),
color="gray50")+geom_point()+ggtitle("Taille en fonction de la masse par esp\`ece")+
theme_bw()+facet_wrap(~espece,scales = "free")+stat_smooth(color="black")+
stat_smooth(aes(x=taille,y=masse_sec),color="grey50")
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## Warning: Removed 3 rows containing non-finite values (stat_smooth).
## Warning: Removed 3 rows containing missing values (geom_point).
#Pour faire appara^itre les deux variables dans la l\'egende en plus des groupes li\'es #aux esp\`eces
if(!("reshape" %in% rownames(installed.packages()))){install.packages("reshape")}
library(reshape)
Mesures5.long <- melt(Mesures5, id = c("taille","espece"),
measure = c("masse", "masse_sec"))
ggplot(Mesures5.long,aes(x=taille,y=value,shape=espece,color=variable))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()+
facet_wrap(~espece,scales = "free")+stat_smooth(aes(color=variable))+
scale_color_grey(start=.1,end=.5)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## Warning: Removed 3 rows containing non-finite values (stat_smooth).
## Removed 3 rows containing missing values (geom_point).
pdf("chap5fig511ggplot.pdf")
print(ggplot(Mesures5.long,aes(x=taille,y=value,shape=espece,color=variable))+
geom_point()+ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()+
facet_wrap(~espece,scales = "free")+stat_smooth(aes(color=variable))+
scale_color_grey(start=.1,end=.5)
)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## Warning: Removed 3 rows containing non-finite values (stat_smooth).
## Removed 3 rows containing missing values (geom_point).
dev.off()
## quartz_off_screen
## 2
#page 247
#Couleur
#ceux de la page 240
ggplot(Mesures,aes(x=masse,y=taille,color=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()
ggplot(Mesures,aes(x=masse,y=taille,color=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()+
facet_wrap(~espece)
ggplot(Mesures,aes(x=masse,y=taille,color=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()+
facet_wrap(~espece,scales = "free")
#ceux de la page 242
ggplot(Mesures,aes(x=masse,y=taille,color=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()+
facet_wrap(~espece)+stat_smooth()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
ggplot(Mesures,aes(x=masse,y=taille,color=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()+
facet_wrap(~espece,scales = "free")+stat_smooth()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
#ceux de la page 243
ggplot(Mesures5,aes(x=taille,y=masse,color=espece))+
geom_point(aes(x=taille,y=masse_sec,color=espece),shape=22)+geom_point(shape=19)+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()+
facet_wrap(~espece,scales = "free")+stat_smooth()+
stat_smooth(aes(x=taille,y=masse_sec))
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## Warning: Removed 3 rows containing non-finite values (stat_smooth).
## Removed 3 rows containing missing values (geom_point).
#page 248
#Pour faire appara^itre les deux variables dans la l\'egende en plus des groupes li\'es
#aux esp\`eces
if(!("reshape" %in% rownames(installed.packages()))){install.packages("reshape")}
library(reshape)
ggplot(Mesures5.long,aes(x=taille,y=value,color=variable,shape=espece))+geom_point()+
ggtitle("Taille en fonction de la masse par esp\`ece")+theme_bw()+
facet_wrap(~espece,scales = "free")+stat_smooth(aes(color=variable))
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## Warning: Removed 3 rows containing non-finite values (stat_smooth).
## Removed 3 rows containing missing values (geom_point).
#Exercice 5.1
#page 249
#2)
outer(1:6,1:6,"+")
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 2 3 4 5 6 7
## [2,] 3 4 5 6 7 8
## [3,] 4 5 6 7 8 9
## [4,] 5 6 7 8 9 10
## [5,] 6 7 8 9 10 11
## [6,] 7 8 9 10 11 12
outer(1:6,1:6,pmin)
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 1 1 1 1 1 1
## [2,] 1 2 2 2 2 2
## [3,] 1 2 3 3 3 3
## [4,] 1 2 3 4 4 4
## [5,] 1 2 3 4 5 5
## [6,] 1 2 3 4 5 6
(effs<-table(outer(1:6,1:6,"+"),outer(1:6,1:6,pmin)))
##
## 1 2 3 4 5 6
## 2 1 0 0 0 0 0
## 3 2 0 0 0 0 0
## 4 2 1 0 0 0 0
## 5 2 2 0 0 0 0
## 6 2 2 1 0 0 0
## 7 2 2 2 0 0 0
## 8 0 2 2 1 0 0
## 9 0 0 2 2 0 0
## 10 0 0 0 2 1 0
## 11 0 0 0 0 2 0
## 12 0 0 0 0 0 1
#page 251
#1)
require(BioStatR)
plotcdf2(Mesures5$taille,Mesures5$masse,f=0,"taille","poids",theme="bw")
#En plus : autres options pour plotcdf2
plotcdf2(Mesures5$taille,Mesures5$masse,f=0,"taille","poids",col="gray50")
plotcdf2(Mesures5$taille,Mesures5$masse,f=0,"taille","poids")
plotcdf2(Mesures5$taille,Mesures5$masse,f=0,"taille","poids",theme="1")
plotcdf2(Mesures5$taille,Mesures5$masse,f=0,"taille","poids",theme="2")
plotcdf2(Mesures5$taille,Mesures5$masse,f=0,"taille","poids",theme="3")
#page 252
#2)
margin.table(effs)
## [1] 36
plotcdf2(2:12,1:6,f=effs/36,"somme des d\'es","valeur du plus petit",the="bw")
#En plus : autres options pour plotcdf2
plotcdf2(2:12,1:6,f=effs/36,"somme des d\'es","valeur du plus petit",col="gray50")
plotcdf2(2:12,1:6,f=effs/36,"somme des d\'es","valeur du plus petit")
plotcdf2(2:12,1:6,f=effs/36,"somme des d\'es","valeur du plus petit",theme="1")
plotcdf2(2:12,1:6,f=effs/36,"somme des d\'es","valeur du plus petit",theme="2")
plotcdf2(2:12,1:6,f=effs/36,"somme des d\'es","valeur du plus petit",theme="3")
#3)
margin.table(effs,1)
##
## 2 3 4 5 6 7 8 9 10 11 12
## 1 2 3 4 5 6 5 4 3 2 1
#page 253
margin.table(effs,2)
##
## 1 2 3 4 5 6
## 11 9 7 5 3 1
print(prop.table(margin.table(effs,1)),3)
##
## 2 3 4 5 6 7 8 9 10 11 12
## 0.0278 0.0556 0.0833 0.1111 0.1389 0.1667 0.1389 0.1111 0.0833 0.0556 0.0278
print(prop.table(margin.table(effs,2)),3)
##
## 1 2 3 4 5 6
## 0.3056 0.2500 0.1944 0.1389 0.0833 0.0278
#4)
print(prop.table(effs,1),digit=3)
##
## 1 2 3 4 5 6
## 2 1.000 0.000 0.000 0.000 0.000 0.000
## 3 1.000 0.000 0.000 0.000 0.000 0.000
## 4 0.667 0.333 0.000 0.000 0.000 0.000
## 5 0.500 0.500 0.000 0.000 0.000 0.000
## 6 0.400 0.400 0.200 0.000 0.000 0.000
## 7 0.333 0.333 0.333 0.000 0.000 0.000
## 8 0.000 0.400 0.400 0.200 0.000 0.000
## 9 0.000 0.000 0.500 0.500 0.000 0.000
## 10 0.000 0.000 0.000 0.667 0.333 0.000
## 11 0.000 0.000 0.000 0.000 1.000 0.000
## 12 0.000 0.000 0.000 0.000 0.000 1.000
#page 254
print(prop.table(effs,2),digit=3)
##
## 1 2 3 4 5 6
## 2 0.0909 0.0000 0.0000 0.0000 0.0000 0.0000
## 3 0.1818 0.0000 0.0000 0.0000 0.0000 0.0000
## 4 0.1818 0.1111 0.0000 0.0000 0.0000 0.0000
## 5 0.1818 0.2222 0.0000 0.0000 0.0000 0.0000
## 6 0.1818 0.2222 0.1429 0.0000 0.0000 0.0000
## 7 0.1818 0.2222 0.2857 0.0000 0.0000 0.0000
## 8 0.0000 0.2222 0.2857 0.2000 0.0000 0.0000
## 9 0.0000 0.0000 0.2857 0.4000 0.0000 0.0000
## 10 0.0000 0.0000 0.0000 0.4000 0.3333 0.0000
## 11 0.0000 0.0000 0.0000 0.0000 0.6667 0.0000
## 12 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000
#Exercice 5.2
#1)
cov(Mesures5[,1:4])
## masse taille graines masse_sec
## masse 81.02811 24.80598 NA NA
## taille 24.80598 13.42640 NA NA
## graines NA NA NA NA
## masse_sec NA NA NA NA
cor(Mesures5[,1:4])
## masse taille graines masse_sec
## masse 1.0000000 0.7520708 NA NA
## taille 0.7520708 1.0000000 NA NA
## graines NA NA 1 NA
## masse_sec NA NA NA 1
#page 255
#2)
cov(Mesures5[,1:4],use="pairwise.complete.obs")
## masse taille graines masse_sec
## masse 81.02811 24.805983 10.028632 28.579414
## taille 24.80598 13.426403 4.541877 8.089633
## graines 10.02863 4.541877 1.892327 3.510584
## masse_sec 28.57941 8.089633 3.510584 10.707880
cor(Mesures5[,1:4],use="pairwise.complete.obs")
## masse taille graines masse_sec
## masse 1.0000000 0.7520708 0.8024751 0.9685758
## taille 0.7520708 1.0000000 0.7812662 0.6731472
## graines 0.8024751 0.7812662 1.0000000 0.8076360
## masse_sec 0.9685758 0.6731472 0.8076360 1.0000000