I was talking with the teacher of the statistics class today and trying to convince him (along with myself, so: convince us) that we could teach everything with one language: Racket. So I got distracted trying to learn enough statistics to tranlsate R-code into Racket Code.
#lang racket
(require plot)
(require math/distributions)
;; R to Racket
;; ; Ztable, ZScore ??
;; ; (curve(dnorm(x, mean=0, sd=1), from=-4 to=4)
;; ; abline(v=qnorm(p=0.025, mean=0, sd=1)) ;; a=0.05(5%)とした場合
;; ; abline(v=qnorm(p=0.975, mean=0, sd=1))
(define n-d-0-1 (normal-dist 0 1))
(cdf n-d-0-1 0.025) ;; https://docs.racket-lang.org/math/dist_dist-objects.html
;; ; 0.509972518195238
(inv-cdf n-d-0-1 0.025) ;; https://docs.racket-lang.org/math/dist_dist-objects.html
;; ; -1.9599639845400538
(inv-cdf n-d-0-1 0.975) ;; 1.9599639845400536
#;(define (n-d-0-1-pdf x)
((distribution-pdf n-d-0-1) x))
;; (n-d-0-1-pdf -4) ;; 0.00013383022576488534
;; (n-d-0-1-pdf 4) ;; 0.00013383022576488534
#;(plot (function n-d-0-1-pdf)
#:x-min -4
#:x-max 4)
(define cdf-inv-0025 (inv-cdf (normal-dist 0 1) 0.025))
(define cdf-inv-00975 (inv-cdf (normal-dist 0 1) 0.975))
(plot (list
(function (distribution-pdf (normal-dist 0 1)))
(lines (list (vector cdf-inv-0025 0) (vector cdf-inv-0025 .4)))
(lines (list (vector cdf-inv-00975 0) (vector cdf-inv-00975 .4)))
); end list of plot functions
#:x-min -4 #:x-max 4
#:out-file "norm-dist-inv-cdf-1.png")
;; ; https://www.medi-08-data-06.work/entry/2018/12/18/232204
;; ; https://r-coder.com/normal-distribution-r/
;; ; https://www.statology.org/dnorm-pnorm-rnorm-qnorm-in-r/
;; ; cdf, inverse-cdf https://docs.racket-lang.org/math/dist_dist-objects.html
;; (require math/statistics) ;; quantile
;;(quantile 0.025 < n-d-0-1) ;; no good, how to get xs from normal-dist??
#
racket-lang #
DrRacket #
StatisticsRacket