Wnioskowanie statystyczne
Testy na 2 próby
Challenge 1.
Czy to prawda, że kwoty kredytów (amount) różnią się istotnie ze względu na ryzyko kredytowe (credit_risk)?
UWAGA: jeśli założenie o normalności rozkładu nie jest spełnione - musimy zastosować nieparametryczny zamiennik testu t (test rang Wilcoxona; type=“np”). Proszę zajrzeć do notatek z wykładu i przeczytać na czym polegają te testy.
data(GermanCredit)
attach(GermanCredit)
ggqqplot(amount[credit_risk=="good"])ggqqplot(amount[credit_risk=="bad"])# testy normalności wg ryzyka:
GermanCredit %>%
group_by(credit_risk) %>%
shapiro_test(amount)## # A tibble: 2 × 4
## credit_risk variable statistic p
## <fct> <chr> <dbl> <dbl>
## 1 good amount 0.808 5.18e-28
## 2 bad amount 0.814 2.84e-18
ggbetweenstats(
data=GermanCredit,
x=credit_risk,
y=amount,
type="np", # dane nie są normalne więc korzystam z testu nieparametrycznego!!!
k=4 # 4 cyfry po przecinku
)Na podstawie wykresów i testu Shapiro-Wilka można stwierdzić, że rozkład kwoty kredytów w zależności od ryzyka nie jest normalny. Z tego powodu musimy skorzystać z testu nieparametrycznego (type = “np”).
Na podstawie wykresu i wyniku testu możemy odrzucić hipotezę zerową (p < alfa), zatem można powiedzieć, że kwoty kredytów istotnie różnią się w zależności od ryzyka kredytowego.
Challenge 2.
Do analizy wykorzystamy dane z portalu IMDB.
Zweryfikujmy hipotezę, że dramaty mają lepsze recenzje niż komedie romantyczne.
Mając 2 niezależne próby, musimy sprawdzić, czy rozkłady w obu przypadkach są normalne, a wariancja jednorodna (na tym samym poziomie), aby użyć testu t-Studenta.
- Sprawdźmy normalność oceny.
# Wykresy normalności rozkładu
ggqqplot(rating[genre == "Drama"])ggqqplot(rating[genre == "RomCom"])# Test Shapiro-Wilka do zbadania normalności rozkładu
shapiro.test(rating[genre == "Drama"])##
## Shapiro-Wilk normality test
##
## data: rating[genre == "Drama"]
## W = 0.97931, p-value = 8.63e-06
shapiro.test(rating[genre == "RomCom"])##
## Shapiro-Wilk normality test
##
## data: rating[genre == "RomCom"]
## W = 0.97168, p-value = 0.0005556
Na podstawie wykresów i testu Shapiro-Wilka normalności rozkładu zakładamy, że rozkład nie jest normalny (w obu przypadkach p < alfa).
Kolejnym krokiem jest zbadanie jednorodności wariancji w obu przypadkach.
- Sprawdźmy teraz, czy wariancja jest jednorodna:
var(rating[genre == "Drama"])## [1] 1.151674
var(rating[genre == "RomCom"]) # wyższa wariancja## [1] 1.140094
var.test(rating[genre=="RomCom"], rating[genre=="Drama"])##
## F test to compare two variances
##
## data: rating[genre == "RomCom"] and rating[genre == "Drama"]
## F = 0.98994, num df = 194, denom df = 427, p-value = 0.9465
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.7825748 1.2661076
## sample estimates:
## ratio of variances
## 0.9899448
Jak widać, oceny obu gatunków filmowych mają wariancję jednorodną.
- Wreszcie wiemy, który test jest najbardziej odpowiedni do weryfikacji naszego twierdzenia. Obliczmy statystykę testu i wartość p:
t.test(rating[genre=="RomCom"], rating[genre=="Drama"], paired = FALSE, alternative = "two.sided")##
## Welch Two Sample t-test
##
## data: rating[genre == "RomCom"] and rating[genre == "Drama"]
## t = -7.5389, df = 377.35, p-value = 3.56e-13
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.8782618 -0.5149014
## sample estimates:
## mean of x mean of y
## 5.856923 6.553505
Możemy również wizualizować i obliczać ten test za pomocą pakietu ggstatsplot przy użyciu funkcji “???”:
movies_long %>%
filter(genre %in% c("Drama", "RomCom")) %>%
ggbetweenstats(
y=rating,
x=genre,
type="np"
)
H0 - Dramaty i komedie romantyczne mają takie same recenzje H1 - Dramaty
i komedie romantyczne mają różne recenzje
Na podstawie testu i wykresu można odrzucić hipotezę zerową (p << alfa) i przyjąć założenie, że oceny w przypadku dramatów i komedii romantycznych są istotnie różne.
Challenge 3.
Również na podstawie danych “germancredit”: zweryfikuj, czy jest jakaś podstawa do twierdzenia, że % osób ze złą historią kredytową (credit_history) różni się istotnie dla osób wnioskujących o kredyt z innego powodu (“purpose”).
ggpiestats(data=GermanCredit,
y=credit_history,
x=purpose
)Wnioski:
H0: Procent osób ze złą historią kredytową (credit_history) nie różni się znacząco dla osób wynioskujących o kredyt z innego powodu (“purpose”)
H1: Procent osób ze złą historią kredytową (credit_history) różni się znacząco dla osób wynioskujących o kredyt z innego powodu (“purpose”)
p << alfa, zatem odrzucamy hipotezę zerową na rzecz hipotezy alternatywnej, więc % osób ze złą historią kredytową różni się istotnie w zależności od powodu wnioskowania o kredyt (“purpose”).