Zależność między zmiennymi ilościowymi

Do okreslania zalezności liniowej między zmiennymi ilościowymi wykorzystywany jest Współczynnik korelacji liniowej Pearsona. Współczynnik ten określa poziom zależności liniowej między zmiennymi losowymi. Wartość współczynnika korelacji mieści się w przedziale domkniętym [-1, 1]. Im większa jest jego wartość bezwzględna, tym silniejsza jest zależność liniowa między zmiennymi. 0 - oznacza brak liniowej zależność, 1 – oznacza zależność dodatnią, a -1 – oznacza zależność ujemną między cechami. Założeniem przy wykorzystaniu współczynnika jest normalność rozkładu zmiennych. W przypadku braku spełnienia tego załozenia można wykorzystać np. Współczynnik korelacji rang Spearmana.

library(ggplot2)
library(vcd)
library(stats)

x=c(1:20)
y = 2*x-1

dane<-data.frame(x = x,
                 y = y)
ggplot(dane, aes(y=y, x=x))+
  geom_point(size = 3, col="red") +
  geom_smooth(method = lm, se=FALSE)

cor(dane$x, dane$y)
## [1] 1
y = log(x)
dane<-data.frame(x = x,
                 y = y)
ggplot(dane, aes(y=y, x=x))+
  geom_point(size = 3, col="red") +
  geom_smooth(method = lm, se=FALSE)

cor(dane$x, dane$y)
## [1] 0.9313087
x<-c(-10:10)
y<-x^2
dane<-data.frame(x = x,
                 y = y)
ggplot(dane, aes(y=y, x=x))+
  geom_point(size = 3, col="red") +
  geom_smooth(method = lm, se=FALSE)

cor(dane$x, dane$y)
## [1] 0

Zależność między zmiennymi jakościowymi

Jednym z najpopularniejszych testów wykorzystywanych do badania zależności między zmiennymi jakościowymi jest Test niezależności chi-kwadrat. Stosuje się go w celu sprawdzenia, czy między dwiema zmiennymi jakościowymi występuje istotna statystycznie zależność. Bazuje on na porównywaniu ze sobą liczebności obserwowanych, tj. takich, które uzyskaliśmy w badaniu, z liczebnościami oczekiwanymi, tj. takimi, które zakłada test, gdyby nie było żadnego związku między zmiennymi. Jeżeli różnica pomiędzy liczebnościami obserwowanymi a oczekiwanymi jest duża (istotna statystycznie) to można uznać, że zachodzi zależność między jedną zmienną a drugą. Test chi-kwadrat pozwala stwierdzić fakt istnienia zależności. Miarami pozwalajacymi określić siłę tej zależności są wspólczynniki: Fi-Yule’a, C-Pearsona, V Cramera. Współczynnik V Cramera przyjmuje wartości z przedziału [0; 1]

dane<-data.frame(plec = c(rep("M", 30), rep("K", 30)),
                 oczy = c(rep("brazowe", 30), rep("niebieskie", 30))
                 )

tab<-xtabs(~plec+oczy, data = dane)
tab
##     oczy
## plec brazowe niebieskie
##    K       0         30
##    M      30          0
assocstats(tab)
##                     X^2 df   P(> X^2)
## Likelihood Ratio 83.178  1 0.0000e+00
## Pearson          60.000  1 9.4369e-15
## 
## Phi-Coefficient   : 1 
## Contingency Coeff.: 0.707 
## Cramer's V        : 1
dane<-data.frame(plec = c(rep("M", 30), rep("K", 30)),
                 zawod = c(rep("hydraulik", 18), rep("kierowca", 12),
                           rep("nauczycielka", 22),
                           rep("polozna", 8))
)

