Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. ## Data loading
  2. setwd("C:/Users/Hun/Desktop/")
  3. data <- read.table("student_score.txt", header=T, sep=" ")
  4.  
  5.  
  6. ## Sample statistics
  7. Sxy <- 0
  8. Sx <- 0
  9. Sy <- 0
  10.  
  11. for (i in 1:22) {
  12. Sxy <- Sxy+((data[i, 1]-mean(data[, 1]))*(data[i, 2]-mean(data[, 2])))
  13. Sx <- Sx+((data[i, 1]-mean(data[, 1]))^2)
  14. Sy <- Sy+((data[i, 2]-mean(data[, 2]))^2)
  15. }
  16.  
  17.  
  18. theta_hat <- Sxy / (sqrt(Sx) * sqrt(Sy))
  19. # theta_hat <- cor(data$mech, data$vecs)
  20.  
  21. n <- nrow(data)
  22.  
  23.  
  24. ## Likelihood
  25. h <- function(w, theta) {
  26. 1/(cosh(w)-theta*theta_hat)^(n-1)
  27. }
  28.  
  29. likelihood <- function(theta) {
  30. integ <- integrate(h, lower=0, upper=Inf, theta=theta)
  31. return(((n-2)*(1-theta^2)^{(n-1)/2}*(1-theta_hat^2)^{(n-4)/2}/pi) * integ$value)
  32. }
  33.  
  34.  
  35. ## Prior
  36. flat <- 1/2
  37.  
  38. jeff <- function(theta) {
  39. return(1/(1-theta^2))
  40. }
  41.  
  42. tri <- function(theta) {
  43. return(1-abs(theta))
  44. }
  45.  
  46.  
  47. ## Marginal
  48. f_flat <- function(theta) {return(likelihood(theta) * 1/2)}
  49. c_flat <- c()
  50. for (k in seq(-0.999, 0.999, 0.001)) {c_flat <- c(c_flat, f_flat(k))}
  51. m_flat <- sum(c_flat) / 1000
  52.  
  53. f_jeff <- function(theta) {return(likelihood(theta) * jeff(theta))}
  54. c_jeff <- c()
  55. for (k in seq(-0.999, 0.999, 0.001)) {c_jeff <- c(c_jeff, f_jeff(k))}
  56. m_jeff <- sum(c_jeff) / 1000
  57.  
  58. f_tri <- function(theta) {return(likelihood(theta) * tri(theta))}
  59. c_tri <- c()
  60. for (k in seq(-0.999, 0.999, 0.001)) {c_tri <- c(c_tri, f_tri(k))}
  61. m_tri <- sum(c_tri) / 1000
  62.  
  63.  
  64. ## Plotting the priors
  65. x <- seq(-0.2, 1.0, 0.01)
  66. y_flat <- c()
  67. y_jeff <- c()
  68. y_tri <- c()
  69.  
  70. for (j in c(1:length(x))) {
  71. y_flat <- c(y_flat, (likelihood(x[j])*flat)/m_flat)
  72. }
  73.  
  74. for (j in c(1:length(x))) {
  75. y_jeff <- c(y_jeff, (likelihood(x[j])*jeff(x[j]))/m_jeff)
  76. }
  77.  
  78. for (j in c(1:length(x))) {
  79. y_tri <- c(y_tri, (likelihood(x[j])*tri(x[j]))/m_tri)
  80. }
  81.  
  82. plot(x, y_flat, type="l", lty=1, col="black", xlim=c(-0.2, 1.0), ylim=c(0.0, 2.6), xlab="theta_hat", ylab="posterior")
  83. par(new=T)
  84. plot(x, y_jeff, type="l", lty=2, col="red", xlim=c(-0.2, 1.0), ylim=c(0.0, 2.6), xlab="", ylab="")
  85. par(new=T)
  86. plot(x, y_tri, type="l", lty=3, col="blue", xlim=c(-0.2, 1.0), ylim=c(0.0, 2.6), xlab="", ylab="")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement