Strona internetowa o zbiorze Chickweight

Author

Karol Draga

1 Wstępny opis zbioru Chickweight

Zbiór danych został przedstawiony w książce „Analysis of Repeated Measures” z 1990 roku autorstwa Martina J. Crowdera i Davida J. Dane zostały zebrane przez studenta żywienia, aby przetestować wpływ białka w 4 rodzajach paszy na wczesny rozwój piskląt. 4 pasze to kontrola (dieta normalna) i 3 pasze testowe (10%, 20% i 40% zamiennik białka).

Weight - wektor liczbowy podający masę ciała pisklęcia (g).

Time - wektor liczbowy podający liczbę dni od urodzenia, kiedy dokonano pomiaru.

Chick - uporządkowany czynnik z poziomami 18 < … < 48 podający unikalny identyfikator pisklęcia.

Diet - czynnik z poziomami 1, …, 4 wskazujący, jaką eksperymentalną dietę otrzymało pisklę.

Przy wysokiej ilość obserwacji takich jak w ChickWeight możemy zwiększyć domyślny wypisywany ilość tesksty w rstudio wykożystująć funkcje:

{options(max.print = 10000)}

2 Obliczanie średnich

attach(ChickWeight)
head(ChickWeight)
  weight Time Chick Diet
1     42    0     1    1
2     51    2     1    1
3     59    4     1    1
4     64    6     1    1
5     76    8     1    1
6     93   10     1    1

Średnia dla przypożądkowanych Diet:

aggregate(weight~Diet,ChickWeight,mean)
  Diet   weight
1    1 102.6455
2    2 122.6167
3    3 142.9500
4    4 135.2627

Średnia dla poszczególnych przedziału czasowych oraz włączona z dietami:

aggregate(weight~Diet+Time,ChickWeight,mean)
   Diet Time    weight
1     1    0  41.40000
2     2    0  40.70000
3     3    0  40.80000
4     4    0  41.00000
5     1    2  47.25000
6     2    2  49.40000
7     3    2  50.40000
8     4    2  51.80000
9     1    4  56.47368
10    2    4  59.80000
11    3    4  62.20000
12    4    4  64.50000
13    1    6  66.78947
14    2    6  75.40000
15    3    6  77.90000
16    4    6  83.90000
17    1    8  79.68421
18    2    8  91.70000
19    3    8  98.40000
20    4    8 105.60000
21    1   10  93.05263
22    2   10 108.50000
23    3   10 117.10000
24    4   10 126.00000
25    1   12 108.52632
26    2   12 131.30000
27    3   12 144.40000
28    4   12 151.40000
29    1   14 123.38889
30    2   14 141.90000
31    3   14 164.50000
32    4   14 161.80000
33    1   16 144.64706
34    2   16 164.70000
35    3   16 197.40000
36    4   16 182.00000
37    1   18 158.94118
38    2   18 187.70000
39    3   18 233.10000
40    4   18 202.90000
41    1   20 170.41176
42    2   20 205.60000
43    3   20 258.90000
44    4   20 233.88889
45    1   21 177.75000
46    2   21 214.70000
47    3   21 270.30000
48    4   21 238.55556

3 Miary Klasyczne

3.1 Miary statystyczne w funkcji summary().

Na początku omówione zostaną podstawowe terminy ze statystyki, pokazane zostaną przez funkcję summary().

summary(ChickWeight)
     weight           Time           Chick     Diet   
 Min.   : 35.0   Min.   : 0.00   13     : 12   1:220  
 1st Qu.: 63.0   1st Qu.: 4.00   9      : 12   2:120  
 Median :103.0   Median :10.00   20     : 12   3:120  
 Mean   :121.8   Mean   :10.72   10     : 12   4:118  
 3rd Qu.:163.8   3rd Qu.:16.00   17     : 12          
 Max.   :373.0   Max.   :21.00   19     : 12          
                                 (Other):506          

Wyświetlone zostały takie wartości jak: minimum, maksimum, pierwszy i trzeci kwantyl, mediana oraz średnia dla wagi wszystkich obserwowanych podmiotów. Nastepnie w kolumnie time wyświetlone zostały te same mierniki tym razem dotyczyły czasu przeprowadzanych pomiarów Kolumna chicken informuje nas o danym identifikatoże dla konkretnego piskląta. W kolemnie Diet zostały wyświetlone informacje dotyczące ilość obserwacji przeprowadzone dla konkretnego Diety zaimplementowanej do piskląt. Numer 506 informuje nas o ilość obserwacji.

