podatki <- read.table("./UE.csv",
header = TRUE,
sep = ";",
dec = ",")
head(podatki) #Prikaz prvih 6 vrstic
## ID Rezultat Pisanje
## 1 1 50 120
## 2 2 48 120
## 3 3 48 90
## 4 4 47 50
## 5 5 52 70
## 6 6 50 120
str(podatki[ , -1])
## 'data.frame': 31 obs. of 2 variables:
## $ Rezultat: int 50 48 48 47 52 50 50 54 57 50 ...
## $ Pisanje : int 120 120 90 50 70 120 120 65 95 100 ...
#install.packages("psych")
library(psych)
describe(podatki[ , -1])
## vars n mean sd median trimmed mad min max range skew kurtosis se
## Rezultat 1 31 66.23 28.84 60 63.24 17.79 20 189 169 2.32 8.00 5.18
## Pisanje 2 31 91.58 25.73 95 94.76 37.06 15 120 105 -0.92 0.61 4.62
V povprečju so študentje pisali 91,58 minute. Polovica jih je pisalo 60 točk ali manj, druga polovica pa več (median) Trim pomeni porezani osamelci tisti podatki ki zelo odstopajo (10% najmanjših in največjih vrednosti), sicer pa to ne bomo gledali Najkrajši čas pisanja je bil 15 min, najdaljši pa 120. Variacijski razmik je range (105) Porazdelitev je asimetrična v levo (ker je skew koeficient porazdelitve negativen).Glej spodaj histogram.
hist(podatki$Pisanje)
#install.packages("pastecs")
library(pastecs)
round(stat.desc(podatki[ , -1]), 2)
## Rezultat Pisanje
## nbr.val 31.00 31.00
## nbr.null 0.00 0.00
## nbr.na 0.00 0.00
## min 20.00 15.00
## max 189.00 120.00
## range 169.00 105.00
## sum 2053.00 2839.00
## median 60.00 95.00
## mean 66.23 91.58
## SE.mean 5.18 4.62
## CI.mean.0.95 10.58 9.44
## var 831.91 662.05
## std.dev 28.84 25.73
## coef.var 0.44 0.28
nbr.val pomeni number of valid cases (dejansko število vrednosti) nbr.null pove, če je kakšna vrednost 0 nbr.na number not available so manjkajoče vrednosti (v našem primeru jih ni) SE.mean je ocena standarde napake aritmetične sredine var je ocena variance std.dev je standardni odklon coef.var je koeficient variacije (uporaben če so spremenljivke izražene v različnih enotah in niso primerljive npr tukaj je rezultat v številu in pisanje v minutah, tukaj vidimo katera bolj varira)
summary(podatki[ , -1])
## Rezultat Pisanje
## Min. : 20.00 Min. : 15.00
## 1st Qu.: 50.00 1st Qu.: 77.50
## Median : 60.00 Median : 95.00
## Mean : 66.23 Mean : 91.58
## 3rd Qu.: 75.00 3rd Qu.:115.00
## Max. :189.00 Max. :120.00
1st Qu. je prvi kvartil: 25% je pisalo 50 ali manj, preostali pa več kot 50
sapply(podatki[ , -1], FUN = mean)
## Rezultat Pisanje
## 66.22581 91.58065
mean(podatki$Rezultat)
## [1] 66.22581
#install.packages("modeest")
library(modeest)
## Registered S3 method overwritten by 'rmutil':
## method from
## plot.residuals psych
mlv(podatki$Rezultat)
## [1] 50
mlv pomeni most likely value in to je modus (največ je bilo takih, ki so dosegli 50 točk)
hist(podatki$Rezultat,
main = "Porazdelitev doseženih točk na izpitu UE",
xlab = "Točke",
ylab = "Frekvenca",
breaks = seq(from = 0, to = 200, by = 10))
ybar = mean(podatki$Rezultat); sd = sd(podatki$Rezultat); n = nrow(podatki)
se=sd/sqrt(n)
ybar_spodnja_t = ybar + qt(0.025, df=n-1)*se
ybar_zgornja_t = ybar + qt(0.975, df=n-1)*se
cat(c("95-odstotna intervalna ocena:", round(ybar_spodnja_t, 3), "< Mu <", round(ybar_zgornja_t, 3)))
## 95-odstotna intervalna ocena: 55.646 < Mu < 76.805
boxplot(podatki[ , -1])
1.kvartil je cca 50, zgornji del boxa je 3.kvartil, debela črta je
mediana, krogec je potencialni osamelec.
podatki[31, 2] <- 89
podatki2 <- podatki
podatki <- read.table("./UE.csv",
header = TRUE,
sep = ";",
dec = ",")
head(podatki)
## ID Rezultat Pisanje
## 1 1 50 120
## 2 2 48 120
## 3 3 48 90
## 4 4 47 50
## 5 5 52 70
## 6 6 50 120
tail(podatki)
## ID Rezultat Pisanje
## 26 26 74 95
## 27 27 74 95
## 28 28 76 120
## 29 29 44 45
## 30 30 52 92
## 31 31 189 110
boxplot(podatki[ , -1])
library(psych)
describe(podatki[ , -1])
## vars n mean sd median trimmed mad min max range skew kurtosis se
## Rezultat 1 31 66.23 28.84 60 63.24 17.79 20 189 169 2.32 8.00 5.18
## Pisanje 2 31 91.58 25.73 95 94.76 37.06 15 120 105 -0.92 0.61 4.62
head(podatki[order(-podatki$Rezultat), ])
## ID Rezultat Pisanje
## 31 31 189 110
## 24 24 95 120
## 16 16 92 120
## 23 23 92 120
## 22 22 85 90
## 15 15 80 95
podatki_novi <- podatki[-31, ]
podatki[31, 2] <- 89
head(podatki[order(-podatki$Rezultat), ])
## ID Rezultat Pisanje
## 24 24 95 120
## 16 16 92 120
## 23 23 92 120
## 31 31 89 110
## 22 22 85 90
## 15 15 80 95
boxplot(podatki[ , -1])
library(psych)
describe(podatki[ , -1])
## vars n mean sd median trimmed mad min max range skew kurtosis se
## Rezultat 1 31 63.00 18.33 60 63.12 17.79 20 95 75 -0.07 -0.66 3.29
## Pisanje 2 31 91.58 25.73 95 94.76 37.06 15 120 105 -0.92 0.61 4.62