Skip to content

Instantly share code, notes, and snippets.

@abikoushi
abikoushi / Schrodinger.R
Created April 17, 2025 11:49
Learn Schrödinger's equation
makeLmat <- function (h){
x = seq(0,1,by=h)
N=length(x)
invh2 <- 1/(h^2)
res = diag(invh2, N)
res[cbind(1:(N-1),2:N)] <- -0.5*invh2
res[cbind(2:N,1:(N-1))] <- -0.5*invh2
return(list(L=res,x=x))
}
@abikoushi
abikoushi / multico.R
Created April 17, 2025 10:06
Contour plot of likelihood under multicollinearity
library(ggplot2)
library(dplyr)
library(mvtnorm)
set.seed(1)
x1 = rnorm(10, 0, 1)
x2 = x1+rnorm(10, 0, 0.1)
y = x1+x2 + rnorm(10, 0, 1)
print(cor(x1,x2))
@abikoushi
abikoushi / SEIR.R
Created April 6, 2025 06:29
The solution of SEIR model using `deSolve`
library(deSolve)
SEIRmod <- function(Time, State, Pars) {
with(as.list(c(State, Pars)), {
dS <- - beta*I*S
dE <- beta*I*S - alpha*E
dI <- alpha*E - gamma*I
dR <- gamma*I
return(list(c(dS, dE, dI, dR)))
})
@abikoushi
abikoushi / mixtureofpoisson.R
Created March 24, 2025 06:23
An Example of Stochastic Variational Bayes method: Mixture of Poisson distribution
# Reference:
# Hoffman et al. "Stochastic Variational Inference"
# browseURL("https://arxiv.org/abs/1206.7051")
####
# learning rate
lr <-function(t, lr_param){
(t + lr_param[1])^(-lr_param[2])
}
@abikoushi
abikoushi / Expectation_numtrunc.R
Created March 3, 2025 02:51
Expectation of number of right truncation; numerical integration
#intensity function
lambda <- function(x, shape){
shape*x^(shape-1)
}
#number of truncated observation
counttrunc <- function(tau, WS, weibull_param,
shape=1, maxit=10000){
Et = 0
count = 0L
@abikoushi
abikoushi / liger.R
Created February 26, 2025 05:08
first try rliger `runOnlineINMF`
#install.packages('RcppPlanc', repos = c('https://welch-lab.r-universe.dev', 'https://cloud.r-project.org'))
library(rliger)
library(RcppPlanc)
library(bench)
pbmc <- normalize(pbmc)
pbmc <- selectGenes(pbmc)
pbmc <- scaleNotCenter(pbmc)
getOption("ligerVerbose", TRUE)
bm <- bench::mark({
@abikoushi
abikoushi / MCMC_exp.R
Created February 24, 2025 05:44
The random walk that converges to exponential distribution
library(animation)
make_initial <- function(np, S){
X = rep(S/np, np)
return(X)
}
randomwalk <- function(X){
np = length(X)
i = sample.int(np, 1)
@abikoushi
abikoushi / OsawaRyuTedukuri.R
Created February 22, 2025 01:45
simulate Boltzmann distribution
#参考文献:永井佑紀『1週間で学べる!Julia数値計算プログラミング』(講談社)
library(animation)
library(reshape2)
make_initial <- function(n_people,n_chip){
basket = integer(n_people)
for(i in 1:n_chip){
target = sample.int(n_people, 1)
basket[target] = basket[target] + 1
}
@abikoushi
abikoushi / Osaka_survey.R
Created February 19, 2025 13:35
pdftools example
library(pdftools)
library(tidyr)
library(dplyr)
library(ggplot2)
browseURL("https://www.jstage.jst.go.jp/article/jph/50/8/50_686/_article/-char/ja/")
text = pdf_text("~/Downloads/50_686.pdf")
tab2raw = unlist(strsplit(text[grep("表2", text)]," "))
tab2raw = tab2raw[sapply(tab2raw, nchar) > 0]
tab2raw = tab2raw[16:145]
@abikoushi
abikoushi / sim_exponential.R
Created February 7, 2025 13:37
Geometric and binomial distribution -> exponential and Poisson distribution
library(animation)
sim_pois_1d <- function(t_n, g_n, p, seed){
set.seed(seed)
counts <- integer(t_n)
x <- seq(0, 1, length.out=g_n)
delta_list <- vector("list", t_n)
hit <- matrix(0, t_n, g_n)
pud = 10
for(i in 1:t_n){