library(ggplot2)
library(tidyr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
Testy parametryczne wymagają spełnienia określonych założeń:
Testy nieparametryczne:
Stosowany gdy próby są od siebie niezależne: wyniki pomiaru jednej grupy nie zależą od wyników pomiaru drugiej grupy
<- readRDS("dane/temp.rds")
dane head(dane)
## data name daily_temp
## 1 2014-01-01 POZNAN 0.38800000
## 2 2014-01-01 SUWALKI -0.49583333
## 3 2014-01-02 POZNAN 0.04473684
## 4 2014-01-02 SUWALKI 0.37500000
## 5 2014-01-03 POZNAN 4.29166667
## 6 2014-01-03 SUWALKI 1.27916667
ggplot(dane, aes(name, daily_temp)) + geom_boxplot() +
ylab('Średnia temperatura dobowa (st. C)') + xlab("Miasto")
Średnia temperatura w Poznaniu i Suwałkach
<- group_by(dane, name)
by_name <- summarise(by_name, srednia = mean(daily_temp))
smr smr
## # A tibble: 2 x 2
## name srednia
## <fct> <dbl>
## 1 POZNAN 10.4
## 2 SUWALKI 7.82
Różnica w średniej temperaturze Poznania i Suwałk
1,2] - smr[2,2] smr[
## srednia
## 1 2.553459
Hipoteza zerowa: \(H_{0}: \mu_{1} = \mu_{2}\) (prawdziwa różnica w średnich jest równa 0)
Hipoteza alternatywna:
t.test(daily_temp~name, data = dane)
##
## Welch Two Sample t-test
##
## data: daily_temp by name
## t = 4.0671, df = 710.95, p-value = 5.293e-05
## alternative hypothesis: true difference in means between group POZNAN and group SUWALKI is not equal to 0
## 95 percent confidence interval:
## 1.320831 3.786087
## sample estimates:
## mean in group POZNAN mean in group SUWALKI
## 10.375648 7.822189
Poziom prawdopodobieństwa p (p-wartość) - jest to wyliczany w pakietach komputerowych najmniejszy poziom istotności, przy której wyliczona wartość testującej statystyki doprowadza do odrzucenia hipotezy zerowej.
Jeśli p-wartość jest poniżej założonego poziomu istotności (np. 0.05) tzn. że hipotezę zerową możemy odrzucić na rzecz hipotezy alternatywnej.
W powyższym przykładzie:
Pytanie: Czy średnia temperatura powietrza w Poznaniu i Suwałkach różni się istotnie?
Odpowiedź: Średnia temperatura w Poznaniu oraz Suwałkach różni się istotnie.
t.test(daily_temp~name, data = dane, alternative = 'greater')
##
## Welch Two Sample t-test
##
## data: daily_temp by name
## t = 4.0671, df = 710.95, p-value = 2.646e-05
## alternative hypothesis: true difference in means between group POZNAN and group SUWALKI is greater than 0
## 95 percent confidence interval:
## 1.519419 Inf
## sample estimates:
## mean in group POZNAN mean in group SUWALKI
## 10.375648 7.822189
t.test(daily_temp~name, data = dane, alternative = 'less')
##
## Welch Two Sample t-test
##
## data: daily_temp by name
## t = 4.0671, df = 710.95, p-value = 1
## alternative hypothesis: true difference in means between group POZNAN and group SUWALKI is less than 0
## 95 percent confidence interval:
## -Inf 3.5875
## sample estimates:
## mean in group POZNAN mean in group SUWALKI
## 10.375648 7.822189
W przypadku hipotezy alternatywnej (alternative = “less”) otrzymaliśmy wynik nieistotny statystycznie (p-value = 1).
Dane cardata2.csv zawierają wyniki pomiarów zużycia paliwa (w milach per galon, zmienna mpg) dla aut z Europy oraz USA (zmienna origin). Czy średnia ilość mil przejechanych na jednym galonie paliwa różni się istotnie statystycznie między autami z Europy i USA?
Test ten stosuje się, gdy mamy dwie serie wyników dla tych samych elementów (próby powiązane) w różnym czasie (np. wyniki badań przed i po podaniu leku)
Stosowany do określenia wielkości zmian między pomiarami.
<- readRDS("dane/twp.rds")
twp head(twp)
## data rok TwP
## 1 1/1/2007 2007 5.4
## 2 1/2/2007 2007 5.6
## 3 1/3/2007 2007 5.4
## 4 1/4/2007 2007 5.7
## 5 1/5/2007 2007 6.3
## 6 1/6/2007 2007 6.3
ggplot(twp, aes(as.factor(rok), TwP)) + geom_boxplot()
<- aggregate(TwP~rok, data=twp, FUN="mean", na.rm=TRUE)
s s
## rok TwP
## 1 2007 8.551507
## 2 2009 7.951589
$TwP[1]-s$TwP[2] s
## [1] 0.5999178
t.test(TwP~rok, data = twp, paired=TRUE)
##
## Paired t-test
##
## data: TwP by rok
## t = 5.0176, df = 364, p-value = 8.199e-07
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 0.3647975 0.8350381
## sample estimates:
## mean of the differences
## 0.5999178
Jeśli wartość p jest poniżej założonego poziomu istotności tzn. że istnieją istotne różnice w średnich w dwóch grupach.
Grupie 20 pacjentów zmierzono ciśnienie tętnicze krwi, przed i po wysiłku. przed = c(63, 77 ,64 ,96 ,66 ,97 ,72 ,66 ,88 ,91 ,68 ,92 ,76 ,80 ,68 ,86 ,70 ,88 ,70 ,65) po = c(127, 153, 127, 156, 126, 265, 138, 149, 159, 142, 112, 141, 147, 137, 116, 145, 121, 154, 143, 142) Pytanie 1. Czy ciśnienie krwi jest istotnie statystycznie wyższe po wysiłku? Pytanie 2. Czy ciśnienie tętnicze krwi przed i po wysiłku różni się istotnie.
#otworzyć dane cardata
<- read.csv("dane/cardata2.csv", header = TRUE)
cardata
names(cardata)
## [1] "mpg" "cylinders" "displace" "horsepower" "accel"
## [6] "year" "weight" "origin" "make" "model"
## [11] "price"
Zmienne:
Zamienić zmienną cylinders na zmienną kategoryzowaną (cylinder)
$cylinder <- as.factor(cardata$cylinders) cardata
Obliczyć statystyki opisowe względem grupy origin – pochodzenie samochodu.
aggregate(horsepower~origin, cardata, summary)
## origin horsepower.Min. horsepower.1st Qu. horsepower.Median horsepower.Mean
## 1 Europa 48.00000 67.00000 74.00000 78.45833
## 2 USA 63.00000 84.00000 90.00000 98.32530
## horsepower.3rd Qu. horsepower.Max.
## 1 82.00000 133.00000
## 2 110.00000 165.00000
aggregate(accel~origin, cardata, summary)
## origin accel.Min. accel.1st Qu. accel.Median accel.Mean accel.3rd Qu.
## 1 Europa 13.60000 15.15000 15.80000 17.75385 20.32500
## 2 USA 11.20000 14.40000 15.80000 15.90941 17.30000
## accel.Max.
## 1 24.80000
## 2 22.20000
Zwrócić uwagę, że w Europie jest 26 samochodów. Zatem do porównania należy zastosować testy nieparametryczne.
wilcox.test(horsepower ~ origin, data=cardata)
##
## Wilcoxon rank sum test with continuity correction
##
## data: horsepower by origin
## W = 488, p-value = 0.0001479
## alternative hypothesis: true location shift is not equal to 0
wilcox.test(accel ~ origin, data=cardata)
##
## Wilcoxon rank sum test with continuity correction
##
## data: accel by origin
## W = 1374, p-value = 0.06147
## alternative hypothesis: true location shift is not equal to 0
Odp. Nie. P-value (0,06147) > 0,05.
Używając danych gapminder dla 2007 roku określ czy średnia wartość gdpPercap różni się istotnie między Ameryką oraz Azją?
Używając danych gapminder określ czy wartość lifeExp różni się istotnie między Ameryką oraz Azją? Przedstaw wyniki w postaci testu statystycznego oraz odpowiedniej wizualizacji.
(z książki Andrzeja Stanisza „Przystępny kurs statystyki w oparciu o program STATISTICA PL na przykładach z medycyny”) Przeprowadzono badanie tętna u 20 osób przed i po krótkim (trwającym 3 min) wysiłku fizycznym. Otrzymane dane z uwzględnieniem płci zestawiono w tabeli. Czy otrzymane wyniki przeczą hipotezie, że wysiłek wpływa na przyspieszenie tętna?
<- read.csv("dane/tetno.csv") tetno
wilcox.test(tetno$Tętno_1, tetno$Tętno_2, paired = TRUE)
## Warning in wilcox.test.default(tetno$Tętno_1, tetno$Tętno_2, paired = TRUE):
## cannot compute exact p-value with ties
##
## Wilcoxon signed rank test with continuity correction
##
## data: tetno$Tętno_1 and tetno$Tętno_2
## V = 0, p-value = 9.516e-05
## alternative hypothesis: true location shift is not equal to 0
Otrzymane dla testu Wilcoxona wyniki potwierdzają, że hipotezę o równości rozkładów zmiennych Tetno_1 oraz Tetno_2 należy odrzucić i to z prawdopodobieństwem popełnienia błędu na poziomie p= 9.516e-05 (tj. p= 0.00009516).
Porównać wyniki tętna przed i po wysiłku.
W tym celu potrzebujemy dane w postaci Tętno…Zmienna kategoryzujaca (przed/po).
<- pivot_longer(tetno, cols=c("Tętno_1", "Tętno_2")) dane_tetno
ggplot(data = dane_tetno, aes(name, value)) + geom_boxplot() + ylab("Tętno") + xlab("grupa") + ggtitle("Porównanie tętna u grupy pacjentów przed i po wysiłku")
Używając danych gapminder porównaj oczekiwaną długość trwania życia (lifeExp) między rokiem 1987 a 2007. Wykonaj odpowiednią wizualizację oraz przedstaw wyniku testu statystycznego. Czy długość trwania życia między rokiem 1987 a 2007 różni się isotnie statystycznie?
Używając danych gapminder porównaj wartość PKB na osobę (gdpPercap) pomiędzy krajami Europy między rokiem 1977 a 1987. Przedstaw wyniki w formie graficznej oraz wykonaj odpowiedni test statystyczny. Jaki wynik dał test? (Czy między tymi latami istnieje różnica w PKB na osobę?)