library(ggplot2)
library(reshape2)

data <- datasets::mtcars
data_mtcars <- data[,c("mpg", "disp", "hp", "wt", "qsec")]

#matrix korelasi
cor_mtcars<-cor(data_mtcars)
cor_mtcars
##             mpg       disp         hp         wt       qsec
## mpg   1.0000000 -0.8475514 -0.7761684 -0.8676594  0.4186840
## disp -0.8475514  1.0000000  0.7909486  0.8879799 -0.4336979
## hp   -0.7761684  0.7909486  1.0000000  0.6587479 -0.7082234
## wt   -0.8676594  0.8879799  0.6587479  1.0000000 -0.1747159
## qsec  0.4186840 -0.4336979 -0.7082234 -0.1747159  1.0000000
#heatmap
data_cor<- melt(cor_mtcars)
ggplot(data_cor, aes(Var1, Var2, fill = value))+
  geom_tile(color = "black")+
  geom_text(aes(label = round(value, 2)), color = "black")+
  scale_fill_gradient2(low = "red", high = "green", mid ="yellow",midpoint = 0, limit= c(-1,1), name = "Korelasi")+theme_minimal()+
  labs(title = "Heatmap Dataset mtcars", x = "Variabel 1", y= "variabel 2")+
  theme(plot.title = element_text(hjust = 0.5), axis.text.x = element_text(hjust = 0.5))

bern<-function(x,p){p^x*(1-p)^(1-x)}
bern(1,3/6)
## [1] 0.5
cmfbinom <- function(k, n, p){
  #validasi input
  if(k<0 || n < 0 || p < 0 || p > 1){
    stop("input tidak valid")
  }
  #inisialisasi CMF
  cmf <- 0
  #menghitung CMF
  for (x in 0:k) {
    prob<-choose(n, x) * (p^x) *((1-p)^(n-x))
    cmf <- cmf+prob
  }
  return(cmf)
}
#peluang paling sedikit 2 orang sembuh =1-p(x<= 1) 1-pbinom()
peluang = 1 - cmfbinom (1, 12, 0.2)
peluang
## [1] 0.7251221
cmfpois<- function (x, lambda){
  if(lambda<= 0){
    stop("Lamda Harus Bernilai >0")
  }
  if (x<0){
    return(0)
  }
  cmf <- 0
  for(k in 0:x){
    cmf <- cmf +(exp(-lambda) * (lambda^k)/factorial(k))
  }
  return(cmf)
}
peluang2<- cmfpois(10, 2)- cmfpois(0,2)
peluang2
## [1] 0.8646564
geo<-function(x,p){p*(1-p)^(x-1)}
geo(5,0.3)
## [1] 0.07203
hyper<-function(x,N,n,k){(((factorial(k)/(factorial(k-x)*factorial(x)))*(factorial(N-k)/((factorial((N-k)-(n-x)))*(factorial(n-x)))))/(factorial(N)/(factorial(N-n)*factorial(n))))}
                hyper(2,100,10,5)
## [1] 0.07021881