data(PlantGrowth)
head(PlantGrowth)
weight group
1 4.17 ctrl
2 5.58 ctrl
3 5.18 ctrl
4 6.11 ctrl
5 4.50 ctrl
6 4.61 ctrl
Zbiór danych PlantGrowth zawiera informacje o wzroście roślin w zależności od zastosowanego typu odżywki. Eksperyment miał na celu sprawdzenie, czy zastosowanie różnych typów nawozów wpływa na masę rośliny. Analiza tego zbioru pozwala zrozumieć wpływ różnych czynników na rozwój roślin.
Informacje o zbiorze: - Zbiór danych zawiera 30 obserwacji.
Zmienna zależna: masa rośliny (weight
).
Zmienna grupująca: typ odżywki (group
).
ctrl (kontrola, bez odżywki),
trt1 (pierwszy typ odżywki),
trt2 (drugi typ odżywki).
data(PlantGrowth)
head(PlantGrowth)
weight group
1 4.17 ctrl
2 5.58 ctrl
3 5.18 ctrl
4 6.11 ctrl
5 4.50 ctrl
6 4.61 ctrl
summary(PlantGrowth)
weight group
Min. :3.590 ctrl:10
1st Qu.:4.550 trt1:10
Median :5.155 trt2:10
Mean :5.073
3rd Qu.:5.530
Max. :6.310
str(PlantGrowth)
'data.frame': 30 obs. of 2 variables:
$ weight: num 4.17 5.58 5.18 6.11 4.5 4.61 5.17 4.53 5.33 5.14 ...
$ group : Factor w/ 3 levels "ctrl","trt1",..: 1 1 1 1 1 1 1 1 1 1 ...
boxplot(weight ~ group, data = PlantGrowth,
main = "Porównanie masy roślin w grupach",
xlab = "Typ odżywki", ylab = "Masa rośliny (g)",
col = c("lightblue", "darkblue", "blue"))
hist(PlantGrowth$weight,
main = "Histogram masy roślin",
xlab = "Masa rośliny (g)",
col = "skyblue",
border = "white")
library(dplyr)
Dołączanie pakietu: 'dplyr'
Następujące obiekty zostały zakryte z 'package:stats':
filter, lag
Następujące obiekty zostały zakryte z 'package:base':
intersect, setdiff, setequal, union
<- PlantGrowth %>%
srednie group_by(grupa = group) %>%
summarise(srednia_masa = mean(weight),
odchylenie_standardowe = sd(weight),
liczebnosc = n(),
blad_standardowy = odchylenie_standardowe / sqrt(liczebnosc))
<- srednie %>%
srednie mutate(dolny_przedzial = srednia_masa - qt(0.975, df = liczebnosc - 1) * blad_standardowy,
gorny_przedzial = srednia_masa + qt(0.975, df = liczebnosc - 1) * blad_standardowy)
srednie
# A tibble: 3 × 7
grupa srednia_masa odchylenie_standardowe liczebnosc blad_standardowy
<fct> <dbl> <dbl> <int> <dbl>
1 ctrl 5.03 0.583 10 0.184
2 trt1 4.66 0.794 10 0.251
3 trt2 5.53 0.443 10 0.140
# ℹ 2 more variables: dolny_przedzial <dbl>, gorny_przedzial <dbl>
library(ggplot2)
ggplot(srednie, aes(x = grupa, y = srednia_masa, fill = grupa)) +
geom_bar(stat = "identity", color = "black", width = 0.6) +
geom_errorbar(aes(ymin = dolny_przedzial, ymax = gorny_przedzial),
width = 0.2, color = "black") +
labs(title = "Średnia masa roślin z przedziałami ufności",
x = "Grupa", y = "Średnia masa rośliny (g)") +
scale_fill_manual(values = c("lightblue", "blue", "darkblue")) +
theme_minimal()
ANOVA bada, czy istnieją statystycznie istotne różnice między grupami.
<- aov(weight ~ group, data = PlantGrowth)
anova_result summary(anova_result)
Df Sum Sq Mean Sq F value Pr(>F)
group 2 3.766 1.8832 4.846 0.0159 *
Residuals 27 10.492 0.3886
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Suma kwadratów (Sum Sq): Mierzy całkowitą zmienność w danych, która jest rozkładana na część wyjaśnioną przez model (grupy) oraz część błędu.
Średnia suma kwadratów (Mean Sq): Obliczana przez podzielenie sumy kwadratów przez stopnie swobody. To miara rozrzutu.
F-statystyka (F value): Testuje, czy zmienność między grupami jest większa niż zmienność wewnątrz grup. Duża wartość F sugeruje, że różnice między grupami są istotne.
Wartość p (Pr(>F)): Ocenia, czy F-statystyka jest statystycznie istotna. Jeśli wartość p jest mniejsza niż 0.05, odrzucamy hipotezę zerową, co oznacza, że średnie różnią się między grupami w sposób statystycznie istotny.
Test Tukeya pozwala na identyfikację par grup, które różnią się istotnie.
<- TukeyHSD(anova_result)
tukey_result tukey_result
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = weight ~ group, data = PlantGrowth)
$group
diff lwr upr p adj
trt1-ctrl -0.371 -1.0622161 0.3202161 0.3908711
trt2-ctrl 0.494 -0.1972161 1.1852161 0.1979960
trt2-trt1 0.865 0.1737839 1.5562161 0.0120064
Różnica: Określa, o ile różnią się średnie między grupami.
Dolny przedział i Górny przedział: Określają zakres, w którym spodziewamy się prawdziwej różnicy średnich z 95% pewnością.
Wartość p: Pokazuje, czy różnica jest statystycznie istotna. Jeśli wartość p jest mniejsza niż 0.05, różnica jest statystycznie istotna.
<- as.data.frame(tukey_result$group)
tukey_df
ggplot(tukey_df, aes(x = diff, y = rownames(tukey_df))) +
geom_point(color = "darkblue") +
geom_errorbarh(aes(xmin = lwr, xmax = upr), height = 0.2, color = "darkblue") +
labs(title = "Wyniki testu Tukeya",
x = "Różnica średnich mas roślin (g)",
y = "Porównanie grup") +
theme_minimal()
Zbiór danych PlantGrowth pozwala na analizę wpływu różnych typów odżywek na wzrost roślin. Powyższe obliczenia i wykresy ukazują, że:
Typ odżywki ma istotny wpływ na wzrost roślin.
Test ANOVA wykazał istotne różnice między grupami.
Test Tukeya pomógł określić, które grupy różnią się od siebie w sposób statystycznie istotny.