Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 6.60 KB | None | 0 0
  1. # Generovanie 10 náhodných čísel z NR
  2. rnorm(10,mean=0,sd=1)
  3. # Hustota pravdepodobnosti v bude 10 (výška rozdelenia v bode 10)
  4. dnorm(10,mean=0,sd=1,log=FALSE)
  5. dnorm(0,mean=0,sd=1,log=FALSE)
  6. # Sumár hustoty pravdepodobnosti po daný bod (10) z ľava
  7. pnorm(10, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
  8.  
  9. pnorm(0) # 0.5
  10. pnorm(1) # 0.8413447
  11. pnorm(0,lower.tail=FALSE) # 0.5
  12. pnorm(1,lower.tail=FALSE) # 0.1586553
  13.  
  14. # Inverzná k pnorm, vráti bod pri zadaní určitej pravdepodobnosti
  15. qnorm(0.5) # 0
  16. qnorm(0.85) # 1.036433;
  17. v=c(0.0,0.25,0.5,0.75,1.0)
  18. qnorm(v) # [1] -Inf -0.6744898 0.0000000 0.6744898 Inf
  19.  
  20. rbinom(20, 100, prob = 0.1)
  21. rbinom(20, 100, prob = 0.5)
  22. dbinom(20, 40, prob = 0.5)
  23. pbinom(30, 40, p = 0.5)
  24. # Generovanie náhodných čísel
  25. x <- rnorm(10)
  26. x <- rnorm(10, 20, 2)
  27. summary(x)
  28.  
  29. runif(3, min=0, max=100)
  30. floor(runif(3, min=0, max=100))
  31. sample(1:100, 3, replace=TRUE) # 3 krat integer od 1 po 100 s možnosťou znovu vybrať rovnaké číslo
  32. sample(1:100, 3, replace=FALSE)
  33.  
  34. # Sample - generovanie vzoriek
  35. set.seed(1)
  36. sample(1:10, 4)
  37. sample(1:10, 4)
  38. sample(letters, 5)
  39. sample(1:10) # permutácia prvkov od 1 do 10
  40. sample(1:10)
  41. sample(1:10, replace = TRUE) # výber s nahradením (môžu sa opakovať prvky)
  42.  
  43. set.seed(158)
  44. rnorm(5)
  45. rnorm(5)
  46. set.seed(158)
  47. rnorm(10)
  48.  
  49.  
  50.  
  51. # Generovanie lineárneho modelu
  52. set.seed(20)
  53. x <- rnorm(100)
  54. e <- rnorm(100, 0, 2)
  55. y <- 0.5 + 2 * x + e
  56. summary(y)
  57. plot(x, y)
  58. abline(lm(y~x))
  59.  
  60. set.seed(1)
  61. x <- rnorm(100)
  62. log.mu <- 0.5 + 0.3 * x
  63. y <- rpois(100, exp(log.mu))
  64. summary(y)
  65. plot(x, y)
  66.  
  67. generuj2D2k = function(){
  68.   d = 0
  69.   while(d<1.0){
  70.     s = rnorm(4)
  71.     d = sqrt((s[1]-s[2])^2 + (s[3]-s[4])^2)
  72.     }
  73.   x1 = s[1] + rnorm(50,0,0.5)
  74.   x2 = s[2] + rnorm(50,0,0.5)
  75.   y1 = s[3] + rnorm(50,0,0.5)
  76.   y2 = s[4] + rnorm(50,0,0.5)
  77.   data.frame(a = c(x1,x2), b = c(y1,y2),f = factor(c(rep("A",50),rep("B",50))))
  78. }
  79.  
  80. set.seed(12548)
  81. mydata = generuj2D2k()
  82. plot(mydata$a,mydata$b,col=mydata$f)
  83.  
  84. x <- rnorm(30)
  85. ks.test(x, pnorm)
  86. ks.test(x, punif)
  87.  
  88. x = rnorm(50)
  89. y = rnorm(50)
  90. z = runif(50)
  91. ks.test(y,z)
  92.  
  93. # Lineárne rovnice
  94. A = matrix(nrow = 3, ncol = 3, data = c(6, 1, 2, 3, -3, 1, -2, 2, 1))
  95. b = c(2,5,9)
  96. solve(A,b)
  97. A2 = matrix(nrow = 4, ncol = 4, data=c(4,3,2,5,-3,-2,-1,-3,2,1,0,1,-1,-3,5,-8))
  98. b2 = c(8,7,6,1)
  99. solve(A2,b2)
  100.  
  101. # Nelineárne rovnice
  102. # Príklad 2cos(x) - ln(x) = 0
  103. curve(2*cos(x), 0, 10)
  104. curve(log(x), add = TRUE, col="red")
  105. f = function(x) 2*cos(x) - log(x)
  106. uniroot(f,lower=0,upper=2, tol=1e-9)
  107. uniroot(f,lower=4,upper=6, tol=1e-9)
  108. uniroot(f,lower=6,upper=7, tol=1e-9)
  109.  
  110. ## x3+2x+4=0
  111. polyroot(c(4,2,0,1))
  112.  
  113. # Diferenciálne rovnice
  114. # install.packages("deSolve")
  115. library(deSolve)
  116. logist <- function(t, x, parms) {
  117.   with(as.list(parms), {
  118.     dx <- r * x[1] * (1 - x[1]/K)
  119.     list(dx)
  120.   })
  121. }
  122. time <- 0:100
  123. N0 <- 0.1
  124. r <- 0.5
  125. K <- 100
  126. parms <- c(r = r, K = K)
  127. x <- c(N = N0)
  128. plot(time, K/(1 + (K/N0-1) * exp(-r*time)), ylim = c(0, 120),
  129.      type = "l", col = "red", lwd = 2)
  130.  
  131. time <- seq(0, 100, 2)
  132. out <- as.data.frame(rk4(x, time, logist, parms))
  133. points(out$time, out$N, pch = 16, col = "blue", cex = 0.5)
  134. time <- seq(0, 100, 2);
  135. out <- as.data.frame(euler(x, time, logist, parms))
  136. points(out$time, out$N, pch = 1)
  137. legend("bottomright", c("analytical","rk4, h=2", "euler, h=2"),
  138.        lty = c(1, NA, NA), lwd = c(2, 1, 1), pch = c(NA, 16, 1),
  139.        col = c("red", "blue", "black"))
  140.  
  141.  
  142. # Lineárna regresia
  143. x = c(3,8,9,3,13,6,11,21,1,16)
  144. y = c(30,57,64,72,36,43,59,90,20,83)
  145. mydata = data.frame(x,y)
  146. model = lm(y ~ x, data=mydata)
  147. model
  148. plot(mydata)
  149. abline(model)
  150.  
  151. pr1 <- data.frame(x = c(10,15,20))
  152. pr1$y <- predict(model, newdata = pr1)
  153.  
  154. # Viacnásobná regresia
  155. year <- rep(2008:2010, each = 4)
  156. quarter <- rep(1:4, 3)
  157. cpi <- c(162.2, 164.6, 166.5, 166, 166.2, 167,
  158.          168.6, 169.5, 171, 172.1, 173.3, 174)
  159. plot(cpi, xaxt = "n", ylab = "CPI", xlab = "")
  160. # vykresli popis x-osi, kde 'las=3' zabezpeci vertikalny text
  161. axis(1, labels = paste(year, quarter, sep = "Q"), at = 1:12, las = 3)
  162. fit <- lm(cpi ~ year + quarter)
  163. data2011 <- data.frame(year = 2011, quarter = 1:4)
  164. cpi2011 <- predict(fit, newdata = data2011)
  165. style <- c(rep(1, 12), rep(2, 4))
  166. plot(c(cpi, cpi2011), xaxt = "n",ylab = "CPI", xlab = "",pch = style, col = style)
  167. axis(1, at = 1:16, las = 3,
  168.      labels = c(paste(year, quarter, sep = "Q"), "2011Q1", "2011Q2", "2011Q3", "2011Q4"))
  169.  
  170.  
  171. # Interpolácia
  172. set.seed(1)
  173. n <- 500
  174. dat <- data.frame(
  175.   x = 1:n,
  176.   y = sin(seq(0, 5*pi, length.out = n)) + rnorm(n=n, mean= 0, sd=0.5)
  177. )
  178.  
  179. approxData <- data.frame(with(dat, approx(x, y, method = "linear")),
  180.                          metoda = "approx")
  181. splineData <- data.frame(with(dat, spline(x, y) ),metoda = "spline default")
  182. splineData2 <- data.frame(with(dat, spline(x, y, xout = seq(1, n, by = 10), method = "fmm") ), metoda = "spline krok 10")
  183. smoothData <- data.frame(x = 1:n, y = as.vector(smooth(dat$y)), metoda = "smooth")
  184. loessData <- data.frame(x = 1:n, y = predict(loess(y~x, dat, span = 0.1)), metoda = "loess span 0.1")
  185. loessData2 <- data.frame(x = 1:n, y = predict(loess(y~x, dat, span = 0.5)), metoda = "loess span 0.5")
  186. library(ggplot2)
  187. ggplot(rbind(approxData, splineData, splineData2, smoothData, loessData, loessData2), aes(x, y)) + geom_point(dat = dat, aes(x, y), alpha = 0.2, col = "red") + geom_line(col = "blue") + facet_wrap(~metoda) + ggtitle("Príklad - vybrané interpolačné a vyhladzovacie funkcie v R") + theme_bw(16)
  188.  
  189. # Lineárne programovanie
  190. # install.packages("lpSolveAPI")
  191. library(lpSolveAPI)
  192. lpmodel <- make.lp(0, 2)
  193. lp.control(lpmodel, sense="max") # maximalizacia
  194. set.objfn(lpmodel, c(143, 60)) # definicia KF (v anglictine casto objective function)
  195. add.constraint(lpmodel, c(120, 210), "<=", 15000)
  196. add.constraint(lpmodel, c(110, 30), "<=", 4000)
  197. add.constraint(lpmodel, c(1, 1), "<=", 75)
  198. lpmodel
  199. solve(lpmodel)
  200. get.objective(lpmodel)
  201. get.variables(lpmodel)
  202.  
  203. # Celočíselné programovanie
  204. # install.packages("lpSolve")
  205. library(lpSolve)
  206. assign.costs <- matrix (c(7, 7, 3, 2, 2, 7, 7, 2, 1, 9, 8, 2, 7, 2, 8, 10), 4, 4)
  207. lp.assign (assign.costs)
  208. lp.assign (assign.costs)$solution
  209.  
  210. # Optimalizácia v R
  211. library(TSP)
  212. # vytvorenie dát – náhodných „miest“, mená priradené z letters konštanty
  213. df <- data.frame(x = runif(20), y = runif(20), row.names = LETTERS[1:20])
  214. # vytvorenie Euklidovskeho TSP
  215. etsp <- ETSP(df)
  216. # výpis detailov – počet miest, názvy miest
  217. n_of_cities(etsp) # vypíše [1] 20
  218. labels(etsp) # vypíše názvy [1] "A" "B" "C" ....
  219. # nájdenie riešenia a jeho vykreslenie
  220. tour <- solve_TSP(etsp)
  221. tour
  222. plot(etsp, tour, tour_col = "red")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement