Advertisement
Guest User

Untitled

a guest
Nov 13th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 3.74 KB | None | 0 0
  1. library(dplyr)
  2. library(ggplot2)
  3. library(tseries)
  4. library(stats)
  5. library(nortest)
  6. library(tidyr)
  7. library(purrr)
  8. library(reshape2)
  9.  
  10. set.seed(123)
  11.  
  12. #rozklad normalny - zalozenia:
  13. # a) podroby maja rozklad normalny
  14. # b) wariancje w kazdej z tych prob sa takie same
  15.  
  16. #rm(list=ls()) <- remove the environment
  17.  
  18. #Tabela, ktora pokazuje Moce testow w zaleznosci od wielkosci proby i jaki rozklad jest przyjmowany jako bazowy
  19. #Im wieksza proba -> wieksza Moce testu
  20. #Im rozklad blizszy normalnemu tym Moce mniejsza
  21. #funkcja o odpowiednych parametrach, ktora zwraca Moce testu
  22. #1000 powtorzen, jak czesto nie jest popelniony blad 2 rodzaju
  23. #Liczba stopni swobody dla rozkladu tStudenta --> df = 2
  24.  
  25. #Długości prób
  26. Dlugosci <- c(8, 10, 20, 50)
  27. #Poziom istotności
  28. alpha <- 0.05
  29. #Liczba symulacji
  30. n <- 1000
  31. #Rozklady - tworze listy dla rozkladow
  32. Rozklady <- list(tStudenta = list(Nazwa = "rt", Arg = list(NULL, 2)),
  33.                  Jednostajny = list(Nazwa = "runif", Arg = list(NULL)),
  34.                  Wykladniczy = list(Nazwa = "rexp", Arg = list(NULL)))
  35. Rozklady
  36.  
  37. #Testy - tworzy liste wszystkich testow do rozkladu
  38. Testy <- list(SW = list(Nazwa = "shapiro.test", Argum = list(NULL)),
  39.               JB = list(Nazwa = "jarque.bera.test", Argum = list(NULL)),
  40.               KS = list(Nazwa = "ks.test", Argum = list(NULL, "pnorm", NULL, NULL)),
  41.               Chi2 = list(Nazwa = "pearson.test", Argum = list(NULL)),
  42.               AD = list(Nazwa = "ad.test", Argum = list(NULL)))
  43. Testy
  44.  
  45. #Tabela tworzaca wszystkie mozliwe kombinacje wartosci
  46. Tabela <- expand.grid(Dlugosci = Dlugosci,
  47.                       Rozklad = names(Rozklady),
  48.                       Test = names(Testy))
  49. View(Tabela)
  50.  
  51. Moce <- sapply(1:nrow(Tabela), function(p){
  52.   p=4
  53.   d = Tabela[p, 2]                #d --> Kazdy wiersz tabeli bedzie mial jakis rozklad (tSt, Jedn, Wykl)
  54.                                     #p <1,4> --> t-St
  55.                                     #p <5,8> --> Jedn
  56.                                     #p <9,12> --> Wykl
  57.  
  58.   Nazwa <- Rozklady[[d]]$Nazwa    #ustawiam nazwę rozkladu (w zalezności który to rozkład)
  59.                                     #d=1 --> rt
  60.                                     #d=2 --> runif
  61.                                     #d=3 --> rexp
  62.  
  63.   Arg <- Rozklady[[d]]$Arg        #ustawiam argumenty rozkladu (w zalezności który to rozkład)
  64.                                     #d=1 --> [[1]] NULL ; [[2]] [1]2
  65.                                     #d=2 --> [[1]] NULL
  66.                                     #d=3 --> [[1]] NULL
  67.  
  68.   Arg[[1]] <- Tabela[p, 1]        #w liste NULL ładuje liczby 8, 10, 20, 50
  69.                                     #p=1v5v9 --> 8
  70.                                     #p=2v6v10 --> 10
  71.                                     #p=3v7v11 --> 20
  72.                                     #p=4v8v12 --> 50
  73.  
  74.   e = Tabela[p, 3]                #e --> Kazdy wiersz tabeli ma jakis test (SW, JB, KS, Chi2, AD)
  75.                                     #e=1 --> SW
  76.                                     #e=2 --> JB
  77.                                     #e=3 --> KS
  78.                                     #e=4 --> Chi2  
  79.                                     #e=5 --> AD
  80.  
  81.   Testy2 <- Testy[[e]]$Nazwa      #ustawiam nazwe testu
  82.                                  
  83.   Arg2 <- Testy[[e]]$Argum        #ustawiam NULLowy argument
  84.  
  85.   eval(parse(text = paste0("tescik <- ", Testy2)))
  86.  
  87.   Moc2 <- sapply(1:10, function(x){
  88.     Probka <- do.call(Nazwa, Arg)
  89.     #Arg2[[1]] <- Probka
  90.     #if (e=="KS"){
  91.       #Arg2[[3]] <- mean(Probka)
  92.       #Arg2[[4]] <- sd(Probka)
  93.     #}
  94.     tescik(Probka)$p.value
  95.     if (e=="KS"){
  96.       tescik(Probka, "pnorm", mean(Probka), sd(Probka))
  97.     }
  98.   })
  99.  
  100.   apply(Moc2, 1, function(x){mean(x < alpha)})
  101. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement