Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. library(splines) # loads the library of functions to compute B-splines
  2.  
  3. x <- c(1:1000)/1000
  4. X1 <- 1
  5. for (k in 1:5) X1 <- cbind(X1,cos(2*k*pi*x),sin(2*k*pi*x))
  6. X2 <- cbind(1,bs(x,df=10))
  7.  
  8. plot(x, X2[,2])
  9. for(i in 3:11) points(x, X2[,i])
  10.  
  11. leverage <- function(x,y,w,r=10,m=100) {
  12. qrx <- qr(x)
  13. qry <- qr(y)
  14. n <- nrow(x)
  15. lev <- NULL
  16. for (i in 1:m) {
  17. vx <- ifelse(runif(n)>0.5,1,-1)
  18. vx[-w] <- 0
  19. v0x <- qr.fitted(qrx,vx)
  20. v0y <- qr.fitted(qry,vx)
  21. fx <- v0x
  22. for (j in 2:r) {
  23. v0x[-w] <- 0
  24. v0x <- qr.fitted(qrx,v0x)
  25. fx <- fx + v0x/j
  26. }
  27. levx <- c(lev,sum(vx*fx))
  28. fy <- v0y
  29. for (j in 2:r) {
  30. v0y[-w] <- 0
  31. v0y <- qr.fitted(qry,v0y)
  32. fx <- fy + v0y/j
  33. }
  34. levy <- c(lev,sum(vx*fy))
  35. }
  36. std.errx <- exp(-mean(levx))*sd(levx)/sqrt(m)
  37. levx <- 1 - exp(-mean(levx))
  38. std.erry <- exp(-mean(levy))*sd(levy)/sqrt(m)
  39. levy <- 1 - exp(-mean(levy))
  40. r <- list(levx=levx,std.errx=std.errx,levy=levy,std.erry=std.erry)
  41. r
  42. }
  43.  
  44. lev <- leverage(X2, X1, 50)
  45. lev
  46.  
  47. for (i in 1:1000) {
  48. lev <- leverage(X2, i)
  49. print(lev)
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement