Racket makes learning fun...
--- apologies to Fleetwood Mac

I started translating (improving?) the Statistics classes R graphics with Racket plotting and math/distribution.

https://codeberg.org/bsmall2/racket-distribution-plots

#RacketLang #RacketPlot #StatisticsRacket
#RacketStatistics

racket-distribution-plots

Exploring statistics, distributions with racket

Codeberg.org
Looks like it was 2019 when we had a conversation about teaching statistics with Free Software (R)... And I was hoping we could keep everything coherent by doing everything with Racket.. There is a write.as post^1showing the code for some explorations into Statistics.
With time it might be possible to learn statistics, with visualization by reading the Statistics class print outs and Racket's documentation..
- ^1 https://write.as/bs2lr/standard-deviation-with-racket
- ^2 https://docs.racket-lang.org/math/dist_dist-objects.html#%28tech._distribution._object%29
#StatisticsRacket
@bs2
Standard Deviation with Racket

Diaspora comments introduced me to Howard Wainer's statistics articles and inspired me to learn some statistics. (fn:1) A WikiHow page he...

bsmall2 Learning Racket
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