3.2 Dominanta

library(DescTools)
Mode(weight)
[1] 41
attr(,"freq")
[1] 20

Wyświetla najwiekszą ilość liczebność piskląt tej samej wagi w tym przypadku jest to 20 pisklaków o wadze 41

3.3 Wariacja

Wariacja dla konkretnych rodzaju zaimplementowanej diety:

var(weight[Diet=='1'])
[1] 3209.965
var(weight[Diet=='2'])
[1] 5127.633
var(weight[Diet=='3'])
[1] 7489.476
var(weight[Diet=='4'])
[1] 4737.392

3.4 Odchylenie standardowe

Odchylenie standardowe będzie liczone dla tych samych wartości co wariancja:

sd(weight[Diet=='1'])
[1] 56.65655
sd(weight[Diet=='2'])
[1] 71.60749
sd(weight[Diet=='3'])
[1] 86.54176
sd(weight[Diet=='4'])
[1] 68.82871

4 Wykresy

plot(ChickWeight$Time,ChickWeight$weight,xlab = 'time',ylab = 'weight')

Wykres przedstawia liczebność piskląt o określonej wadze przy konkretych pomiarach obserwacyjnych

4.1 Wykres pudełkowy

boxplot(weight ~ Diet, 
        data = ChickWeight, 
        main = "Wykres pudełkowy wagi kurczaków w podziale na diety",
        xlab = "Dieta",
        ylab = "Waga",
        col = c("blue", "green", "red", "orange"))

Wykres przedstawia liczbność wagi kurczaków dla konkretnego przydzielonego podziału na diety. Widzimi że na diecie 3 wystepuje najwiekszy rozrzut danych, wiec jest to najbardziej optymalna dieta do implementacji.

boxplot(weight ~ Time, 
        data = ChickWeight, 
        main = "Wykres pudełkowy wagi kurczaków w czasie",
        xlab = "Czas (dni)",
        ylab = "Waga",
        col = rainbow(21))

Wykres przedstawia rozrzut wagi kurczaków w czasie 21 dni obserwacji.

5 Histogramy

hist(x = ChickWeight$weight,
     xlab = "Waga",
     ylab = "liczba",
     main = "Podział na wage",
     col = rainbow(8))

Histogram przedstawiający wage dla wszystkich obserwacji.

par(mfrow = c(2, 2))

for (diet.i in 1:4) {
  
  hist(x = ChickWeight$weight[ChickWeight$Diet == diet.i],
       xlab = "waga",
       ylab = "liczba",
       xlim = c(0, 400),
       main = paste("Waga kurzczaka \nDiet ", diet.i, sep = "")
  )
  
}

Histogramy podzielone miedzy poszczególnymi obserwacji dla poszczególnych diet

6 Wykres liniowo porównawczy

Wykres linowy przedstawia zmiany wagi dla każdego kurczaka w określonym czasie podzielonego na odpowiednie diety. Pogróbioną linią zaznaczone jest średnia waga kurczaków na przestrzeni czasu. Jak można zauważyć najwyżej położona jest średnia dla diet 3 (najbardziej optymalna do implementacji) W niektórych przypadkach pisklaki nie dochądzą do 21 dni obserwacji

library(ggplot2)

ggplot(ChickWeight, aes(x = Time, y = weight, color = Diet, group = interaction(Diet, Chick))) +
  geom_point(alpha = 0.5) +  
  geom_line(alpha = 0.7) +   
  stat_summary(fun = median, geom = "line", aes(group = Diet), size = 1.2) + 
  labs(
    title = "Waga kurczaka w czasie",
    x = "dni",
    y = "Waga",
    color = "Diet"
  ) +
  theme_minimal()

7 Wykres Gestość

Wykres przedstawia Gestość dla poszczególnych masy kurczaków

ggplot(ChickWeight, aes(x = weight, fill = Diet)) +
  geom_density(alpha = 0.5) + 
  labs(
    title = "Wykres gęstości masy kurczaków",
    x = "Waga",
    y = "Gęstość",
    fill = "Diet"
  ) +
  theme_minimal()

8 Podsumowanie

Na stronie internetowej zostało pokazane wiele różnych sposobów analizowanych danych ze zbioru Chickweight. Przedstawione zostały metody obliczania niektórych miar dzięki językowi R, a także ich graficzne prezentowanie.