Advertisement
Guest User

Untitled

a guest
Jul 11th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SAS 2.15 KB | None | 0 0
  1. ###########################
  2. # Nowe dane
  3. ###########################
  4.  
  5. load("diagnozaOS.Rdata")
  6. #attach(dane)
  7. #head(dane)
  8.  
  9. #dane[, "bp124"]
  10. #dane <- dane[which(! is.na(dane[, "bp124"])), ]
  11.  
  12. # Wczytanie danych
  13. readData <- function() {
  14.   dane <<- dane[which(! is.na(dane[, "bp124"])), ]
  15.   dane <- na.omit(dane)
  16. #   for (i in colnames(dane)) {
  17. #     dane <<- dane[, which(length(levels(dane[, i])) > 1)]
  18. #   }
  19. }
  20.  
  21. #readData()
  22.  
  23. lB = 0.05
  24. uB = 0.95
  25.  
  26. # Obcięcie skrajnych wartosci
  27. trimData <- function(lowerBound = lB, upperBound = uB) {
  28.   dane <<- dane[dane[, "bp124"] > quantile(dane[, "bp124"], probs = lowerBound), ]
  29.   dane <<- dane[dane[, "bp124"] < quantile(dane[, "bp124"], probs = upperBound), ]
  30. }
  31.  
  32. readData()
  33. trimData(lowerBound = lB, upperBound = uB)
  34.  
  35. banned.cols <- c(44, 216:242, 345, 355:364, 626, 896:920, 1531:1532, 1825, 1859, 2014:2021)
  36. banned.cols <- c(banned.cols, 93:115)
  37. # 896:920 -- troche za wyrost
  38.  
  39.  
  40. find.valuable.cols <- function(p.val.max = 0.05) {
  41.  
  42.   full.form <- "bp124 ~ "
  43.   dane.cols.num <- length(colnames(dane))
  44.  
  45.   result.i = numeric(50)
  46.   p.val = numeric(50)
  47.   licznik <- 0
  48.   for (i in colnames(dane)) {
  49.     dane.tmp <- dane[, c("bp124", i)]
  50. #     if (nlevels(dane[, i]) > 1 & ! is.element(which(colnames(dane) == i), banned.cols)) {
  51.     if (length(levels(dane[, i])) > 1 & ! is.element(which(colnames(dane) == i), banned.cols)) {
  52.       if (! i == colnames(dane)[1]) full.form <- paste(full.form, "+")
  53.       full.form <- paste(full.form, i)
  54.  
  55.       fmla <- as.formula(paste("bp124", "~", colnames(dane.tmp)[2], sep = ''))
  56.       model.tmp <- lm(formula = fmla, data = dane.tmp)
  57.  
  58.       if (! is.na(anova(model.tmp)[1, "Pr(>F)"]) & (anova(model.tmp)[1, "Pr(>F)"] <= p.val.max)) {
  59. #         print(anova(model.tmp))
  60. #         print(i)
  61.         result.i[licznik] <- i
  62.         p.val[licznik] <- anova(model.tmp)[1, "Pr(>F)"] # p.val.tmp
  63.         licznik <- licznik + 1
  64.       }
  65.     }
  66.   }
  67.  
  68.   list(i = result.i, pv = p.val, l = licznik, f = full.form)
  69. }
  70.  
  71. lst1 <- find.valuable.cols(p.val.max = 0.0000000000000000000000000000005) # 15
  72. lst2 <- find.valuable.cols(p.val.max = 0.00000000000000000000000005) # 10
  73. lst1$i
  74. lst2$i
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement