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.

  1. 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.

  1. 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ą.

  1. 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”).