LaTeX では,graphicx パッケージで関数のグラフの画像を貼ることができる.しかし,外部で*1画像ファイルを用意しておくのでなく,LaTeX内だけでグラフを描けないか?次のようなパッケージで,初等関数・三角関数・指数関数・対数関数くらいなら描ける.
- tikz -pgf https://ctan.org/pkg/pgf 低レベル,tikzpicture 環境
- pgfplots https://www.ctan.org/pkg/pgfplots 高レベル,axis 環境
グラフが描けるくらいだから,これらの関数の値を求めて,文字列としてタイプセットすることもることもできる.
統計学に現れる正規分布のガウス分布関数は四則演算と指数関数の組合せなのでこの方法で書けるが,その累積分布関数(誤差関数)やその逆関数(分位数関数)は明示的な形では書けないし,専用の関数は用意されていない.さらに,カイ二乗分布,t分布,F分布なども用意されていない*2.
では,LuaTeXの一部である lulalatex から呼び出せるスクリプト言語Lua*3ではこれらの関数があるのではと期待するが,実はない.そこで,多くの方がこれを補うLuaの非公式のパッケージを開発している.これらを LuaLaTeX から使うことができる.
- https://github.com/rgertenbach/Lua-Stats 確率密度関数,累積分布関数,分位数関数,仮説検定(分布:normal, T, Chi, F, beta, gamma),記述統計
- LuaLaTeX での使用例 https://github.com/hig3r/Lua-Stats/tree/lualatex
- https://github.com/r0fls/luastats 確率密度関数,累積分布関数,分位数関数,母数の最尤推定(分布:uniform, pareto, laplace, exponential, bernoulli)
- https://github.com/HubertRonald/LuaSF 乱数生成(分布: nomal, bernoulli, unif, expo, weibull, erlang, trian, binomial, geometric, poisson, chiSquare, gam, logno),正規分布の分位数関数,記述統計,
Lua-Stats の LuaLaTeX での使用例
\begin{luacode} stats = require("stats") local result = stats.dChisq(0.5,5) -- tex.print(result) \end{luacode}test The quantile at $p=0.5$ of the chi-square distribution with df$=5$ is \directlua{tex.print(stats.qChisq(0.5,5))}.
https://github.com/hig3r/Lua-Stats/tree/lualatex
https://github.com/hig3r/Lua-Stats/blob/lualatex/lualatex-stats-sample.pdf
tikzpicture 環境ではグラフが描けたが,pgfplots の高レベルの axis 環境では描けていない.
LuaSF の LuaLaTeX での使用例
Notes
*1:gnuplotやMathematicaやLLMで
*2:もちろん特定の母数に対して多項式近似をして値を求めたりグラフを描いたりすることはできる.例 https://tex.stackexchange.com/questions/40908/plotting-the-chi-square-distribution-with-tikz
*3:ゲームや組み込み用途で使われている.ヤマハのルータなど https://www.rtpro.yamaha.co.jp/RT/docs/lua/
*4:pst-func https://tex.stackexchange.com/questions/40908/plotting-the-chi-square-distribution-with-tikz