123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- <?php
- namespace MathPHP\SampleData;
- /**
- * ToothGrowth data set (The Effect of Vitamin C on Tooth Growth in Guinea Pigs)
- *
- * The response is the length of odontoblasts (cells responsible for tooth growth) in 60 guinea pigs.
- * Each animal received one of three dose levels of vitamin C (0.5, 1, and 2 mg/day) by one of two delivery methods,
- * orange juice or ascorbic acid (a form of vitamin C and coded as VC).
- *
- * 60 observations on 3 variables: tooth length, supplement type (VC or OJ), and dose in milligrams/day
- * R ToothGrowth
- *
- * Source: C. I. Bliss (1952) The Statistics of Bioassay. Academic Press.
- */
- class ToothGrowth
- {
- private const LABELS = ['len', 'supp', 'dose'];
- private const DATA = [
- [4.2, 'VC', 0.5],
- [11.5, 'VC', 0.5],
- [7.3, 'VC', 0.5],
- [5.8, 'VC', 0.5],
- [6.4, 'VC', 0.5],
- [10.0, 'VC', 0.5],
- [11.2, 'VC', 0.5],
- [11.2, 'VC', 0.5],
- [5.2, 'VC', 0.5],
- [7.0, 'VC', 0.5],
- [16.5, 'VC', 1.0],
- [16.5, 'VC', 1.0],
- [15.2, 'VC', 1.0],
- [17.3, 'VC', 1.0],
- [22.5, 'VC', 1.0],
- [17.3, 'VC', 1.0],
- [13.6, 'VC', 1.0],
- [14.5, 'VC', 1.0],
- [18.8, 'VC', 1.0],
- [15.5, 'VC', 1.0],
- [23.6, 'VC', 2.0],
- [18.5, 'VC', 2.0],
- [33.9, 'VC', 2.0],
- [25.5, 'VC', 2.0],
- [26.4, 'VC', 2.0],
- [32.5, 'VC', 2.0],
- [26.7, 'VC', 2.0],
- [21.5, 'VC', 2.0],
- [23.3, 'VC', 2.0],
- [29.5, 'VC', 2.0],
- [15.2, 'OJ', 0.5],
- [21.5, 'OJ', 0.5],
- [17.6, 'OJ', 0.5],
- [9.7, 'OJ', 0.5],
- [14.5, 'OJ', 0.5],
- [10.0, 'OJ', 0.5],
- [8.2, 'OJ', 0.5],
- [9.4, 'OJ', 0.5],
- [16.5, 'OJ', 0.5],
- [9.7, 'OJ', 0.5],
- [19.7, 'OJ', 1.0],
- [23.3, 'OJ', 1.0],
- [23.6, 'OJ', 1.0],
- [26.4, 'OJ', 1.0],
- [20.0, 'OJ', 1.0],
- [25.2, 'OJ', 1.0],
- [25.8, 'OJ', 1.0],
- [21.2, 'OJ', 1.0],
- [14.5, 'OJ', 1.0],
- [27.3, 'OJ', 1.0],
- [25.5, 'OJ', 2.0],
- [26.4, 'OJ', 2.0],
- [22.4, 'OJ', 2.0],
- [24.5, 'OJ', 2.0],
- [24.8, 'OJ', 2.0],
- [30.9, 'OJ', 2.0],
- [26.4, 'OJ', 2.0],
- [27.3, 'OJ', 2.0],
- [29.4, 'OJ', 2.0],
- [23.0, 'OJ', 2.0],
- ];
- /**
- * Raw data without labels
- * [[4.2, 'VC', 0.5], [11.5, 'VC', '0.5], ... ]
- *
- * @return mixed[]
- */
- public function getData(): array
- {
- return \array_values(self::DATA);
- }
- /**
- * Raw data with each observation labeled
- * [['len' => 4.2, 'supp' => 'VC', 'dose' => 0.5], ... ]
- *
- * @return array<array<string, float|string>>
- */
- public function getLabeledData(): array
- {
- return \array_map(
- function (array $data) {
- return \array_combine(self::LABELS, $data);
- },
- self::DATA
- );
- }
- /**
- * Tooth length observations
- *
- * @return float[]
- */
- public function getLen(): array
- {
- return \array_column(self::DATA, 0);
- }
- /**
- * Supplement type (VC or OJ) observations
- *
- * @return string[]
- */
- public function getSupp(): array
- {
- return \array_column(self::DATA, 1);
- }
- /**
- * Dose in milligrams/day observations
- *
- * @return float[]
- */
- public function getDose(): array
- {
- return \array_column(self::DATA, 2);
- }
- }
|