Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(dplyr)
- library(ggplot2)
- library(tseries)
- library(stats)
- library(nortest)
- library(tidyr)
- library(purrr)
- library(reshape2)
- set.seed(123)
- #rozklad normalny - zalozenia:
- # a) podroby maja rozklad normalny
- # b) wariancje w kazdej z tych prob sa takie same
- #rm(list=ls()) <- remove the environment
- #Tabela, ktora pokazuje Moce testow w zaleznosci od wielkosci proby i jaki rozklad jest przyjmowany jako bazowy
- #Im wieksza proba -> wieksza Moce testu
- #Im rozklad blizszy normalnemu tym Moce mniejsza
- #funkcja o odpowiednych parametrach, ktora zwraca Moce testu
- #1000 powtorzen, jak czesto nie jest popelniony blad 2 rodzaju
- #Liczba stopni swobody dla rozkladu tStudenta --> df = 2
- #Długości prób
- Dlugosci <- c(8, 10, 20, 50)
- #Poziom istotności
- alpha <- 0.05
- #Liczba symulacji
- n <- 1000
- #Rozklady - tworze listy dla rozkladow
- Rozklady <- list(tStudenta = list(Nazwa = "rt", Arg = list(NULL, 2)),
- Jednostajny = list(Nazwa = "runif", Arg = list(NULL)),
- Wykladniczy = list(Nazwa = "rexp", Arg = list(NULL)))
- Rozklady
- #Testy - tworzy liste wszystkich testow do rozkladu
- Testy <- list(SW = list(Nazwa = "shapiro.test", Argum = list(NULL)),
- JB = list(Nazwa = "jarque.bera.test", Argum = list(NULL)),
- KS = list(Nazwa = "ks.test", Argum = list(NULL, "pnorm", NULL, NULL)),
- Chi2 = list(Nazwa = "pearson.test", Argum = list(NULL)),
- AD = list(Nazwa = "ad.test", Argum = list(NULL)))
- Testy
- #Tabela tworzaca wszystkie mozliwe kombinacje wartosci
- Tabela <- expand.grid(Dlugosci = Dlugosci,
- Rozklad = names(Rozklady),
- Test = names(Testy))
- View(Tabela)
- Moce <- sapply(1:nrow(Tabela), function(p){
- p=4
- d = Tabela[p, 2] #d --> Kazdy wiersz tabeli bedzie mial jakis rozklad (tSt, Jedn, Wykl)
- #p <1,4> --> t-St
- #p <5,8> --> Jedn
- #p <9,12> --> Wykl
- Nazwa <- Rozklady[[d]]$Nazwa #ustawiam nazwę rozkladu (w zalezności który to rozkład)
- #d=1 --> rt
- #d=2 --> runif
- #d=3 --> rexp
- Arg <- Rozklady[[d]]$Arg #ustawiam argumenty rozkladu (w zalezności który to rozkład)
- #d=1 --> [[1]] NULL ; [[2]] [1]2
- #d=2 --> [[1]] NULL
- #d=3 --> [[1]] NULL
- Arg[[1]] <- Tabela[p, 1] #w liste NULL ładuje liczby 8, 10, 20, 50
- #p=1v5v9 --> 8
- #p=2v6v10 --> 10
- #p=3v7v11 --> 20
- #p=4v8v12 --> 50
- e = Tabela[p, 3] #e --> Kazdy wiersz tabeli ma jakis test (SW, JB, KS, Chi2, AD)
- #e=1 --> SW
- #e=2 --> JB
- #e=3 --> KS
- #e=4 --> Chi2
- #e=5 --> AD
- Testy2 <- Testy[[e]]$Nazwa #ustawiam nazwe testu
- Arg2 <- Testy[[e]]$Argum #ustawiam NULLowy argument
- eval(parse(text = paste0("tescik <- ", Testy2)))
- Moc2 <- sapply(1:10, function(x){
- Probka <- do.call(Nazwa, Arg)
- #Arg2[[1]] <- Probka
- #if (e=="KS"){
- #Arg2[[3]] <- mean(Probka)
- #Arg2[[4]] <- sd(Probka)
- #}
- tescik(Probka)$p.value
- if (e=="KS"){
- tescik(Probka, "pnorm", mean(Probka), sd(Probka))
- }
- })
- apply(Moc2, 1, function(x){mean(x < alpha)})
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement