The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
One of the case studies of the Analyse de données (L3
Informatique) course, for which fdm2id was written.
How many factorial axes a dataset really needs, how to read them, and
what a supplementary variable is for.
The other case studies are listed by
vignette (package = "fdm2id"); they use the same handful of
functions on other data, and can be read in any order.
A database on breast cancer, built in 1992 by Dr W. H. Wolberg at the University of Wisconsin. Of the 699 patients, 458 carried a benign tumour and 241 a malignant one. Each tumour is described by nine criteria (size, shape of the cells, and so on), each graded from 1 to 10.
Sixteen records have a missing value, all of them on
Bare.nuclei. Rather than dropping those patients, the value
is predicted from the eight other criteria and rounded back to the 1–10
scale – a regression used as an imputation, which is the first thing the
package’s LINREG is good for here.
library (mlbench)
data (BreastCancer)
BreastCancer = BreastCancer [, -1]
BreastCancer [, -10] = lapply (BreastCancer [, -10], function (x) as.numeric (as.character (x)))
names (which (colSums (is.na (BreastCancer)) > 0))
#> [1] "Bare.nuclei"
train = BreastCancer [!is.na (BreastCancer$Bare.nuclei), ]
BreastCancer [is.na (BreastCancer$Bare.nuclei), 6] =
round (predict (LINREG (train [, -c (6, 10)], train [, 6]),
BreastCancer [is.na (BreastCancer$Bare.nuclei), -6]))
summary (BreastCancer)
#> Cl.thickness Cell.size Cell.shape Marg.adhesion
#> Min. : 1.000 Min. : 1.000 Min. : 1.000 Min. : 1.000
#> 1st Qu.: 2.000 1st Qu.: 1.000 1st Qu.: 1.000 1st Qu.: 1.000
#> Median : 4.000 Median : 1.000 Median : 1.000 Median : 1.000
#> Mean : 4.418 Mean : 3.134 Mean : 3.207 Mean : 2.807
#> 3rd Qu.: 6.000 3rd Qu.: 5.000 3rd Qu.: 5.000 3rd Qu.: 4.000
#> Max. :10.000 Max. :10.000 Max. :10.000 Max. :10.000
#> Epith.c.size Bare.nuclei Bl.cromatin Normal.nucleoli
#> Min. : 1.000 Min. : 1.000 Min. : 1.000 Min. : 1.000
#> 1st Qu.: 2.000 1st Qu.: 1.000 1st Qu.: 2.000 1st Qu.: 1.000
#> Median : 2.000 Median : 1.000 Median : 3.000 Median : 1.000
#> Mean : 3.216 Mean : 3.528 Mean : 3.438 Mean : 2.867
#> 3rd Qu.: 4.000 3rd Qu.: 6.000 3rd Qu.: 5.000 3rd Qu.: 4.000
#> Max. :10.000 Max. :10.000 Max. :10.000 Max. :10.000
#> Mitoses Class
#> Min. : 1.000 benign :458
#> 1st Qu.: 1.000 malignant:241
#> Median : 1.000
#> Mean : 1.589
#> 3rd Qu.: 1.000
#> Max. :10.000Answer. Both Kaiser’s rule and the elbow of the scree plot say that a single factorial axis is enough. It carries 65.6% of the variance on its own, the second one 8.6%.
Answer. On the correlation circle, every
variable is strongly tied to the first axis. The second one depends
mainly on Mitoses – the only variable whose coordinate
on it is large.
The class was declared as a supplementary variable, so it played no part in building the axes. Nothing stops us from colouring the individuals by it afterwards – that is the whole point of declaring it supplementary.
Answer. The benign tumours form a very homogeneous group, the malignant ones a much more scattered one. The position on the first principal axis is related to the type of the tumour: the higher the value, the more likely the tumour is malignant.
round (tapply (pca$ind$coord [, 1], BreastCancer [, 10], mean), 2)
#> benign malignant
#> -1.57 2.99
round (tapply (pca$ind$coord [, 1], BreastCancer [, 10], sd), 2)
#> benign malignant
#> 0.69 1.60The two means are far apart, and the standard deviation of the malignant group is more than twice that of the benign one.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.