tab<-xtabs(~zawod+plec, data = dane)
tab
##               plec
## zawod           K  M
##   hydraulik     0 18
##   kierowca      0 12
##   nauczycielka 22  0
##   polozna       8  0
assocstats(tab)
##                     X^2 df   P(> X^2)
## Likelihood Ratio 83.178  3 0.0000e+00
## Pearson          60.000  3 5.8786e-13
## 
## Phi-Coefficient   : NA 
## Contingency Coeff.: 0.707 
## Cramer's V        : 1
dane<-data.frame(wlosy = c(rep("blond", 10), rep("brazowe", 20), rep("czarne", 10)),
                 oczy = c(rep("niebieskie", 10), rep("piwne", 20), rep("zielone", 10)))


tab<-xtabs(~wlosy+oczy, data = dane)
tab
##          oczy
## wlosy     niebieskie piwne zielone
##   blond           10     0       0
##   brazowe          0    20       0
##   czarne           0     0      10
assocstats(tab)
##                     X^2 df   P(> X^2)
## Likelihood Ratio 83.178  4 0.0000e+00
## Pearson          80.000  4 2.2204e-16
## 
## Phi-Coefficient   : NA 
## Contingency Coeff.: 0.816 
## Cramer's V        : 1
dane<-data.frame(plec = c(rep("M", 30), rep("K", 30)),
                 oczy = c(rep("brazowe", 15), rep("niebieskie", 30), rep("brazowe", 15)))

tab<-xtabs(~plec+oczy, data = dane)
tab
##     oczy
## plec brazowe niebieskie
##    K      15         15
##    M      15         15
assocstats(tab)
##                  X^2 df P(> X^2)
## Likelihood Ratio   0  1        1
## Pearson            0  1        1
## 
## Phi-Coefficient   : 0 
## Contingency Coeff.: 0 
## Cramer's V        : 0

Zależność między zmienną jakościową a ilościową

Każdą zmienną ilosciową można zdyskretyzować, dzieląc ją na pewną liczbę podprzedziałów i analizując zależność pomiedzy przedziałami z wykorzystaniem np. testu chi-kwadrat. Innym sposobem badania zalezności jest wykorzystanie testu t-Studenta do porównania dwóch średnich między sobą - np. czy istnieje statystyczna różnica między wzrostem kobiet i mężczyzn. Warunkiem zastsowania testu t-Studenta jest rozkłąd normalny zmiennej ilościowej. W przypadku braku spełnienia tego założenia można wykorzystać Test U Manna-Whitneya. Test ten służy do weryfikacji hipotezy o nieistotności różnic pomiędzy medianami badanej zmiennej w dwóch populacjach. Test ten jest odpowiednikiem klasycznego testu t-Studenta dla prób niepowiązanych. Miarą tendencji centralnej dla tego testu jest nie średnia jak w przypadków testów t, a mediana.Hipoteza zerowa zakłada, iż próby pochodzą z jednej populacji, wobec hipotezy alternatywnej mówiącej o tym, iż próby pochodzą z różnych populacji.

dane<-data.frame(plec = c(rep("K", 15), rep("M", 15)),
                 ocena = c(rep(2:6, 6)))
table(dane$plec, dane$ocena)
##    
##     2 3 4 5 6
##   K 3 3 3 3 3
##   M 3 3 3 3 3
ggplot(dane, aes(x = plec, y=ocena, fill = plec)) +
  geom_boxplot()

wilcox.test(ocena~plec, data = dane)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  ocena by plec
## W = 112.5, p-value = 1
## alternative hypothesis: true location shift is not equal to 0
dane<-data.frame(plec = c(rep("K", 15), rep("M", 15)),
                 ocena = c(rep(2:4, 5), rep(4:6, 5)))
table(dane$plec, dane$ocena)
##    
##     2 3 4 5 6
##   K 5 5 5 0 0
##   M 0 0 5 5 5
ggplot(dane, aes(x = plec, y=ocena, fill = plec)) +
  geom_boxplot()

wilcox.test(ocena~plec, data = dane)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  ocena by plec
## W = 12.5, p-value = 2.192e-05
## alternative hypothesis: true location shift is not equal to 0