Vodstvo želi povečati produktivnost zaposlenih z izboljšanjem njihovih veščin kvantitativne analize podatkov. Oddelek za usposabljanje zaposlenih je našel agencijo, ki ponuja tri različne tečaje, ki bi lahko izboljšali veščine zaposlenih. Ker podjetje ni vedelo, kateri tečaj bi bil najboljši za njegove zaposlene, je poslalo 10 zaposlenih na tečaj A, 10 zaposlenih na tečaj B in 10 zaposlenih na tečaj C. Ko so se zaposleni vrnili s tečaja, so vsi dobili isti projekt za delo v programu R.
enota: ZAPOSLEN velikost vzorca: 30 spr: ČAS porabljen za reševanje problema, VRSTA TEČAJA (a, b, c)- faktorska spremenljivka
ONE-WAY ANOVA - ENOFAKTORSKA ANALIZA VARIANCE H0: povp. A = povp B = povp C H1: Vsaj ena je drugačna
PREDPOSTAVKE: - št spremenljivka - čas se v vsaki skupini porazdeljuje normalno (grafično ali Shapiro-wilkov prizkus) - homoskedastičnot (daso variance spr. časa enake v vseh skupinah)- preverjamo z LEVENOVIM preizkusom
library(readxl)
podatki <- read_xlsx("./Spretnosti.xlsx")
podatki <- as.data.frame(podatki)
head(podatki)
## ID Cas Tecaj
## 1 1 59 A
## 2 2 50 A
## 3 3 45 A
## 4 4 55 A
## 5 5 35 A
## 6 6 28 A
Opis:
podatki$TecajF <- factor(podatki$Tecaj,
levels = c("A", "B", "C"),
labels = c("A", "B", "C"))
library(psych)
##
## Attaching package: 'psych'
## The following object is masked from 'package:onewaytests':
##
## describe
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
## The following object is masked from 'package:car':
##
## logit
describeBy(podatki$Cas, podatki$TecajF)
##
## Descriptive statistics by group
## group: A
## vars n mean sd median trimmed mad min max range skew
## X1 1 10 41.5 10.56 39.5 41 11.86 28 59 31 0.3
## kurtosis se
## X1 -1.45 3.34
## ----------------------------------------------------
## group: B
## vars n mean sd median trimmed mad min max range skew
## X1 1 10 37 10.37 40.5 37.75 5.93 18 50 32 -0.66
## kurtosis se
## X1 -1.1 3.28
## ----------------------------------------------------
## group: C
## vars n mean sd median trimmed mad min max range skew kurtosis
## X1 1 10 26.8 8.84 24 26.75 11.12 15 39 24 0.14 -1.84
## se
## X1 2.8
primerjamo povprečja in najbolj učinkovit tečaj je C, ker porabijo najmanj minut.
library(car)
leveneTest(podatki$Cas, podatki$TecajF)
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 2 0.0643 0.9378
## 27
Homoskedastičnost velja, ker je p > 0,05.
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:car':
##
## recode
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(rstatix)
## Warning: package 'rstatix' was built under R version 4.4.2
##
## Attaching package: 'rstatix'
## The following object is masked from 'package:stats':
##
## filter
podatki %>%
group_by(TecajF) %>%
shapiro_test(Cas) #"Shapiro-wilkov preizkus"
## # A tibble: 3 × 4
## TecajF variable statistic p
## <fct> <chr> <dbl> <dbl>
## 1 A Cas 0.946 0.618
## 2 B Cas 0.896 0.200
## 3 C Cas 0.889 0.166
normalnost velja ker je p > 0.05
results <- aov(Cas ~ TecajF, #analiza variance
data = podatki)
summary(results)
## Df Sum Sq Mean Sq F value Pr(>F)
## TecajF 2 1135 567.3 5.724 0.00847 **
## Residuals 27 2676 99.1
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
1135 = vsota kvadratov med skupinami (med različnimi tečaji) 2676 = vsota kvadraov znotraj skupin
H0 zavrnemo ker je p>0,001 in ugotavljam da se vsaj en povprečen čas razlikuje od drugih.
library(effectsize)
##
## Attaching package: 'effectsize'
## The following objects are masked from 'package:rstatix':
##
## cohens_d, eta_squared
## The following object is masked from 'package:psych':
##
## phi
eta_squared(results)
## For one-way between subjects designs, partial eta squared is
## equivalent to eta squared. Returning eta squared.
## # Effect Size for ANOVA
##
## Parameter | Eta2 | 95% CI
## -------------------------------
## TecajF | 0.30 | [0.06, 1.00]
##
## - One-sided CIs: upper bound fixed at [1.00].
interpret_eta_squared(0.30, rules = "cohen1992")
## [1] "large"
## (Rules: cohen1992)
interpret_eta_squared(0.30,rules = “chen1992”) = 0.2977406 to dobimo z 1135/1135+2676
pairwise.t.test(podatki$Cas, g = podatki$TecajF,
paired = FALSE,
p.adj = "bonferroni")
##
## Pairwise comparisons using t tests with pooled SD
##
## data: podatki$Cas and podatki$TecajF
##
## A B
## B 0.9634 -
## C 0.0081 0.0900
##
## P value adjustment method: bonferroni
te tri številke so p vrednosti 0,0081 je p vr.za tečaj A in C - ugotovimo, da so razlike samo pri teh dveh (razlog je mali vzorec) Med A in B ter C in B ugotovimo , da ni razlik
kruskal.test(Cas ~ TecajF,
data = podatki)
##
## Kruskal-Wallis rank sum test
##
## data: Cas by TecajF
## Kruskal-Wallis chi-squared = 8.2699, df = 2, p-value = 0.016
H0: Lokacije porazdelitev sprmenljivke čas so enake pri vseh tačajih H1: Vsaj ena lokacije porazdelitve je drugačna.
Zavrnemo H0 pri p.vr < 0,016
kruskal_effsize(Cas ~ TecajF,
data = podatki)
## # A tibble: 1 × 5
## .y. n effsize method magnitude
## * <chr> <int> <dbl> <chr> <ord>
## 1 Cas 30 0.232 eta2[H] large
razlike so velike
library(rstatix)
groups_nonpar <- wilcox_test(Cas ~ TecajF, # WILCOXonov PREIZKUS VSOT RANGOV
paired = FALSE,
p.adjust.method = "bonferroni",
data = podatki)
groups_nonpar
## # A tibble: 3 × 9
## .y. group1 group2 n1 n2 statistic p p.adj p.adj.signif
## * <chr> <chr> <chr> <int> <int> <dbl> <dbl> <dbl> <chr>
## 1 Cas A B 10 10 56.5 0.65 1 ns
## 2 Cas A C 10 10 84.5 0.01 0.03 *
## 3 Cas B C 10 10 80 0.026 0.077 ns
tudi tu odkrijemo razlike samo med A in C.