# Ucitavamo funkciju za testiranje disperzije:
varsum.test = function(s, n, ratio = 1, alternative = 'two.sided', conf.level = 0.95)
{
  x = rnorm(n[1])
  x = x/sd(x) * s[1]
  y = rnorm(n[2])
  y = y/sd(y) * s[2]
  var.test(x, y, ratio, alternative, conf.level)
}

# 4. zadatak
#a) Alternativna hipoteza je da je filter 2 bolji, odnosno da u proseku propusta
# manja katrana, pa je H1: m1 > m2, a H0: m1 <= m2

#b)
varsum.test(s = c(sqrt(0.05), sqrt(0.07)), n = c(25, 25))
# P-vrednost je veca od 0.2, pa zakljucujemo da su disperzije jednake.

#v) U paketu BSDA postoji tsum.test() funkcija, koja ne prima cele uzorke, vec
# samo potrebne statistike na osnovu kojih racuna test statistiku. Osim
# prosledjivanja ovih parametara, ona ima iste parametre kao t.test().
library(BSDA)
?tsum.test
tsum.test(mean.x = 1.1, s.x = sqrt(0.05), n.x = 25,
          mean.y = 1.13, s.y = sqrt(0.07), n.y = 25,
          alternative = 'greater', var.equal = TRUE)
# Visoka p-vrednost, pa ne prihvatamo alternativu. Predlazemo kompaniji da se
# drzi filtera I.



# 7. zadatak

# Za sad smo u zadacima pretpostavljali da radimo sa nezavisnim uzorcima. 
# U ovom zadatku je kljucna razlika da su oba uzorka zapravo nad istim jedinkama
# (elementima). Vidimo i gledajuci u tabelu podataka da su vrednosti po kolonama
# jako slicne.
# Ovo zovemo spareni uzorak.
mikro = c(95, 184, 40, 261, 215, 26, 56, 128, 155)
standardni = c(90.5, 184.6, 44.8, 320, 244.7, 25.8, 66.2, 137.8, 137.8)

# Ponovo pozivamo funkciju t.test, sa dodatnim parametrom paired = TRUE.
t.test(mikro, standardni, paired = TRUE)
# Interval je (-27.342260, 6.853371)

# Ovaj test nije nista posebno, nego samo obican t.test (sa jednim uzorkom)
# nad razlikama u vrednostima uzoraka.
t.test(mikro - standardni)
# Isti interval

# Ovaj metod testiranja je cesto znatno precizniji, jer eliminise sve moguce
# spoljne faktore koji mogu da uticu na rezultate, jer se testira nad istim
# jedinkama.
# Uradimo t.test bez pretpostavke sparenosti, sto bi ovde naravno bilo pogresno.
t.test(mikro, standardni)
# Interval = (-100.1479, 79.6590), mnogo siri

# Najcesce ipak nije moguce izvrsiti ovakvo testiranje zbog prirode 
# eksperimenta/istrazivanja.
# Ne mozemo da testiramo drugi lek za dijabetes nad pacijentom koji je vec 
# primio prvi lek, pa da merimo secer u krvi, jer vise ne znamo od kog leka
# potice uticaj. Ne mozemo da testiramo dva tipa djubriva nad istim biljkom, pa
# da merimo efekat na rast, jer biljka (jedinka) samo jednom izraste.


#8. zadatak
# Testiracemo alternativnu hipotezu da prvorodjeno dete ima visi IQ od
# drugorodjenog protiv nulte hipoteze da nema.
# Radimo spareni test, jer su elementi oba uzorka redom deca iz istih porodica.
prvo_dete = c(88, 128, 100, 106, 98, 89, 98, 132, 88, 115)
drugo_dete = c(84, 116, 100, 109, 101, 90, 87, 126, 80, 112)
t.test(prvo_dete, drugo_dete, paired = TRUE, alternative = 'greater')
# P-vrednost je ~0.03, pa prihvatamo alternativnu hipotezu.