Data scientist in Japan.
At a medical data company, I analyse electronic health records and cancer genomic panel test results from hospitals, for pharmaceutical companies. For example, how often lung side effects appear with anticancer drugs, how often gene variants appear, and finding side effects in free-text clinical notes.
I also work on digital transformation (DX) and AI adoption for small and mid-sized businesses. I build business systems such as an ERP made from scratch, an on-premise AI server, and software for accounting and education. I recently released GogaQ, an iPhone and iPad app for learning languages from real sentences.
Other areas I work in: claims data, doctor surveys (conjoint analysis), Bayesian statistics and causal inference. I publish the tools I make here.
| Project | What it does |
|---|---|
| jpomop | Converts Japanese DPC inpatient data to the OMOP Common Data Model v5.4. Built from the public specification and synthetic data only. On PyPI: pip install jpomop. |
| partworth | Hierarchical Bayes choice-based conjoint analysis in Python (PyMC), with Sawtooth-style outputs and a market simulator. On PyPI: pip install partworth. |
| natural-japanese-writing | An agent skill for Claude Code, Codex and Cursor that rewrites AI-sounding Japanese into natural Japanese without changing the facts. |
- Synthea International #23, merged: a Japan configuration for Synthea, the synthetic patient data generator. It adds Japanese regions, prefectures and municipalities, hospitals and clinics, income data, and patient cost sharing.
- awesome-japanese-nlp-resources #33, merged: added natural-japanese-writing to the list of Japanese NLP resources.
- ArviZ (arviz-stats) #489, merged:
hdinow returns NaN for both bounds when the input contains NaN andskipnais False. - OHDSI CommonDataModel #819, open: typo fixes in the OMOP CDM documentation.
Executed Jupyter notebooks, each on one method and one public dataset.
- bayesian-pairwise-ranking: Bradley-Terry, Davidson and Plackett-Luce in PyMC, applied to LLM arena votes, food preferences and tennis
- bayesian-ab-decision-kit: sequential A/B testing with expected-loss stopping rules
- bayesian-psychometrics: Rasch, 2PL and graded response models
- dp-customer-segmentation: Dirichlet process mixtures on retail RFM features
- uplift-modeling-benchmark: S/T/X meta-learners on the Criteo uplift dataset
- bayesian-volatility-regimes: stochastic volatility and regime-switching HMMs
- backtest-overfitting-check: CSCV/PBO, Deflated Sharpe Ratio and MinBTL
Ten open-source plugins for kintone, written in TypeScript. Each README is available in English and Japanese.
| Plugin | What it does | |
|---|---|---|
| command-palette | Ctrl+K command palette: jump to apps, views and records from the keyboard | |
| record-diff-viewer | Compare two records side by side with field-level and inline text diff | |
| status-time-tracker | Track how long records spend in each process status and locate bottlenecks | |
| round-robin-assigner | Assign new records to team members in rotation or by current workload | |
| draft-autosave | Auto-save form input and restore it after a lost tab or session timeout | |
| markdown-copy | Copy records and list views to the clipboard as Markdown tables, lists or TSV | |
| image-annotator | Draw arrows, shapes and text on attached images, keeping the original file | |
| image-compressor | Compress and resize images in the browser before attaching, stripping EXIF location data | |
| dummy-data-generator | Generate realistic Japanese test data, reproducible with a fixed seed | |
| theme-switcher | Dark and dim themes with per-user switching and OS auto mode |
- partworth: DEV / Medium / Zenn (日本語)
- jpomop: DEV / Medium / Zenn (日本語)
- natural-japanese-writing: DEV / Zenn (日本語)
- GogaQ, a language-learning app: DEV / Medium