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
opis spremenljivk: -ID: oznaka študenta -Rezultat:rezultat dosežen na izpitu -Pisanje: čas pisanja v minutah
podatki1 <- podatki[ -4 , c(-1,-2) ] #odstranili smo 4. vrstico ter prvi in drugi stolpec
podatki2 <- podatki[ ,(-3)]
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 ...
mean(podatki$Rezultat)
## [1] 66.22581
#install.packages("psych")
library(psych)
describe(podatki[ , -1]) #odstanili smo stolpec za ID, ker za ID se ne računa povprečja. Me časa pisanja se vidi pod median 95. Polovica študentov je pisala 95 minut ali manj, druga polovica pa več.Variacijski razmik časa je 105 - razlika med min in max. Ali je porazdelitev asimetrična v levo ali desno? Asimetrična je v levo, saj je skew -0.92. Če je minus je vedno asimetrično v levo.
## 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
install.packages("pastecs")
## Warning: package 'pastecs' is in use and will not be installed
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
#razlaga: Če klikneš na 2 dobiš še naprej... KJe je večja variabilnost pri pisanju ali razultatu? To nam pove coef.var in sicer večje so razlike pri točkah, kot pri času pisanja ker je 0.44 več kot 0.28
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
Razlaga: prvi kvartil je 50 - četrtina študentov je dosegla 50 ali manj pik preostali pa več, to je ocena prvega kvartila
sapply(podatki[ , -1], FUN = mean) #če tukaj napišemo var namesto mean dobimo varianco za obe spremenljivki
## 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) #most likely value - modus!
## [1] 50
hist(podatki$Rezultat,
main = "Porazdelitev doseženih točk na izpitu UE", #main je naslov grafa, xlab in ylab so imena osi, breaks so ločitve stolpcev
xlab = "Točke",
ylab = "Frekvenca",
breaks = seq(from = 0, to = 200, by = 20))# če daš by=20 dobiš širše stolpce
pnorm(80, mean = 62.13, sd = 17.99,
lower.tail = FALSE)
## [1] 0.1602747
mean = 62.13; sd = 17.99
lb = 80; ub = Inf
x <- seq(-4,4,length=100)*sd + mean
hx <- dnorm(x,mean,sd)
plot(x, hx, type="n", xlab="Točke", ylab="",
main="", axes=FALSE)
i <- x >= lb & x <= ub
lines(x, hx)
polygon(c(lb,x[i],ub), c(0,hx[i],0), col="blue")
area <- pnorm(ub, mean, sd) - pnorm(lb, mean, sd)
result <- paste("P(",lb,"< Točke <",ub,") =",
signif(area, digits=3))
mtext(result,3)
axis(1, at=seq(0, 100, 20), pos=0)
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])
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]) #spodnja črta je min, zgornja je max, spodnji rob sivega pravokotnika je prvi kvartil, zgornja tretji kvartil, debela pa je mediana. s krogcem je označena čudna enota tistih 198.Radi bi odstarnili krogce ker je to vrednost čisto xy...slovenski izraz za boxplot je grafikon kvantilov
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), ])#če bi radi razvrstili enote po spremenljivki, prikažimo tabelo po rezultatih, izpiše nam prvih 6 vrstic po decending order od najvišjih do najnižjih,če pa hočemo dobit od najnižjega do najvišjega zbrišemo minus pred podatki
## 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, ]#ta ukaz nam zbriše 31 vrstico v novi tabeli
boxplot(podatki_novi[ , -1])
tukaj ni več težave s krogci…
podatki[31, 2] <- 89 #vrednost, ki je v 31 vestici in 2 stolpcu nadomestim z 89, v tem primeru bo drugačna ar. sredina spodaj je druga cifra
mean(podatki$Rezultat)
## [1] 63
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