Diff of the two buildlogs: -- --- b1/build.log 2024-04-04 00:47:26.324365183 +0000 +++ b2/build.log 2024-04-04 01:15:38.988524256 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Apr 3 12:18:26 -12 2024 -I: pbuilder-time-stamp: 1712189906 +I: Current time: Thu Apr 4 14:47:59 +14 2024 +I: pbuilder-time-stamp: 1712191679 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -30,52 +30,84 @@ dpkg-source: info: applying fpdf-reproducile-bist.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/24856/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/9589/tmp/hooks/D01_modify_environment starting +debug: Running on virt32c. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Apr 4 00:48 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/9589/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/9589/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='armhf' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="21" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf") + BASH_VERSION='5.2.21(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='c85b4af756b24719b9da8710d871fbe0' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='24856' - PS1='# ' - PS2='> ' + INVOCATION_ID=47ebaccd9f4f45378489f6a064b9b9e1 + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=9589 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.NgTE4E7g/pbuilderrc_cCQN --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.NgTE4E7g/b1 --logfile b1/build.log octave-statistics_1.6.5-3.dsc' - SUDO_GID='113' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:3142/' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.NgTE4E7g/pbuilderrc_SeyB --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.NgTE4E7g/b2 --logfile b2/build.log octave-statistics_1.6.5-3.dsc' + SUDO_GID=113 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux virt64c 6.1.0-18-arm64 #1 SMP Debian 6.1.76-1 (2024-02-01) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-18-armmp-lpae #1 SMP Debian 6.1.76-1 (2024-02-01) armv7l GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Apr 1 11:24 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/24856/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Apr 3 11:24 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/9589/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -638,7 +670,7 @@ Get: 514 http://deb.debian.org/debian trixie/main armhf octave-dev armhf 8.4.0-1+b1 [951 kB] Get: 515 http://deb.debian.org/debian trixie/main armhf dh-octave all 1.8.0 [22.7 kB] Get: 516 http://deb.debian.org/debian trixie/main armhf octave-io armhf 2.6.4-3+b1 [198 kB] -Fetched 181 MB in 5s (36.3 MB/s) +Fetched 181 MB in 4s (47.1 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:armhf. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19637 files and directories currently installed.) @@ -2312,8 +2344,8 @@ Setting up tzdata (2024a-1) ... Current default time zone: 'Etc/UTC' -Local time is now: Thu Apr 4 00:21:34 UTC 2024. -Universal Time is now: Thu Apr 4 00:21:34 UTC 2024. +Local time is now: Thu Apr 4 00:51:06 UTC 2024. +Universal Time is now: Thu Apr 4 00:51:06 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up liberror-perl (0.17029-2) ... @@ -2762,7 +2794,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/octave-statistics-1.6.5/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../octave-statistics_1.6.5-3_source.changes +I: user script /srv/workspace/pbuilder/9589/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/9589/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/octave-statistics-1.6.5/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../octave-statistics_1.6.5-3_source.changes dpkg-buildpackage: info: source package octave-statistics dpkg-buildpackage: info: source version 1.6.5-3 dpkg-buildpackage: info: source distribution unstable @@ -2799,10 +2835,10 @@ octave --no-gui --no-history --silent --no-init-file --no-window-system /usr/share/dh-octave/install-pkg.m /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/lib/arm-linux-gnueabihf/octave/packages make[1]: Entering directory '/build/reproducible-path/octave-statistics-1.6.5/src' /usr/bin/mkoctfile --verbose libsvmread.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security libsvmread.cc -o /tmp/oct-2GlId0.o -g++ -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -o libsvmread.oct /tmp/oct-2GlId0.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -flto=auto -ffat-lto-objects -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security libsvmread.cc -o /tmp/oct-Zp3YQX.o +g++ -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -o libsvmread.oct /tmp/oct-Zp3YQX.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -flto=auto -ffat-lto-objects -Wl,-z,relro /usr/bin/mkoctfile --verbose libsvmwrite.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security libsvmwrite.cc -o /tmp/oct-tATkV1.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security libsvmwrite.cc -o /tmp/oct-84nrjG.o libsvmwrite.cc: In function 'void write(std::string, ColumnVector, SparseMatrix)': libsvmwrite.cc:75:25: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t' {aka 'unsigned int'} [-Wformat=] 75 | fprintf(fp ," %lu:%g", (size_t)ir[k]+1, samples[k]); @@ -2810,20 +2846,20 @@ | | | | long unsigned int size_t {aka unsigned int} | %u -g++ -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -o libsvmwrite.oct /tmp/oct-tATkV1.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -flto=auto -ffat-lto-objects -Wl,-z,relro +g++ -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -o libsvmwrite.oct /tmp/oct-84nrjG.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -flto=auto -ffat-lto-objects -Wl,-z,relro /usr/bin/mkoctfile --verbose svmpredict.cc svm.cpp svm_model_octave.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security svmpredict.cc -o /tmp/oct-jAGvR9.o -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security svm.cpp -o /tmp/oct-i6OpdE.o -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security svm_model_octave.cc -o /tmp/oct-V4FiVw.o -g++ -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -o svmpredict.oct /tmp/oct-jAGvR9.o /tmp/oct-i6OpdE.o /tmp/oct-V4FiVw.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -flto=auto -ffat-lto-objects -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security svmpredict.cc -o /tmp/oct-0sTuH6.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security svm.cpp -o /tmp/oct-51UCgm.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security svm_model_octave.cc -o /tmp/oct-Py7OlG.o +g++ -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -o svmpredict.oct /tmp/oct-0sTuH6.o /tmp/oct-51UCgm.o /tmp/oct-Py7OlG.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -flto=auto -ffat-lto-objects -Wl,-z,relro /usr/bin/mkoctfile --verbose svmtrain.cc svm.cpp svm_model_octave.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security svmtrain.cc -o /tmp/oct-XwIE7W.o -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security svm.cpp -o /tmp/oct-XYjD7e.o -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security svm_model_octave.cc -o /tmp/oct-yuuYHE.o -g++ -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -o svmtrain.oct /tmp/oct-XwIE7W.o /tmp/oct-XYjD7e.o /tmp/oct-yuuYHE.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -flto=auto -ffat-lto-objects -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security svmtrain.cc -o /tmp/oct-PSZQ31.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security svm.cpp -o /tmp/oct-Q4sBMh.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security svm_model_octave.cc -o /tmp/oct-WfyI89.o +g++ -I/usr/include/octave-8.4.0/octave/.. -I/usr/include/octave-8.4.0/octave -pthread -fopenmp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.6.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -o svmtrain.oct /tmp/oct-PSZQ31.o /tmp/oct-Q4sBMh.o /tmp/oct-WfyI89.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/arm-linux-gnueabihf -shared -Wl,-Bsymbolic -flto=auto -ffat-lto-objects -Wl,-z,relro make[1]: Leaving directory '/build/reproducible-path/octave-statistics-1.6.5/src' copyfile /build/reproducible-path/octave-statistics-1.6.5/./src/libsvmread.oct /build/reproducible-path/octave-statistics-1.6.5/./src/libsvmwrite.oct /build/reproducible-path/octave-statistics-1.6.5/./src/svmpredict.oct /build/reproducible-path/octave-statistics-1.6.5/./src/svmtrain.oct /build/reproducible-path/octave-statistics-1.6.5/./src/libsvmread.cc-tst /build/reproducible-path/octave-statistics-1.6.5/./src/libsvmwrite.cc-tst /build/reproducible-path/octave-statistics-1.6.5/./src/svmpredict.cc-tst /build/reproducible-path/octave-statistics-1.6.5/./src/svmtrain.cc-tst /build/reproducible-path/octave-statistics-1.6.5/./inst/arm-unknown-linux-gnueabihf-api-v58 -warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/mean.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/std.m shadows a core library function warning: called from /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/PKG_ADD at line 15 column 3 doc_cache_create>gen_doc_cache_in_dir at line 146 column 5 @@ -2833,7 +2869,7 @@ pkg at line 619 column 9 /usr/share/dh-octave/install-pkg.m at line 38 column 1 -warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/mad.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/median.m shadows a core library function warning: called from /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/PKG_ADD at line 15 column 3 doc_cache_create>gen_doc_cache_in_dir at line 146 column 5 @@ -2843,7 +2879,7 @@ pkg at line 619 column 9 /usr/share/dh-octave/install-pkg.m at line 38 column 1 -warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/median.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/mean.m shadows a core library function warning: called from /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/PKG_ADD at line 15 column 3 doc_cache_create>gen_doc_cache_in_dir at line 146 column 5 @@ -2853,7 +2889,7 @@ pkg at line 619 column 9 /usr/share/dh-octave/install-pkg.m at line 38 column 1 -warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/std.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/mad.m shadows a core library function warning: called from /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/PKG_ADD at line 15 column 3 doc_cache_create>gen_doc_cache_in_dir at line 146 column 5 @@ -2873,7 +2909,7 @@ pkg at line 619 column 9 /usr/share/dh-octave/install-pkg.m at line 38 column 1 -warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/mean.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/std.m shadows a core library function warning: called from doc_cache_create>gen_doc_cache_in_dir at line 146 column 5 doc_cache_create at line 62 column 12 @@ -2882,7 +2918,7 @@ pkg at line 619 column 9 /usr/share/dh-octave/install-pkg.m at line 38 column 1 -warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/mad.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/median.m shadows a core library function warning: called from doc_cache_create>gen_doc_cache_in_dir at line 146 column 5 doc_cache_create at line 62 column 12 @@ -2891,7 +2927,7 @@ pkg at line 619 column 9 /usr/share/dh-octave/install-pkg.m at line 38 column 1 -warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/median.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/mean.m shadows a core library function warning: called from doc_cache_create>gen_doc_cache_in_dir at line 146 column 5 doc_cache_create at line 62 column 12 @@ -2900,7 +2936,7 @@ pkg at line 619 column 9 /usr/share/dh-octave/install-pkg.m at line 38 column 1 -warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/std.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/mad.m shadows a core library function warning: called from doc_cache_create>gen_doc_cache_in_dir at line 146 column 5 doc_cache_create at line 62 column 12 @@ -2924,131 +2960,44 @@ Checking package... Run the unit tests... Checking m files ... -warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/mean.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/std.m shadows a core library function warning: called from - /tmp/tmp.SsMo1UwVTS at line 12 column 1 + /tmp/tmp.0OhMRfHUlr at line 12 column 1 -warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/mad.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/median.m shadows a core library function warning: called from - /tmp/tmp.SsMo1UwVTS at line 12 column 1 + /tmp/tmp.0OhMRfHUlr at line 12 column 1 -warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/median.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/mean.m shadows a core library function warning: called from - /tmp/tmp.SsMo1UwVTS at line 12 column 1 + /tmp/tmp.0OhMRfHUlr at line 12 column 1 -warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/std.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/mad.m shadows a core library function warning: called from - /tmp/tmp.SsMo1UwVTS at line 12 column 1 + /tmp/tmp.0OhMRfHUlr at line 12 column 1 warning: function /build/reproducible-path/octave-statistics-1.6.5/debian/tmp/usr/share/octave/packages/statistics-1.6.5/shadow9/var.m shadows a core library function warning: called from - /tmp/tmp.SsMo1UwVTS at line 12 column 1 + /tmp/tmp.0OhMRfHUlr at line 12 column 1 -[inst/cdfcalc.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cdfcalc.m -***** test - x = [2, 4, 3, 2, 4, 3, 2, 5, 6, 4]; - [yCDF, xCDF, n, emsg, eid] = cdfcalc (x); - assert (yCDF, [0, 0.3, 0.5, 0.8, 0.9, 1]'); - assert (xCDF, [2, 3, 4, 5, 6]'); - assert (n, 10); -***** shared x - x = [2, 4, 3, 2, 4, 3, 2, 5, 6, 4]; -***** error yCDF = cdfcalc (x); -***** error [yCDF, xCDF] = cdfcalc (); -***** error [yCDF, xCDF] = cdfcalc (x, x); -***** warning [yCDF, xCDF] = cdfcalc (ones(10,2)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/randsample.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/randsample.m -***** test - n = 20; - k = 5; - x = randsample(n, k); - assert (size(x), [1 k]); - x = randsample(n, k, true); - assert (size(x), [1 k]); - x = randsample(n, k, false); - assert (size(x), [1 k]); - x = randsample(n, k, true, ones(n, 1)); - assert (size(x), [1 k]); - x = randsample(1:n, k); - assert (size(x), [1 k]); - x = randsample(1:n, k, true); - assert (size(x), [1 k]); - x = randsample(1:n, k, false); - assert (size(x), [1 k]); - x = randsample(1:n, k, true, ones(n, 1)); - assert (size(x), [1 k]); - x = randsample((1:n)', k); - assert (size(x), [k 1]); - x = randsample((1:n)', k, true); - assert (size(x), [k 1]); - x = randsample((1:n)', k, false); - assert (size(x), [k 1]); - x = randsample((1:n)', k, true, ones(n, 1)); - assert (size(x), [k 1]); - n = 10; - k = 100; - x = randsample(n, k, true, 1:n); - assert (size(x), [1 k]); - x = randsample((1:n)', k, true); - assert (size(x), [k 1]); - x = randsample(k, k, false, 1:k); - assert (size(x), [1 k]); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/cophenet.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cophenet.m -***** demo - randn ("seed", 5) # for reproducibility - X = randn (10,2); - y = pdist (X); - Z = linkage (y, "average"); - cophenet (Z, y) -***** error cophenet () -***** error cophenet (1) -***** error ... - cophenet (ones (2,2), 1) -***** error ... - cophenet ([1 2 1], "a") -***** error ... - cophenet ([1 2 1], [1 2]) -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/wblplot.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/wblplot.m -***** demo - x = [16 34 53 75 93 120]; - wblplot (x); -***** demo - x = [2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67]'; - c = [0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1]'; - [h, p] = wblplot (x, c); - p -***** demo - x = [16, 34, 53, 75, 93, 120, 150, 191, 240 ,339]; - [h, p] = wblplot (x, [], [], 0.05); - p - ## Benchmark Reliasoft eta = 146.2545 beta 1.1973 rho = 0.9999 -***** demo - x = [46 64 83 105 123 150 150]; - c = [0 0 0 0 0 0 1]; - f = [1 1 1 1 1 1 4]; - wblplot (x, c, f, 0.05); +[inst/gscatter.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/gscatter.m ***** demo - x = [46 64 83 105 123 150 150]; - c = [0 0 0 0 0 0 1]; - f = [1 1 1 1 1 1 4]; - ## Subtract 30.92 from x to simulate a 3 parameter wbl with gamma = 30.92 - wblplot (x - 30.92, c, f, 0.05); + load fisheriris; + X = meas(:,3:4); + cidcs = kmeans (X, 3, "Replicates", 5); + gscatter (X(:,1), X(:,2), cidcs, [.75 .75 0; 0 .75 .75; .75 0 .75], "os^"); + title ("Fisher's iris data"); +***** shared visibility_setting + visibility_setting = get (0, "DefaultFigureVisible"); ***** test hf = figure ("visible", "off"); unwind_protect - x = [16, 34, 53, 75, 93, 120, 150, 191, 240 ,339]; - [h, p] = wblplot (x, [], [], 0.05); - assert (numel (h), 4) - assert (p(1), 146.2545, 1E-4) - assert (p(2), 1.1973, 1E-4) - assert (p(3), 0.9999, 5E-5) + load fisheriris; + X = meas(:,3:4); + cidcs = kmeans (X, 3, "Replicates", 5); + gscatter (X(:,1), X(:,2), cidcs, [.75 .75 0; 0 .75 .75; .75 0 .75], "os^"); + title ("Fisher's iris data"); unwind_protect_cleanup close (hf); end_unwind_protect @@ -3062,466 +3011,338 @@ example, if the plot window is closed with a mouse click, Octave will not be notified and will not update its internal list of open figure windows. The qt toolkit is recommended instead. -1 test, 1 passed, 0 known failure, 0 skipped -[inst/pdist2.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/pdist2.m -***** shared x, y, xx - x = [1, 1, 1; 2, 2, 2; 3, 3, 3]; - y = [0, 0, 0; 1, 2, 3; 0, 2, 4; 4, 7, 1]; - xx = [1 2 3; 4 5 6; 7 8 9; 3 2 1]; -***** test - d = sqrt([3, 5, 11, 45; 12, 2, 8, 30; 27, 5, 11, 21]); - assert (pdist2 (x, y), d); -***** test - d = [5.1962, 2.2361, 3.3166, 6.7082; ... - 3.4641, 2.2361, 3.3166, 5.4772]; - i = [3, 1, 1, 1; 2, 3, 3, 2]; - [D, I] = pdist2 (x, y, "euclidean", "largest", 2); - assert ({D, I}, {d, i}, 1e-4); -***** test - d = [1.7321, 1.4142, 2.8284, 4.5826; ... - 3.4641, 2.2361, 3.3166, 5.4772]; - i = [1, 2, 2, 3;2, 1, 1, 2]; - [D, I] = pdist2 (x, y, "euclidean", "smallest", 2); - assert ({D, I}, {d, i}, 1e-4); -***** test - yy = [1 2 3;5 6 7;9 5 1]; - d = [0, 6.1644, 5.3852; 1.4142, 6.9282, 8.7750; ... - 3.7417, 7.0711, 9.9499; 6.1644, 10.4881, 10.3441]; - i = [2, 4, 4; 3, 2, 2; 1, 3, 3; 4, 1, 1]; - [D, I] = pdist2 (y, yy, "euclidean", "smallest", 4); - assert ({D, I}, {d, i}, 1e-4); -***** test - yy = [1 2 3;5 6 7;9 5 1]; - d = [0, 38, 29; 2, 48, 77; 14, 50, 99; 38, 110, 107]; - i = [2, 4, 4; 3, 2, 2; 1, 3, 3; 4, 1, 1]; - [D, I] = pdist2 (y, yy, "squaredeuclidean", "smallest", 4); - assert ({D, I}, {d, i}, 1e-4); -***** test - yy = [1 2 3;5 6 7;9 5 1]; - d = [0, 3.3256, 2.7249; 0.7610, 3.3453, 4.4799; ... - 1.8514, 3.3869, 5.0703; 2.5525, 5.0709, 5.1297]; - i = [2, 2, 4; 3, 4, 2; 1, 3, 1; 4, 1, 3]; - [D, I] = pdist2 (y, yy, "seuclidean", "smallest", 4); - assert ({D, I}, {d, i}, 1e-4); -***** test - d = [2.1213, 4.2426, 6.3640; 1.2247, 2.4495, 4.4159; ... - 3.2404, 4.8990, 6.8191; 2.7386, 4.2426, 6.1237]; - assert (pdist2 (y, x, "mahalanobis"), d, 1e-4); -***** test - xx = [1, 3, 4; 3, 5, 4; 8, 7, 6]; - d = [1.3053, 1.8257, 15.0499; 1.3053, 3.3665, 16.5680]; - i = [2, 2, 2; 3, 4, 4]; - [D, I] = pdist2 (y, xx, "mahalanobis", "smallest", 2); - assert ({D, I}, {d, i}, 1e-4); -***** test - d = [2.5240, 4.1633, 17.3638; 2.0905, 3.9158, 17.0147]; - i = [1, 1, 3; 4, 3, 1]; - [D, I] = pdist2 (y, xx, "mahalanobis", "largest", 2); - assert ({D, I}, {d, i}, 1e-4); -***** test - d = [3, 3, 5, 9; 6, 2, 4, 8; 9, 3, 5, 7]; - assert (pdist2 (x, y, "cityblock"), d); -***** test - d = [1, 2, 3, 6; 2, 1, 2, 5; 3, 2, 3, 4]; - assert (pdist2 (x, y, "chebychev"), d); -***** test - d = repmat ([NaN, 0.0742, 0.2254, 0.1472], [3, 1]); - assert (pdist2 (x, y, "cosine"), d, 1e-4); -***** test - yy = [1 2 3;5 6 7;9 5 1]; - d = [0, 0, 0.5; 0, 0, 2; 1.5, 1.5, 2; NaN, NaN, NaN]; - i = [2, 2, 4; 3, 3, 2; 4, 4, 3; 1, 1, 1]; - [D, I] = pdist2 (y, yy, "correlation", "smallest", 4); - assert ({D, I}, {d, i}, eps); - [D, I] = pdist2 (y, yy, "spearman", "smallest", 4); - assert ({D, I}, {d, i}, eps); -***** test - d = [1, 2/3, 1, 1; 1, 2/3, 1, 1; 1, 2/3, 2/3, 2/3]; - i = [1, 1, 1, 2; 2, 2, 3, 3; 3, 3, 2, 1]; - [D, I] = pdist2 (x, y, "hamming", "largest", 4); - assert ({D, I}, {d, i}, eps); - [D, I] = pdist2 (x, y, "jaccard", "largest", 4); - assert ({D, I}, {d, i}, eps); -***** test - xx = [1, 2, 3, 4; 2, 3, 4, 5; 3, 4, 5, 6]; - yy = [1, 2, 2, 3; 2, 3, 3, 4]; - [D, I] = pdist2 (x, y, "euclidean", "Smallest", 4); - eucldist = @(v,m) sqrt(sumsq(repmat(v,rows(m),1)-m,2)); - [d, i] = pdist2 (x, y, eucldist, "Smallest", 4); - assert ({D, I}, {d, i}); -***** warning ... - pdist2 (xx, xx, "mahalanobis"); -***** error pdist2 (1) -***** error ... - pdist2 (ones (4, 5), ones (4)) -***** error ... - pdist2 (ones (4, 2, 3), ones (3, 2)) -***** error ... - pdist2 (ones (3), ones (3), "euclidean", "Largest") -***** error ... - pdist2 (ones (3), ones (3), "minkowski", 3, "Largest") -***** error ... - pdist2 (ones (3), ones (3), "minkowski", 3, "large", 4) -***** error ... - pdist2 (ones (3), ones (3), "minkowski", 3, "Largest", 4, "smallest", 5) -***** error ... - [d, i] = pdist2(ones (3), ones (3), "minkowski", 3) -***** error ... - pdist2 (ones (3), ones (3), "seuclidean", 3) -***** error ... - pdist2 (ones (3), ones (3), "seuclidean", [1, -1, 3]) -***** error ... - pdist2 (ones (3), eye (3), "mahalanobis", eye(2)) -***** error ... - pdist2 (ones (3), eye (3), "mahalanobis", ones(3)) -***** error ... - pdist2 (ones (3), eye (3), "minkowski", 0) -***** error ... - pdist2 (ones (3), eye (3), "minkowski", -5) -***** error ... - pdist2 (ones (3), eye (3), "minkowski", [1, 2]) -***** error ... - pdist2 (ones (3), ones (3), @(v,m) sqrt(repmat(v,rows(m),1)-m,2)) -***** error ... - pdist2 (ones (3), ones (3), @(v,m) sqrt(sum(sumsq(repmat(v,rows(m),1)-m,2)))) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/vartestn.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/vartestn.m -***** demo - ## Test the null hypothesis that the variances are equal across the five - ## columns of data in the students’ exam grades matrix, grades. - - load examgrades - vartestn (grades) -***** demo - ## Test the null hypothesis that the variances in miles per gallon (MPG) are - ## equal across different model years. - - load carsmall - vartestn (MPG, Model_Year) +warning: legend: 'best' not yet implemented for location specifier, using 'northeast' instead +***** error gscatter (); +***** error gscatter ([1]); +***** error gscatter ([1], [2]); +***** error gscatter ('abc', [1 2 3], [1]); +***** error gscatter ([1 2 3], [1 2], [1]); +***** error gscatter ([1 2 3], 'abc', [1]); +***** error gscatter ([1 2], [1 2], [1]); +***** error gscatter ([1 2], [1 2], [1 2], 'rb', 'so', 12, 'xxx'); +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/silhouette.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/silhouette.m ***** demo - ## Use Levene’s test to test the null hypothesis that the variances in miles - ## per gallon (MPG) are equal across different model years. - - load carsmall - p = vartestn (MPG, Model_Year, "TestType", "LeveneAbsolute") + load fisheriris; + X = meas(:,3:4); + cidcs = kmeans (X, 3, "Replicates", 5); + silhouette (X, cidcs); + y_labels(cidcs([1 51 101])) = unique (species); + set (gca, "yticklabel", y_labels); + title ("Fisher's iris data"); +***** error silhouette (); +***** error silhouette ([1 2; 1 1]); +***** error silhouette ([1 2; 1 1], [1 2 3]'); +***** error silhouette ([1 2; 1 1], [1 2]', "xxx"); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/squareform.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/squareform.m +***** shared v, m + v = 1:6; + m = [0 1 2 3;1 0 4 5;2 4 0 6;3 5 6 0]; +***** assert (squareform (v), m) +***** assert (squareform (squareform (v)), v) +***** assert (squareform (m), v) +***** assert (squareform (v'), m) +***** assert (squareform (1), [0 1;1 0]) +***** assert (squareform (1, "tomatrix"), [0 1; 1 0]) +***** assert (squareform (0, "tovector"), zeros (1, 0)) +***** warning squareform ([0 1 2; 3 0 4; 5 6 0]); +***** test + for c = {@single, @double, @uint8, @uint32, @uint64} + f = c{1}; + assert (squareform (f (v)), f (m)) + assert (squareform (f (m)), f (v)) + endfor +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/grpstats.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/grpstats.m +***** demo + load carsmall; + [m,p,g] = grpstats (Weight, Model_Year, {"mean", "predci", "gname"}) + n = length(m); + errorbar((1:n)',m,p(:,2)-m); + set (gca, "xtick", 1:n, "xticklabel", g); + title ("95% prediction intervals for mean weight by year"); +***** demo + load carsmall; + [m,p,g] = grpstats ([Acceleration,Weight/1000],Cylinders, ... + {"mean", "meanci", "gname"}, 0.05) + [c,r] = size (m); + errorbar((1:c)'.*ones(c,r),m,p(:,[(1:r)])-m); + set (gca, "xtick", 1:c, "xticklabel", g); + title ("95% prediction intervals for mean weight by year"); +***** test + load carsmall + means = grpstats (Acceleration, Origin); + assert (means, [14.4377; 18.0500; 15.8867; 16.3778; 16.6000; 15.5000], 0.001); +***** test + load carsmall + [grpMin,grpMax,grp] = grpstats (Acceleration, Origin, {"min","max","gname"}); + assert (grpMin, [8.0; 15.3; 13.9; 12.2; 15.7; 15.5]); + assert (grpMax, [22.2; 21.9; 18.2; 24.6; 17.5; 15.5]); +***** test + load carsmall + [grpMin,grpMax,grp] = grpstats (Acceleration, Origin, {"min","max","gname"}); + assert (grp', {"USA", "France", "Japan", "Germany", "Sweden", "Italy"}); +***** test + load carsmall + [m,p,g] = grpstats ([Acceleration,Weight/1000], Cylinders, ... + {"mean", "meanci", "gname"}, 0.05); + assert (p(:,1), [11.17621760075134, 16.13845847655224, 16.16222663683362]', ... + [1e-14, 2e-14, 1e-14]'); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/pcares.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/pcares.m ***** demo - ## Test the null hypothesis that the variances are equal across the five - ## columns of data in the students’ exam grades matrix, grades, using the - ## Brown-Forsythe test. Suppress the display of the summary table of - ## statistics and the box plot. + x = [ 7 26 6 60; + 1 29 15 52; + 11 56 8 20; + 11 31 8 47; + 7 52 6 33; + 11 55 9 22; + 3 71 17 6; + 1 31 22 44; + 2 54 18 22; + 21 47 4 26; + 1 40 23 34; + 11 66 9 12; + 10 68 8 12]; - load examgrades - [p, stats] = vartestn (grades, "TestType", "BrownForsythe", "Display", "off") -***** error vartestn (); -***** error vartestn (1); -***** error ... - vartestn ([1, 2, 3, 4, 5, 6, 7]); -***** error ... - vartestn ([1, 2, 3, 4, 5, 6, 7], []); -***** error ... - vartestn ([1, 2, 3, 4, 5, 6, 7], "TestType", "LeveneAbsolute"); -***** error ... - vartestn ([1, 2, 3, 4, 5, 6, 7], [], "TestType", "LeveneAbsolute"); -***** error ... - vartestn ([1, 2, 3, 4, 5, 6, 7], [1, 1, 1, 2, 2, 2, 2], "Display", "some"); -***** error ... - vartestn (ones (50,3), "Display", "some"); -***** error ... - vartestn (ones (50,3), "Display", "off", "testtype", "some"); -***** error ... - vartestn (ones (50,3), [], "som"); -***** error ... - vartestn (ones (50,3), [], "some", "some"); -***** error ... - vartestn (ones (50,3), [1, 2], "Display", "off"); -***** test - load examgrades - [p, stat] = vartestn (grades, "Display", "off"); - assert (p, 7.908647337018238e-08, 1e-14); - assert (stat.chisqstat, 38.7332, 1e-4); - assert (stat.df, 4); -***** test - load examgrades - [p, stat] = vartestn (grades, "Display", "off", "TestType", "LeveneAbsolute"); - assert (p, 9.523239714592791e-07, 1e-14); - assert (stat.fstat, 8.5953, 1e-4); - assert (stat.df, [4, 595]); + ## As we increase the number of principal components, the norm + ## of the residuals matrix will decrease + r1 = pcares (x,1); + n1 = norm (r1) + r2 = pcares (x,2); + n2 = norm (r2) + r3 = pcares (x,3); + n3 = norm (r3) + r4 = pcares (x,4); + n4 = norm (r4) ***** test - load examgrades - [p, stat] = vartestn (grades, "Display", "off", "TestType", "LeveneQuadratic"); - assert (p, 7.219514351897161e-07, 1e-14); - assert (stat.fstat, 8.7503, 1e-4); - assert (stat.df, [4, 595]); + load hald + r1 = pcares (ingredients,1); + r2 = pcares (ingredients,2); + r3 = pcares (ingredients,3); + assert (r1(1,:), [2.0350, 2.8304, -6.8378, 3.0879], 1e-4); + assert (r2(1,:), [-2.4037, 2.6930, -1.6482, 2.3425], 1e-4); + assert (r3(1,:), [ 0.2008, 0.1957, 0.2045, 0.1921], 1e-4); +***** error pcares (ones (20, 3)) +***** error ... + pcares (ones (30, 2), 3) +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/confusionmat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/confusionmat.m ***** test - load examgrades - [p, stat] = vartestn (grades, "Display", "off", "TestType", "BrownForsythe"); - assert (p, 1.312093241723211e-06, 1e-14); - assert (stat.fstat, 8.4160, 1e-4); - assert (stat.df, [4, 595]); + Yt = [8 5 6 8 5 3 1 6 4 2 5 3 1 4]'; + Yp = [8 5 6 8 5 2 3 4 4 5 5 7 2 6]'; + C = [0 1 1 0 0 0 0 0; 0 0 0 0 1 0 0 0; 0 1 0 0 0 0 1 0; 0 0 0 1 0 1 0 0; ... + 0 0 0 0 3 0 0 0; 0 0 0 1 0 1 0 0; 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 2]; + assert (confusionmat (Yt, Yp), C) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/ppplot.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ppplot.m ***** test - load examgrades - [p, stat] = vartestn (grades, "Display", "off", "TestType", "OBrien"); - assert (p, 8.235660885480556e-07, 1e-14); - assert (stat.fstat, 8.6766, 1e-4); - assert (stat.df, [4, 595]); -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/crosstab.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/crosstab.m -***** error crosstab () -***** error crosstab (1) -***** error crosstab (ones (2), [1 1]) -***** error crosstab ([1 1], ones (2)) -***** error crosstab ([1], [1 2]) -***** error crosstab ([1 2], [1]) + hf = figure ("visible", "off"); + unwind_protect + ppplot ([2 3 3 4 4 5 6 5 6 7 8 9 8 7 8 9 0 8 7 6 5 4 6 13 8 15 9 9]); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** error ppplot () +***** error ppplot (ones (2,2)) +***** error ppplot (1, 2) +***** error ppplot ([1 2 3 4], 2) +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/ranksum.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ranksum.m ***** test - load carbig - [table, chisq, p, labels] = crosstab (cyl4, when, org); - assert (table(2,3,1), 38); - assert (labels{3,3}, "Japan"); + mileage = [33.3, 34.5, 37.4; 33.4, 34.8, 36.8; ... + 32.9, 33.8, 37.6; 32.6, 33.4, 36.6; ... + 32.5, 33.7, 37.0; 33.0, 33.9, 36.7]; + [p,h,stats] = ranksum(mileage(:,1),mileage(:,2)); + assert (p, 0.004329004329004329, 1e-14); + assert (h, true); + assert (stats.ranksum, 21.5); ***** test - load carbig - [table, chisq, p, labels] = crosstab (cyl4, when, org); - assert (table(2,3,2), 17); - assert (labels{1,3}, "USA"); -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/ttest2.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ttest2.m + year1 = [51 52 62 62 52 52 51 53 59 63 59 56 63 74 68 86 82 70 69 75 73 ... + 49 47 50 60 59 60 62 61 71]'; + year2 = [54 53 64 66 57 53 54 54 62 66 59 59 67 76 75 86 82 67 74 80 75 ... + 54 50 53 62 62 62 72 60 67]'; + [p,h,stats] = ranksum(year1, year2, "alpha", 0.01, "tail", "left"); + assert (p, 0.1270832752950605, 1e-14); + assert (h, false); + assert (stats.ranksum, 837.5); + assert (stats.zval, -1.140287483634606, 1e-14); + [p,h,stats] = ranksum(year1, year2, "alpha", 0.01, "tail", "left", ... + "method", "exact"); + assert (p, 0.127343916432862, 1e-14); + assert (h, false); + assert (stats.ranksum, 837.5); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/vartest.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/vartest.m +***** error vartest (); +***** error vartest ([1, 2, 3, 4], -0.5); +***** error ... + vartest ([1, 2, 3, 4], 1, "alpha", 0); +***** error ... + vartest ([1, 2, 3, 4], 1, "alpha", 1.2); +***** error ... + vartest ([1, 2, 3, 4], 1, "alpha", "val"); +***** error ... + vartest ([1, 2, 3, 4], 1, "tail", "val"); +***** error ... + vartest ([1, 2, 3, 4], 1, "alpha", 0.01, "tail", "val"); +***** error ... + vartest ([1, 2, 3, 4], 1, "dim", 3); +***** error ... + vartest ([1, 2, 3, 4], 1, "alpha", 0.01, "tail", "both", "dim", 3); +***** error ... + vartest ([1, 2, 3, 4], 1, "alpha", 0.01, "tail", "both", "badoption", 3); +***** error ... + vartest ([1, 2, 3, 4], 1, "alpha", 0.01, "tail"); ***** test - a = 1:5; - b = 6:10; - b(5) = NaN; - [h,p,ci,stats] = ttest2 (a,b); + load carsmall + [h, pval, ci] = vartest (MPG, 7^2); assert (h, 1); - assert (p, 0.002535996080258229, 1e-14); - assert (ci, [-6.822014919225481, -2.17798508077452], 1e-14); - assert (stats.tstat, -4.582575694955839, 1e-14); - assert (stats.df, 7); - assert (stats.sd, 1.4638501094228, 1e-13); -***** error ttest2 ([8:0.1:12], [8:0.1:12], "tail", "invalid"); -***** error ttest2 ([8:0.1:12], [8:0.1:12], "tail", 25); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/ridge.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ridge.m + assert (pval, 0.04335086742174443, 1e-14); + assert (ci, [49.397; 88.039], 1e-3); +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/fitgmdist.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/fitgmdist.m ***** demo - ## Perform ridge regression for a range of ridge parameters and observe - ## how the coefficient estimates change based on the acetylene dataset. - - load acetylene - - X = [x1, x2, x3]; - - x1x2 = x1 .* x2; - x1x3 = x1 .* x3; - x2x3 = x2 .* x3; - - D = [x1, x2, x3, x1x2, x1x3, x2x3]; - - k = 0:1e-5:5e-3; + ## Generate a two-cluster problem + C1 = randn (100, 2) + 2; + C2 = randn (100, 2) - 2; + data = [C1; C2]; - b = ridge (y, D, k); + ## Perform clustering + GMModel = fitgmdist (data, 2); + ## Plot the result figure - plot (k, b, "LineWidth", 2) - ylim ([-100, 100]) - grid on - xlabel ("Ridge Parameter") - ylabel ("Standardized Coefficient") - title ("Ridge Trace") - legend ("x1", "x2", "x3", "x1x2", "x1x3", "x2x3") - + [heights, bins] = hist3([C1; C2]); + [xx, yy] = meshgrid(bins{1}, bins{2}); + bbins = [xx(:), yy(:)]; + contour (reshape (GMModel.pdf (bbins), size (heights))); ***** demo - - load carbig - X = [Acceleration Weight Displacement Horsepower]; - y = MPG; - - n = length(y); - - rand("seed",1); % For reproducibility - - c = cvpartition(n,'HoldOut',0.3); - idxTrain = training(c,1); - idxTest = ~idxTrain; - - idxTrain = training(c,1); - idxTest = ~idxTrain; - - k = 5; - b = ridge(y(idxTrain),X(idxTrain,:),k,0); - - % Predict MPG values for the test data using the model. - yhat = b(1) + X(idxTest,:)*b(2:end); - scatter(y(idxTest),yhat) - - hold on - plot(y(idxTest),y(idxTest),"r") - xlabel('Actual MPG') - ylabel('Predicted MPG') - hold off - + Angle_Theta = [ 30 + 10 * randn(1, 10), 60 + 10 * randn(1, 10) ]'; + nbOrientations = 2; + initial_orientations = [38.0; 18.0]; + initial_weights = ones (1, nbOrientations) / nbOrientations; + initial_Sigma = 10 * ones (1, 1, nbOrientations); + start = struct ("mu", initial_orientations, "Sigma", initial_Sigma, ... + "ComponentProportion", initial_weights); + GMModel_Theta = fitgmdist (Angle_Theta, nbOrientations, "Start", start , ... + "RegularizationValue", 0.0001) ***** test - b = ridge ([1 2 3 4]', [1 2 3 4; 2 3 4 5]', 1); - assert (b, [0.5533; 0.5533], 1e-4); + load fisheriris + classes = unique (species); + [~, score] = pca (meas, "NumComponents", 2); + options.MaxIter = 1000; + options.TolFun = 1e-6; + options.Display = "off"; + GMModel = fitgmdist (score, 2, "Options", options); + assert (isa (GMModel, "gmdistribution"), true); + assert (GMModel.mu, [1.3212, -0.0954; -2.6424, 0.1909], 1e-4); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/tiedrank.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/tiedrank.m ***** test - b = ridge ([1 2 3 4]', [1 2 3 4; 2 3 4 5]', 2); - assert (b, [0.4841; 0.4841], 1e-4); + mileage = [33.3, 34.5, 37.4; 33.4, 34.8, 36.8; ... + 32.9, 33.8, 37.6; 32.6, 33.4, 36.6; ... + 32.5, 33.7, 37.0; 33.0, 33.9, 36.7]; + [r,tieadj] = tiedrank([10, 20, 30, 40, 50]); + assert (r, [1, 2, 3, 4, 5]); + assert (tieadj, 0); + [r,tieadj] = tiedrank([10, 20, 30, 40, 50]'); + assert (r, [1; 2; 3; 4; 5]); ***** test - load acetylene - x = [x1, x2, x3]; - b = ridge (y, x, 0); - assert (b,[10.2273;1.97128;-0.601818],1e-4); + mileage = [33.3, 34.5, 37.4; 33.4, 34.8, 36.8; ... + 32.9, 33.8, 37.6; 32.6, 33.4, 36.6; ... + 32.5, 33.7, 37.0; 33.0, 33.9, 36.7]; + [r,tieadj] = tiedrank([10, 20, 30, 40, 50], 1); + assert (r, [1, 2, 3, 4, 5]); + assert (tieadj, [0 0 0]'); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/chi2test.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/chi2test.m +***** error chi2test (); +***** error chi2test ([1, 2, 3, 4, 5]); +***** error chi2test ([1, 2; 2, 1+3i]); +***** error chi2test ([NaN, 6; 34, 12]); +***** error ... + p = chi2test (ones (3, 3), "mutual", []); +***** error ... + p = chi2test (ones (3, 3, 3), "testtype", 2); +***** error ... + p = chi2test (ones (3, 3, 3), "mutual"); +***** error ... + p = chi2test (ones (3, 3, 3), "joint", ["a"]); +***** error ... + p = chi2test (ones (3, 3, 3), "joint", [2, 3]); +***** error ... + p = chi2test (ones (3, 3, 3, 4), "mutual", []) +***** warning p = chi2test (ones (2)); +***** warning p = chi2test (ones (3, 2)); +***** warning p = chi2test (0.4 * ones (3)); ***** test - load acetylene - x = [x1, x2, x3]; - b = ridge (y, x, 0.0005); - assert (b,[10.2233;1.9712;-0.6056],1e-4); + x = [11, 3, 8; 2, 9, 14; 12, 13, 28]; + p = chi2test (x); + assert (p, 0.017787, 1e-6); ***** test - load acetylene - x = [x1, x2, x3]; - b = ridge (y, x, 0.001); - assert (b,[10.2194;1.9711;-0.6094],1e-4); + x = [11, 3, 8; 2, 9, 14; 12, 13, 28]; + [p, chisq] = chi2test (x); + assert (chisq, 11.9421, 1e-4); ***** test - load acetylene - x = [x1, x2, x3]; - b = ridge (y, x, 0.002); - assert (b,[10.2116;1.9709;-0.6169],1e-4); + x = [11, 3, 8; 2, 9, 14; 12, 13, 28]; + [p, chisq, df] = chi2test (x); + assert (df, 4); ***** test - load acetylene - x = [x1, x2, x3]; - b = ridge (y, x, 0.005); - assert (b,[10.1882;1.9704;-0.6393],1e-4); +***** shared x + x(:,:,1) = [59, 32; 9,16]; + x(:,:,2) = [55, 24;12,33]; + x(:,:,3) = [107,80;17,56];%! +***** assert (chi2test (x), 2.282063427117009e-11, 1e-14); +***** assert (chi2test (x, "mutual", []), 2.282063427117009e-11, 1e-14); +***** assert (chi2test (x, "joint", 1), 1.164834895206468e-11, 1e-14); +***** assert (chi2test (x, "joint", 2), 7.771350230001417e-11, 1e-14); +***** assert (chi2test (x, "joint", 3), 0.07151361728026107, 1e-14); +***** assert (chi2test (x, "marginal", 1), 0, 1e-14); +***** assert (chi2test (x, "marginal", 2), 6.347555814301131e-11, 1e-14); +***** assert (chi2test (x, "marginal", 3), 0, 1e-14); +***** assert (chi2test (x, "conditional", 1), 0.2303114201312508, 1e-14); +***** assert (chi2test (x, "conditional", 2), 0.0958810684407079, 1e-14); +***** assert (chi2test (x, "conditional", 3), 2.648037344954446e-11, 1e-14); +***** assert (chi2test (x, "homogeneous", []), 0.4485579470993741, 1e-14); ***** test - load acetylene - x = [x1, x2, x3]; - b = ridge (y, x, 0.01); - assert (b,[10.1497;1.9695;-0.6761],1e-4); -***** error ridge (1) -***** error ridge (1, 2) -***** error ridge (ones (3), ones (3), 2) -***** error ridge ([1, 2], ones (2), 2) -***** error ridge ([], ones (3), 2) -***** error ridge (ones (5,1), [], 2) -***** error ... - ridge ([1; 2; 3; 4; 5], ones (3), 3) -***** error ... - ridge ([1; 2; 3], ones (3), 3, 2) -***** error ... - ridge ([1; 2; 3], ones (3), 3, "some") -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/hotelling_t2test.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/hotelling_t2test.m -***** error hotelling_t2test (); -***** error ... - hotelling_t2test (1); -***** error ... - hotelling_t2test (ones(2,2,2)); -***** error ... - hotelling_t2test (ones(20,2), [0, 0], "alpha", 1); -***** error ... - hotelling_t2test (ones(20,2), [0, 0], "alpha", -0.2); -***** error ... - hotelling_t2test (ones(20,2), [0, 0], "alpha", "a"); -***** error ... - hotelling_t2test (ones(20,2), [0, 0], "alpha", [0.01, 0.05]); -***** error ... - hotelling_t2test (ones(20,2), [0, 0], "name", 0.01); -***** error ... - hotelling_t2test (ones(20,1), [0, 0]); -***** error ... - hotelling_t2test (ones(4,5), [0, 0, 0, 0, 0]); -***** error ... - hotelling_t2test (ones(20,5), [0, 0, 0, 0]); + [pval, chisq, df, E] = chi2test (x); + assert (chisq, 64.0982, 1e-4); + assert (df, 7); + assert (E(:,:,1), [42.903, 39.921; 17.185, 15.991], ones (2, 2) * 1e-3); ***** test - randn ("seed", 1); - x = randn (50000, 5); - [h, pval, stats] = hotelling_t2test (x); - assert (h, 0); - assert (stats.df1, 5); - assert (stats.df2, 49995); + [pval, chisq, df, E] = chi2test (x, "joint", 2); + assert (chisq, 56.0943, 1e-4); + assert (df, 5); + assert (E(:,:,2), [40.922, 23.310; 38.078, 21.690], ones (2, 2) * 1e-3); ***** test - randn ("seed", 1); - x = randn (50000, 5); - [h, pval, stats] = hotelling_t2test (x, ones (1, 5) * 10); - assert (h, 1); - assert (stats.df1, 5); - assert (stats.df2, 49995); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/rmmissing.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/rmmissing.m -***** assert (rmmissing ([1,NaN,3]), [1,3]) -***** assert (rmmissing ('abcd f'), 'abcdf') -***** assert (rmmissing ({'xxx','','xyz'}), {'xxx','xyz'}) -***** assert (rmmissing ({'xxx','';'xyz','yyy'}), {'xyz','yyy'}) -***** assert (rmmissing ({'xxx','';'xyz','yyy'}, 2), {'xxx';'xyz'}) -***** assert (rmmissing ([1,2;NaN,2]), [1,2]) -***** assert (rmmissing ([1,2;NaN,2], 2), [2,2]') -***** assert (rmmissing ([1,2;NaN,4;NaN,NaN],"MinNumMissing", 2), [1,2;NaN,4]) + [pval, chisq, df, E] = chi2test (x, "marginal", 3); + assert (chisq, 146.6058, 1e-4); + assert (df, 9); + assert (E(:,1,1), [61.642; 57.358], ones (2, 1) * 1e-3); ***** test - x = [1:6]; - x([2,4]) = NaN; - [~, idx] = rmmissing (x); - assert (idx, logical ([0, 1, 0, 1, 0, 0])); - assert (class(idx), 'logical'); - x = reshape (x, [2, 3]); - [~, idx] = rmmissing (x); - assert (idx, logical ([0; 1])); - assert (class(idx), 'logical'); - [~, idx] = rmmissing (x, 2); - assert (idx, logical ([1, 1, 0])); - assert (class(idx), 'logical'); - [~, idx] = rmmissing (x, 1, "MinNumMissing", 2); - assert (idx, logical ([0; 1])); - assert (class(idx), 'logical'); - [~, idx] = rmmissing (x, 2, "MinNumMissing", 2); - assert (idx, logical ([0, 0, 0])); - assert (class(idx), 'logical'); -***** assert (rmmissing (single ([1 2 NaN; 3 4 5])), single ([3 4 5])) -***** assert (rmmissing (logical (ones (3))), logical (ones (3))) -***** assert (rmmissing (int32 (ones (3))), int32 (ones (3))) -***** assert (rmmissing (uint32 (ones (3))), uint32 (ones (3))) -***** assert (rmmissing ({1, 2, 3}), {1, 2, 3}) -***** assert (rmmissing ([struct, struct, struct]), [struct, struct, struct]) -***** assert (rmmissing ([]), []) -***** assert (rmmissing (ones (1,0)), ones (1,0)) -***** assert (rmmissing (ones (1,0), 1), ones (1,0)) -***** assert (rmmissing (ones (1,0), 2), ones (1,0)) -***** assert (rmmissing (ones (0,1)), ones (0,1)) -***** assert (rmmissing (ones (0,1), 1), ones (0,1)) -***** assert (rmmissing (ones (0,1), 2), ones (0,1)) -***** error rmmissing (ones (0,1,2)) -***** error rmmissing () -***** error rmmissing (ones(2,2,2)) -***** error rmmissing ([1 2; 3 4], 5) -***** error rmmissing ([1 2; 3 4], "XXX", 1) -***** error <'MinNumMissing'> rmmissing ([1 2; 3 4], 2, "MinNumMissing", -2) -***** error <'MinNumMissing'> rmmissing ([1 2; 3 4], "MinNumMissing", 3.8) -***** error <'MinNumMissing'> rmmissing ([1 2; 3 4], "MinNumMissing", [1 2 3]) -***** error <'MinNumMissing'> rmmissing ([1 2; 3 4], "MinNumMissing", 'xxx') -31 tests, 31 passed, 0 known failure, 0 skipped -[inst/einstein.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/einstein.m -***** demo - einstein (0.4, 0.6) -***** demo - einstein (0.2, 0.5) -***** demo - einstein (0.6, 0.1) + [pval, chisq, df, E] = chi2test (x, "conditional", 3); + assert (chisq, 52.2509, 1e-4); + assert (df, 3); + assert (E(:,:,1), [53.345, 37.655; 14.655, 10.345], ones (2, 2) * 1e-3); ***** test - hf = figure ("visible", "off"); - unwind_protect - tiles = einstein (0.4, 0.6); - assert (isstruct (tiles), true); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** error einstein -***** error einstein (0.5) -***** error einstein (0, 0.9) -***** error einstein (0.4, 1) -***** error einstein (-0.4, 1) -6 tests, 6 passed, 0 known failure, 0 skipped + [pval, chisq, df, E] = chi2test (x, "homogeneous", []); + assert (chisq, 1.6034, 1e-4); + assert (df, 2); + assert (E(:,:,1), [60.827, 31.382; 7.173, 16.618], ones (2, 2) * 1e-3); +34 tests, 34 passed, 0 known failure, 0 skipped [inst/fitcknn.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/fitcknn.m ***** test @@ -3705,1909 +3526,1447 @@ ***** error fitcknn (ones (4,2), ones (3, 1), "K", 2) 25 tests, 25 passed, 0 known failure, 0 skipped -[inst/shadow9/mean.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/shadow9/mean.m +[inst/ztest2.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ztest2.m +***** error ztest2 (); +***** error ztest2 (1); +***** error ztest2 (1, 2); +***** error ztest2 (1, 2, 3); +***** error ... + ztest2 (1, 2, 3, 4, "alpha") +***** error ... + ztest2 (1, 2, 3, 4, "alpha", 0); +***** error ... + ztest2 (1, 2, 3, 4, "alpha", 1.2); +***** error ... + ztest2 (1, 2, 3, 4, "alpha", "val"); +***** error ... + ztest2 (1, 2, 3, 4, "tail", "val"); +***** error ... + ztest2 (1, 2, 3, 4, "alpha", 0.01, "tail", "val"); +***** error ... + ztest2 (1, 2, 3, 4, "alpha", 0.01, "tail", "both", "badoption", 3); +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/nanmax.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/nanmax.m +***** assert (nanmax ([2 4 NaN 7]), 7) +***** assert (nanmax ([2 4 NaN Inf]), Inf) +***** assert (nanmax ([1 NaN 3; NaN 5 6; 7 8 NaN]), [7, 8, 6]) +***** assert (nanmax ([1 NaN 3; NaN 5 6; 7 8 NaN]'), [3, 6, 8]) +***** assert (nanmax (single ([1 NaN 3; NaN 5 6; 7 8 NaN])), single ([7 8 6])) +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/dist_stat/gamstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/gamstat.m +***** error gamstat () +***** error gamstat (1) +***** error gamstat ({}, 2) +***** error gamstat (1, "") +***** error gamstat (i, 2) +***** error gamstat (1, i) +***** error ... + gamstat (ones (3), ones (2)) +***** error ... + gamstat (ones (2), ones (3)) ***** test - x = -10:10; - y = x'; - z = [y, y+10]; - assert (mean (x), 0); - assert (mean (y), 0); - assert (mean (z), [0, 10]); -***** assert (mean (magic (3), 1), [5, 5, 5]) -***** assert (mean (magic (3), 2), [5; 5; 5]) -***** assert (mean (logical ([1 0 1 1])), 0.75) -***** assert (mean (single ([1 0 1 1])), single (0.75)) -***** assert (mean ([1 2], 3), [1 2]) + a = 1:6; + b = 1:0.2:2; + [m, v] = gamstat (a, b); + expected_m = [1.00, 2.40, 4.20, 6.40, 9.00, 12.00]; + expected_v = [1.00, 2.88, 5.88, 10.24, 16.20, 24.00]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); ***** test - in = [1 2 3]; - out = 2; - assert (mean (in, "default"), mean (in)); - assert (mean (in, "default"), out); - assert (mean (in, "double"), out); - assert (mean (in, "native"), out); + a = 1:6; + [m, v] = gamstat (a, 1.5); + expected_m = [1.50, 3.00, 4.50, 6.00, 7.50, 9.00]; + expected_v = [2.25, 4.50, 6.75, 9.00, 11.25, 13.50]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/dist_stat/wblstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/wblstat.m +***** error wblstat () +***** error wblstat (1) +***** error wblstat ({}, 2) +***** error wblstat (1, "") +***** error wblstat (i, 2) +***** error wblstat (1, i) +***** error ... + wblstat (ones (3), ones (2)) +***** error ... + wblstat (ones (2), ones (3)) ***** test - in = single ([1 2 3]); - out = 2; - assert (mean (in, "default"), mean (in)); - assert (mean (in, "default"), single (out)); - assert (mean (in, "double"), out); - assert (mean (in, "native"), single (out)); + lambda = 3:8; + k = 1:6; + [m, v] = wblstat (lambda, k); + expected_m = [3.0000, 3.5449, 4.4649, 5.4384, 6.4272, 7.4218]; + expected_v = [9.0000, 3.4336, 2.6333, 2.3278, 2.1673, 2.0682]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); ***** test - in = logical ([1 0 1]); - out = 2/3; - assert (mean (in, "default"), mean (in), eps); - assert (mean (in, "default"), out, eps); - assert (mean (in, "double"), out, eps); - assert (mean (in, "native"), out, eps); + k = 1:6; + [m, v] = wblstat (6, k); + expected_m = [ 6.0000, 5.3174, 5.3579, 5.4384, 5.5090, 5.5663]; + expected_v = [36.0000, 7.7257, 3.7920, 2.3278, 1.5923, 1.1634]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/dist_stat/tlsstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/tlsstat.m +***** error tlsstat () +***** error tlsstat (1) +***** error tlsstat (1, 2) +***** error tlsstat ({}, 2, 3) +***** error tlsstat (1, "", 3) +***** error tlsstat (1, 2, ["d"]) +***** error tlsstat (i, 2, 3) +***** error tlsstat (1, i, 3) +***** error tlsstat (1, 2, i) +***** error ... + tlsstat (ones (3), ones (2), 1) +***** error ... + tlsstat (ones (2), 1, ones (3)) +***** error ... + tlsstat (1, ones (2), ones (3)) ***** test - in = char ("ab"); - out = 97.5; - assert (mean (in, "default"), mean (in), eps); - assert (mean (in, "default"), out, eps); - assert (mean (in, "double"), out, eps); + [m, v] = tlsstat (0, 1, 0); + assert (m, NaN); + assert (v, NaN); ***** test - in = uint8 ([1 2 3]); - out = 2; - assert (mean (in, "default"), mean (in)); - assert (mean (in, "default"), out); - assert (mean (in, "double"), out); - assert (mean (in, "native"), uint8 (out)); + [m, v] = tlsstat (0, 1, 1); + assert (m, NaN); + assert (v, NaN); ***** test - in = uint8 ([0 1 2 3]); - out = 1.5; - out_u8 = 2; - assert (mean (in, "default"), mean (in), eps); - assert (mean (in, "default"), out, eps); - assert (mean (in, "double"), out, eps); - assert (mean (in, "native"), uint8 (out_u8)); - assert (class (mean (in, "native")), "uint8"); -***** test # internal sum exceeding intmax - in = uint8 ([3 141 141 255]); - out = 135; - assert (mean (in, "default"), mean (in)); - assert (mean (in, "default"), out); - assert (mean (in, "double"), out); - assert (mean (in, "native"), uint8 (out)); - assert (class (mean (in, "native")), "uint8"); -***** test # fractional answer with internal sum exceeding intmax - in = uint8 ([1 141 141 255]); - out = 134.5; - out_u8 = 135; - assert (mean (in, "default"), mean (in)); - assert (mean (in, "default"), out); - assert (mean (in, "double"), out); - assert (mean (in, "native"), uint8 (out_u8)); - assert (class (mean (in, "native")), "uint8"); -***** test <54567> # large int64 sum exceeding intmax and double precision limit - in_same = uint64 ([intmax("uint64") intmax("uint64")-2]); - out_same = intmax ("uint64")-1; - in_opp = int64 ([intmin("int64"), intmax("int64")-1]); - out_opp = -1; - in_neg = int64 ([intmin("int64") intmin("int64")+2]); - out_neg = intmin ("int64")+1; - - ## both positive - assert (mean (in_same, "default"), mean (in_same)); - assert (mean (in_same, "default"), double (out_same)); - assert (mean (in_same, "double"), double (out_same)); - assert (mean (in_same, "native"), uint64 (out_same)); - assert (class (mean (in_same, "native")), "uint64"); - - ## opposite signs - assert (mean (in_opp, "default"), mean (in_opp)); - assert (mean (in_opp, "default"), double (out_opp)); - assert (mean (in_opp, "double"), double (out_opp)); - assert (mean (in_opp, "native"), int64 (out_opp)); - assert (class (mean (in_opp, "native")), "int64"); - - ## both negative - assert (mean (in_neg, "default"), mean (in_neg)); - assert (mean (in_neg, "default"), double(out_neg)); - assert (mean (in_neg, "double"), double(out_neg)); - assert (mean (in_neg, "native"), int64(out_neg)); - assert (class (mean (in_neg, "native")), "int64"); -***** test <54567> - in = [(intmin('int64')+5), (intmax('int64'))-5]; - assert (mean (in, "native"), int64(-1)); - assert (class (mean (in, "native")), "int64"); - assert (mean (double(in)), double(0) ); - assert (mean (in), double(-0.5) ); - assert (mean (in, "default"), double(-0.5) ); - assert (mean (in, "double"), double(-0.5) ); - assert (mean (in, "all", "native"), int64(-1)); - assert (mean (in, 2, "native"), int64(-1)); - assert (mean (in, [1 2], "native"), int64(-1)); - assert (mean (in, [2 3], "native"), int64(-1)); - assert (mean ([intmin("int64"), in, intmax("int64")]), double(-0.5)) - assert (mean ([in; int64([1 3])], 2, "native"), int64([-1; 2])); + [m, v] = tlsstat (2, 1, 1); + assert (m, NaN); + assert (v, NaN); ***** test - x = [-10:10]; - y = [x;x+5;x-5]; - assert (mean (x), 0); - assert (mean (y, 2), [0, 5, -5]'); - assert (mean (y, "all"), 0); - y(2,4) = NaN; - assert (mean (y', "omitnan"), [0 5.35 -5]); - z = y + 20; - assert (mean (z, "all"), NaN); - assert (mean (z, "all", "includenan"), NaN); - assert (mean (z, "all", "omitnan"), 20.03225806451613, 4e-14); - m = [20 NaN 15]; - assert (mean (z'), m); - assert (mean (z', "includenan"), m); - m = [20 25.35 15]; - assert (mean (z', "omitnan"), m); - assert (mean (z, 2, "omitnan"), m'); - assert (mean (z, 2, "native", "omitnan"), m'); - assert (mean (z, 2, "omitnan", "native"), m'); + [m, v] = tlsstat (-2, 1, 1); + assert (m, NaN); + assert (v, NaN); ***** test - assert (mean (true, "all"), 1); - assert (mean (false), 0); - assert (mean ([true false true]), 2/3, 4e-14); - assert (mean ([true false true], 1), [1 0 1]); - assert (mean ([true false NaN], 1), [1 0 NaN]); - assert (mean ([true false NaN], 2), NaN); - assert (mean ([true false NaN], 2, "omitnan"), 0.5); - assert (mean ([true false NaN], 2, "omitnan", "native"), 0.5); -***** assert (mean ("abc"), double (98)) -***** assert (mean ("ab"), double (97.5), eps) -***** assert (mean ("abc", "double"), double (98)) -***** assert (mean ("abc", "default"), double (98)) + [m, v] = tlsstat (0, 1, 2); + assert (m, 0); + assert (v, NaN); ***** test - x = magic (4); - x([2, 9:12]) = NaN; - assert (mean (x), [NaN 8.5, NaN, 8.5], eps); - assert (mean (x,1), [NaN 8.5, NaN, 8.5], eps); - assert (mean (x,2), NaN(4,1), eps); - assert (mean (x,3), x, eps); - assert (mean (x, 'omitnan'), [29/3, 8.5, NaN, 8.5], eps); - assert (mean (x, 1, 'omitnan'), [29/3, 8.5, NaN, 8.5], eps); - assert (mean (x, 2, 'omitnan'), [31/3; 9.5; 28/3; 19/3], eps); - assert (mean (x, 3, 'omitnan'), x, eps); -***** assert (mean ([]), NaN(1,1)) -***** assert (mean (single([])), NaN(1,1,"single")) -***** assert (mean ([], 1), NaN(1,0)) -***** assert (mean ([], 2), NaN(0,1)) -***** assert (mean ([], 3), NaN(0,0)) -***** assert (mean (ones(1,0)), NaN(1,1)) -***** assert (mean (ones(1,0), 1), NaN(1,0)) -***** assert (mean (ones(1,0), 2), NaN(1,1)) -***** assert (mean (ones(1,0), 3), NaN(1,0)) -***** assert (mean (ones(0,1)), NaN(1,1)) -***** assert (mean (ones(0,1), 1), NaN(1,1)) -***** assert (mean (ones(0,1), 2), NaN(0,1)) -***** assert (mean (ones(0,1), 3), NaN(0,1)) -***** assert (mean (ones(0,1,0)), NaN(1,1,0)) -***** assert (mean (ones(0,1,0), 1), NaN(1,1,0)) -***** assert (mean (ones(0,1,0), 2), NaN(0,1,0)) -***** assert (mean (ones(0,1,0), 3), NaN(0,1,1)) -***** assert (mean (ones(0,0,1,0)), NaN(1,0,1,0)) -***** assert (mean (ones(0,0,1,0), 1), NaN(1,0,1,0)) -***** assert (mean (ones(0,0,1,0), 2), NaN(0,1,1,0)) -***** assert (mean (ones(0,0,1,0), 3), NaN(0,0,1,0)) + [m, v] = tlsstat (2, 1, 2); + assert (m, 2); + assert (v, NaN); ***** test - x = repmat ([1:20;6:25], [5 2 6 3]); - assert (size (mean (x, [3 2])), [10 1 1 3]); - assert (size (mean (x, [1 2])), [1 1 6 3]); - assert (size (mean (x, [1 2 4])), [1 1 6]); - assert (size (mean (x, [1 4 3])), [1 40]); - assert (size (mean (x, [1 2 3 4])), [1 1]); -***** assert (mean (ones (2,2), 3), ones (2,2)) -***** assert (mean (ones (2,2,2), 99), ones (2,2,2)) -***** assert (mean (magic (3), 3), magic (3)) -***** assert (mean (magic (3), [1 3]), [5, 5, 5]) -***** assert (mean (magic (3), [1 99]), [5, 5, 5]) + [m, v] = tlsstat (-2, 1, 2); + assert (m, -2); + assert (v, NaN); ***** test - x = repmat ([1:20;6:25], [5 2 6 3]); - m = repmat ([10.5;15.5], [5 1 1 3]); - assert (mean (x, [3 2]), m, 4e-14); - x(2,5,6,3) = NaN; - m(2,1,1,3) = NaN; - assert (mean (x, [3 2]), m, 4e-14); - m(2,1,1,3) = 15.52301255230125; - assert (mean (x, [3 2], "omitnan"), m, 4e-14); -***** assert (mean ([1 2 3], "aLL"), 2) -***** assert (mean ([1 2 3], "OmitNan"), 2) -***** assert (mean ([1 2 3], "DOUBle"), 2) -***** assert <*63848> (mean (ones (80e6, 1, "single")), 1, eps) -***** assert <*63848> (mean (ones (80e6, 1, "single"), "all"), 1, eps) -***** assert <*63848> (mean (ones (80e6, 1, "single"), 1), 1, eps) -***** assert <*63848> (mean (ones (80e6, 1, "single"), [1 2]), 1, eps) -***** assert <*63848> (mean (ones (80e6, 1, "single"), [1 3]), 1, eps) -***** assert <63848> (mean ([flintmax("double"), ones(1, 2^8-1, "double")]), ... - 35184372088833-1/(2^8), eps(35184372088833)) -!!!!! known bug: https://octave.org/testfailure/?63848 -ASSERT errors for: assert (mean ([flintmax("double"), ones(1, 2 ^ 8 - 1, "double")]),35184372088833 - 1 / (2 ^ 8),eps (35184372088833)) - - Location | Observed | Expected | Reason - () 35184372088832 35184372088833 Abs err 1 exceeds tol 0.0078125 by 1 -***** error mean () -***** error mean (1, 2, 3) -***** error mean (1, 2, 3, 4) -***** error mean (1, "all", 3) -***** error mean (1, "b") -***** error mean (1, 1, "foo") -***** error mean ("abc", "native") -***** error mean ({1:5}) -***** error mean (1, ones (2,2)) -***** error mean (1, 1.5) -***** error mean (1, 0) -***** error mean (1, []) -***** error mean (1, -1) -***** error mean (1, -1.5) -***** error mean (1, NaN) -***** error mean (1, Inf) -***** error mean (repmat ([1:20;6:25], [5 2]), -1) -***** error mean (repmat ([1:5;5:9], [5 2]), [1 -1]) -***** error mean (1, ones(1,0)) -***** error mean (1, [2 2]) -80 tests, 79 passed, 0 known failure, 1 skipped -[inst/shadow9/mad.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/shadow9/mad.m -***** assert (mad (1), 0) -***** assert (mad (1,1), 0) -***** assert (mad (1,0,3), 0) -***** assert (mad (1,1,3), 0) -***** assert (mad (1,[],5), 0) -***** assert (mad ([1,2,3]), 2/3) -***** assert (mad ([1,2,3],[]), 2/3) -***** assert (mad ([1,2,3],0), 2/3) -***** assert (mad ([1,2,3],1), 1) -***** assert (mad ([1,2,3],0,2), 2/3) -***** assert (mad ([1,2,3],[],2), 2/3) -***** assert (mad ([1,2,3],1,2), 1) -***** assert (mad ([1,2,3],0,1), zeros (1,3)) -***** assert (mad ([1,2,3],1,1), zeros (1,3)) -***** assert (mad ([1,2,3]',0,2), zeros (3,1)) -***** assert (mad ([1,2,3]',1,2), zeros (3,1)) -***** assert (mad ([1,2,3]',0,1), 2/3) -***** assert (mad ([1,2,3]',1,1), 1) + [m, v] = tlsstat (0, 2, 2); + assert (m, 0); + assert (v, NaN); ***** test - A = [57, 59, 60, 100, 59, 58, 57, 58, 300, 61, 62, 60, 62, 58, 57]; - AA = [A;2*A;3*A]; - m0 = [38.000, 39.333, 40.000, 66.667, 39.333, 38.667, 38.000, 38.667, ... - 200.000, 40.667, 41.333, 40.000, 41.333, 38.667, 38.000]; - m1 = [32.569;65.138; 97.707]; - - assert (mad (AA), m0, 1e-3); - assert (mad (AA,1), A); - assert (mad (AA,1,1), A); - assert (mad (AA,0,2), m1, 1e-3); - assert (mad (AA,1,2), [2;4;6]); - assert (mad (A,0,1), zeros (size (A))); - assert (mad (A,1,1), zeros (size (A))); + [m, v] = tlsstat (2, 2, 2); + assert (m, 2); + assert (v, NaN); ***** test - x = repmat ([2 2.1 2.2 2 NaN; 3 1 2 NaN 5; 1 1.1 1.4 5 3], [1, 1, 4]); - m0 = repmat ([0.6667, 0.4667, 0.3111, 1.5, 1], [1, 1, 4]); - m1 = repmat ([1, 0.1, 0.2, 1.5, 1], [1, 1, 4]); - assert (mad (x), m0, 1e-4); - assert (mad (x, 1), m1, 1e-14); - assert (mad (x, [], [1, 2]), 1.0036 * ones(1,1,4), 1e-4) - assert (mad (x, 1, [1, 2]), 0.9 * ones(1,1,4), 1e-14) - assert (mad (x, 0, [1, 3]), m0(1,:,1), 1e-4) - assert (mad (x, 1, [1, 3]), m1(1,:,1), 1e-14) - assert (mad (x, 0, [2, 3]), [0.075; 1.25; 1.36], 1e-14) - assert (mad (x, 1, [2, 3]), [0.05; 1; 0.4], 1e-14) - assert (mad (x, 0, [1, 2, 3]) == mad (x, 0, "All")) - assert (mad (x, 1, [1, 2, 3]) == mad (x, 1, "All")) + [m, v] = tlsstat (-2, 2, 2); + assert (m, -2); + assert (v, NaN); ***** test - x = repmat ([1:20;6:25], [5 2 6 3]); - assert (size (mad (x, [], [3 2])), [10 1 1 3]); - assert (size (mad (x, 0, [1 2])), [1 1 6 3]); - assert (size (mad (x, 1, [1 2 4])), [1 1 6]); - assert (size (mad (x, [], [1 4 3])), [1 40]); - assert (size (mad (x, 1, [1 2 3 4])), [1 1]); -***** assert (mad (ones (2,2), 0, 3), zeros (2,2)) -***** assert (mad (ones (2,2,2), 1, 99), zeros (2,2,2)) -***** assert (mad (magic (3), 1, 3), zeros (3)) -***** assert (mad (magic (3), 1, [1 3]), [1, 4, 1]) -***** assert (mad (magic (3), 1, [1 99]), [1, 4, 1]) -***** assert (mad ([]), NaN) -***** assert (mad ([], 1), NaN) -***** assert (mad (NaN), NaN) -***** assert (mad (NaN, 1), NaN) -***** assert (mad (Inf), NaN) -***** assert (mad (Inf, 1), NaN) -***** assert (mad (-Inf), NaN) -***** assert (mad (-Inf, 1), NaN) -***** assert (mad ([-Inf Inf]), NaN) -***** assert (mad ([-Inf Inf], 1), NaN) -***** assert (mad ([3 Inf]), Inf) -***** assert (mad ([3 4 Inf]), Inf) -***** assert (mad ([Inf 3 4]), Inf) -***** assert (mad ([Inf 3 Inf]), Inf) -***** assert (mad ([Inf 3 Inf], 1), Inf) -***** assert (mad ([1 2; 3 Inf]), [1 Inf]) -***** assert (mad ([1 2; 3 Inf], 1), [1 Inf]) -***** assert (mad ([3, 4, Inf]), Inf) -***** assert (mad ([Inf, 3, 4]), Inf) -***** assert (mad ([3, 4, Inf], 0), Inf) -***** assert (mad ([3, 4, Inf], 0, 1), [0, 0, NaN]) -***** assert (mad ([3, 4, Inf], 0, 2), Inf) -***** assert (mad ([3, 4, Inf], 0, 3), [0, 0, NaN]) -***** assert (mad ([3, 4, Inf]', 0), Inf) -***** assert (mad ([3, 4, Inf]', 0, 1), Inf) -***** assert (mad ([3, 4, Inf]', 0, 2), [0; 0; NaN]) -***** assert (mad ([3, 4, Inf]', 0, 3), [0; 0; NaN]) -***** assert (mad ([Inf, 3, 4], 1), 1) -***** assert (mad ([3, 4, Inf], 1), 1) -***** assert (mad ([3, 4, Inf], 1, 1), [0, 0, NaN]) -***** assert (mad ([3, 4, Inf], 1, 2), 1) -***** assert (mad ([3, 4, Inf], 1, 3), [0, 0, NaN]) -***** assert (mad ([3, 4, Inf]', 1), 1) -***** assert (mad ([3, 4, Inf]', 1, 1), 1) -***** assert (mad ([3, 4, Inf]', 1, 2), [0; 0; NaN]) -***** assert (mad ([3, 4, Inf]', 1, 3), [0; 0; NaN]) -***** assert (mad ([3, Inf, Inf], 1), Inf) -***** assert (mad ([3, 4, 5, Inf], 1), 1) -***** assert (mad ([3, 4, Inf, Inf], 1), Inf) -***** assert (mad ([3, Inf, Inf, Inf], 1), Inf) -***** assert (mad ([1, 2; 3, 4; Inf, Inf], 0), [Inf, Inf]) -***** assert (mad ([1, 2; 3, 4; Inf, Inf], 1), [2, 2]) -***** assert (mad ([1, 2; 3, Inf; Inf, Inf], 1), [2, Inf]) -***** assert (mad ([1, 2; 3, 4; 5, 6; Inf, Inf], 1), [2, 2]) -***** assert (mad ([1, 2; 3, 4; 5, Inf; Inf, Inf], 1), [2, Inf]) -***** assert (mad ([Inf, 2; Inf, 4; Inf, Inf], 0), [NaN, Inf]) -***** assert (mad ([Inf, 2; Inf, 4; Inf, Inf], 1), [NaN, 2]) -***** assert (mad ([]), NaN) -***** assert (mad (ones(1,0)), NaN) -***** assert (mad (ones(0,1)), NaN) -***** assert (mad ([], 0, 1), NaN(1,0)) -***** assert (mad ([], 0, 2), NaN(0,1)) -***** assert (mad ([], 0, 3), NaN(0,0)) -***** assert (mad (ones(1,0), 0, 1), NaN(1,0)) -***** assert (mad (ones(1,0), 0, 2), NaN(1,1)) -***** assert (mad (ones(1,0), 0, 3), NaN(1,0)) -***** assert (mad (ones(0,1), 0, 1), NaN(1,1)) -***** assert (mad (ones(0,1), 0, 2), NaN(0,1)) -***** assert (mad (ones(0,1), 0, 3), NaN(0,1)) -***** assert (mad (ones(0,1,0,1), 0, 1), NaN(1,1,0)) -***** assert (mad (ones(0,1,0,1), 0, 2), NaN(0,1,0)) -***** assert (mad (ones(0,1,0,1), 0, 3), NaN(0,1,1)) -***** assert (mad (ones(0,1,0,1), 0, 4), NaN(0,1,0)) -***** assert (mad([1 3 3i 2 1i]), 1.5297, 1e-4) -***** assert (mad([1 3 3i 2 1i], 1), 1) -***** assert (mad([1 2 4i; 3 2i 4]), [1, 1.4142, 2.8284], 1e-4) -***** assert (mad([1 2 4i; 3 2i 4], 1), [1, 1.4142, 2.8284], 1e-4) -***** assert (mad([1 2 4i; 3 2i 4], 1, 2), [1; 1]) -***** assert (mad([1 2 4i; 3 2i 4], 0, 2), [1.9493; 1.8084], 1e-4) -***** assert <*65405> (mad ([-Inf Inf]), NaN) -***** assert <*65405> (mad ([-Inf Inf], 0), NaN) -***** assert <*65405> (mad ([-Inf Inf], 1), NaN) -***** assert <*65405> (mad ([-Inf Inf]', 0), NaN) -***** assert <*65405> (mad ([-Inf Inf]', 1), NaN) -***** assert <*65405> (mad ([-Inf Inf]', 0, 1), NaN) -***** assert <*65405> (mad ([-Inf Inf]', 0, 2), [NaN; NaN]) -***** assert <*65405> (mad ([-Inf Inf]', 0, 3), [NaN; NaN]) -***** assert <*65405> (mad ([-Inf Inf]', 1, 1), NaN) -***** assert <*65405> (mad ([-Inf Inf]', 1, 2), [NaN; NaN]) -***** assert <*65405> (mad ([-Inf Inf]', 1, 3), [NaN; NaN]) -***** assert <*65405> (mad (Inf(2), 0), [NaN, NaN]) -***** assert <*65405> (mad (Inf(2), 1), [NaN, NaN]) -***** assert <*65405> (mad (Inf(2), 0, 1), [NaN, NaN]) -***** assert <*65405> (mad (Inf(2), 0, 2), [NaN; NaN]) -***** assert <*65405> (mad (Inf(2), 0, 3), NaN(2)) -***** assert <*65405> (mad (Inf(2), 1, 1), [NaN, NaN]) -***** assert <*65405> (mad (Inf(2), 1, 2), [NaN; NaN]) -***** assert <*65405> (mad (Inf(2), 1, 3), NaN(2)) -***** assert (mad ([1 2 3], 0, "aLL"), 2/3) -***** assert (mad ([1 2 3], 1, "aLL"), 1) -***** error mad () -***** error mad (1, 2, 3, 4) -***** error mad ("text") -***** error mad ({2 3 4}) -***** error mad (1, "all", 3) -***** error mad (1, "b") -***** error mad (1, 1, "foo") -***** error mad (1, [] ,ones (2,2)) -***** error mad (1, [], 1.5) -***** error mad (1, [], 0) -***** error mad ([1 2 3], [], [-1 1]) -***** error mad(1, [], [1 2 2]) -128 tests, 128 passed, 0 known failure, 0 skipped -[inst/shadow9/median.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/shadow9/median.m -***** assert (median (1), 1) -***** assert (median ([1,2,3]), 2) -***** assert (median ([1,2,3]'), 2) -***** assert (median (cat(3,3,1,2)), 2) -***** assert (median ([3,1,2]), 2) -***** assert (median ([2,4,6,8]), 5) -***** assert (median ([8,2,6,4]), 5) -***** assert (median (single ([1,2,3])), single (2)) -***** assert (median ([1,2], 3), [1,2]) + [m, v] = tlsstat (0, 1, 3); + assert (m, 0); + assert (v, 3); ***** test - x = [1, 2, 3, 4, 5, 6]; - x2 = x'; - y = [1, 2, 3, 4, 5, 6, 7]; - y2 = y'; - - assert (median (x) == median (x2) && median (x) == 3.5); - assert (median (y) == median (y2) && median (y) == 4); - assert (median ([x2, 2 * x2]), [3.5, 7]); - assert (median ([y2, 3 * y2]), [4, 12]); + [m, v] = tlsstat (0, 2, 3); + assert (m, 0); + assert (v, 6); ***** test - in = [1 2 3]; - out = 2; - assert (median (in, "default"), median (in)); - assert (median (in, "default"), out); + [m, v] = tlsstat (2, 1, 3); + assert (m, 2); + assert (v, 3); ***** test - in = single ([1 2 3]); - out = 2; - assert (median (in, "default"), single (median (in))); - assert (median (in, "default"), single (out)); - assert (median (in, "double"), double (out)); - assert (median (in, "native"), single (out)); + [m, v] = tlsstat (2, 2, 3); + assert (m, 2); + assert (v, 6); ***** test - in = uint8 ([1 2 3]); - out = 2; - assert (median (in, "default"), double (median (in))); - assert (median (in, "default"), double (out)); - assert (median (in, "double"), out); - assert (median (in, "native"), uint8 (out)); + [m, v] = tlsstat (-2, 1, 3); + assert (m, -2); + assert (v, 3); ***** test - in = logical ([1 0 1]); - out = 1; - assert (median (in, "default"), double (median (in))); - assert (median (in, "default"), double (out)); - assert (median (in, "double"), double (out)); - assert (median (in, "native"), double (out)); + [m, v] = tlsstat (-2, 2, 3); + assert (m, -2); + assert (v, 6); +28 tests, 28 passed, 0 known failure, 0 skipped +[inst/dist_stat/loglstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/loglstat.m +***** error loglstat () +***** error loglstat (1) +***** error loglstat ({}, 2) +***** error loglstat (1, "") +***** error loglstat (i, 2) +***** error loglstat (1, i) +***** error ... + loglstat (ones (3), ones (2)) +***** error ... + loglstat (ones (2), ones (3)) ***** test - x = repmat ([2 2.1 2.2 2 NaN; 3 1 2 NaN 5; 1 1.1 1.4 5 3], [1, 1, 4]); - y = repmat ([2 1.1 2 NaN NaN], [1, 1, 4]); - assert (median (x), y); - assert (median (x, 1), y); - y = repmat ([2 1.1 2 3.5 4], [1, 1, 4]); - assert (median (x, "omitnan"), y); - assert (median (x, 1, "omitnan"), y); - y = repmat ([2.05; 2.5; 1.4], [1, 1, 4]); - assert (median (x, 2, "omitnan"), y); - y = repmat ([NaN; NaN; 1.4], [1, 1, 4]); - assert (median (x, 2), y); - assert (median (x, "all"), NaN); - assert (median (x, "all", "omitnan"), 2); -***** assert (median (cat (3, 3, 1, NaN, 2), "omitnan"), 2) -***** assert (median (cat (3, 3, 1, NaN, 2), 3, "omitnan"), 2) + [m, v] = loglstat (0, 1); + assert (m, Inf, 0.001); + assert (v, Inf, 0.001); ***** test - assert (median (true, "all"), logical (1)); - assert (median (false), logical (0)); - assert (median ([true false true]), true); - assert (median ([true false true], 2), true); - assert (median ([true false true], 1), logical ([1 0 1])); - assert (median ([true false NaN], 1), [1 0 NaN]); - assert (median ([true false NaN], 2), NaN); - assert (median ([true false NaN], 2, "omitnan"), 0.5); - assert (median ([true false NaN], 2, "omitnan", "native"), double(0.5)); + [m, v] = loglstat (0, 0.8); + assert (m, 4.2758, 0.001); + assert (v, Inf, 0.001); ***** test - x = repmat ([1:20;6:25], [5 2 6 3]); - assert (size (median (x, [3 2])), [10 1 1 3]); - assert (size (median (x, [1 2])), [1 1 6 3]); - assert (size (median (x, [1 2 4])), [1 1 6]); - assert (size (median (x, [1 4 3])), [1 40]); - assert (size (median (x, [1 2 3 4])), [1 1]); -***** assert (median (ones (2,2), 3), ones (2,2)) -***** assert (median (ones (2,2,2), 99), ones (2,2,2)) -***** assert (median (magic (3), 3), magic (3)) -***** assert (median (magic (3), [1 3]), [4, 5, 6]) -***** assert (median (magic (3), [1 99]), [4, 5, 6]) + [m, v] = loglstat (0, 0.6); + assert (m, 1.9820, 0.001); + assert (v, Inf, 0.001); ***** test - x = repmat ([2 2.1 2.2 2 NaN; 3 1 2 NaN 5; 1 1.1 1.4 5 3], [1, 1, 4]); - assert (median (x, [3 2]), [NaN NaN 1.4]'); - assert (median (x, [3 2], "omitnan"), [2.05 2.5 1.4]'); - assert (median (x, [1 3]), [2 1.1 2 NaN NaN]); - assert (median (x, [1 3], "omitnan"), [2 1.1 2 3.5 4]); -***** assert (median (NaN), NaN) -***** assert (median (NaN, "omitnan"), NaN) -***** assert (median (NaN (2)), [NaN NaN]) -***** assert (median (NaN (2), "omitnan"), [NaN NaN]) -***** assert (median ([1 NaN 3]), NaN) -***** assert (median ([1 NaN 3], 1), [1 NaN 3]) -***** assert (median ([1 NaN 3], 2), NaN) -***** assert (median ([1 NaN 3]'), NaN) -***** assert (median ([1 NaN 3]', 1), NaN) -***** assert (median ([1 NaN 3]', 2), [1; NaN; 3]) -***** assert (median ([1 NaN 3], "omitnan"), 2) -***** assert (median ([1 NaN 3]', "omitnan"), 2) -***** assert (median ([1 NaN 3], 1, "omitnan"), [1 NaN 3]) -***** assert (median ([1 NaN 3], 2, "omitnan"), 2) -***** assert (median ([1 NaN 3]', 1, "omitnan"), 2) -***** assert (median ([1 NaN 3]', 2, "omitnan"), [1; NaN; 3]) -***** assert (median ([1 2 NaN 3]), NaN) -***** assert (median ([1 2 NaN 3], "omitnan"), 2) -***** assert (median ([1,2,NaN;4,5,6;NaN,8,9]), [NaN, 5, NaN]) -***** assert <*64011> (median ([1,2,NaN;4,5,6;NaN,8,9], "omitnan"), [2.5, 5, 7.5], eps) -***** assert (median ([1 2 ; NaN 4]), [NaN 3]) -***** assert (median ([1 2 ; NaN 4], "omitnan"), [1 3]) -***** assert (median ([1 2 ; NaN 4], 1, "omitnan"), [1 3]) -***** assert (median ([1 2 ; NaN 4], 2, "omitnan"), [1.5; 4], eps) -***** assert (median ([1 2 ; NaN 4], 3, "omitnan"), [1 2 ; NaN 4]) -***** assert (median ([NaN 2 ; NaN 4]), [NaN 3]) -***** assert (median ([NaN 2 ; NaN 4], "omitnan"), [NaN 3]) -***** assert (median (ones (1, 0, 3)), NaN (1, 1, 3)) -***** assert <*65405> (median ([NaN NaN], 1, "omitnan"), [NaN NaN]) -***** assert <*65405> (median ([NaN NaN], 2, "omitnan"), NaN) -***** assert <*65405> (median ([NaN NaN]', 1, "omitnan"), NaN) -***** assert <*65405> (median ([NaN NaN]', 2, "omitnan"), [NaN; NaN]) -***** assert <*65405> (median ([NaN NaN], "omitnan"), NaN) -***** assert <*65405> (median ([NaN NaN]', "omitnan"), NaN) -***** assert <*65405> (median (NaN(1,9), 1, "omitnan"), NaN(1,9)) -***** assert <*65405> (median (NaN(1,9), 2, "omitnan"), NaN) -***** assert <*65405> (median (NaN(1,9), 3, "omitnan"), NaN(1,9)) -***** assert <*65405> (median (NaN(9,1), 1, "omitnan"), NaN) -***** assert <*65405> (median (NaN(9,1), 2, "omitnan"), NaN(9,1)) -***** assert <*65405> (median (NaN(9,1), 3, "omitnan"), NaN(9,1)) -***** assert <*65405> (median (NaN(9,2), 1, "omitnan"), NaN(1,2)) -***** assert <*65405> (median (NaN(9,2), 2, "omitnan"), NaN(9,1)) -***** assert <*65405> (median (NaN(9,2), "omitnan"), NaN(1,2)) -***** assert (median (NaN("single")), NaN("single")) -***** assert (median (NaN("single"), "omitnan"), NaN("single")) -***** assert (median (NaN("single"), "double"), NaN("double")) -***** assert (median (single([1 2 ; NaN 4])), single([NaN 3])) -***** assert (median (single([1 2 ; NaN 4]), "double"), double([NaN 3])) -***** assert (median (single([1 2 ; NaN 4]), "omitnan"), single([1 3])) -***** assert (median (single([1 2 ; NaN 4]), "omitnan", "double"), double([1 3])) -***** assert (median (single([NaN 2 ; NaN 4]), "double"), double([NaN 3])) -***** assert (median (single([NaN 2 ; NaN 4]), "omitnan"), single([NaN 3])) -***** assert (median (single([NaN 2 ; NaN 4]), "omitnan", "double"), double([NaN 3])) -***** test <*64011> - x = [magic(3), magic(3)]; - x([3, 7, 11, 12, 16, 17]) = NaN; - ynan = [NaN, 5, NaN, NaN, 5, NaN]; - yomitnan = [5.5, 5, 4.5, 8, 5, 2]; - assert (median (x), ynan); - assert (median (x, "omitnan"), yomitnan, eps); - assert (median (cat (3, x, x)), cat (3, ynan, ynan)); - assert (median (cat (3, x, x), "omitnan"), cat (3, yomitnan, yomitnan), eps); -***** assert (median (Inf), Inf) -***** assert (median (-Inf), -Inf) -***** assert (median ([-Inf Inf]), NaN) -***** assert (median ([3 Inf]), Inf) -***** assert (median ([3 4 Inf]), 4) -***** assert (median ([Inf 3 4]), 4) -***** assert (median ([Inf 3 Inf]), Inf) -***** assert (median ([1, 2, Inf]), 2) -***** assert (median ([1, 2, Inf, Inf]), Inf) -***** assert (median ([1, -Inf, Inf, Inf]), Inf) -***** assert (median ([-Inf, -Inf, Inf, Inf]), NaN) -***** assert (median([-Inf, Inf, Inf, Inf]), Inf) -***** assert (median([-Inf, -Inf, -Inf, Inf]), -Inf) -***** assert (median([-Inf, -Inf, -Inf, 2]), -Inf) -***** assert (median([-Inf, -Inf, 1, 2]), -Inf) -***** assert (median ([]), NaN) -***** assert (median (ones(1,0)), NaN) -***** assert (median (ones(0,1)), NaN) -***** assert (median ([], 1), NaN(1,0)) -***** assert (median ([], 2), NaN(0,1)) -***** assert (median ([], 3), NaN(0,0)) -***** assert (median (ones(1,0), 1), NaN(1,0)) -***** assert (median (ones(1,0), 2), NaN(1,1)) -***** assert (median (ones(1,0), 3), NaN(1,0)) -***** assert (median (ones(0,1), 1), NaN(1,1)) -***** assert (median (ones(0,1), 2), NaN(0,1)) -***** assert (median (ones(0,1), 3), NaN(0,1)) -***** assert (median (ones(0,1,0,1), 1), NaN(1,1,0)) -***** assert (median (ones(0,1,0,1), 2), NaN(0,1,0)) -***** assert (median (ones(0,1,0,1), 3), NaN(0,1,1)) -***** assert (median (ones(0,1,0,1), 4), NaN(0,1,0)) -***** assert (median([1 3 3i 2 1i]), 2) -***** assert (median([1 2 4i; 3 2i 4]), [2, 1+1i, 2+2i]) -***** shared a, b, x, y - old_state = rand ("state"); - restore_state = onCleanup (@() rand ("state", old_state)); - rand ("state", 2); - a = rand (2,3,4,5); - b = rand (3,4,6,5); - x = sort (a, 4); - y = sort (b, 3); -***** assert <*35679> (median (a, 4), x(:, :, :, 3)) -***** assert <*35679> (median (b, 3), (y(:, :, 3, :) + y(:, :, 4, :))/2) -***** shared ## Clear shared to prevent variable echo for any later test failures + [m, v] = loglstat (0, 0.4); + assert (m, 1.3213, 0.001); + assert (v, 2.5300, 0.001); ***** test - x = ones(15,1,4); - x([13,15],1,:) = NaN; - assert (median (x, 1, "omitnan"), ones (1,1,4)) -***** assert (median ([true, false]), true) -***** assert (median (logical ([])), false) -***** assert (median (uint8 ([1, 3])), uint8 (2)) -***** assert (median (uint8 ([])), uint8 (NaN)) -***** assert (median (uint8 ([NaN 10])), uint8 (5)) -***** assert (median (int8 ([1, 3, 4])), int8 (3)) -***** assert (median (int8 ([])), int8 (NaN)) -***** assert (median (single ([1, 3, 4])), single (3)) -***** assert (median (single ([1, 3, NaN])), single (NaN)) -***** assert <54567> (median (uint8 ([253, 255])), uint8 (254)) -***** assert <54567> (median (uint8 ([253, 254])), uint8 (254)) -***** assert <54567> (median (int8 ([127, 126, 125, 124; 1 3 5 9])), ... - int8 ([64 65 65 67])) -***** assert <54567> (median (int8 ([127, 126, 125, 124; 1 3 5 9]), 2), ... - int8 ([126; 4])) -***** assert <54567> (median (int64 ([intmax("int64"), intmax("int64")-2])), ... - intmax ("int64") - 1) -***** assert <54567> (median ( ... - int64 ([intmax("int64"), intmax("int64")-2; 1 2]), 2), ... - int64([intmax("int64") - 1; 2])) -***** assert <54567> (median (uint64 ([intmax("uint64"), intmax("uint64")-2])), ... - intmax ("uint64") - 1) -***** assert <54567> (median ( ... - uint64 ([intmax("uint64"), intmax("uint64")-2; 1 2]), 2), ... - uint64([intmax("uint64") - 1; 2])) -***** assert <54567> (median (... - [intmin('int8') intmin('int8')+5 intmax('int8')-5 intmax('int8')]), ... - int8(-1)) -***** assert <54567> (median ([int8([1 2 3 4]); ... - intmin('int8') intmin('int8')+5 intmax('int8')-5 intmax('int8')], 2), ... - int8([3;-1])) -***** assert <54567> (median (... - [intmin('int64') intmin('int64')+5 intmax('int64')-5 intmax('int64')]), ... - int64(-1)) -***** assert <54567> (median ([int64([1 2 3 4]); ... - intmin('int64') intmin('int64')+5 intmax('int64')-5 intmax('int64')], 2), ... - int64([3;-1])) -***** assert <54567> (median ([intmax("uint64"), intmax("uint64")-2]), ... - intmax("uint64")-1) -***** assert <54567> (median ([intmax("uint64"), intmax("uint64")-2], "default"), ... - double(intmax("uint64")-1)) -***** assert <54567> (median ([intmax("uint64"), intmax("uint64")-2], "double"), ... - double(intmax("uint64")-1)) -***** assert <54567> (median ([intmax("uint64"), intmax("uint64")-2], "native"), ... - intmax("uint64")-1) -***** assert (median ([1 2 3], "aLL"), 2) -***** assert (median ([1 2 3], "OmitNan"), 2) -***** assert (median ([1 2 3], "DOUBle"), 2) -***** error median () -***** error median (1, 2, 3) -***** error median (1, 2, 3, 4) -***** error median (1, "all", 3) -***** error median (1, "b") -***** error median (1, 1, "foo") -***** error <'all' cannot be used with> median (1, 3, "all") -***** error <'all' cannot be used with> median (1, [2 3], "all") -***** error median ({1:5}) -***** error median ("char") -***** error median(1, "double", "native") -***** error median (1, ones (2,2)) -***** error median (1, 1.5) -***** error median (1, 0) -***** error median ([1 2 3], [-1 1]) -***** error median(1, [1 2 2]) -159 tests, 159 passed, 0 known failure, 0 skipped -[inst/shadow9/std.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/shadow9/std.m -***** assert (std (13), 0) -***** assert (std (single (13)), single (0)) -***** assert (std ([1,2,3]), 1) -***** assert (std ([1,2,3], 1), sqrt (2/3), eps) -***** assert (std ([1,2,3], [], 1), [0,0,0]) -***** assert (std ([1,2,3], [], 3), [0,0,0]) -***** assert (std (5, 99), 0) -***** assert (std (5, 99, 1), 0) -***** assert (std (5, 99, 2), 0) -***** assert (std ([5 3], [99 99], 2), 1) -***** assert (std ([1:7], [1:7]), sqrt (3)) -***** assert (std ([eye(3)], [1:3]), sqrt ([5/36, 2/9, 1/4]), eps) -***** assert (std (ones (2,2,2), [1:2], 3), [(zeros (2,2))]) -***** assert (std ([1 2; 3 4], 0, 'all'), std ([1:4])) -***** assert (std (reshape ([1:8], 2, 2, 2), 0, [1 3]), sqrt ([17/3 17/3]), eps) -***** assert (std ([1 2 3;1 2 3], [], [1 2]), sqrt (0.8), eps) + [m, v] = loglstat (0, 0.2); + assert (m, 1.0690, 0.001); + assert (v, 0.1786, 0.001); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_stat/raylstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/raylstat.m +***** error raylstat () +***** error raylstat ({}) +***** error raylstat ("") +***** error raylstat (i) ***** test - x = [-10:10]; - y = [x;x+5;x-5]; - assert (std (x), sqrt (38.5), 1e-14); - assert (std (y, [], 2), sqrt ([38.5; 38.5; 38.5]), 1e-14); - assert (std (y, 0, 2), sqrt ([38.5; 38.5; 38.5]), 1e-14); - assert (std (y, 1, 2), ones (3,1) * sqrt (36.66666666666666), 1e-14); - assert (std (y, "all"), sqrt (54.19354838709678), 1e-14); - y(2,4) = NaN; - assert (std (y, "all"), NaN); - assert (std (y, "all", "includenan"), NaN); - assert (std (y, "all", "omitnan"), sqrt (55.01533580116342), 1e-14); - assert (std (y, 0, 2, "includenan"), sqrt ([38.5; NaN; 38.5]), 1e-14); - assert (std (y, [], 2), sqrt ([38.5; NaN; 38.5]), 1e-14); - assert (std (y, [], 2, "omitnan"), ... - sqrt ([38.5; 37.81842105263158; 38.5]), 1e-14); -***** assert (std ([4 NaN 6], [1 2 1], "omitnan"), 1, eps) -***** assert (std ([4 5 6], [1 NaN 1], "omitnan"), 1, eps) -***** assert (std (magic(3), [1 NaN 3], "omitnan"), sqrt(3)*[1 2 1], eps) -***** assert (std ([4 NaN 6], [1 2 1], "omitnan", "all"), 1, eps) -***** assert (std ([4 NaN 6], [1 2 1], "all", "omitnan"), 1, eps) -***** assert (std ([4 5 6], [1 NaN 1], "omitnan", "all"), 1, eps) -***** assert (std ([4 NaN 6], [1 2 1], 2, "omitnan"), 1, eps) -***** assert (std ([4 5 6], [1 NaN 1], 2, "omitnan"), 1, eps) -***** assert (std (magic(3), [1 NaN 3], 1, "omitnan"), sqrt(3)*[1 2 1], eps) -***** assert (std (magic(3), [1 NaN 3], 2, "omitnan"), sqrt(3)*[0.5;1;0.5], eps) -***** assert (std (4*[4 5; 6 7; 8 9], [1 3], 2, 'omitnan'), sqrt(3)*[1;1;1], eps) -***** assert (std ([4 NaN; 6 7; 8 9], [1 1 3], 1, 'omitnan'), [1.6 sqrt(3)/2], eps) -***** assert (std (4*[4 NaN; 6 7; 8 9], [1 3], 2, 'omitnan'), sqrt(3)*[0;1;1], eps) -***** assert (std (3*reshape(1:18, [3 3 2]), [1 2 3], 1, 'omitnan'), ... - sqrt(5)*ones(1,3,2), eps) -***** assert (std (reshape(1:18, [3 3 2]), [1 2 3], 2, 'omitnan'), ... - sqrt(5)*ones(3,1,2), eps) -***** assert (std (3*reshape(1:18, [3 3 2]), ones (3,3,2), [1 2], 'omitnan'), ... - sqrt(60)*ones(1,1,2),eps) -***** assert (std (3*reshape(1:18, [3 3 2]), ones (3,3,2), [1 4], 'omitnan'), ... - sqrt(6)*ones(1,3,2),eps) -***** assert (std (6*reshape(1:18, [3 3 2]), ones (3,3,2), [1:3], 'omitnan'), ... - sqrt(969),eps) + sigma = 1:6; + [m, v] = raylstat (sigma); + expected_m = [1.2533, 2.5066, 3.7599, 5.0133, 6.2666, 7.5199]; + expected_v = [0.4292, 1.7168, 3.8628, 6.8673, 10.7301, 15.4513]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/dist_stat/lognstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/lognstat.m +***** error lognstat () +***** error lognstat (1) +***** error lognstat ({}, 2) +***** error lognstat (1, "") +***** error lognstat (i, 2) +***** error lognstat (1, i) +***** error ... + lognstat (ones (3), ones (2)) +***** error ... + lognstat (ones (2), ones (3)) ***** test - x = reshape(1:18, [3 3 2]); - x([2, 14]) = NaN; - w = ones (3,3,2); - assert (std (16*x, w, [1:3], 'omitnan'), sqrt(6519), eps); + mu = 0:0.2:1; + sigma = 0.2:0.2:1.2; + [m, v] = lognstat (mu, sigma); + expected_m = [1.0202, 1.3231, 1.7860, 2.5093, 3.6693, 5.5845]; + expected_v = [0.0425, 0.3038, 1.3823, 5.6447, 23.1345, 100.4437]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); ***** test - x = reshape(1:18, [3 3 2]); - w = ones (3,3,2); - w([2, 14]) = NaN; - assert (std (16*x, w, [1:3], 'omitnan'), sqrt(6519), eps); -***** assert (std ([1 2 3], "aLl"), 1); -***** assert (std ([1 2 3], "OmitNan"), 1); -***** assert (std ([1 2 3], "IncludeNan"), 1); + sigma = 0.2:0.2:1.2; + [m, v] = lognstat (0, sigma); + expected_m = [1.0202, 1.0833, 1.1972, 1.3771, 1.6487, 2.0544]; + expected_v = [0.0425, 0.2036, 0.6211, 1.7002, 4.6708, 13.5936]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/dist_stat/unifstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/unifstat.m +***** error unifstat () +***** error unifstat (1) +***** error unifstat ({}, 2) +***** error unifstat (1, "") +***** error unifstat (i, 2) +***** error unifstat (1, i) +***** error ... + unifstat (ones (3), ones (2)) +***** error ... + unifstat (ones (2), ones (3)) ***** test - x = repmat ([1:20;6:25], [5, 2, 6, 3]); - assert (size (std (x, 0, [3 2])), [10, 1, 1, 3]); - assert (size (std (x, 1, [1 2])), [1, 1, 6, 3]); - assert (size (std (x, [], [1 2 4])), [1, 1, 6]); - assert (size (std (x, 0, [1 4 3])), [1, 40]); - assert (size (std (x, [], [1 2 3 4])), [1, 1]); -***** assert (std (3*magic(3)), sqrt([63 144 63]), eps) -***** assert (std (3*magic(3), 'omitnan'), sqrt([63 144 63]), eps) -***** assert (std (3*magic(3), 1), sqrt([42 96 42]), eps) -***** assert (std (3*magic(3), 1, 'omitnan'), sqrt([42 96 42]), eps) -***** assert (std (3*magic(3), ones(1,3), 1), sqrt([42 96 42]), eps) -***** assert (std (3*magic(3), ones(1,3), 1, 'omitnan'), sqrt([42 96 42]), eps) -***** assert (std (2*magic(3), [1 1 NaN], 1, 'omitnan'), [5 4 1], eps) -***** assert (std (3*magic(3), ones(3,3)), sqrt([42 96 42]), eps) -***** assert (std (3*magic(3), ones(3,3), 'omitnan'), sqrt([42 96 42]), eps) -***** assert (std (3*magic(3), [1 1 1; 1 1 1; 1 NaN 1], 'omitnan'), ... - sqrt([42 36 42]), eps) -***** assert (std (3*magic(3), ones(3,3), 1), sqrt([42 96 42]), eps) -***** assert (std (3*magic(3), ones(3,3), 1, 'omitnan'), sqrt([42 96 42]), eps) -***** assert (std (3*magic(3), [1 1 1; 1 1 1; 1 NaN 1], 1, 'omitnan'), ... - sqrt([42 36 42]), eps) -***** assert (std (3*magic(3), ones(3,3), [1 4]), sqrt([42 96 42]), eps) -***** assert (std (3*magic(3), ones(3,3), [1 4], 'omitnan'), sqrt([42 96 42]), eps) -***** assert (std (3*magic(3), [1 1 1; 1 1 1; 1 NaN 1],[1 4],'omitnan'), ... - sqrt([42 36 42]), eps) + a = 1:6; + b = 2:2:12; + [m, v] = unifstat (a, b); + expected_m = [1.5000, 3.0000, 4.5000, 6.0000, 7.5000, 9.0000]; + expected_v = [0.0833, 0.3333, 0.7500, 1.3333, 2.0833, 3.0000]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); ***** test - x = repmat ([1:20;6:25], [5, 2, 6, 3]); - v = repmat (sqrt (33.38912133891213), [10, 1, 1, 3]); - assert (std (x, 0, [3, 2]), v, 1e-14); - v = repmat (sqrt (33.250), [10, 1, 1, 3]); - assert (std (x, 1, [3, 2]), v, 1e-14); - x(2,5,6,3) = NaN; - v(2,1,1,3) = NaN; - assert (std (x, 1, [3, 2]), v, 1e-14); - v = repmat (sqrt (33.38912133891213), [10 1 1 3]); - v(2,1,1,3) = NaN; - assert (std (x, [], [3, 2]), v, 1e-14); - v(2,1,1,3) = sqrt (33.40177912169048); - assert (std (x, [], [3, 2], "omitnan"), v, 1e-14); -***** assert (std (ones (2,2,2), [1:2], 3), [(zeros (2, 2))]) -***** assert (std (magic (3), [1:9], "all"), 2.581988897471611, 1e-14) -***** assert (std (ones (2,2), [], 3), zeros (2,2)) -***** assert (std (ones (2,2,2), [], 99), zeros (2,2,2)) -***** assert (std (magic (3), [], 3), zeros (3,3)) -***** assert (std (magic (3), [], 1), sqrt ([7, 16, 7])) -***** assert (std (magic (3), [], [1 3]), sqrt ([7, 16, 7])) -***** assert (std (magic (3), [], [1 99]), sqrt ([7, 16, 7])) -***** assert (std ([]), NaN) -***** assert (class (var (single ([]))), "single") -***** assert (std ([],[],1), NaN(1,0)) -***** assert (std ([],[],2), NaN(0,1)) -***** assert (std ([],[],3), []) -***** assert (class (var (single ([]), [], 1)), "single") -***** assert (std (ones (1,0)), NaN) -***** assert (std (ones (1,0), [], 1), NaN(1,0)) -***** assert (std (ones (1,0), [], 2), NaN) -***** assert (std (ones (1,0), [], 3), NaN(1,0)) -***** assert (class (var (ones (1, 0, "single"), [], 1)), "single") -***** assert (std (ones (0,1)), NaN) -***** assert (std (ones (0,1), [], 1), NaN) -***** assert (std (ones (0,1), [], 2), NaN(0,1)) -***** assert (std (ones (0,1), [], 3), NaN(0,1)) -***** assert (std (ones (1,3,0,2)), NaN(1,1,0,2)) -***** assert (std (ones (1,3,0,2), [], 1), NaN(1,3,0,2)) -***** assert (std (ones (1,3,0,2), [], 2), NaN(1,1,0,2)) -***** assert (std (ones (1,3,0,2), [], 3), NaN(1,3,1,2)) -***** assert (std (ones (1,3,0,2), [], 4), NaN(1,3,0)) + a = 1:6; + [m, v] = unifstat (a, 10); + expected_m = [5.5000, 6.0000, 6.5000, 7.0000, 7.5000, 8.0000]; + expected_v = [6.7500, 5.3333, 4.0833, 3.0000, 2.0833, 1.3333]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/dist_stat/gevstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/gevstat.m +***** error gevstat () +***** error gevstat (1) +***** error gevstat (1, 2) +***** error gevstat ({}, 2, 3) +***** error gevstat (1, "", 3) +***** error gevstat (1, 2, "") +***** error gevstat (i, 2, 3) +***** error gevstat (1, i, 3) +***** error gevstat (1, 2, i) +***** error ... + gevstat (ones (3), ones (2), 3) +***** error ... + gevstat (ones (2), 2, ones (3)) +***** error ... + gevstat (1, ones (2), ones (3)) ***** test - [~, m] = std ([]); - assert (m, NaN); -***** test <*62395> - [~, m] = std (13); - assert (m, 13); - [~, m] = std (single(13)); - assert (m, single(13)); - [~, m] = std ([1, 2, 3; 3 2 1], []); - assert (m, [2 2 2]); - [~, m] = std ([1, 2, 3; 3 2 1], [], 1); - assert (m, [2 2 2]); - [~, m] = std ([1, 2, 3; 3 2 1], [], 2); - assert (m, [2 2]'); - [~, m] = std ([1, 2, 3; 3 2 1], [], 3); - assert (m, [1 2 3; 3 2 1]); -***** test <*62395> - [~, m] = std (5,99); - assert (m, 5); - [~, m] = std ([1:7], [1:7]); - assert (m, 5); - [~, m] = std ([eye(3)], [1:3]); - assert (m, [1/6, 1/3, 0.5], eps); - [~, m] = std (ones (2,2,2), [1:2], 3); - assert (m, ones (2,2)); - [~, m] = std ([1 2; 3 4], 0, 'all'); - assert (m, 2.5, eps); - [~, m] = std (reshape ([1:8], 2, 2, 2), 0, [1 3]); - assert (m, [3.5, 5.5], eps); + k = [-1, -0.5, 0, 0.2, 0.4, 0.5, 1]; + sigma = 2; + mu = 1; + [m, v] = gevstat (k, sigma, mu); + expected_m = [1, 1.4551, 2.1544, 2.6423, 3.4460, 4.0898, Inf]; + expected_v = [4, 3.4336, 6.5797, 13.3761, 59.3288, Inf, Inf]; + assert (m, expected_m, -0.001); + assert (v, expected_v, -0.001); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_stat/normstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/normstat.m +***** error normstat () +***** error normstat (1) +***** error normstat ({}, 2) +***** error normstat (1, "") +***** error normstat (i, 2) +***** error normstat (1, i) +***** error ... + normstat (ones (3), ones (2)) +***** error ... + normstat (ones (2), ones (3)) ***** test - [v, m] = std (4 * eye (2), [1, 3]); - assert (v, sqrt ([3, 3]), 1e-14); - assert (m, [1, 3]); -***** test <*62395> - [~, m] = std ([]); - assert (m, NaN); + mu = 1:6; + sigma = 0.2:0.2:1.2; + [m, v] = normstat (mu, sigma); + expected_v = [0.0400, 0.1600, 0.3600, 0.6400, 1.0000, 1.4400]; + assert (m, mu); + assert (v, expected_v, 0.001); ***** test - x = repmat ([1:20;6:25], [5, 2, 6, 3]); - [~, m] = std (x, 0, [3 2]); - assert (m, mean (x, [3 2])); - [~, m] = std (x, 0, [1 2]); - assert (m, mean (x, [1 2])); - [~, m] = std (x, 0, [1 3 4]); - assert (m, mean (x, [1 3 4])); + sigma = 0.2:0.2:1.2; + [m, v] = normstat (0, sigma); + expected_mn = [0, 0, 0, 0, 0, 0]; + expected_v = [0.0400, 0.1600, 0.3600, 0.6400, 1.0000, 1.4400]; + assert (m, expected_mn, 0.001); + assert (v, expected_v, 0.001); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/dist_stat/fstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/fstat.m +***** error fstat () +***** error fstat (1) +***** error fstat ({}, 2) +***** error fstat (1, "") +***** error fstat (i, 2) +***** error fstat (1, i) +***** error ... + fstat (ones (3), ones (2)) +***** error ... + fstat (ones (2), ones (3)) ***** test - x = repmat ([1:20;6:25], [5, 2, 6, 3]); - x(2,5,6,3) = NaN; - [~, m] = std (x, 0, [3 2], "omitnan"); - assert (m, mean (x, [3 2], "omitnan")); -***** test <*63203> - [v, m] = std (Inf); - assert (v, NaN); - assert (m, Inf); -***** test <*63203> - [v, m] = std (NaN); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = std ([1, Inf, 3]); - assert (v, NaN); - assert (m, Inf); -***** test <*63203> - [v, m] = std ([1, Inf, 3]'); - assert (v, NaN); - assert (m, Inf); -***** test <*63203> - [v, m] = std ([1, NaN, 3]); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = std ([1, NaN, 3]'); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = std ([1, Inf, 3], [], 1); - assert (v, [0, NaN, 0]); - assert (m, [1, Inf, 3]); -***** test <*63203> - [v, m] = std ([1, Inf, 3], [], 2); - assert (v, NaN); - assert (m, Inf); -***** test <*63203> - [v, m] = std ([1, Inf, 3], [], 3); - assert (v, [0, NaN, 0]); - assert (m, [1, Inf, 3]); -***** test <*63203> - [v, m] = std ([1, NaN, 3], [], 1); - assert (v, [0, NaN, 0]); - assert (m, [1, NaN, 3]); -***** test <*63203> - [v, m] = std ([1, NaN, 3], [], 2); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = std ([1, NaN, 3], [], 3); - assert (v, [0, NaN, 0]); - assert (m, [1, NaN, 3]); -***** test <*63203> - [v, m] = std ([1, 2, 3; 3, Inf, 5]); - assert (v, sqrt ([2, NaN, 2])); - assert (m, [2, Inf, 4]); -***** test <*63203> - [v, m] = std ([1, Inf, 3; 3, Inf, 5]); - assert (v, sqrt ([2, NaN, 2])); - assert (m, [2, Inf, 4]); -***** test <*63203> - [v, m] = std ([1, 2, 3; 3, NaN, 5]); - assert (v, sqrt ([2, NaN, 2])); - assert (m, [2, NaN, 4]); -***** test <*63203> - [v, m] = std ([1, NaN, 3; 3, NaN, 5]); - assert (v, sqrt ([2, NaN, 2])); - assert (m, [2, NaN, 4]); -***** test <*63203> - [v, m] = std ([Inf, 2, NaN]); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = std ([Inf, 2, NaN]'); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = std ([NaN, 2, Inf]); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = std ([NaN, 2, Inf]'); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = std ([Inf, 2, NaN], [], 1); - assert (v, [NaN, 0, NaN]); - assert (m, [Inf, 2, NaN]); -***** test <*63203> - [v, m] = std ([Inf, 2, NaN], [], 2); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = std ([NaN, 2, Inf], [], 1); - assert (v, [NaN, 0, NaN]); - assert (m, [NaN, 2, Inf]); -***** test <*63203> - [v, m] = std ([NaN, 2, Inf], [], 2); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = std ([1, 3, NaN; 3, 5, Inf]); - assert (v, sqrt ([2, 2, NaN])); - assert (m, [2, 4, NaN]); -***** test <*63203> - [v, m] = std ([1, 3, Inf; 3, 5, NaN]); - assert (v, sqrt ([2, 2, NaN])); - assert (m, [2, 4, NaN]); -***** test <*63291> - [v, m] = std (2 * eye (2)); - assert (v, sqrt ([2, 2])); - assert (m, [1, 1]); -***** test <*63291> - [v, m] = std (4 * eye (2), [1, 3]); - assert (v, sqrt ([3, 3])); - assert (m, [1, 3]); -***** test <*63291> - [v, m] = std (sparse (2 * eye (2))); - assert (full (v), sqrt ([2, 2])); - assert (full (m), [1, 1]); -***** test <*63291> - [v, m] = std (sparse (4 * eye (2)), [1, 3]); - assert (full (v), sqrt ([3, 3])); - assert (full (m), [1, 3]); -***** test <*63291> - [v, m] = std (sparse (eye (2))); - assert (issparse (v)); - assert (issparse (m)); -***** test <*63291> - [v, m] = std (sparse (eye (2)), [1, 3]); - assert (issparse (v)); - assert (issparse (m)); -***** error std () -***** error std (1, 2, "omitnan", 3) -***** error std (1, 2, 3, 4) -***** error std (1, 2, 3, 4, 5) -***** error std (1, "foo") -***** error std (1, [], "foo") -***** error std ([1 2 3], 2) -***** error std ([1 2], 2, "all") -***** error std ([1 2],0.5, "all") -***** error std (1, -1) -***** error std (1, [1 -1]) -***** error ... - std ([1 2 3], [1 -1 0]) -***** error std ({1:5}) -***** error std ("char") -***** error std (['A'; 'B']) -***** error std (1, [], ones (2,2)) -***** error std (1, 0, 1.5) -***** error std (1, [], 0) -***** error std (1, [], 1.5) -***** error std ([1 2 3], [], [-1 1]) -***** error ... - std (repmat ([1:20;6:25], [5 2 6 3]), 0, [1 2 2 2]) -***** error ... - std ([1 2], eye (2)) -***** error ... - std ([1 2 3 4], [1 2; 3 4]) -***** error ... - std ([1 2 3 4], [1 2; 3 4], 1) -***** error ... - std ([1 2 3 4], [1 2; 3 4], [2 3]) -***** error ... - std (ones (2, 2), [1 2], [1 2]) -***** error ... - std ([1 2 3 4; 5 6 7 8], [1 2 1 2 1; 1 2 1 2 1], 1) -***** error ... - std (repmat ([1:20;6:25], [5 2 6 3]), repmat ([1:20;6:25], [5 2 3]), [2 3]) -***** error std ([1 2 3; 2 3 4], [1 3 4]) -***** error std ([1 2], [1 2 3]) -***** error std (1, [1 2]) -***** error std ([1 2 3; 2 3 4], [1 3 4], 1) -***** error std ([1 2 3; 2 3 4], [1 3], 2) -***** error std ([1 2], [1 2], 1) -***** error <'all' flag cannot be used with DIM or VECDIM options> ... - std (1, [], 1, "all") -***** error ... - std ([1 2 3; 2 3 4], [1 3], "all") -***** error ... - std (repmat ([1:20;6:25], [5 2 6 3]), repmat ([1:20;6:25], [5 2 3]), "all") -162 tests, 162 passed, 0 known failure, 0 skipped -[inst/shadow9/var.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/shadow9/var.m -***** assert (var (13), 0) -***** assert (var (single (13)), single (0)) -***** assert (var ([1,2,3]), 1) -***** assert (var ([1,2,3], 1), 2/3, eps) -***** assert (var ([1,2,3], [], 1), [0,0,0]) -***** assert (var ([1,2,3], [], 3), [0,0,0]) -***** assert (var (5, 99), 0) -***** assert (var (5, 99, 1), 0) -***** assert (var (5, 99, 2), 0) -***** assert (var ([5 3], [99 99], 2), 1) -***** assert (var ([1:7], [1:7]), 3) -***** assert (var ([eye(3)], [1:3]), [5/36, 2/9, 1/4], eps) -***** assert (var (ones (2,2,2), [1:2], 3), [(zeros (2,2))]) -***** assert (var ([1 2; 3 4], 0, 'all'), var ([1:4])) -***** assert (var (reshape ([1:8], 2, 2, 2), 0, [1 3]), [17/3 17/3], eps) -***** assert (var ([1 2 3;1 2 3], [], [1 2]), 0.8, eps) + df1 = 1:6; + df2 = 5:10; + [m, v] = fstat (df1, df2); + expected_mn = [1.6667, 1.5000, 1.4000, 1.3333, 1.2857, 1.2500]; + expected_v = [22.2222, 6.7500, 3.4844, 2.2222, 1.5869, 1.2153]; + assert (m, expected_mn, 0.001); + assert (v, expected_v, 0.001); ***** test - x = [-10:10]; - y = [x;x+5;x-5]; - assert (var (x), 38.5); - assert (var (y, [], 2), [38.5; 38.5; 38.5]); - assert (var (y, 0, 2), [38.5; 38.5; 38.5]); - assert (var (y, 1, 2), ones (3,1) * 36.66666666666666, 1e-14); - assert (var (y, "all"), 54.19354838709678, 1e-14); - y(2,4) = NaN; - assert (var (y, "all"), NaN); - assert (var (y, "all", "includenan"), NaN); - assert (var (y, "all", "omitnan"), 55.01533580116342, 1e-14); - assert (var (y, 0, 2, "includenan"), [38.5; NaN; 38.5]); - assert (var (y, [], 2), [38.5; NaN; 38.5]); - assert (var (y, [], 2, "omitnan"), [38.5; 37.81842105263158; 38.5], 1e-14); -***** assert (var ([1 NaN 3], [1 2 3], "omitnan"), 0.75, eps) -***** assert (var ([1 2 3], [1 NaN 3], "omitnan"), 0.75, eps) -***** assert (var (magic(3), [1 NaN 3], "omitnan"), [3 12 3], eps) -***** assert (var ([1 NaN 3], [1 2 3], "omitnan", "all"), 0.75, eps) -***** assert (var ([1 NaN 3], [1 2 3], "all", "omitnan"), 0.75, eps) -***** assert (var ([1 2 3], [1 NaN 3], "omitnan", "all"), 0.75, eps) -***** assert (var ([1 NaN 3], [1 2 3], 2, "omitnan"), 0.75, eps) -***** assert (var ([1 2 3], [1 NaN 3], 2, "omitnan"), 0.75, eps) -***** assert (var (magic(3), [1 NaN 3], 1, "omitnan"), [3 12 3], eps) -***** assert (var (magic(3), [1 NaN 3], 2, "omitnan"), [0.75;3;0.75], eps) -***** assert (var ([4 4; 4 6; 6 6], [1 3], 2, 'omitnan'), [0;0.75;0], eps) -***** assert (var ([4 NaN; 4 6; 6 6], [1 2 3], 1, 'omitnan'), [1 0]) -***** assert (var ([4 NaN; 4 6; 6 6], [1 3], 2, 'omitnan'), [0;0.75;0], eps) -***** assert (var (3*reshape(1:18, [3 3 2]), [1 2 3], 1, 'omitnan'), ones(1,3,2)*5) -***** assert (var (reshape(1:18, [3 3 2]), [1 2 3], 2, 'omitnan'), 5*ones(3,1,2)) -***** assert (var (3*reshape(1:18, [3 3 2]), ones (3,3,2), [1 2], 'omitnan'), ... - 60 * ones(1,1,2)) -***** assert (var (3*reshape(1:18, [3 3 2]), ones (3,3,2), [1 4], 'omitnan'), ... - 6 * ones(1,3,2)) -***** assert (var (6*reshape(1:18, [3 3 2]), ones (3,3,2), [1:3], 'omitnan'), 969) + df1 = 1:6; + [m, v] = fstat (df1, 5); + expected_mn = [1.6667, 1.6667, 1.6667, 1.6667, 1.6667, 1.6667]; + expected_v = [22.2222, 13.8889, 11.1111, 9.7222, 8.8889, 8.3333]; + assert (m, expected_mn, 0.001); + assert (v, expected_v, 0.001); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/dist_stat/burrstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/burrstat.m +***** error burrstat () +***** error burrstat (1) +***** error burrstat (1, 2) +***** error burrstat ({}, 2, 3) +***** error burrstat (1, "", 3) +***** error burrstat (1, 2, "") +***** error burrstat (i, 2, 3) +***** error burrstat (1, i, 3) +***** error burrstat (1, 2, i) +***** error ... + burrstat (ones (3), ones (2), 3) +***** error ... + burrstat (ones (2), 2, ones (3)) +***** error ... + burrstat (1, ones (2), ones (3)) ***** test - x = reshape(1:18, [3 3 2]); - x([2, 14]) = NaN; - w = ones (3,3,2); - assert (var (16*x, w, [1:3], 'omitnan'), 6519); + [m, v] = burrstat (1, 2, 5); + assert (m, 0.4295, 1e-4); + assert (v, 0.0655, 1e-4); ***** test - x = reshape(1:18, [3 3 2]); - w = ones (3,3,2); - w([2, 14]) = NaN; - assert (var (16*x, w, [1:3], 'omitnan'), 6519); -***** assert (var ([1 2 3], "aLl"), 1); -***** assert (var ([1 2 3], "OmitNan"), 1); -***** assert (var ([1 2 3], "IncludeNan"), 1); + [m, v] = burrstat (1, 1, 1); + assert (m, Inf); + assert (v, Inf); ***** test - x = repmat ([1:20;6:25], [5, 2, 6, 3]); - assert (size (var (x, 0, [3 2])), [10, 1, 1, 3]); - assert (size (var (x, 1, [1 2])), [1, 1, 6, 3]); - assert (size (var (x, [], [1 2 4])), [1, 1, 6]); - assert (size (var (x, 0, [1 4 3])), [1, 40]); - assert (size (var (x, [], [1 2 3 4])), [1, 1]); -***** assert (var (3*magic(3)), [63 144 63]) -***** assert (var (3*magic(3), 'omitnan'), [63 144 63]) -***** assert (var (3*magic(3), 1), [42 96 42]) -***** assert (var (3*magic(3), 1, 'omitnan'), [42 96 42]) -***** assert (var (3*magic(3), ones(1,3), 1), [42 96 42]) -***** assert (var (3*magic(3), ones(1,3), 1, 'omitnan'), [42 96 42]) -***** assert (var (2*magic(3), [1 1 NaN], 1, 'omitnan'), [25 16 1]) -***** assert (var (3*magic(3), ones(3,3)), [42 96 42]) -***** assert (var (3*magic(3), ones(3,3), 'omitnan'), [42 96 42]) -***** assert (var (3*magic(3), [1 1 1; 1 1 1; 1 NaN 1], 'omitnan'), [42 36 42]) -***** assert (var (3*magic(3), ones(3,3), 1), [42 96 42]) -***** assert (var (3*magic(3), ones(3,3), 1, 'omitnan'), [42 96 42]) -***** assert (var (3*magic(3), [1 1 1; 1 1 1; 1 NaN 1], 1, 'omitnan'), [42 36 42]) -***** assert (var (3*magic(3), ones(3,3), [1 4]), [42 96 42]) -***** assert (var (3*magic(3), ones(3,3), [1 4], 'omitnan'), [42 96 42]) -***** assert (var (3*magic(3), [1 1 1; 1 1 1; 1 NaN 1],[1 4],'omitnan'), [42 36 42]) + [m, v] = burrstat (2, 4, 1); + assert (m, 2.2214, 1e-4); + assert (v, 1.3484, 1e-4); +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_stat/invgstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/invgstat.m +***** error invgstat () +***** error invgstat (1) +***** error invgstat ({}, 2) +***** error invgstat (1, "") +***** error invgstat (i, 2) +***** error invgstat (1, i) +***** error ... + invgstat (ones (3), ones (2)) +***** error ... + invgstat (ones (2), ones (3)) ***** test - x = repmat ([1:20;6:25], [5, 2, 6, 3]); - v = repmat (33.38912133891213, [10, 1, 1, 3]); - assert (var (x, 0, [3, 2]), v, 1e-14); - v = repmat (33.250, [10, 1, 1, 3]); - assert (var (x, 1, [3, 2]), v, 1e-14); - x(2,5,6,3) = NaN; - v(2,1,1,3) = NaN; - assert (var (x, 1, [3, 2]), v, 4e-14); - v = repmat (33.38912133891213, [10 1 1 3]); - v(2,1,1,3) = NaN; - assert (var (x, [], [3, 2]), v, 4e-14); - v(2,1,1,3) = 33.40177912169048; - assert (var (x, [], [3, 2], "omitnan"), v, 4e-14); -***** assert (var (ones (2,2,2), [1:2], 3), [(zeros (2, 2))]) -***** assert (var (magic (3), [1:9], "all"), 6.666666666666667, 1e-14) -***** assert (var (ones (2,2), [], 3), zeros (2,2)) -***** assert (var (ones (2,2,2), [], 99), zeros (2,2,2)) -***** assert (var (magic (3), [], 3), zeros (3,3)) -***** assert (var (magic (3), [], 1), [7, 16, 7]) -***** assert (var (magic (3), [], [1 3]), [7, 16, 7]) -***** assert (var (magic (3), [], [1 99]), [7, 16, 7]) -***** assert (var ([]), NaN) -***** assert (class (var (single ([]))), "single") -***** assert (var ([],[],1), NaN(1,0)) -***** assert (var ([],[],2), NaN(0,1)) -***** assert (var ([],[],3), []) -***** assert (class (var (single ([]), [], 1)), "single") -***** assert (var (ones (1,0)), NaN) -***** assert (var (ones (1,0), [], 1), NaN(1,0)) -***** assert (var (ones (1,0), [], 2), NaN) -***** assert (var (ones (1,0), [], 3), NaN(1,0)) -***** assert (class (var (ones (1, 0, "single"), [], 1)), "single") -***** assert (var (ones (0,1)), NaN) -***** assert (var (ones (0,1), [], 1), NaN) -***** assert (var (ones (0,1), [], 2), NaN(0,1)) -***** assert (var (ones (0,1), [], 3), NaN(0,1)) -***** assert (var (ones (1,3,0,2)), NaN(1,1,0,2)) -***** assert (var (ones (1,3,0,2), [], 1), NaN(1,3,0,2)) -***** assert (var (ones (1,3,0,2), [], 2), NaN(1,1,0,2)) -***** assert (var (ones (1,3,0,2), [], 3), NaN(1,3,1,2)) -***** assert (var (ones (1,3,0,2), [], 4), NaN(1,3,0)) + [m, v] = invgstat (1, 1); + assert (m, 1); + assert (v, 1); ***** test - [~, m] = var ([]); - assert (m, NaN); -***** test <*62395> - [~, m] = var (13); - assert (m, 13); - [~, m] = var (single(13)); - assert (m, single(13)); - [~, m] = var ([1, 2, 3; 3 2 1], []); - assert (m, [2 2 2]); - [~, m] = var ([1, 2, 3; 3 2 1], [], 1); - assert (m, [2 2 2]); - [~, m] = var ([1, 2, 3; 3 2 1], [], 2); - assert (m, [2 2]'); - [~, m] = var ([1, 2, 3; 3 2 1], [], 3); - assert (m, [1 2 3; 3 2 1]); -***** test <*62395> - [~, m] = var (5,99); - assert (m, 5); - [~, m] = var ([1:7], [1:7]); - assert (m, 5); - [~, m] = var ([eye(3)], [1:3]); - assert (m, [1/6, 1/3, 0.5], eps); - [~, m] = var (ones (2,2,2), [1:2], 3); - assert (m, ones (2,2)); - [~, m] = var ([1 2; 3 4], 0, 'all'); - assert (m, 2.5, eps); - [~, m] = var (reshape ([1:8], 2, 2, 2), 0, [1 3]); - assert (m, [3.5, 5.5], eps); + [m, v] = invgstat (2, 1); + assert (m, 2); + assert (v, 8); ***** test - [v, m] = var (4 * eye (2), [1, 3]); - assert (v, [3, 3]); - assert (m, [1, 3]); -***** test <*62395> - [~, m] = var ([]); - assert (m, NaN); -***** test <*62395> - x = repmat ([1:20;6:25], [5, 2, 6, 3]); - [~, m] = var (x, 0, [3 2]); - assert (m, mean (x, [3 2])); - [~, m] = var (x, 0, [1 2]); - assert (m, mean (x, [1 2])); - [~, m] = var (x, 0, [1 3 4]); - assert (m, mean (x, [1 3 4])); + [m, v] = invgstat (2, 2); + assert (m, 2); + assert (v, 4); ***** test - x = repmat ([1:20;6:25], [5, 2, 6, 3]); - x(2,5,6,3) = NaN; - [~, m] = var (x, 0, [3 2], "omitnan"); - assert (m, mean (x, [3 2], "omitnan")); -***** test <*63203> - [v, m] = var (Inf); - assert (v, NaN); - assert (m, Inf); -***** test <*63203> - [v, m] = var (NaN); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = var ([1, Inf, 3]); - assert (v, NaN); - assert (m, Inf); -***** test <*63203> - [v, m] = var ([1, Inf, 3]'); - assert (v, NaN); - assert (m, Inf); -***** test <*63203> - [v, m] = var ([1, NaN, 3]); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = var ([1, NaN, 3]'); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = var ([1, Inf, 3], [], 1); - assert (v, [0, NaN, 0]); - assert (m, [1, Inf, 3]); -***** test <*63203> - [v, m] = var ([1, Inf, 3], [], 2); - assert (v, NaN); - assert (m, Inf); -***** test <*63203> - [v, m] = var ([1, Inf, 3], [], 3); - assert (v, [0, NaN, 0]); - assert (m, [1, Inf, 3]); -***** test <*63203> - [v, m] = var ([1, NaN, 3], [], 1); - assert (v, [0, NaN, 0]); - assert (m, [1, NaN, 3]); -***** test <*63203> - [v, m] = var ([1, NaN, 3], [], 2); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = var ([1, NaN, 3], [], 3); - assert (v, [0, NaN, 0]); - assert (m, [1, NaN, 3]); -***** test <*63203> - [v, m] = var ([1, 2, 3; 3, Inf, 5]); - assert (v, [2, NaN, 2]); - assert (m, [2, Inf, 4]); -***** test <*63203> - [v, m] = var ([1, Inf, 3; 3, Inf, 5]); - assert (v, [2, NaN, 2]); - assert (m, [2, Inf, 4]); -***** test <*63203> - [v, m] = var ([1, 2, 3; 3, NaN, 5]); - assert (v, [2, NaN, 2]); - assert (m, [2, NaN, 4]); -***** test <*63203> - [v, m] = var ([1, NaN, 3; 3, NaN, 5]); - assert (v, [2, NaN, 2]); - assert (m, [2, NaN, 4]); -***** test <*63203> - [v, m] = var ([Inf, 2, NaN]); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = var ([Inf, 2, NaN]'); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = var ([NaN, 2, Inf]); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = var ([NaN, 2, Inf]'); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = var ([Inf, 2, NaN], [], 1); - assert (v, [NaN, 0, NaN]); - assert (m, [Inf, 2, NaN]); -***** test <*63203> - [v, m] = var ([Inf, 2, NaN], [], 2); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = var ([NaN, 2, Inf], [], 1); - assert (v, [NaN, 0, NaN]); - assert (m, [NaN, 2, Inf]); -***** test <*63203> - [v, m] = var ([NaN, 2, Inf], [], 2); - assert (v, NaN); - assert (m, NaN); -***** test <*63203> - [v, m] = var ([1, 3, NaN; 3, 5, Inf]); - assert (v, [2, 2, NaN]); - assert (m, [2, 4, NaN]); -***** test <*63203> - [v, m] = var ([1, 3, Inf; 3, 5, NaN]); - assert (v, [2, 2, NaN]); - assert (m, [2, 4, NaN]); -***** test <*63291> - [v, m] = var (2 * eye (2)); - assert (v, [2, 2]); - assert (m, [1, 1]); -***** test <*63291> - [v, m] = var (4 * eye (2), [1, 3]); - assert (v, [3, 3]); - assert (m, [1, 3]); -***** test <*63291> - [v, m] = var (sparse (2 * eye (2))); - assert (full (v), [2, 2]); - assert (full (m), [1, 1]); -***** test <*63291> - [v, m] = var (sparse (4 * eye (2)), [1, 3]); - assert (full (v), [3, 3]); - assert (full (m), [1, 3]); -***** test<*63291> - [v, m] = var (sparse (eye (2))); - assert (issparse (v)); - assert (issparse (m)); -***** test<*63291> - [v, m] = var (sparse (eye (2)), [1, 3]); - assert (issparse (v)); - assert (issparse (m)); -***** error var () -***** error var (1, 2, "omitnan", 3) -***** error var (1, 2, 3, 4) -***** error var (1, 2, 3, 4, 5) -***** error var (1, "foo") -***** error var (1, [], "foo") -***** error var ([1 2 3], 2) -***** error var ([1 2], 2, "all") -***** error var ([1 2],0.5, "all") -***** error var (1, -1) -***** error var (1, [1 -1]) -***** error ... - var ([1 2 3], [1 -1 0]) -***** error var ({1:5}) -***** error var ("char") -***** error var (['A'; 'B']) -***** error var (1, [], ones (2,2)) -***** error var (1, 0, 1.5) -***** error var (1, [], 0) -***** error var (1, [], 1.5) -***** error var ([1 2 3], [], [-1 1]) -***** error ... - var (repmat ([1:20;6:25], [5 2 6 3]), 0, [1 2 2 2]) -***** error ... - var ([1 2], eye (2)) -***** error ... - var ([1 2 3 4], [1 2; 3 4]) -***** error ... - var ([1 2 3 4], [1 2; 3 4], 1) -***** error ... - var ([1 2 3 4], [1 2; 3 4], [2 3]) -***** error ... - var (ones (2, 2), [1 2], [1 2]) -***** error ... - var ([1 2 3 4; 5 6 7 8], [1 2 1 2 1; 1 2 1 2 1], 1) -***** error ... - var (repmat ([1:20;6:25], [5 2 6 3]), repmat ([1:20;6:25], [5 2 3]), [2 3]) -***** error var ([1 2 3; 2 3 4], [1 3 4]) -***** error var ([1 2], [1 2 3]) -***** error var (1, [1 2]) -***** error var ([1 2 3; 2 3 4], [1 3 4], 1) -***** error var ([1 2 3; 2 3 4], [1 3], 2) -***** error var ([1 2], [1 2], 1) -***** error <'all' flag cannot be used with DIM or VECDIM options> ... - var (1, [], 1, "all") -***** error ... - var ([1 2 3; 2 3 4], [1 3], "all") -***** error ... - var (repmat ([1:20;6:25], [5 2 6 3]), repmat ([1:20;6:25], [5 2 3]), "all") -162 tests, 162 passed, 0 known failure, 0 skipped -[inst/nanmin.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/nanmin.m -***** assert (nanmin ([2 4 NaN 7]), 2) -***** assert (nanmin ([2 4 NaN Inf]), 2) -***** assert (nanmin ([1 NaN 3; NaN 5 6; 7 8 NaN]), [1, 5, 3]) -***** assert (nanmin ([1 NaN 3; NaN 5 6; 7 8 NaN]'), [1, 5, 7]) -***** assert (nanmin (single ([1 NaN 3; NaN 5 6; 7 8 NaN])), single ([1 5 3])) + [m, v] = invgstat (2, 2.5); + assert (m, 2); + assert (v, 3.2); +***** test + [m, v] = invgstat (1.5, 0.5); + assert (m, 1.5); + assert (v, 6.75); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_stat/geostat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/geostat.m +***** error geostat () +***** error geostat ({}) +***** error geostat ("") +***** error geostat (i) +***** test + ps = 1 ./ (1:6); + [m, v] = geostat (ps); + assert (m, [0, 1, 2, 3, 4, 5], 0.001); + assert (v, [0, 2, 6, 12, 20, 30], 0.001); 5 tests, 5 passed, 0 known failure, 0 skipped -[inst/princomp.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/princomp.m -***** shared COEFF,SCORE,latent,tsquare,m,x,R,V,lambda,i,S,F +[inst/dist_stat/evstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/evstat.m +***** error evstat () +***** error evstat (1) +***** error evstat ({}, 2) +***** error evstat (1, "") +***** error evstat (i, 2) +***** error evstat (1, i) +***** error ... + evstat (ones (3), ones (2)) +***** error ... + evstat (ones (2), ones (3)) +***** shared x, y0, y1 + x = [-5, 0, 1, 2, 3]; + y0 = [NaN, NaN, 0.4228, 0.8456, 1.2684]; + y1 = [-5.5772, -3.4633, -3.0405, -2.6177, -2.1949]; +***** assert (evstat (x, x), y0, 1e-4) +***** assert (evstat (x, x+6), y1, 1e-4) +***** assert (evstat (x, x-6), NaN (1,5)) +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/dist_stat/poisstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/poisstat.m +***** error poisstat () +***** error poisstat ({}) +***** error poisstat ("") +***** error poisstat (i) ***** test - x=[7 4 3 - 4 1 8 - 6 3 5 - 8 6 1 - 8 5 7 - 7 2 9 - 5 3 3 - 9 5 8 - 7 4 5 - 8 2 2]; - R = corrcoef (x); - [V, lambda] = eig (R); - [~, i] = sort(diag(lambda), "descend"); #arrange largest PC first - S = V(:, i) * diag(sqrt(diag(lambda)(i))); - ## contribution of first 2 PCs to each original variable -***** assert(diag(S(:, 1:2)*S(:, 1:2)'), [0.8662; 0.8420; 0.9876], 1E-4); - B = V(:, i) * diag( 1./ sqrt(diag(lambda)(i))); - F = zscore(x)*B; - [COEFF,SCORE,latent,tsquare] = princomp(zscore(x, 1)); -***** assert(tsquare,sumsq(F, 2),1E4*eps); + lambda = 1 ./ (1:6); + [m, v] = poisstat (lambda); + assert (m, lambda); + assert (v, lambda); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/dist_stat/logistat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/logistat.m +***** error logistat () +***** error logistat (1) +***** error logistat ({}, 2) +***** error logistat (1, "") +***** error logistat (i, 2) +***** error logistat (1, i) +***** error ... + logistat (ones (3), ones (2)) +***** error ... + logistat (ones (2), ones (3)) ***** test - x=[1,2,3;2,1,3]'; - [COEFF,SCORE,latent,tsquare] = princomp(x); - m=[sqrt(2),sqrt(2);sqrt(2),-sqrt(2);-2*sqrt(2),0]/2; - m(:,1) = m(:,1)*sign(COEFF(1,1)); - m(:,2) = m(:,2)*sign(COEFF(1,2)); -***** assert(COEFF,m(1:2,:),10*eps); -***** assert(SCORE,-m,10*eps); -***** assert(latent,[1.5;.5],10*eps); -***** assert(tsquare,[4;4;4]/3,10*eps); + [m, v] = logistat (0, 1); + assert (m, 0); + assert (v, 3.2899, 0.001); ***** test - x=x'; - [COEFF,SCORE,latent,tsquare] = princomp(x); - m=[sqrt(2),sqrt(2),0;-sqrt(2),sqrt(2),0;0,0,2]/2; - m(:,1) = m(:,1)*sign(COEFF(1,1)); - m(:,2) = m(:,2)*sign(COEFF(1,2)); - m(:,3) = m(:,3)*sign(COEFF(3,3)); -***** assert(COEFF,m,10*eps); -***** assert(SCORE(:,1),-m(1:2,1),10*eps); -***** assert(SCORE(:,2:3),zeros(2),10*eps); -***** assert(latent,[1;0;0],10*eps); -***** assert(tsquare,[0.5;0.5],10*eps) + [m, v] = logistat (0, 0.8); + assert (m, 0); + assert (v, 2.1055, 0.001); ***** test - [COEFF,SCORE,latent,tsquare] = princomp(x, "econ"); -***** assert(COEFF,m(:, 1),10*eps); -***** assert(SCORE,-m(1:2,1),10*eps); -***** assert(latent,[1],10*eps); -***** assert(tsquare,[0.5;0.5],10*eps) -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/@cvpartition/cvpartition.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/cvpartition.m -***** demo - ## Partition with Fisher iris dataset (n = 150) - ## Stratified by species - load fisheriris - y = species; - ## 10-fold cross-validation partition - c = cvpartition (species, 'KFold', 10) - ## leave-10-out partition - c1 = cvpartition (species, 'HoldOut', 10) - idx1 = test (c, 2); - idx2 = training (c, 2); - ## another leave-10-out partition - c2 = repartition (c1) + [m, v] = logistat (1, 0.6); + assert (m, 1); + assert (v, 1.1844, 0.001); ***** test - C = cvpartition (ones (10, 1)); - assert (isa (C, "cvpartition"), true); + [m, v] = logistat (0, 0.4); + assert (m, 0); + assert (v, 0.5264, 0.001); ***** test - C = cvpartition (ones (10, 1), "KFold", 5); - assert (get (C, "NumObservations"), 10); - assert (get (C, "NumTestSets"), 5); - assert (get (C, "TrainSize"), ones(5,1) * 8); - assert (get (C, "TestSize"), ones (5,1) * 2); - assert (get (C, "inds"), [1 1 2 2 3 3 4 4 5 5]'); - assert (get (C, "Type"), "kfold"); + [m, v] = logistat (-1, 0.2); + assert (m, -1); + assert (v, 0.1316, 0.001); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_stat/tstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/tstat.m +***** error tstat () +***** error tstat ({}) +***** error tstat ("") +***** error tstat (i) ***** test - C = cvpartition (ones (10, 1), "KFold", 2); - assert (get (C, "NumObservations"), 10); - assert (get (C, "NumTestSets"), 2); - assert (get (C, "TrainSize"), [5; 5]); - assert (get (C, "TestSize"), [5; 5]); - assert (get (C, "inds"), [1 1 1 1 1 2 2 2 2 2]'); - assert (get (C, "Type"), "kfold"); + df = 3:8; + [m, v] = tstat (df); + expected_m = [0, 0, 0, 0, 0, 0]; + expected_v = [3.0000, 2.0000, 1.6667, 1.5000, 1.4000, 1.3333]; + assert (m, expected_m); + assert (v, expected_v, 0.001); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/dist_stat/nakastat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/nakastat.m +***** error nakastat () +***** error nakastat (1) +***** error nakastat ({}, 2) +***** error nakastat (1, "") +***** error nakastat (i, 2) +***** error nakastat (1, i) +***** error ... + nakastat (ones (3), ones (2)) +***** error ... + nakastat (ones (2), ones (3)) ***** test - C = cvpartition (ones (10, 1), "HoldOut", 5); - assert (get (C, "NumObservations"), 10); - assert (get (C, "NumTestSets"), 1); - assert (get (C, "TrainSize"), 5); - assert (get (C, "TestSize"), 5); - assert (class (get (C, "inds")), "logical"); - assert (length (get (C, "inds")), 10); - assert (get (C, "Type"), "holdout"); + [m, v] = nakastat (1, 1); + assert (m, 0.8862269254, 1e-10); + assert (v, 0.2146018366, 1e-10); ***** test - C = cvpartition ([1 2 3 4 5 6 7 8 9 10], "LeaveOut", 5); - assert (get (C, "NumObservations"), 10); - assert (get (C, "NumTestSets"), 10); - assert (get (C, "TrainSize"), ones (10, 1)); - assert (get (C, "TestSize"), ones (10, 1) * 9); - assert (get (C, "inds"), []); - assert (get (C, "Type"), "leaveout"); + [m, v] = nakastat (1, 2); + assert (m, 1.25331413731, 1e-10); + assert (v, 0.42920367321, 1e-10); ***** test - C = cvpartition ([1 2 3 4 5 6 7 8 9 10], "resubstitution", 5); - assert (get (C, "NumObservations"), 10); - assert (get (C, "NumTestSets"), 1); - assert (get (C, "TrainSize"), 10); - assert (get (C, "TestSize"), 10); - assert (get (C, "inds"), []); - assert (get (C, "Type"), "resubstitution"); + [m, v] = nakastat (2, 1); + assert (m, 0.93998560299, 1e-10); + assert (v, 0.11642706618, 1e-10); +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/dist_stat/nbinstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/nbinstat.m +***** error nbinstat () +***** error nbinstat (1) +***** error nbinstat ({}, 2) +***** error nbinstat (1, "") +***** error nbinstat (i, 2) +***** error nbinstat (1, i) +***** error ... + nbinstat (ones (3), ones (2)) +***** error ... + nbinstat (ones (2), ones (3)) ***** test - C = cvpartition ([1 2 3 4 5 6 7 8 9 10], "Given", 2); - assert (get (C, "NumObservations"), 10); - assert (get (C, "NumTestSets"), 10); - assert (get (C, "TrainSize"), ones (10, 1) * 9); - assert (get (C, "TestSize"), ones (10, 1)); - assert (get (C, "inds"), [1:10]'); - assert (get (C, "Type"), "given"); -***** warning ... - C = cvpartition ([1 2 3 4 5 6 7 8 9 10], "some", 2); -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/@cvpartition/display.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/display.m + r = 1:4; + ps = 0.2:0.2:0.8; + [m, v] = nbinstat (r, ps); + expected_m = [ 4.0000, 3.0000, 2.0000, 1.0000]; + expected_v = [20.0000, 7.5000, 3.3333, 1.2500]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); ***** test - C = cvpartition (ones (10, 1), "KFold", 5); - s = evalc ("display (C)"); - sout = "K-fold cross validation partition"; - assert (strcmpi (s(1:length (sout)), sout), true); + r = 1:4; + [m, v] = nbinstat (r, 0.5); + expected_m = [1, 2, 3, 4]; + expected_v = [2, 4, 6, 8]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/dist_stat/binostat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/binostat.m +***** error binostat () +***** error binostat (1) +***** error binostat ({}, 2) +***** error binostat (1, "") +***** error binostat (i, 2) +***** error binostat (1, i) +***** error ... + binostat (ones (3), ones (2)) +***** error ... + binostat (ones (2), ones (3)) ***** test - C = cvpartition (ones (10, 1), "HoldOut", 5); - s = evalc ("display (C)"); - sout = "HoldOut cross validation partition"; - assert (strcmpi (s(1:length (sout)), sout), true); + n = 1:6; + ps = 0:0.2:1; + [m, v] = binostat (n, ps); + expected_m = [0.00, 0.40, 1.20, 2.40, 4.00, 6.00]; + expected_v = [0.00, 0.32, 0.72, 0.96, 0.80, 0.00]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); ***** test - C = cvpartition (ones (10, 1), "LeaveOut", 5); - s = evalc ("display (C)"); - sout = "Leave-One-Out cross validation partition"; - assert (strcmpi (s(1:length (sout)), sout), true); + n = 1:6; + [m, v] = binostat (n, 0.5); + expected_m = [0.50, 1.00, 1.50, 2.00, 2.50, 3.00]; + expected_v = [0.25, 0.50, 0.75, 1.00, 1.25, 1.50]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); ***** test - C = cvpartition (ones (10, 1), "resubstitution", 5); - s = evalc ("display (C)"); - sout = "Resubstitution cross validation partition"; - assert (strcmpi (s(1:length (sout)), sout), true); + n = [-Inf -3 5 0.5 3 NaN 100, Inf]; + [m, v] = binostat (n, 0.5); + assert (isnan (m), [true true false true false true false false]) + assert (isnan (v), [true true false true false true false false]) + assert (m(end), Inf); + assert (v(end), Inf); +***** assert (nthargout (1:2, @binostat, 5, []), {[], []}) +***** assert (nthargout (1:2, @binostat, [], 5), {[], []}) +***** assert (size (binostat (randi (100, 10, 5, 4), rand (10, 5, 4))), [10 5 4]) +***** assert (size (binostat (randi (100, 10, 5, 4), 7)), [10 5 4]) +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_stat/ncfstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/ncfstat.m +***** error ncfstat () +***** error ncfstat (1) +***** error ncfstat (1, 2) +***** error ncfstat ({}, 2, 3) +***** error ncfstat (1, "", 3) +***** error ncfstat (1, 2, "") +***** error ncfstat (i, 2, 3) +***** error ncfstat (1, i, 3) +***** error ncfstat (1, 2, i) +***** error ... + ncfstat (ones (3), ones (2), 3) +***** error ... + ncfstat (ones (2), 2, ones (3)) +***** error ... + ncfstat (1, ones (2), ones (3)) +***** shared df1, df2, lambda + df1 = [2, 0, -1, 1, 4, 5]; + df2 = [2, 4, -1, 5, 6, 7]; + lambda = [1, NaN, 3, 0, 2, -1]; +***** assert (ncfstat (df1, df2, lambda), [NaN, NaN, NaN, 1.6667, 2.25, 1.12], 1e-4); +***** assert (ncfstat (df1(4:6), df2(4:6), 1), [3.3333, 1.8750, 1.6800], 1e-4); +***** assert (ncfstat (df1(4:6), df2(4:6), 2), [5.0000, 2.2500, 1.9600], 1e-4); +***** assert (ncfstat (df1(4:6), df2(4:6), 3), [6.6667, 2.6250, 2.2400], 1e-4); +***** assert (ncfstat (2, [df2(1), df2(4:6)], 5), [NaN,5.8333,5.2500,4.9000], 1e-4); +***** assert (ncfstat (0, [df2(1), df2(4:6)], 5), [NaN, Inf, Inf, Inf]); +***** assert (ncfstat (1, [df2(1), df2(4:6)], 5), [NaN, 10, 9, 8.4], 1e-14); +***** assert (ncfstat (4, [df2(1), df2(4:6)], 5), [NaN, 3.75, 3.375, 3.15], 1e-14); +20 tests, 20 passed, 0 known failure, 0 skipped +[inst/dist_stat/expstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/expstat.m +***** error expstat () +***** error expstat ({}) +***** error expstat ("") +***** error expstat (i) ***** test - C = cvpartition (ones (10, 1), "Given", 5); - s = evalc ("display (C)"); - sout = "Given cross validation partition"; - assert (strcmpi (s(1:length (sout)), sout), true); -***** error display () -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/@cvpartition/set.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/set.m -***** shared C - C = cvpartition (ones (10, 1), "KFold", 5); + mu = 1:6; + [m, v] = expstat (mu); + assert (m, [1, 2, 3, 4, 5, 6], 0.001); + assert (v, [1, 4, 9, 16, 25, 36], 0.001); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/dist_stat/chi2stat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/chi2stat.m +***** error chi2stat () +***** error chi2stat ({}) +***** error chi2stat ("") +***** error chi2stat (i) ***** test - Cnew = set (C, "inds", [1 2 2 2 3 4 3 4 5 5]'); - assert (get (Cnew, "inds"), [1 2 2 2 3 4 3 4 5 5]'); -***** error set (C) -***** error set (C, "NumObservations") -***** error set (C, "some", 15) -***** error set (C, 15, 15) + df = 1:6; + [m, v] = chi2stat (df); + assert (m, df); + assert (v, [2, 4, 6, 8, 10, 12], 0.001); 5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@cvpartition/repartition.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/repartition.m +[inst/dist_stat/tristat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/tristat.m +***** error tristat () +***** error tristat (1) +***** error tristat (1, 2) +***** error tristat ("i", 2, 1) +***** error tristat (0, "d", 1) +***** error tristat (0, 3, {}) +***** error tristat (i, 2, 1) +***** error tristat (0, i, 1) +***** error tristat (0, 3, i) ***** test - C = cvpartition (ones (10, 1), "KFold", 5); - Cnew = repartition (C); - assert (isa (Cnew, "cvpartition"), true); + a = 1:5; + b = 3:7; + c = 5:9; + [m, v] = tristat (a, b, c); + expected_m = [3, 4, 5, 6, 7]; + assert (m, expected_m); + assert (v, ones (1, 5) * (2/3)); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/dist_stat/bisastat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/bisastat.m +***** error bisastat () +***** error bisastat (1) +***** error bisastat ({}, 2) +***** error bisastat (1, "") +***** error bisastat (i, 2) +***** error bisastat (1, i) +***** error ... + bisastat (ones (3), ones (2)) +***** error ... + bisastat (ones (2), ones (3)) ***** test - C = cvpartition (ones (100, 1), "HoldOut", 5); - Cnew = repartition (C); - indC = get (C, "inds"); - indCnew = get (Cnew, "inds"); - assert (isequal (indC, indCnew), false); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/@cvpartition/training.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/training.m -***** shared C - C = cvpartition (ones (10, 1), "KFold", 5); -***** assert (training (C, 1), logical ([0 0 1 1 1 1 1 1 1 1]')) -***** assert (training (C, 2), logical ([1 1 0 0 1 1 1 1 1 1]')) -***** assert (training (C, 3), logical ([1 1 1 1 0 0 1 1 1 1]')) -***** assert (training (C, 4), logical ([1 1 1 1 1 1 0 0 1 1]')) -***** assert (training (C, 5), logical ([1 1 1 1 1 1 1 1 0 0]')) + beta = 1:6; + gamma = 1:0.2:2; + [m, v] = bisastat (beta, gamma); + expected_m = [1.50, 3.44, 5.94, 9.12, 13.10, 18]; + expected_v = [2.25, 16.128, 60.858, 172.032, 409.050, 864]; + assert (m, expected_m, 1e-2); + assert (v, expected_v, 1e-3); ***** test - C = set (C, "inds", [1 2 2 2 3 4 3 4 5 5]'); -***** assert (training (C), logical ([0 1 1 1 1 1 1 1 1 1]')) -***** assert (training (C, 2), logical ([1 0 0 0 1 1 1 1 1 1]')) -***** assert (training (C, 3), logical ([1 1 1 1 0 1 0 1 1 1]')) -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/@cvpartition/test.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/test.m -***** shared C - C = cvpartition (ones (10, 1), "KFold", 5); -***** assert (test (C, 1), logical ([1 1 0 0 0 0 0 0 0 0]')) -***** assert (test (C, 2), logical ([0 0 1 1 0 0 0 0 0 0]')) -***** assert (test (C, 3), logical ([0 0 0 0 1 1 0 0 0 0]')) -***** assert (test (C, 4), logical ([0 0 0 0 0 0 1 1 0 0]')) -***** assert (test (C, 5), logical ([0 0 0 0 0 0 0 0 1 1]')) + beta = 1:6; + [m, v] = bisastat (beta, 1.5); + expected_m = [2.125, 4.25, 6.375, 8.5, 10.625, 12.75]; + expected_v = [8.5781, 34.3125, 77.2031, 137.2500, 214.4531, 308.8125]; + assert (m, expected_m, 1e-3); + assert (v, expected_v, 1e-4); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/dist_stat/hygestat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/hygestat.m +***** error hygestat () +***** error hygestat (1) +***** error hygestat (1, 2) +***** error hygestat ({}, 2, 3) +***** error hygestat (1, "", 3) +***** error hygestat (1, 2, "") +***** error hygestat (i, 2, 3) +***** error hygestat (1, i, 3) +***** error hygestat (1, 2, i) +***** error ... + hygestat (ones (3), ones (2), 3) +***** error ... + hygestat (ones (2), 2, ones (3)) +***** error ... + hygestat (1, ones (2), ones (3)) ***** test - C = set (C, "inds", [1 2 2 2 3 4 3 4 5 5]'); -***** assert (test (C), logical ([1 0 0 0 0 0 0 0 0 0]')) -***** assert (test (C, 2), logical ([0 1 1 1 0 0 0 0 0 0]')) -***** assert (test (C, 3), logical ([0 0 0 0 1 0 1 0 0 0]')) -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/@cvpartition/get.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/get.m -***** shared C - C = cvpartition (ones (10, 1), "KFold", 5); -***** assert (get (C, "NumObservations"), 10); -***** assert (get (C, "NumTestSets"), 5); -***** assert (get (C, "TrainSize"), ones(5,1) * 8); -***** assert (get (C, "TestSize"), ones (5,1) * 2); -***** assert (get (C, "inds"), [1 1 2 2 3 3 4 4 5 5]'); -***** assert (get (C, "Type"), "kfold"); -***** error get (C, "some") -***** error get (C, 25) -***** error get (C, {25}) -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/isoutlier.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/isoutlier.m + m = 4:9; + k = 0:5; + n = 1:6; + [mn, v] = hygestat (m, k, n); + expected_mn = [0.0000, 0.4000, 1.0000, 1.7143, 2.5000, 3.3333]; + expected_v = [0.0000, 0.2400, 0.4000, 0.4898, 0.5357, 0.5556]; + assert (mn, expected_mn, 0.001); + assert (v, expected_v, 0.001); +***** test + m = 4:9; + k = 0:5; + [mn, v] = hygestat (m, k, 2); + expected_mn = [0.0000, 0.4000, 0.6667, 0.8571, 1.0000, 1.1111]; + expected_v = [0.0000, 0.2400, 0.3556, 0.4082, 0.4286, 0.4321]; + assert (mn, expected_mn, 0.001); + assert (v, expected_v, 0.001); +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/dist_stat/hnstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/hnstat.m +***** error hnstat () +***** error hnstat (1) +***** error hnstat ({}, 2) +***** error hnstat (1, "") +***** error hnstat (i, 2) +***** error hnstat (1, i) +***** error ... + hnstat (ones (3), ones (2)) +***** error ... + hnstat (ones (2), ones (3)) +***** test + [m, v] = hnstat (0, 1); + assert (m, 0.7979, 1e-4); + assert (v, 0.3634, 1e-4); +***** test + [m, v] = hnstat (2, 1); + assert (m, 2.7979, 1e-4); + assert (v, 0.3634, 1e-4); +***** test + [m, v] = hnstat (2, 2); + assert (m, 3.5958, 1e-4); + assert (v, 1.4535, 1e-4); +***** test + [m, v] = hnstat (2, 2.5); + assert (m, 3.9947, 1e-4); + assert (v, 2.2711, 1e-4); +***** test + [m, v] = hnstat (1.5, 0.5); + assert (m, 1.8989, 1e-4); + assert (v, 0.0908, 1e-4); +***** test + [m, v] = hnstat (-1.5, 0.5); + assert (m, -1.1011, 1e-4); + assert (v, 0.0908, 1e-4); +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/dist_stat/betastat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/betastat.m +***** error betastat () +***** error betastat (1) +***** error betastat ({}, 2) +***** error betastat (1, "") +***** error betastat (i, 2) +***** error betastat (1, i) +***** error ... + betastat (ones (3), ones (2)) +***** error ... + betastat (ones (2), ones (3)) +***** test + a = -2:6; + b = 0.4:0.2:2; + [m, v] = betastat (a, b); + expected_m = [NaN NaN NaN 1/2 2/3.2 3/4.4 4/5.6 5/6.8 6/8]; + expected_v = [NaN NaN NaN 0.0833, 0.0558, 0.0402, 0.0309, 0.0250, 0.0208]; + assert (m, expected_m, eps*100); + assert (v, expected_v, 0.001); +***** test + a = -2:1:6; + [m, v] = betastat (a, 1.5); + expected_m = [NaN NaN NaN 1/2.5 2/3.5 3/4.5 4/5.5 5/6.5 6/7.5]; + expected_v = [NaN NaN NaN 0.0686, 0.0544, 0.0404, 0.0305, 0.0237, 0.0188]; + assert (m, expected_m); + assert (v, expected_v, 0.001); +***** test + a = [14 Inf 10 NaN 10]; + b = [12 9 NaN Inf 12]; + [m, v] = betastat (a, b); + expected_m = [14/26 NaN NaN NaN 10/22]; + expected_v = [168/18252 NaN NaN NaN 120/11132]; + assert (m, expected_m); + assert (v, expected_v); +***** assert (nthargout (1:2, @betastat, 5, []), {[], []}) +***** assert (nthargout (1:2, @betastat, [], 5), {[], []}) +***** assert (size (betastat (rand (10, 5, 4), rand (10, 5, 4))), [10 5 4]) +***** assert (size (betastat (rand (10, 5, 4), 7)), [10 5 4]) +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_stat/unidstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/unidstat.m +***** error unidstat () +***** error unidstat ({}) +***** error unidstat ("") +***** error unidstat (i) +***** test + N = 1:6; + [m, v] = unidstat (N); + expected_m = [1.0000, 1.5000, 2.0000, 2.5000, 3.0000, 3.5000]; + expected_v = [0.0000, 0.2500, 0.6667, 1.2500, 2.0000, 2.9167]; + assert (m, expected_m, 0.001); + assert (v, expected_v, 0.001); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/dist_stat/ncx2stat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/ncx2stat.m +***** error ncx2stat () +***** error ncx2stat (1) +***** error ncx2stat ({}, 2) +***** error ncx2stat (1, "") +***** error ncx2stat (i, 2) +***** error ncx2stat (1, i) +***** error ... + ncx2stat (ones (3), ones (2)) +***** error ... + ncx2stat (ones (2), ones (3)) +***** shared df, d1 + df = [2, 0, -1, 1, 4]; + d1 = [1, NaN, 3, -1, 2]; +***** assert (ncx2stat (df, d1), [3, NaN, NaN, NaN, 6]); +***** assert (ncx2stat ([df(1:2), df(4:5)], 1), [3, NaN, 2, 5]); +***** assert (ncx2stat ([df(1:2), df(4:5)], 3), [5, NaN, 4, 7]); +***** assert (ncx2stat ([df(1:2), df(4:5)], 2), [4, NaN, 3, 6]); +***** assert (ncx2stat (2, [d1(1), d1(3:5)]), [3, 5, NaN, 4]); +***** assert (ncx2stat (0, [d1(1), d1(3:5)]), [NaN, NaN, NaN, NaN]); +***** assert (ncx2stat (1, [d1(1), d1(3:5)]), [2, 4, NaN, 3]); +***** assert (ncx2stat (4, [d1(1), d1(3:5)]), [5, 7, NaN, 6]); +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_stat/ricestat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/ricestat.m +***** error ricestat () +***** error ricestat (1) +***** error ricestat ({}, 2) +***** error ricestat (1, "") +***** error ricestat (i, 2) +***** error ricestat (1, i) +***** error ... + ricestat (ones (3), ones (2)) +***** error ... + ricestat (ones (2), ones (3)) +***** shared s, sigma + s = [2, 0, -1, 1, 4]; + sigma = [1, NaN, 3, -1, 2]; +***** assert (ricestat (s, sigma), [2.2724, NaN, NaN, NaN, 4.5448], 1e-4); +***** assert (ricestat ([s(1:2), s(4:5)], 1), [2.2724, 1.2533, 1.5486, 4.1272], 1e-4); +***** assert (ricestat ([s(1:2), s(4:5)], 3), [4.1665, 3.7599, 3.8637, 5.2695], 1e-4); +***** assert (ricestat ([s(1:2), s(4:5)], 2), [3.0971, 2.5066, 2.6609, 4.5448], 1e-4); +***** assert (ricestat (2, [sigma(1), sigma(3:5)]), [2.2724, 4.1665, NaN, 3.0971], 1e-4); +***** assert (ricestat (0, [sigma(1), sigma(3:5)]), [1.2533, 3.7599, NaN, 2.5066], 1e-4); +***** assert (ricestat (1, [sigma(1), sigma(3:5)]), [1.5486, 3.8637, NaN, 2.6609], 1e-4); +***** assert (ricestat (4, [sigma(1), sigma(3:5)]), [4.1272, 5.2695, NaN, 4.5448], 1e-4); +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_stat/nctstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/nctstat.m +***** error nctstat () +***** error nctstat (1) +***** error nctstat ({}, 2) +***** error nctstat (1, "") +***** error nctstat (i, 2) +***** error nctstat (1, i) +***** error ... + nctstat (ones (3), ones (2)) +***** error ... + nctstat (ones (2), ones (3)) +***** shared df, mu + df = [2, 0, -1, 1, 4]; + mu = [1, NaN, 3, -1, 2]; +***** assert (nctstat (df, mu), [1.7725, NaN, NaN, NaN, 2.5066], 1e-4); +***** assert (nctstat ([df(1:2), df(4:5)], 1), [1.7725, NaN, NaN, 1.2533], 1e-4); +***** assert (nctstat ([df(1:2), df(4:5)], 3), [5.3174, NaN, NaN, 3.7599], 1e-4); +***** assert (nctstat ([df(1:2), df(4:5)], 2), [3.5449, NaN, NaN, 2.5066], 1e-4); +***** assert (nctstat (2, [mu(1), mu(3:5)]), [1.7725,5.3174,-1.7725,3.5449], 1e-4); +***** assert (nctstat (0, [mu(1), mu(3:5)]), [NaN, NaN, NaN, NaN]); +***** assert (nctstat (1, [mu(1), mu(3:5)]), [NaN, NaN, NaN, NaN]); +***** assert (nctstat (4, [mu(1), mu(3:5)]), [1.2533,3.7599,-1.2533,2.5066], 1e-4); +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_stat/gpstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/gpstat.m +***** error gpstat () +***** error gpstat (1) +***** error gpstat (1, 2) +***** error gpstat ({}, 2, 3) +***** error gpstat (1, "", 3) +***** error gpstat (1, 2, "") +***** error gpstat (i, 2, 3) +***** error gpstat (1, i, 3) +***** error gpstat (1, 2, i) +***** error ... + gpstat (ones (3), ones (2), 3) +***** error ... + gpstat (ones (2), 2, ones (3)) +***** error ... + gpstat (1, ones (2), ones (3)) +***** shared x, y + x = [-Inf, -1, 0, 1/2, 1, Inf]; + y = [0, 0.5, 1, 2, Inf, Inf]; +***** assert (gpstat (x, ones (1,6), zeros (1,6)), y, eps) +***** assert (gpstat (single (x), 1, 0), single (y), eps("single")) +***** assert (gpstat (x, single (1), 0), single (y), eps("single")) +***** assert (gpstat (x, 1, single (0)), single (y), eps("single")) +***** assert (gpstat (single ([x, NaN]), 1, 0), single ([y, NaN]), eps("single")) +***** assert (gpstat ([x, NaN], single (1), 0), single ([y, NaN]), eps("single")) +***** assert (gpstat ([x, NaN], 1, single (0)), single ([y, NaN]), eps("single")) +19 tests, 19 passed, 0 known failure, 0 skipped +[inst/dist_stat/plstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/plstat.m +***** shared x, Fx + x = [0, 1, 3, 4, 7, 10]; + Fx = [0, 0.2, 0.5, 0.6, 0.7, 1]; +***** assert (plstat (x, Fx), 4.15) +***** test + [m, v] = plstat (x, Fx); + assert (v, 10.3775, 1e-14) +***** error plstat () +***** error plstat (1) +***** error ... + plstat ([0, 1, 2], [0, 1]) +***** error ... + plstat ([0], [1]) +***** error ... + plstat ([0, 1, 2], [0, 1, 1.5]) +***** error ... + plstat ([0, 1, 2], [0, i, 1]) +***** error ... + plstat ([0, i, 2], [0, 0.5, 1]) +***** error ... + plstat ([0, i, 2], [0, 0.5i, 1]) +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/cmdscale.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cmdscale.m +***** shared m, n, X, D + m = randi(100) + 1; n = randi(100) + 1; X = rand(m, n); D = pdist(X); +***** assert(norm(pdist(cmdscale(D))), norm(D), sqrt(eps)) +***** assert(norm(pdist(cmdscale(squareform(D)))), norm(D), sqrt(eps)) +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/hist3.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/hist3.m ***** demo - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - TF = isoutlier (A, "mean") + X = [ + 1 1 + 1 1 + 1 10 + 1 10 + 5 5 + 5 5 + 5 5 + 5 5 + 5 5 + 7 3 + 7 3 + 7 3 + 10 10 + 10 10]; + hist3 (X) +***** test + N_exp = [ 0 0 0 5 20 + 0 0 10 15 0 + 0 15 10 0 0 + 20 5 0 0 0]; + + n = 100; + x = [1:n]'; + y = [n:-1:1]'; + D = [x y]; + N = hist3 (D, [4 5]); + assert (N, N_exp); +***** test + N_exp = [0 0 0 0 1 + 0 0 0 0 1 + 0 0 0 0 1 + 1 1 1 1 93]; + + n = 100; + x = [1:n]'; + y = [n:-1:1]'; + D = [x y]; + C{1} = [1 1.7 3 4]; + C{2} = [1:5]; + N = hist3 (D, C); + assert (N, N_exp); +***** test + D = [1 1; 3 1; 3 3; 3 1]; + [c, nn] = hist3 (D, {0:4, 0:4}); + exp_c = zeros (5); + exp_c([7 9 19]) = [1 2 1]; + assert (c, exp_c); + assert (nn, {0:4, 0:4}); +***** test + for i = 10 + assert (size (hist3 (rand (9, 2), "Edges", {[0:.2:1]; [0:.2:1]})), [6 6]) + endfor +***** test + edge_1 = linspace (0, 10, 10); + edge_2 = linspace (0, 50, 10); + [c, nn] = hist3 ([1:10; 1:5:50]', "Edges", {edge_1, edge_2}); + exp_c = zeros (10, 10); + exp_c([1 12 13 24 35 46 57 68 79 90]) = 1; + assert (c, exp_c); + + assert (nn{1}, edge_1 + edge_1(2)/2, eps*10^4) + assert (nn{2}, edge_2 + edge_2(2)/2, eps*10^4) +***** shared X + X = [ + 5 2 + 5 3 + 1 4 + 5 3 + 4 4 + 1 2 + 2 3 + 3 3 + 5 4 + 5 3]; +***** test + N = zeros (10); + N([1 10 53 56 60 91 98 100]) = [1 1 1 1 3 1 1 1]; + C = {(1.2:0.4:4.8), (2.1:0.2:3.9)}; + assert (nthargout ([1 2], @hist3, X), {N C}, eps*10^3) +***** test + N = zeros (5, 7); + N([1 5 17 18 20 31 34 35]) = [1 1 1 1 3 1 1 1]; + C = {(1.4:0.8:4.6), ((2+(1/7)):(2/7):(4-(1/7)))}; + assert (nthargout ([1 2], @hist3, X, [5 7]), {N C}, eps*10^3) + assert (nthargout ([1 2], @hist3, X, "Nbins", [5 7]), {N C}, eps*10^3) +***** test + N = [0 1 0; 0 1 0; 0 0 1; 0 0 0]; + C = {(2:5), (2.5:1:4.5)}; + assert (nthargout ([1 2], @hist3, X, "Edges", {(1.5:4.5), (2:4)}), {N C}) +***** test + N = [0 0 1 0 1 0; 0 0 0 1 0 0; 0 0 1 4 2 0]; + C = {(1.2:3.2), (0:5)}; + assert (nthargout ([1 2], @hist3, X, "Ctrs", C), {N C}) + assert (nthargout ([1 2], @hist3, X, C), {N C}) +***** test + [~, C] = hist3 (rand (10, 2), "Edges", {[0 .05 .15 .35 .55 .95], + [-1 .05 .07 .2 .3 .5 .89 1.2]}); + C_exp = {[ 0.025 0.1 0.25 0.45 0.75 1.15], ... + [-0.475 0.06 0.135 0.25 0.4 0.695 1.045 1.355]}; + assert (C, C_exp, eps*10^2) +***** test + Xv = repmat ([1:10]', [1 2]); + + ## Test Centers + assert (hist3 (Xv, "Ctrs", {1:10, 1:10}), eye (10)) + + N_exp = eye (6); + N_exp([1 end]) = 3; + assert (hist3 (Xv, "Ctrs", {3:8, 3:8}), N_exp) + + N_exp = zeros (8, 6); + N_exp([1 2 11 20 29 38 47 48]) = [2 1 1 1 1 1 1 2]; + assert (hist3 (Xv, "Ctrs", {2:9, 3:8}), N_exp) + + ## Test Edges + assert (hist3 (Xv, "Edges", {1:10, 1:10}), eye (10)) + assert (hist3 (Xv, "Edges", {3:8, 3:8}), eye (6)) + assert (hist3 (Xv, "Edges", {2:9, 3:8}), [zeros(1, 6); eye(6); zeros(1, 6)]) + + N_exp = zeros (14); + N_exp(3:12, 3:12) = eye (10); + assert (hist3 (Xv, "Edges", {-1:12, -1:12}), N_exp) + + ## Test for Nbins + assert (hist3 (Xv), eye (10)) + assert (hist3 (Xv, [10 10]), eye (10)) + assert (hist3 (Xv, "nbins", [10 10]), eye (10)) + assert (hist3 (Xv, [5 5]), eye (5) * 2) + + N_exp = zeros (7, 5); + N_exp([1 9 10 18 26 27 35]) = [2 1 1 2 1 1 2]; + assert (hist3 (Xv, [7 5]), N_exp) +***** test # bug #51059 + D = [1 1; NaN 2; 3 1; 3 3; 1 NaN; 3 1]; + [c, nn] = hist3 (D, {0:4, 0:4}); + exp_c = zeros (5); + exp_c([7 9 19]) = [1 2 1]; + assert (c, exp_c) + assert (nn, {0:4, 0:4}) +***** test + [c, nn] = hist3 ([1 8]); + exp_c = zeros (10, 10); + exp_c(6, 6) = 1; + exp_nn = {-4:5, 3:12}; + assert (c, exp_c) + assert (nn, exp_nn, eps) + + [c, nn] = hist3 ([1 8], [10 11]); + exp_c = zeros (10, 11); + exp_c(6, 6) = 1; + exp_nn = {-4:5, 3:13}; + assert (c, exp_c) + assert (nn, exp_nn, eps) +***** test + [c, nn] = hist3 ([1 NaN; 2 3; 6 9; 8 NaN]); + exp_c = zeros (10, 10); + exp_c(2, 1) = 1; + exp_c(8, 10) = 1; + exp_nn = {linspace(1.35, 7.65, 10) linspace(3.3, 8.7, 10)}; + assert (c, exp_c) + assert (nn, exp_nn, eps*100) +***** test + [c, nn] = hist3 ([1 NaN; 2 NaN; 6 NaN; 8 NaN]); + exp_c = zeros (10, 10); + exp_nn = {linspace(1.35, 7.65, 10) NaN(1, 10)}; + assert (c, exp_c) + assert (nn, exp_nn, eps*100) +***** test + [c, nn] = hist3 ([1 NaN; NaN 3; NaN 9; 8 NaN]); + exp_c = zeros (10, 10); + exp_nn = {linspace(1.35, 7.65, 10) linspace(3.3, 8.7, 10)}; + assert (c, exp_c) + assert (nn, exp_nn, eps*100) +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/ridge.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ridge.m ***** demo - ## Use a moving detection method to detect local outliers in a sine wave + ## Perform ridge regression for a range of ridge parameters and observe + ## how the coefficient estimates change based on the acetylene dataset. + + load acetylene + + X = [x1, x2, x3]; + + x1x2 = x1 .* x2; + x1x3 = x1 .* x3; + x2x3 = x2 .* x3; + + D = [x1, x2, x3, x1x2, x1x3, x2x3]; + + k = 0:1e-5:5e-3; + + b = ridge (y, D, k); + + figure + plot (k, b, "LineWidth", 2) + ylim ([-100, 100]) + grid on + xlabel ("Ridge Parameter") + ylabel ("Standardized Coefficient") + title ("Ridge Trace") + legend ("x1", "x2", "x3", "x1x2", "x1x3", "x2x3") - x = -2*pi:0.1:2*pi; - A = sin(x); - A(47) = 0; - time = datenum (2023,1,1,0,0,0) + (1/24)*[0:length(x)-1] - 730485; - TF = isoutlier (A, "movmedian", 5*(1/24), "SamplePoints", time); - plot (time, A) - hold on - plot (time(TF), A(TF), "x") - datetick ('x', 20, 'keepticks') - legend ("Original Data", "Outlier Data") ***** demo - ## Locate an outlier in a vector of data and visualize the outlier - x = 1:10; - A = [60 59 49 49 58 100 61 57 48 58]; - [TF, L, U, C] = isoutlier (A); - plot (x, A); + load carbig + X = [Acceleration Weight Displacement Horsepower]; + y = MPG; + + n = length(y); + + rand("seed",1); % For reproducibility + + c = cvpartition(n,'HoldOut',0.3); + idxTrain = training(c,1); + idxTest = ~idxTrain; + + idxTrain = training(c,1); + idxTest = ~idxTrain; + + k = 5; + b = ridge(y(idxTrain),X(idxTrain,:),k,0); + + % Predict MPG values for the test data using the model. + yhat = b(1) + X(idxTest,:)*b(2:end); + scatter(y(idxTest),yhat) + hold on - plot (x(TF), A(TF), "x"); - xlim ([1,10]); - line ([1,10], [L, L], "Linestyle", ":"); - text (1.1, L-2, "Lower Threshold"); - line ([1,10], [U, U], "Linestyle", ":"); - text (1.1, U-2, "Upper Threshold"); - line ([1,10], [C, C], "Linestyle", ":"); - text (1.1, C-3, "Center Value"); - legend ("Original Data", "Outlier Data"); + plot(y(idxTest),y(idxTest),"r") + xlabel('Actual MPG') + ylabel('Predicted MPG') + hold off + ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - assert (isoutlier (A, "mean"), logical([zeros(1,8) 1 zeros(1,6)])) - assert (isoutlier (A, "median"), ... - logical([zeros(1,3) 1 zeros(1,4) 1 zeros(1,6)])) + b = ridge ([1 2 3 4]', [1 2 3 4; 2 3 4 5]', 1); + assert (b, [0.5533; 0.5533], 1e-4); ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - [TF, L, U, C] = isoutlier (A, "mean"); - assert (L, -109.2459044922864, 1e-12) - assert (U, 264.9792378256198, 1e-12) - assert (C, 77.8666666666666, 1e-12) + b = ridge ([1 2 3 4]', [1 2 3 4; 2 3 4 5]', 2); + assert (b, [0.4841; 0.4841], 1e-4); ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - [TF, L, U, C] = isoutlier (A, "median"); - assert (L, 50.104386688966386, 1e-12) - assert (U, 67.895613311033610, 1e-12) - assert (C, 59) + load acetylene + x = [x1, x2, x3]; + b = ridge (y, x, 0); + assert (b,[10.2273;1.97128;-0.601818],1e-4); ***** test - A = magic(5) + diag(200*ones(1,5)); - T = logical (eye (5)); - assert (isoutlier (A, 2), T) + load acetylene + x = [x1, x2, x3]; + b = ridge (y, x, 0.0005); + assert (b,[10.2233;1.9712;-0.6056],1e-4); ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - [TF, L, U, C] = isoutlier (A, "movmedian", 5); - l = [54.5522, 52.8283, 54.5522, 54.5522, 54.5522, 53.5522, 53.5522, ... - 53.5522, 47.6566, 56.5522, 57.5522, 56.5522, 51.1044, 52.3283, 53.5522]; - u = [63.4478, 66.1717, 63.4478, 63.4478, 63.4478, 62.4478, 62.4478, ... - 62.4478, 74.3434, 65.4478, 66.4478, 65.4478, 68.8956, 65.6717, 62.4478]; - c = [59, 59.5, 59, 59, 59, 58, 58, 58, 61, 61, 62, 61, 60, 59, 58]; - assert (L, l, 1e-4) - assert (U, u, 1e-4) - assert (C, c) + load acetylene + x = [x1, x2, x3]; + b = ridge (y, x, 0.001); + assert (b,[10.2194;1.9711;-0.6094],1e-4); ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - [TF, L, U, C] = isoutlier (A, "movmedian", 5, "SamplePoints", [1:15]); - l = [54.5522, 52.8283, 54.5522, 54.5522, 54.5522, 53.5522, 53.5522, ... - 53.5522, 47.6566, 56.5522, 57.5522, 56.5522, 51.1044, 52.3283, 53.5522]; - u = [63.4478, 66.1717, 63.4478, 63.4478, 63.4478, 62.4478, 62.4478, ... - 62.4478, 74.3434, 65.4478, 66.4478, 65.4478, 68.8956, 65.6717, 62.4478]; - c = [59, 59.5, 59, 59, 59, 58, 58, 58, 61, 61, 62, 61, 60, 59, 58]; - assert (L, l, 1e-4) - assert (U, u, 1e-4) - assert (C, c) + load acetylene + x = [x1, x2, x3]; + b = ridge (y, x, 0.002); + assert (b,[10.2116;1.9709;-0.6169],1e-4); ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - [TF, L, U, C] = isoutlier (A, "movmean", 5); - l = [54.0841, 6.8872, 11.5608, 12.1518, 11.0210, 10.0112, -218.2840, ... - -217.2375, -215.1239, -213.4890, -211.3264, 55.5800, 52.9589, ... - 52.5979, 51.0627]; - u = [63.2492, 131.1128, 122.4392, 122.2482, 122.5790, 122.7888, 431.0840, ... - 430.8375, 430.3239, 429.8890, 429.3264, 65.6200, 66.6411, 65.9021, ... - 66.9373]; - c = [58.6667, 69, 67, 67.2, 66.8, 66.4, 106.4, 106.8, 107.6, 108.2, 109, ... - 60.6, 59.8, 59.25, 59]; - assert (L, l, 1e-4) - assert (U, u, 1e-4) - assert (C, c, 1e-4) + load acetylene + x = [x1, x2, x3]; + b = ridge (y, x, 0.005); + assert (b,[10.1882;1.9704;-0.6393],1e-4); ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - [TF, L, U, C] = isoutlier (A, "movmean", 5, "SamplePoints", [1:15]); - l = [54.0841, 6.8872, 11.5608, 12.1518, 11.0210, 10.0112, -218.2840, ... - -217.2375, -215.1239, -213.4890, -211.3264, 55.5800, 52.9589, ... - 52.5979, 51.0627]; - u = [63.2492, 131.1128, 122.4392, 122.2482, 122.5790, 122.7888, 431.0840, ... - 430.8375, 430.3239, 429.8890, 429.3264, 65.6200, 66.6411, 65.9021, ... - 66.9373]; - c = [58.6667, 69, 67, 67.2, 66.8, 66.4, 106.4, 106.8, 107.6, 108.2, 109, ... - 60.6, 59.8, 59.25, 59]; - assert (L, l, 1e-4) - assert (U, u, 1e-4) - assert (C, c, 1e-4) + load acetylene + x = [x1, x2, x3]; + b = ridge (y, x, 0.01); + assert (b,[10.1497;1.9695;-0.6761],1e-4); +***** error ridge (1) +***** error ridge (1, 2) +***** error ridge (ones (3), ones (3), 2) +***** error ridge ([1, 2], ones (2), 2) +***** error ridge ([], ones (3), 2) +***** error ridge (ones (5,1), [], 2) +***** error ... + ridge ([1; 2; 3; 4; 5], ones (3), 3) +***** error ... + ridge ([1; 2; 3], ones (3), 3, 2) +***** error ... + ridge ([1; 2; 3], ones (3), 3, "some") +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/gmdistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/gmdistribution.m ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - [TF, L, U, C] = isoutlier (A, "gesd"); - assert (TF, logical ([0 0 0 1 0 0 0 0 1 0 0 0 0 0 0])) - assert (L, 34.235977035439944, 1e-12) - assert (U, 89.764022964560060, 1e-12) - assert (C, 62) + mu = eye(2); + Sigma = eye(2); + GM = gmdistribution (mu, Sigma); + density = GM.pdf ([0 0; 1 1]); + assert (density(1) - density(2), 0, 1e-6); + + [idx, nlogl, P, logpdf,M] = cluster (GM, eye(2)); + assert (idx, [1; 2]); + [idx2,nlogl2,P2,logpdf2] = GM.cluster (eye(2)); + assert (nlogl - nlogl2, 0, 1e-6); + [idx3,nlogl3,P3] = cluster (GM, eye(2)); + assert (P - P3, zeros (2), 1e-6); + [idx4,nlogl4] = cluster (GM, eye(2)); + assert (size (nlogl4), [1 1]); + idx5 = cluster (GM, eye(2)); + assert (idx - idx5, zeros (2,1)); + + D = GM.mahal ([1;0]); + assert (D - M(1,:), zeros (1,2), 1e-6); + + P = GM.posterior ([0 1]); + assert (P - P2(2,:), zeros (1,2), 1e-6); + + R = GM.random(20); + assert (size(R), [20, 2]); + + R = GM.random(); + assert (size(R), [1, 2]); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/ztest.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ztest.m +***** error ztest (); +***** error ... + ztest ([1, 2, 3, 4], 2, -0.5); +***** error ... + ztest ([1, 2, 3, 4], 1, 2, "alpha", 0); +***** error ... + ztest ([1, 2, 3, 4], 1, 2, "alpha", 1.2); +***** error ... + ztest ([1, 2, 3, 4], 1, 2, "alpha", "val"); +***** error ... + ztest ([1, 2, 3, 4], 1, 2, "tail", "val"); +***** error ... + ztest ([1, 2, 3, 4], 1, 2, "alpha", 0.01, "tail", "val"); +***** error ... + ztest ([1, 2, 3, 4], 1, 2, "dim", 3); +***** error ... + ztest ([1, 2, 3, 4], 1, 2, "alpha", 0.01, "tail", "both", "dim", 3); +***** error ... + ztest ([1, 2, 3, 4], 1, 2, "alpha", 0.01, "tail", "both", "badoption", 3); ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - [TF, L, U, C] = isoutlier (A, "gesd", "ThresholdFactor", 0.01); - assert (TF, logical ([0 0 0 1 0 0 0 0 1 0 0 0 0 0 0])) - assert (L, 31.489256770616173, 1e-12) - assert (U, 92.510743229383820, 1e-12) - assert (C, 62) + load carsmall + [h, pval, ci] = ztest (MPG, mean (MPG, "omitnan"), std (MPG, "omitnan")); + assert (h, 0); + assert (pval, 1, 1e-14); + assert (ci, [22.094; 25.343], 1e-3); ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - [TF, L, U, C] = isoutlier (A, "gesd", "ThresholdFactor", 5e-10); - assert (TF, logical ([0 0 0 0 0 0 0 0 1 0 0 0 0 0 0])) - assert (L, 23.976664158788935, 1e-12) - assert (U, 100.02333584121110, 1e-12) - assert (C, 62) + load carsmall + [h, pval, ci] = ztest (MPG, 26, 8); + assert (h, 1); + assert (pval, 0.00568359158544743, 1e-14); + assert (ci, [22.101; 25.335], 1e-3); ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - [TF, L, U, C] = isoutlier (A, "grubbs"); - assert (TF, logical ([0 0 0 1 0 0 0 0 1 0 0 0 0 0 0])) - assert (L, 54.642809574646606, 1e-12) - assert (U, 63.511036579199555, 1e-12) - assert (C, 59.076923076923080, 1e-12) + load carsmall + [h, pval, ci] = ztest (MPG, 26, 4); + assert (h, 1); + assert (pval, 3.184168011941316e-08, 1e-14); + assert (ci, [22.909; 24.527], 1e-3); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/logit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/logit.m ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - [TF, L, U, C] = isoutlier (A, "grubbs", "ThresholdFactor", 0.01); - assert (TF, logical ([0 0 0 1 0 0 0 0 1 0 0 0 0 0 0])) - assert (L, 54.216083184201850, 1e-12) - assert (U, 63.937762969644310, 1e-12) - assert (C, 59.076923076923080, 1e-12) + p = [0.01:0.01:0.99]; + assert (logit (p), log (p ./ (1-p)), 25*eps); +***** assert (logit ([-1, 0, 0.5, 1, 2]), [NaN, -Inf, 0, +Inf, NaN]) +***** error logit () +***** error logit (1, 2) +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/geomean.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/geomean.m ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - [TF, L, U, C] = isoutlier (A, "percentiles", [10 90]); - assert (TF, logical ([0 0 0 0 0 0 0 0 1 0 0 0 0 0 0])) - assert (L, 57) - assert (U, 100) - assert (C, 78.5) + x = [0:10]; + y = [x;x+5;x+10]; + assert (geomean (x), 0); + m = [0 9.462942809849169 14.65658770861967]; + assert (geomean (y, 2), m', 4e-14); + assert (geomean (y, "all"), 0); + y(2,4) = NaN; + m(2) = 9.623207231679554; + assert (geomean (y, 2), [0 NaN m(3)]', 4e-14); + assert (geomean (y', "omitnan"), m, 4e-14); + z = y + 20; + assert (geomean (z, "all"), NaN); + assert (geomean (z, "all", "includenan"), NaN); + assert (geomean (z, "all", "omitnan"), 29.59298474535024, 4e-14); + m = [24.79790781765634 NaN 34.85638839503932]; + assert (geomean (z'), m, 4e-14); + assert (geomean (z', "includenan"), m, 4e-14); + m(2) = 30.02181156156319; + assert (geomean (z', "omitnan"), m, 4e-14); + assert (geomean (z, 2, "omitnan"), m', 4e-14); ***** test - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - [TF, L, U, C] = isoutlier (A, "percentiles", [20 80]); - assert (TF, logical ([1 0 0 1 0 0 1 0 1 0 0 0 0 0 1])) - assert (L, 57.5) - assert (U, 62) - assert (C, 59.75) -***** shared A - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; -***** error ... - isoutlier (A, "movmedian", 0); -***** error ... - isoutlier (A, "movmedian", []); -***** error ... - isoutlier (A, "movmedian", [2 3 4]); -***** error ... - isoutlier (A, "movmedian", 1.4); -***** error ... - isoutlier (A, "movmedian", [0 1]); -***** error ... - isoutlier (A, "movmedian", [2 -1]); -***** error ... - isoutlier (A, "movmedian", {2 3}); -***** error ... - isoutlier (A, "movmedian", "char"); + x = repmat ([1:20;6:25], [5 2 6 3]); + assert (size (geomean (x, [3 2])), [10 1 1 3]); + assert (size (geomean (x, [1 2])), [1 1 6 3]); + assert (size (geomean (x, [1 2 4])), [1 1 6]); + assert (size (geomean (x, [1 4 3])), [1 40]); + assert (size (geomean (x, [1 2 3 4])), [1 1]); +***** test + x = repmat ([1:20;6:25], [5 2 6 3]); + m = repmat ([8.304361203739333;14.3078118884256], [5 1 1 3]); + assert (geomean (x, [3 2]), m, 4e-13); + x(2,5,6,3) = NaN; + m(2,3) = NaN; + assert (geomean (x, [3 2]), m, 4e-13); + m(2,3) = 14.3292729579901; + assert (geomean (x, [3 2], "omitnan"), m, 4e-13); +***** error geomean ("char") +***** error geomean ([1 -1 3]) +***** error ... + geomean (repmat ([1:20;6:25], [5 2 6 3 5]), -1) +***** error ... + geomean (repmat ([1:20;6:25], [5 2 6 3 5]), 0) +***** error ... + geomean (repmat ([1:20;6:25], [5 2 6 3 5]), [1 1]) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/tabulate.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/tabulate.m +***** demo + ## Generate a frequency table for a vector of data in a cell array + load patients -***** error ... - isoutlier (A, "movmean", 0); -***** error ... - isoutlier (A, "movmean", []); -***** error ... - isoutlier (A, "movmean", [2 3 4]); -***** error ... - isoutlier (A, "movmean", 1.4); -***** error ... - isoutlier (A, "movmean", [0 1]); -***** error ... - isoutlier (A, "movmean", [2 -1]); -***** error ... - isoutlier (A, "movmean", {2 3}); -***** error ... - isoutlier (A, "movmean", "char"); + ## Display the first seven entries of the Gender variable + gender = Gender(1:7) -***** error ... - isoutlier (A, "percentiles", [-1 90]); -***** error ... - isoutlier (A, "percentiles", [10 -90]); -***** error ... - isoutlier (A, "percentiles", [90]); -***** error ... - isoutlier (A, "percentiles", [90 20]); -***** error ... - isoutlier (A, "percentiles", [90 20]); -***** error ... - isoutlier (A, "percentiles", [10 20 90]); -***** error ... - isoutlier (A, "percentiles", {10 90}); -***** error ... - isoutlier (A, "percentiles", "char"); + ## Compute the equency table that shows the number and + ## percentage of Male and Female patients + tabulate (Gender) +***** demo + ## Create a frequency table for a vector of positive integers + load patients -***** error ... - isoutlier (A, "movmean", 5, "SamplePoints", ones(3,15)); -***** error ... - isoutlier (A, "movmean", 5, "SamplePoints", 15); -***** error ... - isoutlier (A, "movmean", 5, "SamplePoints", [1,1:14]); -***** error ... - isoutlier (A, "movmean", 5, "SamplePoints", [2,1,3:15]); -***** error ... - isoutlier (A, "movmean", 5, "SamplePoints", [1:14]); + ## Display the first seven entries of the Gender variable + height = Height(1:7) -***** error ... - isoutlier (A, "movmean", 5, "ThresholdFactor", [1:14]); -***** error ... - isoutlier (A, "movmean", 5, "ThresholdFactor", -1); -***** error ... - isoutlier (A, "gesd", "ThresholdFactor", 3); -***** error ... - isoutlier (A, "grubbs", "ThresholdFactor", 3); + ## Create a frequency table that shows, in its second and third columns, + ## the number and percentage of patients with a particular height. + table = tabulate (Height); -***** error ... - isoutlier (A, "movmean", 5, "MaxNumOutliers", [1:14]); -***** error ... - isoutlier (A, "movmean", 5, "MaxNumOutliers", -1); -***** error ... - isoutlier (A, "movmean", 5, "MaxNumOutliers", 0); -***** error ... - isoutlier (A, "movmean", 5, "MaxNumOutliers", 1.5); + ## Display the first and last seven entries of the frequency table + first = table(1:7,:) -***** error ... - isoutlier (A, {"movmean"}, 5, "SamplePoints", [1:15]); -***** error isoutlier (A, {1}); -***** error isoutlier (A, true); -***** error isoutlier (A, false); -***** error isoutlier (A, 0); -***** error isoutlier (A, [1 2]); -***** error isoutlier (A, -2); -59 tests, 59 passed, 0 known failure, 0 skipped -[inst/fitgmdist.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/fitgmdist.m + last = table(end-6:end,:) ***** demo - ## Generate a two-cluster problem - C1 = randn (100, 2) + 2; - C2 = randn (100, 2) - 2; - data = [C1; C2]; - - ## Perform clustering - GMModel = fitgmdist (data, 2); + ## Create a frequency table from a character array + load carsmall - ## Plot the result - figure - [heights, bins] = hist3([C1; C2]); - [xx, yy] = meshgrid(bins{1}, bins{2}); - bbins = [xx(:), yy(:)]; - contour (reshape (GMModel.pdf (bbins), size (heights))); + ## Tabulate the data in the Origin variable, which shows the + ## country of origin of each car in the data set + tabulate (Origin) ***** demo - Angle_Theta = [ 30 + 10 * randn(1, 10), 60 + 10 * randn(1, 10) ]'; - nbOrientations = 2; - initial_orientations = [38.0; 18.0]; - initial_weights = ones (1, nbOrientations) / nbOrientations; - initial_Sigma = 10 * ones (1, 1, nbOrientations); - start = struct ("mu", initial_orientations, "Sigma", initial_Sigma, ... - "ComponentProportion", initial_weights); - GMModel_Theta = fitgmdist (Angle_Theta, nbOrientations, "Start", start , ... - "RegularizationValue", 0.0001) + ## Create a frequency table from a numeric vector with NaN values + load carsmall + + ## The carsmall dataset contains measurements of 100 cars + total_cars = length (MPG) + ## For six cars, the MPG value is missing + missingMPG = length (MPG(isnan (MPG))) + + ## Create a frequency table using MPG + tabulate (MPG) + table = tabulate (MPG); + + ## Only 94 cars were used + valid_cars = sum (table(:,2)) ***** test - load fisheriris - classes = unique (species); - [~, score] = pca (meas, "NumComponents", 2); - options.MaxIter = 1000; - options.TolFun = 1e-6; - options.Display = "off"; - GMModel = fitgmdist (score, 2, "Options", options); - assert (isa (GMModel, "gmdistribution"), true); - assert (GMModel.mu, [1.3212, -0.0954; -2.6424, 0.1909], 1e-4); -1 test, 1 passed, 0 known failure, 0 skipped + load patients + table = tabulate (Gender); + assert (table{1,1}, "Male"); + assert (table{2,1}, "Female"); + assert (table{1,2}, 47); + assert (table{2,2}, 53); +***** test + load patients + table = tabulate (Height); + assert (table(end-4,:), [68, 15, 15]); + assert (table(end-3,:), [69, 8, 8]); + assert (table(end-2,:), [70, 11, 11]); + assert (table(end-1,:), [71, 10, 10]); + assert (table(end,:), [72, 4, 4]); +***** error tabulate (ones (3)) +***** error tabulate ({1, 2, 3, 4}) +***** error ... + tabulate ({"a", "b"; "a", "c"}) +5 tests, 5 passed, 0 known failure, 0 skipped [inst/mnrfit.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/mnrfit.m ***** error mnrfit (ones (50,1)) @@ -5636,4183 +4995,4597 @@ ***** error ... mnrfit (ones (5, 4), [1; 2; 3; 2; 1], "model", "whatever") 13 tests, 13 passed, 0 known failure, 0 skipped -[inst/ff2n.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ff2n.m -***** error ff2n (); -***** error ff2n (2, 5); -***** error ff2n (2.5); -***** error ff2n (0); -***** error ff2n (-3); -***** error ff2n (3+2i); -***** error ff2n (Inf); -***** error ff2n (NaN); -***** test - A = ff2n (3); - assert (A, fullfact (3)); -***** test - A = ff2n (8); - assert (A, fullfact (8)); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/ttest.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ttest.m -***** test - x = 8:0.1:12; - [h, pval, ci] = ttest (x, 10); - assert (h, 0) - assert (pval, 1, 10*eps) - assert (ci, [9.6219 10.3781], 1E-5) - [h, pval, ci0] = ttest (x, 0); - assert (h, 1) - assert (pval, 0) - assert (ci0, ci, 2e-15) - [h, pval, ci] = ttest (x, 10, "tail", "right", "dim", 2, "alpha", 0.05); - assert (h, 0) - assert (pval, 0.5, 10*eps) - assert (ci, [9.68498 Inf], 1E-5) -***** error ttest ([8:0.1:12], 10, "tail", "invalid"); -***** error ttest ([8:0.1:12], 10, "tail", 25); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/dist_obj/TriangularDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/TriangularDistribution.m -***** shared pd, t - pd = TriangularDistribution (0, 3, 5); - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.0667, 0.2667, 0.6000, 0.9000, 1], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.5263, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.1500, 0.2667, 0.6, 0.9, NaN], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.5263, 1, NaN], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 1.7321, 2.4495, 3, 3.5858, 5], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.4290, 2.7928, 3.1203, 3.4945, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4495, 3, 3.5858, 5, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.7928, 3.1203, 3.4945, 4, NaN], 1e-4); -***** assert (iqr (pd), 1.4824, 1e-4); -***** assert (iqr (t), 0.8678, 1e-4); -***** assert (mean (pd), 2.6667, 1e-4); -***** assert (mean (t), 2.9649, 1e-4); -***** assert (median (pd), 2.7386, 1e-4); -***** assert (median (t), 2.9580, 1e-4); -***** assert (pdf (pd, [0:5]), [0, 0.1333, 0.2667, 0.4, 0.2, 0], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 0.4211, 0.6316, 0.3158, 0], 1e-4); -***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0.2, NaN], 1e-4); -***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 1.0274, 1e-4); -***** assert (std (t), 0.5369, 1e-4); -***** assert (var (pd), 1.0556, 1e-4); -***** assert (var (t), 0.2882, 1e-4); -***** error ... - TriangularDistribution (i, 1, 2) -***** error ... - TriangularDistribution (Inf, 1, 2) -***** error ... - TriangularDistribution ([1, 2], 1, 2) -***** error ... - TriangularDistribution ("a", 1, 2) -***** error ... - TriangularDistribution (NaN, 1, 2) -***** error ... - TriangularDistribution (1, i, 2) -***** error ... - TriangularDistribution (1, Inf, 2) -***** error ... - TriangularDistribution (1, [1, 2], 2) -***** error ... - TriangularDistribution (1, "a", 2) -***** error ... - TriangularDistribution (1, NaN, 2) -***** error ... - TriangularDistribution (1, 2, i) -***** error ... - TriangularDistribution (1, 2, Inf) -***** error ... - TriangularDistribution (1, 2, [1, 2]) -***** error ... - TriangularDistribution (1, 2, "a") -***** error ... - TriangularDistribution (1, 2, NaN) -***** error ... - TriangularDistribution (1, 1, 1) -***** error ... - TriangularDistribution (1, 0.5, 2) -***** error ... - cdf (TriangularDistribution, 2, "uper") -***** error ... - cdf (TriangularDistribution, 2, 3) -***** error ... - plot (TriangularDistribution, "Parent") -***** error ... - plot (TriangularDistribution, "PlotType", 12) -***** error ... - plot (TriangularDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (TriangularDistribution, "PlotType", "pdfcdf") -***** error ... - plot (TriangularDistribution, "Discrete", "pdfcdf") -***** error ... - plot (TriangularDistribution, "Discrete", [1, 0]) -***** error ... - plot (TriangularDistribution, "Discrete", {true}) -***** error ... - plot (TriangularDistribution, "Parent", 12) -***** error ... - plot (TriangularDistribution, "Parent", "hax") -***** error ... - truncate (TriangularDistribution) -***** error ... - truncate (TriangularDistribution, 2) -***** error ... - truncate (TriangularDistribution, 4, 2) -***** shared pd - pd = TriangularDistribution (0, 1, 2); - pd(2) = TriangularDistribution (0, 1, 2); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -67 tests, 67 passed, 0 known failure, 0 skipped -[inst/dist_obj/NakagamiDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/NakagamiDistribution.m -***** shared pd, t - pd = NakagamiDistribution; - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.6321, 0.9817, 0.9999, 1, 1], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.9933, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.8946, 0.9817, 0.9999, 1], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.9933, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0.4724, 0.7147, 0.9572, 1.2686, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.0550, 2.1239, 2.2173, 2.3684, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.7147, 0.9572, 1.2686, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.1239, 2.2173, 2.3684, 4, NaN], 1e-4); -***** assert (iqr (pd), 0.6411, 1e-4); -***** assert (iqr (t), 0.2502, 1e-4); -***** assert (mean (pd), 0.8862, 1e-4); -***** assert (mean (t), 2.2263, 1e-4); -***** assert (median (pd), 0.8326, 1e-4); -***** assert (median (t), 2.1664, 1e-4); -***** assert (pdf (pd, [0:5]), [0, 0.7358, 0.0733, 0.0007, 0, 0], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 4, 0.0404, 0, 0], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.7358, 0.0733, 0.0007, 0, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 4, 0.0404, 0, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 0.4633, 1e-4); -***** assert (std (t), 0.2083, 1e-4); -***** assert (var (pd), 0.2146, 1e-4); -***** assert (var (t), 0.0434, 1e-4); -***** error ... - NakagamiDistribution(Inf, 1) -***** error ... - NakagamiDistribution(i, 1) -***** error ... - NakagamiDistribution("a", 1) -***** error ... - NakagamiDistribution([1, 2], 1) -***** error ... - NakagamiDistribution(NaN, 1) -***** error ... - NakagamiDistribution(1, 0) -***** error ... - NakagamiDistribution(1, -1) -***** error ... - NakagamiDistribution(1, Inf) -***** error ... - NakagamiDistribution(1, i) -***** error ... - NakagamiDistribution(1, "a") -***** error ... - NakagamiDistribution(1, [1, 2]) -***** error ... - NakagamiDistribution(1, NaN) -***** error ... - cdf (NakagamiDistribution, 2, "uper") -***** error ... - cdf (NakagamiDistribution, 2, 3) -***** shared x - x = nakarnd (1, 0.5, [1, 100]); -***** error ... - paramci (NakagamiDistribution.fit (x), "alpha") -***** error ... - paramci (NakagamiDistribution.fit (x), "alpha", 0) -***** error ... - paramci (NakagamiDistribution.fit (x), "alpha", 1) -***** error ... - paramci (NakagamiDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (NakagamiDistribution.fit (x), "alpha", "") -***** error ... - paramci (NakagamiDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (NakagamiDistribution.fit (x), "parameter", "mu", "alpha", {0.05}) -***** error ... - paramci (NakagamiDistribution.fit (x), "parameter", {"mu", "omega", "param"}) -***** error ... - paramci (NakagamiDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"mu", "omega", "param"}) -***** error ... - paramci (NakagamiDistribution.fit (x), "parameter", "param") -***** error ... - paramci (NakagamiDistribution.fit (x), "alpha", 0.01, "parameter", "param") -***** error ... - paramci (NakagamiDistribution.fit (x), "NAME", "value") -***** error ... - paramci (NakagamiDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (NakagamiDistribution.fit (x), "alpha", 0.01, "parameter", "mu", ... - "NAME", "value") -***** error ... - plot (NakagamiDistribution, "Parent") -***** error ... - plot (NakagamiDistribution, "PlotType", 12) -***** error ... - plot (NakagamiDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (NakagamiDistribution, "PlotType", "pdfcdf") -***** error ... - plot (NakagamiDistribution, "Discrete", "pdfcdf") -***** error ... - plot (NakagamiDistribution, "Discrete", [1, 0]) -***** error ... - plot (NakagamiDistribution, "Discrete", {true}) -***** error ... - plot (NakagamiDistribution, "Parent", 12) -***** error ... - plot (NakagamiDistribution, "Parent", "hax") -***** error ... - proflik (NakagamiDistribution, 2) -***** error ... - proflik (NakagamiDistribution.fit (x), 3) -***** error ... - proflik (NakagamiDistribution.fit (x), [1, 2]) -***** error ... - proflik (NakagamiDistribution.fit (x), {1}) -***** error ... - proflik (NakagamiDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (NakagamiDistribution.fit (x), 1, "Display") -***** error ... - proflik (NakagamiDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (NakagamiDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (NakagamiDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (NakagamiDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (NakagamiDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (NakagamiDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (NakagamiDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (NakagamiDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (NakagamiDistribution) -***** error ... - truncate (NakagamiDistribution, 2) -***** error ... - truncate (NakagamiDistribution, 4, 2) -***** shared pd - pd = NakagamiDistribution(1, 0.5); - pd(2) = NakagamiDistribution(1, 0.6); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -93 tests, 93 passed, 0 known failure, 0 skipped -[inst/dist_obj/HalfNormalDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/HalfNormalDistribution.m -***** shared pd, t - pd = HalfNormalDistribution (0, 1); - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.6827, 0.9545, 0.9973, 0.9999, 1], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.9420, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.8664, 0.9545, 0.9973, 0.9999], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.9420, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0.2533, 0.5244, 0.8416, 1.2816, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.0923, 2.2068, 2.3607, 2.6064, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.5244, 0.8416, 1.2816, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.2068, 2.3607, 2.6064, 4, NaN], 1e-4); -***** assert (iqr (pd), 0.8317, 1e-4); -***** assert (iqr (t), 0.4111, 1e-4); -***** assert (mean (pd), 0.7979, 1e-4); -***** assert (mean (t), 2.3706, 1e-4); -***** assert (median (pd), 0.6745, 1e-4); -***** assert (median (t), 2.2771, 1e-4); -***** assert (pdf (pd, [0:5]), [0.7979, 0.4839, 0.1080, 0.0089, 0.0003, 0], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 2.3765, 0.1951, 0.0059, 0], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.4839, 0.1080, 0.0089, 0.0003, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 2.3765, 0.1951, 0.0059, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 0.6028, 1e-4); -***** assert (std (t), 0.3310, 1e-4); -***** assert (var (pd), 0.3634, 1e-4); -***** assert (var (t), 0.1096, 1e-4); -***** error ... - HalfNormalDistribution(Inf, 1) -***** error ... - HalfNormalDistribution(i, 1) -***** error ... - HalfNormalDistribution("a", 1) -***** error ... - HalfNormalDistribution([1, 2], 1) -***** error ... - HalfNormalDistribution(NaN, 1) -***** error ... - HalfNormalDistribution(1, 0) -***** error ... - HalfNormalDistribution(1, -1) -***** error ... - HalfNormalDistribution(1, Inf) -***** error ... - HalfNormalDistribution(1, i) -***** error ... - HalfNormalDistribution(1, "a") -***** error ... - HalfNormalDistribution(1, [1, 2]) -***** error ... - HalfNormalDistribution(1, NaN) -***** error ... - cdf (HalfNormalDistribution, 2, "uper") -***** error ... - cdf (HalfNormalDistribution, 2, 3) -***** shared x - x = hnrnd (1, 1, [1, 100]); -***** error ... - paramci (HalfNormalDistribution.fit (x, 1), "alpha") -***** error ... - paramci (HalfNormalDistribution.fit (x, 1), "alpha", 0) -***** error ... - paramci (HalfNormalDistribution.fit (x, 1), "alpha", 1) -***** error ... - paramci (HalfNormalDistribution.fit (x, 1), "alpha", [0.5 2]) -***** error ... - paramci (HalfNormalDistribution.fit (x, 1), "alpha", "") -***** error ... - paramci (HalfNormalDistribution.fit (x, 1), "alpha", {0.05}) -***** error ... - paramci (HalfNormalDistribution.fit (x, 1), "parameter", "sigma", ... - "alpha", {0.05}) -***** error ... - paramci (HalfNormalDistribution.fit (x, 1), ... - "parameter", {"mu", "sigma", "param"}) -***** error ... - paramci (HalfNormalDistribution.fit (x, 1), "alpha", 0.01, ... - "parameter", {"mu", "sigma", "param"}) -***** error ... - paramci (HalfNormalDistribution.fit (x, 1), "parameter", "param") -***** error ... - paramci (HalfNormalDistribution.fit (x, 1), "alpha", 0.01, ... - "parameter", "param") -***** error ... - paramci (HalfNormalDistribution.fit (x, 1),"NAME", "value") -***** error ... - paramci (HalfNormalDistribution.fit (x, 1), "alpha", 0.01, ... - "NAME", "value") -***** error ... - paramci (HalfNormalDistribution.fit (x, 1), "alpha", 0.01, ... - "parameter", "sigma", "NAME", "value") -***** error ... - plot (HalfNormalDistribution, "Parent") -***** error ... - plot (HalfNormalDistribution, "PlotType", 12) -***** error ... - plot (HalfNormalDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (HalfNormalDistribution, "PlotType", "pdfcdf") -***** error ... - plot (HalfNormalDistribution, "Discrete", "pdfcdf") -***** error ... - plot (HalfNormalDistribution, "Discrete", [1, 0]) -***** error ... - plot (HalfNormalDistribution, "Discrete", {true}) -***** error ... - plot (HalfNormalDistribution, "Parent", 12) -***** error ... - plot (HalfNormalDistribution, "Parent", "hax") -***** error ... - proflik (HalfNormalDistribution, 2) -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), 3) -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), [1, 2]) -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), {1}) -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), 1) -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), 2, ones (2)) -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), 2, "Display") -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), 2, "Display", 1) -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), 2, "Display", {1}) -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), 2, "Display", {"on"}) -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), 2, "Display", ["on"; "on"]) -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), 2, "Display", "onnn") -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), 2, "NAME", "on") -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), 2, {"NAME"}, "on") -***** error ... - proflik (HalfNormalDistribution.fit (x, 1), 2, {[1 2 3 4]}, ... - "Display", "on") -***** error ... - truncate (HalfNormalDistribution) -***** error ... - truncate (HalfNormalDistribution, 2) -***** error ... - truncate (HalfNormalDistribution, 4, 2) -***** shared pd - pd = HalfNormalDistribution(1, 1); - pd(2) = HalfNormalDistribution(1, 3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -94 tests, 94 passed, 0 known failure, 0 skipped -[inst/dist_obj/BurrDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/BurrDistribution.m -***** shared pd, t - pd = BurrDistribution; - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.5, 0.6667, 0.75, 0.8, 0.8333], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.625, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.6, 0.6667, 0.75, 0.8], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.625, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0.25, 0.6667, 1.5, 4, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.2609, 2.5714, 2.9474, 3.4118, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.6667, 1.5, 4, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.5714, 2.9474, 3.4118, 4, NaN], 1e-4); -***** assert (iqr (pd), 2.6667, 1e-4); -***** assert (iqr (t), 0.9524, 1e-4); -***** assert (mean (pd), Inf); -***** assert (mean (t), 2.8312, 1e-4); -***** assert (median (pd), 1, 1e-4); -***** assert (median (t), 2.75, 1e-4); -***** assert (pdf (pd, [0:5]), [1, 0.25, 0.1111, 0.0625, 0.04, 0.0278], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 0.8333, 0.4687, 0.3, 0], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.25, 0.1111, 0.0625, 0.04, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 0.8333, 0.4687, 0.3, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), Inf); -***** assert (std (t), 0.5674, 1e-4); -***** assert (var (pd), Inf); -***** assert (var (t), 0.3220, 1e-4); -***** error ... - BurrDistribution(0, 1, 1) -***** error ... - BurrDistribution(-1, 1, 1) -***** error ... - BurrDistribution(Inf, 1, 1) -***** error ... - BurrDistribution(i, 1, 1) -***** error ... - BurrDistribution("a", 1, 1) -***** error ... - BurrDistribution([1, 2], 1, 1) -***** error ... - BurrDistribution(NaN, 1, 1) -***** error ... - BurrDistribution(1, 0, 1) -***** error ... - BurrDistribution(1, -1, 1) -***** error ... - BurrDistribution(1, Inf, 1) -***** error ... - BurrDistribution(1, i, 1) -***** error ... - BurrDistribution(1, "a", 1) -***** error ... - BurrDistribution(1, [1, 2], 1) -***** error ... - BurrDistribution(1, NaN, 1) -***** error ... - BurrDistribution(1, 1, 0) -***** error ... - BurrDistribution(1, 1, -1) -***** error ... - BurrDistribution(1, 1, Inf) -***** error ... - BurrDistribution(1, 1, i) -***** error ... - BurrDistribution(1, 1, "a") -***** error ... - BurrDistribution(1, 1, [1, 2]) -***** error ... - BurrDistribution(1, 1, NaN) -***** error ... - cdf (BurrDistribution, 2, "uper") -***** error ... - cdf (BurrDistribution, 2, 3) -***** shared x - rand ("seed", 4); - x = burrrnd (1, 1, 1, [1, 100]); -***** error ... - paramci (BurrDistribution.fit (x), "alpha") -***** error ... - paramci (BurrDistribution.fit (x), "alpha", 0) -***** error ... - paramci (BurrDistribution.fit (x), "alpha", 1) -***** error ... - paramci (BurrDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (BurrDistribution.fit (x), "alpha", "") -***** error ... - paramci (BurrDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (BurrDistribution.fit (x), "parameter", "c", "alpha", {0.05}) -***** error ... - paramci (BurrDistribution.fit (x), "parameter", {"alpha", "c", "k", "param"}) -***** error ... - paramci (BurrDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"alpha", "c", "k", "param"}) -***** error ... - paramci (BurrDistribution.fit (x), "parameter", "param") -***** error ... - paramci (BurrDistribution.fit (x), "alpha", 0.01, "parameter", "param") -***** error ... - paramci (BurrDistribution.fit (x), "NAME", "value") -***** error ... - paramci (BurrDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (BurrDistribution.fit (x), "alpha", 0.01, "parameter", "c", ... - "NAME", "value") -***** error ... - plot (BurrDistribution, "Parent") -***** error ... - plot (BurrDistribution, "PlotType", 12) -***** error ... - plot (BurrDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (BurrDistribution, "PlotType", "pdfcdf") -***** error ... - plot (BurrDistribution, "Discrete", "pdfcdf") -***** error ... - plot (BurrDistribution, "Discrete", [1, 0]) -***** error ... - plot (BurrDistribution, "Discrete", {true}) -***** error ... - plot (BurrDistribution, "Parent", 12) -***** error ... - plot (BurrDistribution, "Parent", "hax") -***** error ... - proflik (BurrDistribution, 2) -***** error ... - proflik (BurrDistribution.fit (x), 4) -***** error ... - proflik (BurrDistribution.fit (x), [1, 2]) -***** error ... - proflik (BurrDistribution.fit (x), {1}) -***** error ... - proflik (BurrDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (BurrDistribution.fit (x), 1, "Display") -***** error ... - proflik (BurrDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (BurrDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (BurrDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (BurrDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (BurrDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (BurrDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (BurrDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (BurrDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (BurrDistribution) -***** error ... - truncate (BurrDistribution, 2) -***** error ... - truncate (BurrDistribution, 4, 2) -***** shared pd - pd = BurrDistribution(1, 1, 1); - pd(2) = BurrDistribution(1, 3, 1); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -102 tests, 102 passed, 0 known failure, 0 skipped -[inst/dist_obj/PiecewiseLinearDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/PiecewiseLinearDistribution.m -***** shared pd, t - load patients - [f, x] = ecdf (Weight); - f = f(1:5:end); - x = x(1:5:end); - pd = PiecewiseLinearDistribution (x, f); - t = truncate (pd, 130, 180); -***** assert (cdf (pd, [120, 130, 140, 150, 200]), [0.0767, 0.25, 0.4629, 0.5190, 0.9908], 1e-4); -***** assert (cdf (t, [120, 130, 140, 150, 200]), [0, 0, 0.4274, 0.5403, 1], 1e-4); -***** assert (cdf (pd, [100, 250, NaN]), [0, 1, NaN], 1e-4); -***** assert (cdf (t, [115, 290, NaN]), [0, 1, NaN], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [111, 127.5, 136.62, 169.67, 182.17, 202], 1e-2); -***** assert (icdf (t, [0:0.2:1]), [130, 134.15, 139.26, 162.5, 173.99, 180], 1e-2); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NA, 136.62, 169.67, 182.17, 202, NA], 1e-2); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NA, 139.26, 162.5, 173.99, 180, NA], 1e-2); -***** assert (iqr (pd), 50.0833, 1e-4); -***** assert (iqr (t), 36.8077, 1e-4); -***** assert (mean (pd), 153.61, 1e-10); -***** assert (mean (t), 152.311, 1e-4); -***** assert (median (pd), 142, 1e-10); -***** assert (median (t), 141.9462, 1e-4); -***** assert (pdf (pd, [120, 130, 140, 150, 200]), [0.0133, 0.0240, 0.0186, 0.0024, 0.0046], 1e-4); -***** assert (pdf (t, [120, 130, 140, 150, 200]), [0, 0.0482, 0.0373, 0.0048, 0], 1e-4); -***** assert (pdf (pd, [100, 250, NaN]), [0, 0, NaN], 1e-4); -***** assert (pdf (t, [100, 250, NaN]), [0, 0, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 130), false); -***** assert (any (random (t, 1000, 1) > 180), false); -***** assert (std (pd), 26.5196, 1e-4); -***** assert (std (t), 18.2941, 1e-4); -***** assert (var (pd), 703.2879, 1e-4); -***** assert (var (t), 334.6757, 1e-4); -***** error ... - PiecewiseLinearDistribution ([0, i], [0, 1]) -***** error ... - PiecewiseLinearDistribution ([0, Inf], [0, 1]) -***** error ... - PiecewiseLinearDistribution (["a", "c"], [0, 1]) -***** error ... - PiecewiseLinearDistribution ([NaN, 1], [0, 1]) -***** error ... - PiecewiseLinearDistribution ([0, 1], [0, i]) -***** error ... - PiecewiseLinearDistribution ([0, 1], [0, Inf]) -***** error ... - PiecewiseLinearDistribution ([0, 1], ["a", "c"]) -***** error ... - PiecewiseLinearDistribution ([0, 1], [NaN, 1]) -***** error ... - PiecewiseLinearDistribution ([0, 1], [0, 0.5, 1]) -***** error ... - PiecewiseLinearDistribution ([0], [1]) -***** error ... - PiecewiseLinearDistribution ([0, 0.5, 1], [0, 1, 1.5]) -***** error ... - cdf (PiecewiseLinearDistribution, 2, "uper") -***** error ... - cdf (PiecewiseLinearDistribution, 2, 3) -***** error ... - plot (PiecewiseLinearDistribution, "Parent") -***** error ... - plot (PiecewiseLinearDistribution, "PlotType", 12) -***** error ... - plot (PiecewiseLinearDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (PiecewiseLinearDistribution, "PlotType", "pdfcdf") -***** error ... - plot (PiecewiseLinearDistribution, "Discrete", "pdfcdf") -***** error ... - plot (PiecewiseLinearDistribution, "Discrete", [1, 0]) -***** error ... - plot (PiecewiseLinearDistribution, "Discrete", {true}) -***** error ... - plot (PiecewiseLinearDistribution, "Parent", 12) -***** error ... - plot (PiecewiseLinearDistribution, "Parent", "hax") -***** error ... - truncate (PiecewiseLinearDistribution) -***** error ... - truncate (PiecewiseLinearDistribution, 2) -***** error ... - truncate (PiecewiseLinearDistribution, 4, 2) -***** shared pd - pd = PiecewiseLinearDistribution (); - pd(2) = PiecewiseLinearDistribution (); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -61 tests, 61 passed, 0 known failure, 0 skipped -[inst/dist_obj/LoglogisticDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/LoglogisticDistribution.m -***** shared pd, t - pd = LoglogisticDistribution; - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.5, 0.6667, 0.75, 0.8, 0.8333], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.625, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.6, 0.6667, 0.75, 0.8], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.625, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0.25, 0.6667, 1.5, 4, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.2609, 2.5714, 2.9474, 3.4118, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.6667, 1.5, 4, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.5714, 2.9474, 3.4118, 4, NaN], 1e-4); -***** assert (iqr (pd), 2.6667, 1e-4); -***** assert (iqr (t), 0.9524, 1e-4); -***** assert (mean (pd), Inf); -***** assert (mean (t), 2.8312, 1e-4); -***** assert (median (pd), 1, 1e-4); -***** assert (median (t), 2.75, 1e-4); -***** assert (pdf (pd, [0:5]), [0, 0.25, 0.1111, 0.0625, 0.04, 0.0278], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 0.8333, 0.4687, 0.3, 0], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.25, 0.1111, 0.0625, 0.04, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 0.8333, 0.4687, 0.3, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), Inf); -***** assert (std (t), 0.5674, 1e-4); -***** assert (var (pd), Inf); -***** assert (var (t), 0.3220, 1e-4); -***** error ... - LoglogisticDistribution(Inf, 1) -***** error ... - LoglogisticDistribution(i, 1) -***** error ... - LoglogisticDistribution("a", 1) -***** error ... - LoglogisticDistribution([1, 2], 1) -***** error ... - LoglogisticDistribution(NaN, 1) -***** error ... - LoglogisticDistribution(1, 0) -***** error ... - LoglogisticDistribution(1, -1) -***** error ... - LoglogisticDistribution(1, Inf) -***** error ... - LoglogisticDistribution(1, i) -***** error ... - LoglogisticDistribution(1, "a") -***** error ... - LoglogisticDistribution(1, [1, 2]) -***** error ... - LoglogisticDistribution(1, NaN) -***** error ... - cdf (LoglogisticDistribution, 2, "uper") -***** error ... - cdf (LoglogisticDistribution, 2, 3) -***** shared x - x = loglrnd (1, 1, [1, 100]); -***** error ... - paramci (LoglogisticDistribution.fit (x), "alpha") -***** error ... - paramci (LoglogisticDistribution.fit (x), "alpha", 0) -***** error ... - paramci (LoglogisticDistribution.fit (x), "alpha", 1) -***** error ... - paramci (LoglogisticDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (LoglogisticDistribution.fit (x), "alpha", "") -***** error ... - paramci (LoglogisticDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (LoglogisticDistribution.fit (x), "parameter", "mu", "alpha", {0.05}) -***** error ... - paramci (LoglogisticDistribution.fit (x), "parameter", {"mu", "sigma", "pa"}) -***** error ... - paramci (LoglogisticDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"mu", "sigma", "param"}) -***** error ... - paramci (LoglogisticDistribution.fit (x), "parameter", "param") -***** error ... - paramci (LoglogisticDistribution.fit (x), "alpha", 0.01, "parameter", "parm") -***** error ... - paramci (LoglogisticDistribution.fit (x), "NAME", "value") -***** error ... - paramci (LoglogisticDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (LoglogisticDistribution.fit (x), "alpha", 0.01, ... - "parameter", "mu", "NAME", "value") -***** error ... - plot (LoglogisticDistribution, "Parent") -***** error ... - plot (LoglogisticDistribution, "PlotType", 12) -***** error ... - plot (LoglogisticDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (LoglogisticDistribution, "PlotType", "pdfcdf") -***** error ... - plot (LoglogisticDistribution, "Discrete", "pdfcdf") -***** error ... - plot (LoglogisticDistribution, "Discrete", [1, 0]) -***** error ... - plot (LoglogisticDistribution, "Discrete", {true}) -***** error ... - plot (LoglogisticDistribution, "Parent", 12) -***** error ... - plot (LoglogisticDistribution, "Parent", "hax") -***** error ... - proflik (LoglogisticDistribution, 2) -***** error ... - proflik (LoglogisticDistribution.fit (x), 3) -***** error ... - proflik (LoglogisticDistribution.fit (x), [1, 2]) -***** error ... - proflik (LoglogisticDistribution.fit (x), {1}) -***** error ... - proflik (LoglogisticDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (LoglogisticDistribution.fit (x), 1, "Display") -***** error ... - proflik (LoglogisticDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (LoglogisticDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (LoglogisticDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (LoglogisticDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (LoglogisticDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (LoglogisticDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (LoglogisticDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (LoglogisticDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (LoglogisticDistribution) -***** error ... - truncate (LoglogisticDistribution, 2) -***** error ... - truncate (LoglogisticDistribution, 4, 2) -***** shared pd - pd = LoglogisticDistribution(1, 1); - pd(2) = LoglogisticDistribution(1, 3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -93 tests, 93 passed, 0 known failure, 0 skipped -[inst/dist_obj/RayleighDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/RayleighDistribution.m -***** shared pd, t - pd = RayleighDistribution; - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.3935, 0.8647, 0.9889, 0.9997, 1], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.9202, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.6753, 0.8647, 0.9889, 0.9997, NaN], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.9202, 1, NaN], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0.6680, 1.0108, 1.3537, 1.7941, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.1083, 2.2402, 2.4135, 2.6831, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 1.0108, 1.3537, 1.7941, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.2402, 2.4135, 2.6831, 4, NaN], 1e-4); -***** assert (iqr (pd), 0.9066, 1e-4); -***** assert (iqr (t), 0.4609, 1e-4); -***** assert (mean (pd), 1.2533, 1e-4); -***** assert (mean (t), 2.4169, 1e-4); -***** assert (median (pd), 1.1774, 1e-4); -***** assert (median (t), 2.3198, 1e-4); -***** assert (pdf (pd, [0:5]), [0, 0.6065, 0.2707, 0.0333, 0.0013, 0], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 2.0050, 0.2469, 0.0099, 0], 1e-4); -***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0.4870, NaN], 1e-4); -***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 0.6551, 1e-4); -***** assert (std (t), 0.3591, 1e-4); -***** assert (var (pd), 0.4292, 1e-4); -***** assert (var (t), 0.1290, 1e-4); -***** error ... - RayleighDistribution(0) -***** error ... - RayleighDistribution(-1) -***** error ... - RayleighDistribution(Inf) -***** error ... - RayleighDistribution(i) -***** error ... - RayleighDistribution("a") -***** error ... - RayleighDistribution([1, 2]) -***** error ... - RayleighDistribution(NaN) -***** error ... - cdf (RayleighDistribution, 2, "uper") -***** error ... - cdf (RayleighDistribution, 2, 3) -***** shared x - x = raylrnd (1, [1, 100]); -***** error ... - paramci (RayleighDistribution.fit (x), "alpha") -***** error ... - paramci (RayleighDistribution.fit (x), "alpha", 0) -***** error ... - paramci (RayleighDistribution.fit (x), "alpha", 1) -***** error ... - paramci (RayleighDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (RayleighDistribution.fit (x), "alpha", "") -***** error ... - paramci (RayleighDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (RayleighDistribution.fit (x), "parameter", "sigma", "alpha", {0.05}) -***** error ... - paramci (RayleighDistribution.fit (x), "parameter", {"sigma", "param"}) -***** error ... - paramci (RayleighDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"sigma", "param"}) -***** error ... - paramci (RayleighDistribution.fit (x), "parameter", "param") -***** error ... - paramci (RayleighDistribution.fit (x), "alpha", 0.01, "parameter", "param") -***** error ... - paramci (RayleighDistribution.fit (x), "NAME", "value") -***** error ... - paramci (RayleighDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (RayleighDistribution.fit (x), "alpha", 0.01, ... - "parameter", "sigma", "NAME", "value") -***** error ... - plot (RayleighDistribution, "Parent") -***** error ... - plot (RayleighDistribution, "PlotType", 12) -***** error ... - plot (RayleighDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (RayleighDistribution, "PlotType", "pdfcdf") -***** error ... - plot (RayleighDistribution, "Discrete", "pdfcdf") -***** error ... - plot (RayleighDistribution, "Discrete", [1, 0]) -***** error ... - plot (RayleighDistribution, "Discrete", {true}) -***** error ... - plot (RayleighDistribution, "Parent", 12) -***** error ... - plot (RayleighDistribution, "Parent", "hax") -***** error ... - proflik (RayleighDistribution, 2) -***** error ... - proflik (RayleighDistribution.fit (x), 3) -***** error ... - proflik (RayleighDistribution.fit (x), [1, 2]) -***** error ... - proflik (RayleighDistribution.fit (x), {1}) -***** error ... - proflik (RayleighDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (RayleighDistribution.fit (x), 1, "Display") -***** error ... - proflik (RayleighDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (RayleighDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (RayleighDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (RayleighDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (RayleighDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (RayleighDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (RayleighDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (RayleighDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (RayleighDistribution) -***** error ... - truncate (RayleighDistribution, 2) -***** error ... - truncate (RayleighDistribution, 4, 2) -***** shared pd - pd = RayleighDistribution(1); - pd(2) = RayleighDistribution(3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -88 tests, 88 passed, 0 known failure, 0 skipped -[inst/dist_obj/NegativeBinomialDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/NegativeBinomialDistribution.m -***** shared pd, t - pd = NegativeBinomialDistribution; - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0.5, 0.75, 0.875, 0.9375, 0.9688, 0.9844], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.75, 0.875, 0.9375, 0.9688], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0, 0, 1, 2, Inf], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0, 1, 2, Inf, NaN], 1e-4); -***** assert (iqr (pd), 1); -***** assert (mean (pd), 1); -***** assert (median (pd), 0); -***** assert (pdf (pd, [0:5]), [0.5, 0.25, 0.125, 0.0625, 0.0312, 0.0156], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.25, 0.125, 0.0625, 0.0312, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (std (pd), 1.4142, 1e-4); -***** assert (var (pd), 2); -***** error ... - NegativeBinomialDistribution(Inf, 1) -***** error ... - NegativeBinomialDistribution(i, 1) -***** error ... - NegativeBinomialDistribution("a", 1) -***** error ... - NegativeBinomialDistribution([1, 2], 1) -***** error ... - NegativeBinomialDistribution(NaN, 1) -***** error ... - NegativeBinomialDistribution(1, 0) -***** error ... - NegativeBinomialDistribution(1, -1) -***** error ... - NegativeBinomialDistribution(1, Inf) -***** error ... - NegativeBinomialDistribution(1, i) -***** error ... - NegativeBinomialDistribution(1, "a") -***** error ... - NegativeBinomialDistribution(1, [1, 2]) -***** error ... - NegativeBinomialDistribution(1, NaN) -***** error ... - NegativeBinomialDistribution(1, 1.2) -***** error ... - cdf (NegativeBinomialDistribution, 2, "uper") -***** error ... - cdf (NegativeBinomialDistribution, 2, 3) -***** shared x - x = nbinrnd (1, 0.5, [1, 100]); -***** error ... - paramci (NegativeBinomialDistribution.fit (x), "alpha") -***** error ... - paramci (NegativeBinomialDistribution.fit (x), "alpha", 0) -***** error ... - paramci (NegativeBinomialDistribution.fit (x), "alpha", 1) -***** error ... - paramci (NegativeBinomialDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (NegativeBinomialDistribution.fit (x), "alpha", "") -***** error ... - paramci (NegativeBinomialDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (NegativeBinomialDistribution.fit (x), "parameter", "R", ... - "alpha", {0.05}) -***** error ... - paramci (NegativeBinomialDistribution.fit (x), ... - "parameter", {"R", "P", "param"}) -***** error ... - paramci (NegativeBinomialDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"R", "P", "param"}) -***** error ... - paramci (NegativeBinomialDistribution.fit (x), "parameter", "param") -***** error ... - paramci (NegativeBinomialDistribution.fit (x), "alpha", 0.01, ... - "parameter", "param") -***** error ... - paramci (NegativeBinomialDistribution.fit (x), "NAME", "value") -***** error ... - paramci (NegativeBinomialDistribution.fit (x), "alpha", 0.01, ... - "NAME", "value") -***** error ... - paramci (NegativeBinomialDistribution.fit (x), "alpha", 0.01, ... - "parameter", "R", "NAME", "value") -***** error ... - plot (NegativeBinomialDistribution, "Parent") -***** error ... - plot (NegativeBinomialDistribution, "PlotType", 12) -***** error ... - plot (NegativeBinomialDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (NegativeBinomialDistribution, "PlotType", "pdfcdf") -***** error ... - plot (NegativeBinomialDistribution, "Discrete", "pdfcdf") -***** error ... - plot (NegativeBinomialDistribution, "Discrete", [1, 0]) -***** error ... - plot (NegativeBinomialDistribution, "Discrete", {true}) -***** error ... - plot (NegativeBinomialDistribution, "Parent", 12) -***** error ... - plot (NegativeBinomialDistribution, "Parent", "hax") -***** error ... - proflik (NegativeBinomialDistribution, 2) -***** error ... - proflik (NegativeBinomialDistribution.fit (x), 3) -***** error ... - proflik (NegativeBinomialDistribution.fit (x), [1, 2]) -***** error ... - proflik (NegativeBinomialDistribution.fit (x), {1}) -***** error ... - proflik (NegativeBinomialDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (NegativeBinomialDistribution.fit (x), 1, "Display") -***** error ... - proflik (NegativeBinomialDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (NegativeBinomialDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (NegativeBinomialDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (NegativeBinomialDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (NegativeBinomialDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (NegativeBinomialDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (NegativeBinomialDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (NegativeBinomialDistribution.fit (x), 1, {[1 2 3]}, "Display", "on") -***** error ... - truncate (NegativeBinomialDistribution) -***** error ... - truncate (NegativeBinomialDistribution, 2) -***** error ... - truncate (NegativeBinomialDistribution, 4, 2) -***** shared pd - pd = NegativeBinomialDistribution(1, 0.5); - pd(2) = NegativeBinomialDistribution(1, 0.6); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -81 tests, 81 passed, 0 known failure, 0 skipped -[inst/dist_obj/GeneralizedExtremeValueDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/GeneralizedExtremeValueDistribution.m -***** shared pd, t - pd = GeneralizedExtremeValueDistribution; - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0.3679, 0.6922, 0.8734, 0.9514, 0.9819, 0.9933], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7195, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.8, 0.8734, 0.9514, 0.9819], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.7195, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [-Inf, -0.4759, 0.0874, 0.6717, 1.4999, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.1999, 2.4433, 2.7568, 3.2028, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.0874, 0.6717, 1.4999, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4433, 2.7568, 3.2028, 4, NaN], 1e-4); -***** assert (iqr (pd), 1.5725, 1e-4); -***** assert (iqr (t), 0.8164, 1e-4); -***** assert (mean (pd), 0.5772, 1e-4); -***** assert (mean (t), 2.7043, 1e-4); -***** assert (median (pd), 0.3665, 1e-4); -***** assert (median (t), 2.5887, 1e-4); -***** assert (pdf (pd, [0:5]), [0.3679, 0.2546, 0.1182, 0.0474, 0.0180, 0.0067], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 1.0902, 0.4369, 0.1659, 0], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0.1794, 0.2546, 0.1182, 0.0474, 0.0180, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 1.0902, 0.4369, 0.1659, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 1.2825, 1e-4); -***** assert (std (t), 0.5289, 1e-4); -***** assert (var (pd), 1.6449, 1e-4); -***** assert (var (t), 0.2798, 1e-4); -***** error ... - GeneralizedExtremeValueDistribution(Inf, 1, 1) -***** error ... - GeneralizedExtremeValueDistribution(i, 1, 1) -***** error ... - GeneralizedExtremeValueDistribution("a", 1, 1) -***** error ... - GeneralizedExtremeValueDistribution([1, 2], 1, 1) -***** error ... - GeneralizedExtremeValueDistribution(NaN, 1, 1) -***** error ... - GeneralizedExtremeValueDistribution(1, 0, 1) -***** error ... - GeneralizedExtremeValueDistribution(1, -1, 1) -***** error ... - GeneralizedExtremeValueDistribution(1, Inf, 1) -***** error ... - GeneralizedExtremeValueDistribution(1, i, 1) -***** error ... - GeneralizedExtremeValueDistribution(1, "a", 1) -***** error ... - GeneralizedExtremeValueDistribution(1, [1, 2], 1) -***** error ... - GeneralizedExtremeValueDistribution(1, NaN, 1) -***** error ... - GeneralizedExtremeValueDistribution(1, 1, Inf) -***** error ... - GeneralizedExtremeValueDistribution(1, 1, i) -***** error ... - GeneralizedExtremeValueDistribution(1, 1, "a") -***** error ... - GeneralizedExtremeValueDistribution(1, 1, [1, 2]) -***** error ... - GeneralizedExtremeValueDistribution(1, 1, NaN) -***** error ... - cdf (GeneralizedExtremeValueDistribution, 2, "uper") -***** error ... - cdf (GeneralizedExtremeValueDistribution, 2, 3) -***** shared x - x = gevrnd (1, 1, 1, [1, 100]); -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha") -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", 0) -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", 1) -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", "") -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), ... - "parameter", "sigma", "alpha", {0.05}) -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), ... - "parameter", {"k", "sigma", "mu", "param"}) -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"k", "sigma", "mu", "param"}) -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), "parameter", "param") -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", 0.01, ... - "parameter", "param") -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), "NAME", "value") -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", 0.01, ... - "NAME", "value") -***** error ... - paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", 0.01, ... - "parameter", "sigma", "NAME", "value") -***** error ... - plot (GeneralizedExtremeValueDistribution, "Parent") -***** error ... - plot (GeneralizedExtremeValueDistribution, "PlotType", 12) -***** error ... - plot (GeneralizedExtremeValueDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (GeneralizedExtremeValueDistribution, "PlotType", "pdfcdf") -***** error ... - plot (GeneralizedExtremeValueDistribution, "Discrete", "pdfcdf") -***** error ... - plot (GeneralizedExtremeValueDistribution, "Discrete", [1, 0]) -***** error ... - plot (GeneralizedExtremeValueDistribution, "Discrete", {true}) -***** error ... - plot (GeneralizedExtremeValueDistribution, "Parent", 12) -***** error ... - plot (GeneralizedExtremeValueDistribution, "Parent", "hax") -***** error ... - proflik (GeneralizedExtremeValueDistribution, 2) -***** error ... - proflik (GeneralizedExtremeValueDistribution.fit (x), 4) -***** error ... - proflik (GeneralizedExtremeValueDistribution.fit (x), [1, 2]) -***** error ... - proflik (GeneralizedExtremeValueDistribution.fit (x), {1}) -***** error ... - proflik (GeneralizedExtremeValueDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (GeneralizedExtremeValueDistribution.fit (x), 1, "Display") -***** error ... - proflik (GeneralizedExtremeValueDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (GeneralizedExtremeValueDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (GeneralizedExtremeValueDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (GeneralizedExtremeValueDistribution.fit (x), 1, ... - "Display", ["on"; "on"]) -***** error ... - proflik (GeneralizedExtremeValueDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (GeneralizedExtremeValueDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (GeneralizedExtremeValueDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (GeneralizedExtremeValueDistribution.fit (x), 1, {[1 2 3 4]}, ... - "Display", "on") -***** error ... - truncate (GeneralizedExtremeValueDistribution) -***** error ... - truncate (GeneralizedExtremeValueDistribution, 2) -***** error ... - truncate (GeneralizedExtremeValueDistribution, 4, 2) -***** shared pd - pd = GeneralizedExtremeValueDistribution(1, 1, 1); - pd(2) = GeneralizedExtremeValueDistribution(1, 3, 1); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -98 tests, 98 passed, 0 known failure, 0 skipped -[inst/dist_obj/WeibullDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/WeibullDistribution.m -***** shared pd, t - pd = WeibullDistribution; - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.6321, 0.8647, 0.9502, 0.9817, 0.9933], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7311, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.7769, 0.8647, 0.9502, 0.9817, NaN], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.7311, 1, NaN], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0.2231, 0.5108, 0.9163, 1.6094, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.1899, 2.4244, 2.7315, 3.1768, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.5108, 0.9163, 1.6094, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4244, 2.7315, 3.1768, 4, NaN], 1e-4); -***** assert (iqr (pd), 1.0986, 1e-4); -***** assert (iqr (t), 0.8020, 1e-4); -***** assert (mean (pd), 1, 1e-14); -***** assert (mean (t), 2.6870, 1e-4); -***** assert (median (pd), 0.6931, 1e-4); -***** assert (median (t), 2.5662, 1e-4); -***** assert (pdf (pd, [0:5]), [1, 0.3679, 0.1353, 0.0498, 0.0183, 0.0067], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 1.1565, 0.4255, 0.1565, 0], 1e-4); -***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0.2231, NaN], 1e-4); -***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 1, 1e-14); -***** assert (std (t), 0.5253, 1e-4); -***** assert (var (pd), 1, 1e-14); -***** assert (var (t), 0.2759, 1e-4); -***** error ... - WeibullDistribution(0, 1) -***** error ... - WeibullDistribution(-1, 1) -***** error ... - WeibullDistribution(Inf, 1) -***** error ... - WeibullDistribution(i, 1) -***** error ... - WeibullDistribution("a", 1) -***** error ... - WeibullDistribution([1, 2], 1) -***** error ... - WeibullDistribution(NaN, 1) -***** error ... - WeibullDistribution(1, 0) -***** error ... - WeibullDistribution(1, -1) -***** error ... - WeibullDistribution(1, Inf) -***** error ... - WeibullDistribution(1, i) -***** error ... - WeibullDistribution(1, "a") -***** error ... - WeibullDistribution(1, [1, 2]) -***** error ... - WeibullDistribution(1, NaN) -***** error ... - cdf (WeibullDistribution, 2, "uper") -***** error ... - cdf (WeibullDistribution, 2, 3) -***** shared x - x = wblrnd (1, 1, [1, 100]); -***** error ... - paramci (WeibullDistribution.fit (x), "alpha") -***** error ... - paramci (WeibullDistribution.fit (x), "alpha", 0) -***** error ... - paramci (WeibullDistribution.fit (x), "alpha", 1) -***** error ... - paramci (WeibullDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (WeibullDistribution.fit (x), "alpha", "") -***** error ... - paramci (WeibullDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (WeibullDistribution.fit (x), "parameter", "k", "alpha", {0.05}) -***** error ... - paramci (WeibullDistribution.fit (x), "parameter", {"lambda", "k", "param"}) -***** error ... - paramci (WeibullDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"lambda", "k", "param"}) -***** error ... - paramci (WeibullDistribution.fit (x), "parameter", "param") -***** error ... - paramci (WeibullDistribution.fit (x), "alpha", 0.01, "parameter", "param") -***** error ... - paramci (WeibullDistribution.fit (x), "NAME", "value") -***** error ... - paramci (WeibullDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (WeibullDistribution.fit (x), "alpha", 0.01, "parameter", "k", ... - "NAME", "value") -***** error ... - plot (WeibullDistribution, "Parent") -***** error ... - plot (WeibullDistribution, "PlotType", 12) -***** error ... - plot (WeibullDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (WeibullDistribution, "PlotType", "pdfcdf") -***** error ... - plot (WeibullDistribution, "Discrete", "pdfcdf") -***** error ... - plot (WeibullDistribution, "Discrete", [1, 0]) -***** error ... - plot (WeibullDistribution, "Discrete", {true}) -***** error ... - plot (WeibullDistribution, "Parent", 12) -***** error ... - plot (WeibullDistribution, "Parent", "hax") -***** error ... - proflik (WeibullDistribution, 2) -***** error ... - proflik (WeibullDistribution.fit (x), 3) -***** error ... - proflik (WeibullDistribution.fit (x), [1, 2]) -***** error ... - proflik (WeibullDistribution.fit (x), {1}) -***** error ... - proflik (WeibullDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (WeibullDistribution.fit (x), 1, "Display") -***** error ... - proflik (WeibullDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (WeibullDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (WeibullDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (WeibullDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (WeibullDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (WeibullDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (WeibullDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (WeibullDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (WeibullDistribution) -***** error ... - truncate (WeibullDistribution, 2) -***** error ... - truncate (WeibullDistribution, 4, 2) -***** shared pd - pd = WeibullDistribution(1, 1); - pd(2) = WeibullDistribution(1, 3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -95 tests, 95 passed, 0 known failure, 0 skipped -[inst/dist_obj/LoguniformDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/LoguniformDistribution.m -***** shared pd, t - pd = LoguniformDistribution (1, 4); - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0, 1, 2, 3, 4, 5]), [0, 0, 0.5, 0.7925, 1, 1], 1e-4); -***** assert (cdf (t, [0, 1, 2, 3, 4, 5]), [0, 0, 0, 0.5850, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.2925, 0.5, 0.7925, 1], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.5850, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [1, 1.3195, 1.7411, 2.2974, 3.0314, 4], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.2974, 2.6390, 3.0314, 3.4822, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 1.7411, 2.2974, 3.0314, 4, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.6390, 3.0314, 3.4822, 4, NaN], 1e-4); -***** assert (iqr (pd), 1.4142, 1e-4); -***** assert (iqr (t), 0.9852, 1e-4); -***** assert (mean (pd), 2.1640, 1e-4); -***** assert (mean (t), 2.8854, 1e-4); -***** assert (median (pd), 2); -***** assert (median (t), 2.8284, 1e-4); -***** assert (pdf (pd, [0, 1, 2, 3, 4, 5]), [0, 0.7213, 0.3607, 0.2404, 0.1803, 0], 1e-4); -***** assert (pdf (t, [0, 1, 2, 3, 4, 5]), [0, 0, 0.7213, 0.4809, 0.3607, 0], 1e-4); -***** assert (pdf (pd, [-1, 1, 2, 3, 4, NaN]), [0, 0.7213, 0.3607, 0.2404, 0.1803, NaN], 1e-4); -***** assert (pdf (t, [-1, 1, 2, 3, 4, NaN]), [0, 0, 0.7213, 0.4809, 0.3607, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (pd, 1000, 1) < 1), false); -***** assert (any (random (pd, 1000, 1) > 4), false); -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 0.8527, 1e-4); -***** assert (std (t), 0.5751, 1e-4); -***** assert (var (pd), 0.7270, 1e-4); -***** assert (var (t), 0.3307, 1e-4); -***** error ... - LoguniformDistribution (i, 1) -***** error ... - LoguniformDistribution (Inf, 1) -***** error ... - LoguniformDistribution ([1, 2], 1) -***** error ... - LoguniformDistribution ("a", 1) -***** error ... - LoguniformDistribution (NaN, 1) -***** error ... - LoguniformDistribution (1, i) -***** error ... - LoguniformDistribution (1, Inf) -***** error ... - LoguniformDistribution (1, [1, 2]) -***** error ... - LoguniformDistribution (1, "a") -***** error ... - LoguniformDistribution (1, NaN) -***** error ... - LoguniformDistribution (2, 1) -***** error ... - cdf (LoguniformDistribution, 2, "uper") -***** error ... - cdf (LoguniformDistribution, 2, 3) -***** error ... - plot (LoguniformDistribution, "Parent") -***** error ... - plot (LoguniformDistribution, "PlotType", 12) -***** error ... - plot (LoguniformDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (LoguniformDistribution, "PlotType", "pdfcdf") -***** error ... - plot (LoguniformDistribution, "Discrete", "pdfcdf") -***** error ... - plot (LoguniformDistribution, "Discrete", [1, 0]) -***** error ... - plot (LoguniformDistribution, "Discrete", {true}) -***** error ... - plot (LoguniformDistribution, "Parent", 12) -***** error ... - plot (LoguniformDistribution, "Parent", "hax") -***** error ... - truncate (LoguniformDistribution) -***** error ... - truncate (LoguniformDistribution, 2) -***** error ... - truncate (LoguniformDistribution, 4, 2) -***** shared pd - pd = LoguniformDistribution(1, 4); - pd(2) = LoguniformDistribution(2, 5); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -63 tests, 63 passed, 0 known failure, 0 skipped -[inst/dist_obj/ExtremeValueDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/ExtremeValueDistribution.m -***** shared pd, t - pd = ExtremeValueDistribution (0, 1); - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0.6321, 0.9340, 0.9994, 1, 1, 1], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 1, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.9887, 0.9994, 1, 1], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 1, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [-Inf, -1.4999, -0.6717, -0.0874, 0.4759, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.0298, 2.0668, 2.1169, 2.1971, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, -0.6717, -0.0874, 0.4759, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.0668, 2.1169, 2.1971, 4, NaN], 1e-4); -***** assert (iqr (pd), 1.5725, 1e-4); -***** assert (iqr (t), 0.1338, 1e-4); -***** assert (mean (pd), -0.5772, 1e-4); -***** assert (mean (t), 2.1206, 1e-4); -***** assert (median (pd), -0.3665, 1e-4); -***** assert (median (t), 2.0897, 1e-4); -***** assert (pdf (pd, [0:5]), [0.3679, 0.1794, 0.0046, 0, 0, 0], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 7.3891, 0.0001, 0, 0], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0.2546, 0.1794, 0.0046, 0, 0, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 7.3891, 0.0001, 0, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 1.2825, 1e-4); -***** assert (std (t), 0.1091, 1e-4); -***** assert (var (pd), 1.6449, 1e-4); -***** assert (var (t), 0.0119, 1e-4); -***** error ... - ExtremeValueDistribution(Inf, 1) -***** error ... - ExtremeValueDistribution(i, 1) -***** error ... - ExtremeValueDistribution("a", 1) -***** error ... - ExtremeValueDistribution([1, 2], 1) -***** error ... - ExtremeValueDistribution(NaN, 1) -***** error ... - ExtremeValueDistribution(1, 0) -***** error ... - ExtremeValueDistribution(1, -1) -***** error ... - ExtremeValueDistribution(1, Inf) -***** error ... - ExtremeValueDistribution(1, i) -***** error ... - ExtremeValueDistribution(1, "a") -***** error ... - ExtremeValueDistribution(1, [1, 2]) -***** error ... - ExtremeValueDistribution(1, NaN) -***** error ... - cdf (ExtremeValueDistribution, 2, "uper") -***** error ... - cdf (ExtremeValueDistribution, 2, 3) -***** shared x - rand ("seed", 1); - x = evrnd (1, 1, [1000, 1]); -***** error ... - paramci (ExtremeValueDistribution.fit (x), "alpha") -***** error ... - paramci (ExtremeValueDistribution.fit (x), "alpha", 0) -***** error ... - paramci (ExtremeValueDistribution.fit (x), "alpha", 1) -***** error ... - paramci (ExtremeValueDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (ExtremeValueDistribution.fit (x), "alpha", "") -***** error ... - paramci (ExtremeValueDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (ExtremeValueDistribution.fit (x), ... - "parameter", "mu", "alpha", {0.05}) -***** error ... - paramci (ExtremeValueDistribution.fit (x), ... - "parameter", {"mu", "sigma", "param"}) -***** error ... - paramci (ExtremeValueDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"mu", "sigma", "param"}) -***** error ... - paramci (ExtremeValueDistribution.fit (x), "parameter", "param") -***** error ... - paramci (ExtremeValueDistribution.fit (x), "alpha", 0.01, ... - "parameter", "param") -***** error ... - paramci (ExtremeValueDistribution.fit (x), "NAME", "value") -***** error ... - paramci (ExtremeValueDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (ExtremeValueDistribution.fit (x), "alpha", 0.01, ... - "parameter", "mu", "NAME", "value") -***** error ... - plot (ExtremeValueDistribution, "Parent") -***** error ... - plot (ExtremeValueDistribution, "PlotType", 12) -***** error ... - plot (ExtremeValueDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (ExtremeValueDistribution, "PlotType", "pdfcdf") -***** error ... - plot (ExtremeValueDistribution, "Discrete", "pdfcdf") -***** error ... - plot (ExtremeValueDistribution, "Discrete", [1, 0]) -***** error ... - plot (ExtremeValueDistribution, "Discrete", {true}) -***** error ... - plot (ExtremeValueDistribution, "Parent", 12) -***** error ... - plot (ExtremeValueDistribution, "Parent", "hax") -***** error ... - proflik (ExtremeValueDistribution, 2) -***** error ... - proflik (ExtremeValueDistribution.fit (x), 3) -***** error ... - proflik (ExtremeValueDistribution.fit (x), [1, 2]) -***** error ... - proflik (ExtremeValueDistribution.fit (x), {1}) -***** error ... - proflik (ExtremeValueDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (ExtremeValueDistribution.fit (x), 1, "Display") -***** error ... - proflik (ExtremeValueDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (ExtremeValueDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (ExtremeValueDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (ExtremeValueDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (ExtremeValueDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (ExtremeValueDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (ExtremeValueDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (ExtremeValueDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (ExtremeValueDistribution) -***** error ... - truncate (ExtremeValueDistribution, 2) -***** error ... - truncate (ExtremeValueDistribution, 4, 2) -***** shared pd - pd = ExtremeValueDistribution(1, 1); - pd(2) = ExtremeValueDistribution(1, 3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -93 tests, 93 passed, 0 known failure, 0 skipped -[inst/dist_obj/PoissonDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/PoissonDistribution.m -***** shared pd, t - pd = PoissonDistribution; - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0.3679, 0.7358, 0.9197, 0.9810, 0.9963, 0.9994], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.7358, 0.9197, 0.9810, 0.9963], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0, 1, 1, 2, Inf], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 1, 1, 2, Inf, NaN], 1e-4); -***** assert (iqr (pd), 2); -***** assert (mean (pd), 1); -***** assert (median (pd), 1); -***** assert (pdf (pd, [0:5]), [0.3679, 0.3679, 0.1839, 0.0613, 0.0153, 0.0031], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.3679, 0.1839, 0.0613, 0.0153, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 1); -***** assert (var (pd), 1); -***** error ... - PoissonDistribution(0) -***** error ... - PoissonDistribution(-1) -***** error ... - PoissonDistribution(Inf) -***** error ... - PoissonDistribution(i) -***** error ... - PoissonDistribution("a") -***** error ... - PoissonDistribution([1, 2]) -***** error ... - PoissonDistribution(NaN) -***** error ... - cdf (PoissonDistribution, 2, "uper") -***** error ... - cdf (PoissonDistribution, 2, 3) -***** shared x - x = poissrnd (1, [1, 100]); -***** error ... - paramci (PoissonDistribution.fit (x), "alpha") -***** error ... - paramci (PoissonDistribution.fit (x), "alpha", 0) -***** error ... - paramci (PoissonDistribution.fit (x), "alpha", 1) -***** error ... - paramci (PoissonDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (PoissonDistribution.fit (x), "alpha", "") -***** error ... - paramci (PoissonDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (PoissonDistribution.fit (x), "parameter", "lambda", "alpha", {0.05}) -***** error ... - paramci (PoissonDistribution.fit (x), "parameter", {"lambda", "param"}) -***** error ... - paramci (PoissonDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"lambda", "param"}) -***** error ... - paramci (PoissonDistribution.fit (x), "parameter", "param") -***** error ... - paramci (PoissonDistribution.fit (x), "alpha", 0.01, "parameter", "param") -***** error ... - paramci (PoissonDistribution.fit (x), "NAME", "value") -***** error ... - paramci (PoissonDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (PoissonDistribution.fit (x), "alpha", 0.01, ... - "parameter", "lambda", "NAME", "value") -***** error ... - plot (PoissonDistribution, "Parent") -***** error ... - plot (PoissonDistribution, "PlotType", 12) -***** error ... - plot (PoissonDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (PoissonDistribution, "PlotType", "pdfcdf") -***** error ... - plot (PoissonDistribution, "Discrete", "pdfcdf") -***** error ... - plot (PoissonDistribution, "Discrete", [1, 0]) -***** error ... - plot (PoissonDistribution, "Discrete", {true}) -***** error ... - plot (PoissonDistribution, "Parent", 12) -***** error ... - plot (PoissonDistribution, "Parent", "hax") -***** error ... - proflik (PoissonDistribution, 2) -***** error ... - proflik (PoissonDistribution.fit (x), 3) -***** error ... - proflik (PoissonDistribution.fit (x), [1, 2]) -***** error ... - proflik (PoissonDistribution.fit (x), {1}) -***** error ... - proflik (PoissonDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (PoissonDistribution.fit (x), 1, "Display") -***** error ... - proflik (PoissonDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (PoissonDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (PoissonDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (PoissonDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (PoissonDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (PoissonDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (PoissonDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (PoissonDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (PoissonDistribution) -***** error ... - truncate (PoissonDistribution, 2) -***** error ... - truncate (PoissonDistribution, 4, 2) -***** shared pd - pd = PoissonDistribution(1); - pd(2) = PoissonDistribution(3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -77 tests, 77 passed, 0 known failure, 0 skipped -[inst/dist_obj/LognormalDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/LognormalDistribution.m -***** shared pd, t - pd = LognormalDistribution; - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.5, 0.7559, 0.8640, 0.9172, 0.9462], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.6705, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.6574, 0.7559, 0.8640, 0.9172], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.6705, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0.4310, 0.7762, 1.2883, 2.3201, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.2256, 2.5015, 2.8517, 3.3199, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.7762, 1.2883, 2.3201, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.5015, 2.8517, 3.3199, 4, NaN], 1e-4); -***** assert (iqr (pd), 1.4536, 1e-4); -***** assert (iqr (t), 0.8989, 1e-4); -***** assert (mean (pd), 1.6487, 1e-4); -***** assert (mean (t), 2.7692, 1e-4); -***** assert (median (pd), 1, 1e-4); -***** assert (median (t), 2.6653, 1e-4); -***** assert (pdf (pd, [0:5]), [0, 0.3989, 0.1569, 0.0727, 0.0382, 0.0219], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 0.9727, 0.4509, 0.2366, 0], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.3989, 0.1569, 0.0727, 0.0382, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 0.9727, 0.4509, 0.2366, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 2.1612, 1e-4); -***** assert (std (t), 0.5540, 1e-4); -***** assert (var (pd), 4.6708, 1e-4); -***** assert (var (t), 0.3069, 1e-4); -***** error ... - LognormalDistribution(Inf, 1) -***** error ... - LognormalDistribution(i, 1) -***** error ... - LognormalDistribution("a", 1) -***** error ... - LognormalDistribution([1, 2], 1) -***** error ... - LognormalDistribution(NaN, 1) -***** error ... - LognormalDistribution(1, 0) -***** error ... - LognormalDistribution(1, -1) -***** error ... - LognormalDistribution(1, Inf) -***** error ... - LognormalDistribution(1, i) -***** error ... - LognormalDistribution(1, "a") -***** error ... - LognormalDistribution(1, [1, 2]) -***** error ... - LognormalDistribution(1, NaN) -***** error ... - cdf (LognormalDistribution, 2, "uper") -***** error ... - cdf (LognormalDistribution, 2, 3) +[inst/plsregress.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/plsregress.m +***** demo + ## Perform Partial Least-Squares Regression + + ## Load the spectra data set and use the near infrared (NIR) spectral + ## intensities (NIR) as the predictor and the corresponding octave + ## ratings (octave) as the response. + load spectra + + ## Perform PLS regression with 10 components + [xload, yload, xscore, yscore, coef, ptcVar] = plsregress (NIR, octane, 10); + + ## Plot the percentage of explained variance in the response variable + ## (PCTVAR) as a function of the number of components. + plot (1:10, cumsum (100 * ptcVar(2,:)), "-ro"); + xlim ([1, 10]); + xlabel ("Number of PLS components"); + ylabel ("Percentage of Explained Variance in octane"); + title ("Explained Variance per PLS components"); + + ## Compute the fitted response and display the residuals. + octane_fitted = [ones(size(NIR,1),1), NIR] * coef; + residuals = octane - octane_fitted; + figure + stem (residuals, "color", "r", "markersize", 4, "markeredgecolor", "r") + xlabel ("Observations"); + ylabel ("Residuals"); + title ("Residuals in octane's fitted responce"); +***** demo + ## Calculate Variable Importance in Projection (VIP) for PLS Regression + + ## Load the spectra data set and use the near infrared (NIR) spectral + ## intensities (NIR) as the predictor and the corresponding octave + ## ratings (octave) as the response. Variables with a VIP score greater than + ## 1 are considered important for the projection of the PLS regression model. + load spectra + + ## Perform PLS regression with 10 components + [xload, yload, xscore, yscore, coef, pctVar, mse, stats] = ... + plsregress (NIR, octane, 10); + + ## Calculate the normalized PLS weights + W0 = stats.W ./ sqrt(sum(stats.W.^2,1)); + + ## Calculate the VIP scores for 10 components + nobs = size (xload, 1); + SS = sum (xscore .^ 2, 1) .* sum (yload .^ 2, 1); + VIPscore = sqrt (nobs * sum (SS .* (W0 .^ 2), 2) ./ sum (SS, 2)); + + ## Find variables with a VIP score greater than or equal to 1 + VIPidx = find (VIPscore >= 1); + + ## Plot the VIP scores + scatter (1:length (VIPscore), VIPscore, "xb"); + hold on + scatter (VIPidx, VIPscore (VIPidx), "xr"); + plot ([1, length(VIPscore)], [1, 1], "--k"); + hold off + axis ("tight"); + xlabel ("Predictor Variables"); + ylabel ("VIP scores"); + title ("VIP scores for each predictror variable with 10 components"); +***** test + load spectra + [xload, yload, xscore, yscore, coef, pctVar] = plsregress (NIR, octane, 10); + xload1_out = [-0.0170, 0.0039, 0.0095, 0.0258, 0.0025, ... + -0.0075, 0.0000, 0.0018, -0.0027, 0.0020]; + yload_out = [6.6384, 9.3106, 2.0505, 0.6471, 0.9625, ... + 0.5905, 0.4244, 0.2437, 0.3516, 0.2548]; + xscore1_out = [-0.0401, -0.1764, -0.0340, 0.1669, 0.1041, ... + -0.2067, 0.0457, 0.1565, 0.0706, -0.1471]; + yscore1_out = [-12.4635, -15.0003, 0.0638, 0.0652, -0.0070, ... + -0.0634, 0.0062, -0.0012, -0.0151, -0.0173]; + assert (xload(1,:), xload1_out, 1e-4); + assert (yload, yload_out, 1e-4); + assert (xscore(1,:), xscore1_out, 1e-4); + assert (yscore(1,:), yscore1_out, 1e-4); +***** test + load spectra + [xload, yload, xscore, yscore, coef, pctVar] = plsregress (NIR, octane, 5); + xload1_out = [-0.0170, 0.0039, 0.0095, 0.0258, 0.0025]; + yload_out = [6.6384, 9.3106, 2.0505, 0.6471, 0.9625]; + xscore1_out = [-0.0401, -0.1764, -0.0340, 0.1669, 0.1041]; + yscore1_out = [-12.4635, -15.0003, 0.0638, 0.0652, -0.0070]; + assert (xload(1,:), xload1_out, 1e-4); + assert (yload, yload_out, 1e-4); + assert (xscore(1,:), xscore1_out, 1e-4); + assert (yscore(1,:), yscore1_out, 1e-4); +***** error + plsregress (1) +***** error plsregress (1, "asd") +***** error plsregress (1, {1,2,3}) +***** error plsregress ("asd", 1) +***** error plsregress ({1,2,3}, 1) +***** error ... + plsregress (ones (20,3), ones (15,1)) +***** error ... + plsregress (ones (20,3), ones (20,1), 0) +***** error ... + plsregress (ones (20,3), ones (20,1), -5) +***** error ... + plsregress (ones (20,3), ones (20,1), 3.2) +***** error ... + plsregress (ones (20,3), ones (20,1), [2, 3]) +***** error ... + plsregress (ones (20,3), ones (20,1), 4) +***** error ... + plsregress (ones (20,3), ones (20,1), 3, "cv", 4.5) +***** error ... + plsregress (ones (20,3), ones (20,1), 3, "cv", -1) +***** error ... + plsregress (ones (20,3), ones (20,1), 3, "cv", "somestring") +***** error ... + plsregress (ones (20,3), ones (20,1), 3, "cv", 3, "mcreps", 2.2) +***** error ... + plsregress (ones (20,3), ones (20,1), 3, "cv", 3, "mcreps", -2) +***** error ... + plsregress (ones (20,3), ones (20,1), 3, "cv", 3, "mcreps", [1, 2]) +***** error ... + plsregress (ones (20,3), ones (20,1), 3, "Name", 3, "mcreps", 1) +***** error ... + plsregress (ones (20,3), ones (20,1), 3, "cv", 3, "Name", 1) +***** error ... + plsregress (ones (20,3), ones (20,1), 3, "mcreps", 2) +***** error ... + plsregress (ones (20,3), ones (20,1), 3, "cv", "resubstitution", "mcreps", 2) +***** error plsregress (1, 2) +24 tests, 24 passed, 0 known failure, 0 skipped +[inst/normplot.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/normplot.m +***** demo + h = normplot([1:20]); +***** demo + h = normplot([1:20;5:2:44]'); +***** demo + ax = newplot(); + h = normplot(ax, [1:20]); + ax = gca; + h = normplot(ax, [-10:10]); + set (ax, "xlim", [-11, 21]); +***** error normplot (); +***** error normplot (23); +***** error normplot (23, [1:20]); +***** error normplot (ones(3,4,5)); +***** test + hf = figure ("visible", "off"); + unwind_protect + ax = newplot (hf); + h = normplot (ax, [1:20]); + ax = gca; + h = normplot(ax, [-10:10]); + set (ax, "xlim", [-11, 21]); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** test + hf = figure ("visible", "off"); + unwind_protect + h = normplot([1:20;5:2:44]'); + unwind_protect_cleanup + close (hf); + end_unwind_protect +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/runstest.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/runstest.m +***** test + ## NIST beam deflection data + ## http://www.itl.nist.gov/div898/handbook/eda/section4/eda425.htm + data = [-213, -564, -35, -15, 141, 115, -420, -360, 203, -338, -431, ... + 194, -220, -513, 154, -125, -559, 92, -21, -579, -52, 99, -543, ... + -175, 162, -457, -346, 204, -300, -474, 164, -107, -572, -8, 83, ... + -541, -224, 180, -420, -374, 201, -236, -531, 83, 27, -564, -112, ... + 131, -507, -254, 199, -311, -495, 143, -46, -579, -90, 136, ... + -472, -338, 202, -287, -477, 169, -124, -568, 17, 48, -568, -135, ... + 162, -430, -422, 172, -74, -577, -13, 92, -534, -243, 194, -355, ... + -465, 156, -81, -578, -64, 139, -449, -384, 193, -198, -538, 110, ... + -44, -577, -6, 66, -552, -164, 161, -460, -344, 205, -281, -504, ... + 134, -28, -576, -118, 156, -437, -381, 200, -220, -540, 83, 11, ... + -568, -160, 172, -414, -408, 188, -125, -572, -32, 139, -492, ... + -321, 205, -262, -504, 142, -83, -574, 0, 48, -571, -106, 137, ... + -501, -266, 190, -391, -406, 194, -186, -553, 83, -13, -577, -49, ... + 103, -515, -280, 201, 300, -506, 131, -45, -578, -80, 138, -462, ... + -361, 201, -211, -554, 32, 74, -533, -235, 187, -372, -442, 182, ... + -147, -566, 25, 68, -535, -244, 194, -351, -463, 174, -125, -570, ... + 15, 72, -550, -190, 172, -424, -385, 198, -218, -536, 96]; + [h, p, stats] = runstest (data, median (data)); + expected_h = 1; + expected_p = 0.008562; + expected_z = 2.6229; + assert (h, expected_h); + assert (p, expected_p, 1E-6); + assert (stats.z, expected_z, 1E-4); ***** shared x + x = [45, -60, 1.225, 55.4, -9 27]; +***** test + [h, p, stats] = runstest (x); + assert (h, 0); + assert (p, 0.6, 1e-14); + assert (stats.nruns, 5); + assert (stats.n1, 3); + assert (stats.n0, 3); + assert (stats.z, 0.456435464587638, 1e-14); +***** test + [h, p, stats] = runstest (x, [], "method", "approximate"); + assert (h, 0); + assert (p, 0.6481, 1e-4); + assert (stats.z, 0.456435464587638, 1e-14); +***** test + [h, p, stats] = runstest (x, [], "tail", "left"); + assert (h, 0); + assert (p, 0.9, 1e-14); + assert (stats.z, 1.369306393762915, 1e-14); +***** error runstest (ones (2,20)) +***** error runstest (["asdasda"]) +***** error ... + runstest ([2 3 4 3 2 3 4], "updown") +***** error ... + runstest ([2 3 4 3 2 3 4], [], "alpha", 0) +***** error ... + runstest ([2 3 4 3 2 3 4], [], "alpha", [0.02 0.2]) +***** error ... + runstest ([2 3 4 3 2 3 4], [], "alpha", 1.2) +***** error ... + runstest ([2 3 4 3 2 3 4], [], "alpha", -0.05) +***** error ... + runstest ([2 3 4 3 2 3 4], [], "method", "some") +***** error ... + runstest ([2 3 4 3 2 3 4], [], "tail", "some") +***** error ... + runstest ([2 3 4 3 2 3 4], [], "option", "some") +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/cluster.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cluster.m +***** error cluster () +***** error cluster ([1 1], "Cutoff", 1) +***** error cluster ([1 2 1], "Bogus", 1) +***** error cluster ([1 2 1], "Cutoff", -1) +***** error cluster ([1 2 1], "Cutoff", 1, "Bogus", 1) +***** test +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/trimmean.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/trimmean.m +***** test + x = reshape (1:40, [5, 4, 2]); + x([3, 37]) = -100; + assert (trimmean (x, 10, "all"), 19.4722, 1e-4); +***** test + x = reshape (1:40, [5, 4, 2]); + x([3, 37]) = -100; + out = trimmean (x, 10, [1, 2]); + assert (out(1,1,1), 10.3889, 1e-4); + assert (out(1,1,2), 29.6111, 1e-4); +***** test + x = reshape (1:40, [5, 4, 2]); + x([3, 37]) = -100; + x([4, 38]) = NaN; + assert (trimmean (x, 10, "all"), 19.3824, 1e-4); +***** test + x = reshape (1:40, [5, 4, 2]); + x([3, 37]) = -100; + out = trimmean (x, 10, 1); + assert (out(:,:,1), [-17.6, 8, 13, 18]); + assert (out(:,:,2), [23, 28, 33, 10.6]); +***** test + x = reshape (1:40, [5, 4, 2]); + x([3, 37]) = -100; + x([4, 38]) = NaN; + out = trimmean (x, 10, 1); + assert (out(:,:,1), [-23, 8, 13, 18]); + assert (out(:,:,2), [23, 28, 33, 3.75]); +***** test + x = reshape (1:40, [5, 4, 2]); + x([3, 37]) = -100; + out = trimmean (x, 10, 2); + assert (out(:,:,1), [8.5; 9.5; -15.25; 11.5; 12.5]); + assert (out(:,:,2), [28.5; -4.75; 30.5; 31.5; 32.5]); +***** test + x = reshape (1:40, [5, 4, 2]); + x([3, 37]) = -100; + x([4, 38]) = NaN; + out = trimmean (x, 10, 2); + assert (out(:,:,1), [8.5; 9.5; -15.25; 14; 12.5]); + assert (out(:,:,2), [28.5; -4.75; 28; 31.5; 32.5]); +***** test + x = reshape (1:40, [5, 4, 2]); + x([3, 37]) = -100; + out = trimmean (x, 10, [1, 2, 3]); + assert (out, trimmean (x, 10, "all")); +***** test + x = reshape (1:40, [5, 4, 2]); + x([3, 37]) = -100; + x([4, 38]) = NaN; + out = trimmean (x, 10, [1, 2]); + assert (out(1,1,1), 10.7647, 1e-4); + assert (out(1,1,2), 29.1176, 1e-4); +***** test + x = reshape (1:40, [5, 4, 2]); + x([3, 37]) = -100; + x([4, 38]) = NaN; + out = trimmean (x, 10, [1, 3]); + assert (out, [2.5556, 18, 23, 11.6667], 1e-4); +***** test + x = reshape (1:40, [5, 4, 2]); + x([3, 37]) = -100; + x([4, 38]) = NaN; + out = trimmean (x, 10, [2, 3]); + assert (out, [18.5; 2.3750; 3.2857; 24; 22.5], 1e-4); +***** test + x = reshape (1:40, [5, 4, 2]); + x([3, 37]) = -100; + x([4, 38]) = NaN; + out = trimmean (x, 10, [1, 2, 3]); + assert (out, trimmean (x, 10, "all")); +***** test + x = reshape (1:40, [5, 4, 2]); + x([3, 37]) = -100; + x([4, 38]) = NaN; + out = trimmean (x, 10, [2, 3, 5]); + assert (out, [18.5; 2.3750; 3.2857; 24; 22.5], 1e-4); +***** assert (trimmean (reshape (1:40, [5, 4, 2]), 10, 4), reshape(1:40, [5, 4, 2])) +***** assert (trimmean ([], 10), NaN) +***** assert (trimmean ([1;2;3;4;5], 10, 2), [1;2;3;4;5]) +***** error trimmean (1) +***** error trimmean (1,2,3,4,5) +***** error trimmean ([1 2 3 4], -10) +***** error trimmean ([1 2 3 4], 100) +***** error trimmean ([1 2 3 4], 10, "flag") +***** error trimmean ([1 2 3 4], 10, "flag", 1) +***** error ... + trimmean ([1 2 3 4], 10, -1) +***** error ... + trimmean ([1 2 3 4], 10, "floor", -1) +***** error ... + trimmean (reshape (1:40, [5, 4, 2]), 10, [-1, 2]) +***** error ... + trimmean (reshape (1:40, [5, 4, 2]), 10, [1, 2, 2]) +26 tests, 26 passed, 0 known failure, 0 skipped +[inst/chi2gof.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/chi2gof.m +***** demo + x = normrnd (50, 5, 100, 1); + [h, p, stats] = chi2gof (x) + [h, p, stats] = chi2gof (x, "cdf", @(x)normcdf (x, mean(x), std(x))) + [h, p, stats] = chi2gof (x, "cdf", {@normcdf, mean(x), std(x)}) +***** demo + x = rand (100,1 ); + n = length (x); + binedges = linspace (0, 1, 11); + expectedCounts = n * diff (binedges); + [h, p, stats] = chi2gof (x, "binedges", binedges, "expected", expectedCounts) +***** demo + bins = 0:5; + obsCounts = [6 16 10 12 4 2]; + n = sum(obsCounts); + lambdaHat = sum(bins.*obsCounts) / n; + expCounts = n * poisspdf(bins,lambdaHat); + [h, p, stats] = chi2gof (bins, "binctrs", bins, "frequency", obsCounts, ... + "expected", expCounts, "nparams",1) +***** error chi2gof () +***** error chi2gof ([2,3;3,4]) +***** error chi2gof ([1,2,3,4], "nbins", 3, "ctrs", [2,3,4]) +***** error chi2gof ([1,2,3,4], "frequency", [2,3,2]) +***** error chi2gof ([1,2,3,4], "frequency", [2,3,2,-2]) +***** error chi2gof ([1,2,3,4], "frequency", [2,3,2,2], "nparams", i) +***** error chi2gof ([1,2,3,4], "frequency", [2,3,2,2], "alpha", 1.3) +***** error chi2gof ([1,2,3,4], "expected", [-3,2,2]) +***** error chi2gof ([1,2,3,4], "expected", [3,2,2], "nbins", 5) +***** error chi2gof ([1,2,3,4], "cdf", @normcdff) +***** test + x = [1 2 1 3 2 4 3 2 4 3 2 2]; + [h, p, stats] = chi2gof (x); + assert (h, 0); + assert (p, NaN); + assert (stats.chi2stat, 0.1205375022748029, 1e-14); + assert (stats.df, 0); + assert (stats.edges, [1, 2.5, 4], 1e-14); + assert (stats.O, [7, 5], 1e-14); + assert (stats.E, [6.399995519909668, 5.600004480090332], 1e-14); +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/boxplot.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/boxplot.m +***** demo + axis ([0, 3]); + randn ("seed", 1); # for reproducibility + girls = randn (10, 1) * 5 + 140; + randn ("seed", 2); # for reproducibility + boys = randn (13, 1) * 8 + 135; + boxplot ({girls, boys}); + set (gca (), "xtick", [1 2], "xticklabel", {"girls", "boys"}) + title ("Grade 3 heights"); +***** demo + randn ("seed", 7); # for reproducibility + A = randn (10, 1) * 5 + 140; + randn ("seed", 8); # for reproducibility + B = randn (25, 1) * 8 + 135; + randn ("seed", 9); # for reproducibility + C = randn (20, 1) * 6 + 165; + data = [A; B; C]; + groups = [(ones (10, 1)); (ones (25, 1) * 2); (ones (20, 1) * 3)]; + labels = {"Team A", "Team B", "Team C"}; + pos = [2, 1, 3]; + boxplot (data, groups, "Notch", "on", "Labels", labels, "Positions", pos, ... + "OutlierTags", "on", "BoxStyle", "filled"); + title ("Example of Group splitting with paired vectors"); +***** demo + randn ("seed", 1); # for reproducibility + data = randn (100, 9); + boxplot (data, "notch", "on", "boxstyle", "filled", ... + "colors", "ygcwkmb", "whisker", 1.2); + title ("Example of different colors specified with characters"); +***** demo + randn ("seed", 5); # for reproducibility + data = randn (100, 13); + colors = [0.7 0.7 0.7; ... + 0.0 0.4 0.9; ... + 0.7 0.4 0.3; ... + 0.7 0.1 0.7; ... + 0.8 0.7 0.4; ... + 0.1 0.8 0.5; ... + 0.9 0.9 0.2]; + boxplot (data, "notch", "on", "boxstyle", "filled", ... + "colors", colors, "whisker", 1.3, "boxwidth", "proportional"); + title ("Example of different colors specified as RGB values"); +***** error boxplot ("a") +***** error boxplot ({[1 2 3], "a"}) +***** error boxplot ([1 2 3], 1, {2, 3}) +***** error boxplot ([1 2 3], {"a", "b"}) +***** error <'Notch' input argument accepts> boxplot ([1:10], "notch", "any") +***** error boxplot ([1:10], "notch", i) +***** error boxplot ([1:10], "notch", {}) +***** error boxplot (1, "symbol", 1) +***** error <'Orientation' input argument accepts only> boxplot (1, "orientation", "diagonal") +***** error boxplot (1, "orientation", {}) +***** error <'Whisker' input argument accepts only> boxplot (1, "whisker", "a") +***** error <'Whisker' input argument accepts only> boxplot (1, "whisker", [1 3]) +***** error <'OutlierTags' input argument accepts only> boxplot (3, "OutlierTags", "maybe") +***** error boxplot (3, "OutlierTags", {}) +***** error <'Sample_IDs' input argument accepts only> boxplot (1, "sample_IDs", 1) +***** error <'BoxWidth' input argument accepts only> boxplot (1, "boxwidth", 2) +***** error <'BoxWidth' input argument accepts only> boxplot (1, "boxwidth", "anything") +***** error <'Widths' input argument accepts only> boxplot (5, "widths", "a") +***** error <'Widths' input argument accepts only> boxplot (5, "widths", [1:4]) +***** error <'Widths' input argument accepts only> boxplot (5, "widths", []) +***** error <'CapWidths' input argument accepts only> boxplot (5, "capwidths", "a") +***** error <'CapWidths' input argument accepts only> boxplot (5, "capwidths", [1:4]) +***** error <'CapWidths' input argument accepts only> boxplot (5, "capwidths", []) +***** error <'BoxStyle' input argument accepts only> boxplot (1, "Boxstyle", 1) +***** error <'BoxStyle' input argument accepts only> boxplot (1, "Boxstyle", "garbage") +***** error <'Positions' input argument accepts only> boxplot (1, "positions", "aa") +***** error <'Labels' input argument accepts only> boxplot (3, "labels", [1 5]) +***** error <'Colors' input argument accepts only> boxplot (1, "colors", {}) +***** error <'Colors' input argument accepts only> boxplot (2, "colors", [1 2 3 4]) +***** error boxplot (randn (10, 3), 'Sample_IDs', {"a", "b"}) +***** error boxplot (rand (3, 3), [1 2]) +***** test + hf = figure ("visible", "off"); + unwind_protect + [a, b] = boxplot (rand (10, 3)); + assert (size (a), [7, 3]); + assert (numel (b.box), 3); + assert (numel (b.whisker), 12); + assert (numel (b.median), 3); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** test + hf = figure ("visible", "off"); + unwind_protect + [~, b] = boxplot (rand (10, 3), "BoxStyle", "filled", "colors", "ybc"); + assert (numel (b.box_fill), 3); + unwind_protect_cleanup + close (hf); + end_unwind_protect +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/rangesearch.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/rangesearch.m +***** demo + ## Generate 1000 random 2D points from each of five distinct multivariate + ## normal distributions that form five separate classes + N = 1000; + d = 10; + randn ("seed", 5); + X1 = mvnrnd (d * [0, 0], eye (2), 1000); + randn ("seed", 6); + X2 = mvnrnd (d * [1, 1], eye (2), 1000); + randn ("seed", 7); + X3 = mvnrnd (d * [-1, -1], eye (2), 1000); + randn ("seed", 8); + X4 = mvnrnd (d * [1, -1], eye (2), 1000); + randn ("seed", 8); + X5 = mvnrnd (d * [-1, 1], eye (2), 1000); + X = [X1; X2; X3; X4; X5]; + + ## For each point in X, find the points in X that are within a radius d + ## away from the points in X. + Idx = rangesearch (X, X, d, "NSMethod", "exhaustive"); + + ## Select the first point in X (corresponding to the first class) and find + ## its nearest neighbors within the radius d. Display these points in + ## one color and the remaining points in a different color. + x = X(1,:); + nearestPoints = X (Idx{1},:); + nonNearestIdx = true (size (X, 1), 1); + nonNearestIdx(Idx{1}) = false; + + scatter (X(nonNearestIdx,1), X(nonNearestIdx,2)) + hold on + scatter (nearestPoints(:,1),nearestPoints(:,2)) + scatter (x(1), x(2), "black", "filled") + hold off + + ## Select the last point in X (corresponding to the fifth class) and find + ## its nearest neighbors within the radius d. Display these points in + ## one color and the remaining points in a different color. + x = X(end,:); + nearestPoints = X (Idx{1},:); + nonNearestIdx = true (size (X, 1), 1); + nonNearestIdx(Idx{1}) = false; + + figure + scatter (X(nonNearestIdx,1), X(nonNearestIdx,2)) + hold on + scatter (nearestPoints(:,1),nearestPoints(:,2)) + scatter (x(1), x(2), "black", "filled") + hold off +***** shared x, y, X, Y + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = [2, 3, 4; 1, 4, 3]; + X = [1, 2, 3, 4; 2, 3, 4, 5; 3, 4, 5, 6]; + Y = [1, 2, 2, 3; 2, 3, 3, 4]; +***** test + [idx, D] = rangesearch (x, y, 4); + assert (idx, {[1, 4, 2]; [1, 4]}); + assert (D, {[1.7321, 3.3166, 3.4641]; [2, 3.4641]}, 1e-4); +***** test + [idx, D] = rangesearch (x, y, 4, "NSMethod", "exhaustive"); + assert (idx, {[1, 4, 2]; [1, 4]}); + assert (D, {[1.7321, 3.3166, 3.4641]; [2, 3.4641]}, 1e-4); +***** test + [idx, D] = rangesearch (x, y, 4, "NSMethod", "kdtree"); + assert (idx, {[1, 4, 2]; [1, 4]}); + assert (D, {[1.7321, 3.3166, 3.4641]; [2, 3.4641]}, 1e-4); +***** test + [idx, D] = rangesearch (x, y, 4, "SortIndices", true); + assert (idx, {[1, 4, 2]; [1, 4]}); + assert (D, {[1.7321, 3.3166, 3.4641]; [2, 3.4641]}, 1e-4); +***** test + [idx, D] = rangesearch (x, y, 4, "SortIndices", false); + assert (idx, {[1, 2, 4]; [1, 4]}); + assert (D, {[1.7321, 3.4641, 3.3166]; [2, 3.4641]}, 1e-4); +***** test + [idx, D] = rangesearch (x, y, 4, "NSMethod", "exhaustive", ... + "SortIndices", false); + assert (idx, {[1, 2, 4]; [1, 4]}); + assert (D, {[1.7321, 3.4641, 3.3166]; [2, 3.4641]}, 1e-4); +***** test + eucldist = @(v,m) sqrt(sumsq(repmat(v,rows(m),1)-m,2)); + [idx, D] = rangesearch (x, y, 4, "Distance", eucldist); + assert (idx, {[1, 4, 2]; [1, 4]}); + assert (D, {[1.7321, 3.3166, 3.4641]; [2, 3.4641]}, 1e-4); +***** test + eucldist = @(v,m) sqrt(sumsq(repmat(v,rows(m),1)-m,2)); + [idx, D] = rangesearch (x, y, 4, "Distance", eucldist, ... + "NSMethod", "exhaustive"); + assert (idx, {[1, 4, 2]; [1, 4]}); + assert (D, {[1.7321, 3.3166, 3.4641]; [2, 3.4641]}, 1e-4); +***** test + [idx, D] = rangesearch (x, y, 1.5, "Distance", "seuclidean", ... + "NSMethod", "exhaustive"); + assert (idx, {[1, 4, 2]; [1, 4]}); + assert (D, {[0.6024, 1.0079, 1.2047]; [0.6963, 1.2047]}, 1e-4); +***** test + [idx, D] = rangesearch (x, y, 1.5, "Distance", "seuclidean", ... + "NSMethod", "exhaustive", "SortIndices", false); + assert (idx, {[1, 2, 4]; [1, 4]}); + assert (D, {[0.6024, 1.2047, 1.0079]; [0.6963, 1.2047]}, 1e-4); +***** test + [idx, D] = rangesearch (X, Y, 4); + assert (idx, {[1, 2]; [1, 2, 3]}); + assert (D, {[1.4142, 3.1623]; [1.4142, 1.4142, 3.1623]}, 1e-4); +***** test + [idx, D] = rangesearch (X, Y, 2); + assert (idx, {[1]; [1, 2]}); + assert (D, {[1.4142]; [1.4142, 1.4142]}, 1e-4); +***** test + eucldist = @(v,m) sqrt(sumsq(repmat(v,rows(m),1)-m,2)); + [idx, D] = rangesearch (X, Y, 4, "Distance", eucldist); + assert (idx, {[1, 2]; [1, 2, 3]}); + assert (D, {[1.4142, 3.1623]; [1.4142, 1.4142, 3.1623]}, 1e-4); +***** test + [idx, D] = rangesearch (X, Y, 4, "SortIndices", false); + assert (idx, {[1, 2]; [1, 2, 3]}); + assert (D, {[1.4142, 3.1623]; [1.4142, 1.4142, 3.1623]}, 1e-4); +***** test + [idx, D] = rangesearch (X, Y, 4, "Distance", "seuclidean", ... + "NSMethod", "exhaustive"); + assert (idx, {[1, 2]; [1, 2, 3]}); + assert (D, {[1.4142, 3.1623]; [1.4142, 1.4142, 3.1623]}, 1e-4); +***** error rangesearch (1) +***** error ... + rangesearch (ones (4, 5), ones (4)) +***** error ... + rangesearch (ones (4, 2), ones (3, 2), 1, "Distance", "euclidean", "some", "some") +***** error ... + rangesearch (ones (4, 5), ones (1, 5), 1, "scale", ones (1, 5), "P", 3) +***** error ... + rangesearch (ones (4, 5), ones (1, 5), 1, "P",-2) +***** error ... + rangesearch (ones (4, 5), ones (1, 5), 1, "scale", ones(4,5), "distance", "euclidean") +***** error ... + rangesearch (ones (4, 5), ones (1, 5), 1, "cov", ["some" "some"]) +***** error ... + rangesearch (ones (4, 5), ones (1, 5), 1, "cov", ones(4,5), "distance", "euclidean") +***** error ... + rangesearch (ones (4, 5), ones (1, 5), 1, "bucketsize", -1) +***** error ... + rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "cosine") +***** error ... + rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "mahalanobis") +***** error ... + rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "correlation") +***** error ... + rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "seuclidean") +***** error ... + rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "spearman") +***** error ... + rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "hamming") +***** error ... + rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "jaccard") +31 tests, 31 passed, 0 known failure, 0 skipped +[inst/mhsample.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/mhsample.m +***** demo + ## Define function to sample + d = 2; + mu = [-1; 2]; + rand ("seed", 5) # for reproducibility + Sigma = rand (d); + Sigma = (Sigma + Sigma'); + Sigma += eye (d) * abs (eigs (Sigma, 1, "sa")) * 1.1; + pdf = @(x)(2*pi)^(-d/2)*det(Sigma)^-.5*exp(-.5*sum((x.'-mu).*(Sigma\(x.'-mu)),1)); + ## Inputs + start = ones (1, 2); + nsamples = 500; + sym = true; + K = 500; + m = 10; + rand ("seed", 8) # for reproducibility + proprnd = @(x) (rand (size (x)) - .5) * 3 + x; + [smpl, accept] = mhsample (start, nsamples, "pdf", pdf, "proprnd", proprnd, ... + "symmetric", sym, "burnin", K, "thin", m); + figure; + hold on; + plot (smpl(:, 1), smpl(:, 2), 'x'); + [x, y] = meshgrid (linspace (-6, 4), linspace(-3, 7)); + z = reshape (pdf ([x(:), y(:)]), size(x)); + mesh (x, y, z, "facecolor", "None"); + ## Using sample points to find the volume of half a sphere with radius of .5 + f = @(x) ((.25-(x(:,1)+1).^2-(x(:,2)-2).^2).^.5.*(((x(:,1)+1).^2+(x(:,2)-2).^2)<.25)).'; + int = mean (f (smpl) ./ pdf (smpl)); + errest = std (f (smpl) ./ pdf (smpl)) / nsamples ^ .5; + trueerr = abs (2 / 3 * pi * .25 ^ (3 / 2) - int); + printf ("Monte Carlo integral estimate int f(x) dx = %f\n", int); + printf ("Monte Carlo integral error estimate %f\n", errest); + printf ("The actual error %f\n", trueerr); + mesh (x, y, reshape (f([x(:), y(:)]), size(x)), "facecolor", "None"); +***** demo + ## Integrate truncated normal distribution to find normilization constant + pdf = @(x) exp (-.5*x.^2)/(pi^.5*2^.5); + nsamples = 1e3; + rand ("seed", 5) # for reproducibility + proprnd = @(x) (rand (size (x)) - .5) * 3 + x; + [smpl, accept] = mhsample (1, nsamples, "pdf", pdf, "proprnd", proprnd, ... + "symmetric", true, "thin", 4); + f = @(x) exp(-.5 * x .^ 2) .* (x >= -2 & x <= 2); + x = linspace (-3, 3, 1000); + area(x, f(x)); + xlabel ('x'); + ylabel ('f(x)'); + int = mean (f (smpl) ./ pdf (smpl)); + errest = std (f (smpl) ./ pdf (smpl)) / nsamples^ .5; + trueerr = abs (erf (2 ^ .5) * 2 ^ .5 * pi ^ .5 - int); + printf ("Monte Carlo integral estimate int f(x) dx = %f\n", int); + printf ("Monte Carlo integral error estimate %f\n", errest); + printf ("The actual error %f\n", trueerr); +***** test + nchain = 1e4; + start = rand (nchain, 1); + nsamples = 1e3; + pdf = @(x) exp (-.5*(x-1).^2)/(2*pi)^.5; + proppdf = @(x, y) 1/3; + proprnd = @(x) 3 * (rand (size (x)) - .5) + x; + [smpl, accept] = mhsample (start, nsamples, "pdf", pdf, "proppdf", proppdf, ... + "proprnd", proprnd, "thin", 2, "nchain", nchain, ... + "burnin", 0); + assert (mean (mean (smpl, 1), 3), 1, .01); + assert (mean (var (smpl, 1), 3), 1, .01) +***** error mhsample (); +***** error mhsample (1); +***** error mhsample (1, 1); +***** error mhsample (1, 1, "pdf", @(x)x); +***** error mhsample (1, 1, "pdf", @(x)x, "proprnd", @(x)x+rand(size(x))); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/logistic_regression.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/logistic_regression.m +***** test + # Output compared to following MATLAB commands + # [B, DEV, STATS] = mnrfit(X,Y+1,'model','ordinal'); + # P = mnrval(B,X) + X = [1.489381332449196, 1.1534152241851305; ... + 1.8110085304863965, 0.9449666896938425; ... + -0.04453299665130296, 0.34278203449678646; ... + -0.36616019468850347, 1.130254275908322; ... + 0.15339143291005095, -0.7921044310668951; ... + -1.6031878794469698, -1.8343471035233376; ... + -0.14349521143198166, -0.6762996896828459; ... + -0.4403818557740143, -0.7921044310668951; ... + -0.7372685001160434, -0.027793137932169563; ... + -0.11875465773681024, 0.5512305689880763]; + Y = [1,1,1,1,1,0,0,0,0,0]'; + [INTERCEPT, SLOPE, DEV, DL, D2L, P] = logistic_regression (Y, X, false); +***** test + # Output compared to following MATLAB commands + # [B, DEV, STATS] = mnrfit(X,Y+1,'model','ordinal'); + load carbig + X = [Acceleration Displacement Horsepower Weight]; + miles = [1,1,1,1,1,1,1,1,1,1,NaN,NaN,NaN,NaN,NaN,1,1,NaN,1,1,2,2,1,2,2,2, ... + 2,2,2,2,2,1,1,1,1,2,2,2,2,NaN,2,1,1,2,1,1,1,1,1,1,1,1,1,2,2,1,2, ... + 2,3,3,3,3,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,2,2,2, ... + 2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,2,2,2,1,2,2, ... + 2,1,1,3,2,2,2,1,2,2,1,2,2,2,1,3,2,3,2,1,1,1,1,1,1,1,1,3,2,2,3,3, ... + 2,2,2,2,2,3,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,3,2,2,2,2,2,2,1,3,2,2, ... + 2,2,2,3,2,2,2,2,2,1,1,1,1,2,2,2,2,3,2,3,3,2,1,1,1,3,3,2,2,2,1,2, ... + 2,1,1,1,1,1,3,3,3,2,3,1,1,1,1,1,2,2,1,1,1,1,1,3,2,2,2,3,3,3,3,2, ... + 2,2,4,3,3,4,3,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,1,1,3,2,2,3,2,2,2,2, ... + 2,1,2,1,3,3,2,2,2,2,2,1,1,1,1,1,1,2,1,3,3,3,2,2,2,2,2,3,3,3,3,2, ... + 2,2,3,4,3,3,3,2,2,2,2,3,3,3,3,3,4,2,4,4,4,3,3,4,4,3,3,3,2,3,2,3, ... + 2,2,2,2,3,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,NaN,3,2,2,2,2,2,1,2, ... + 2,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,3,3,2,2,4,3,2,3]'; + [INTERCEPT, SLOPE, DEV, DL, D2L, P] = logistic_regression (miles, X, false); + assert (DEV, 433.197174495549, 1e-05); + assert (INTERCEPT(1), -16.6895155618903, 1e-05); + assert (INTERCEPT(2), -11.7207818178493, 1e-05); + assert (INTERCEPT(3), -8.0605768506075, 1e-05); + assert (SLOPE(1), 0.104762463756714, 1e-05); + assert (SLOPE(2), 0.0103357623191891, 1e-05); + assert (SLOPE(3), 0.0645199313242276, 1e-05); + assert (SLOPE(4), 0.00166377028388103, 1e-05); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/sigma_pts.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/sigma_pts.m +***** demo + K = [1 0.5; 0.5 1]; # covaraince matrix + # calculate and build associated ellipse + [R,S,~] = svd (K); + theta = atan2 (R(2,1), R(1,1)); + v = sqrt (diag (S)); + v = v .* [cos(theta) sin(theta); -sin(theta) cos(theta)]; + t = linspace (0, 2*pi, 100).'; + xe = v(1,1) * cos (t) + v(2,1) * sin (t); + ye = v(1,2) * cos (t) + v(2,2) * sin (t); + + figure(1); clf; hold on + # Plot ellipse and axes + line ([0 0; v(:,1).'],[0 0; v(:,2).']) + plot (xe,ye,'-r'); + + col = 'rgb'; + l = [-1.8 -1 1.5]; + for li = 1:3 + p = sigma_pts (2, [], K, l(li)); + tmp = plot (p(2:end,1), p(2:end,2), ['x' col(li)], ... + p(1,1), p(1,2), ['o' col(li)]); + h(li) = tmp(1); + endfor + hold off + axis image + legend (h, arrayfun (@(x) sprintf ("l:%.2g", x), l, "unif", 0)); +***** test + p = sigma_pts (5); + assert (mean (p), zeros(1,5), sqrt(eps)); + assert (cov (p), eye(5), sqrt(eps)); +***** test + m = randn(1, 5); + p = sigma_pts (5, m); + assert (mean (p), m, sqrt(eps)); + assert (cov (p), eye(5), sqrt(eps)); +***** test + x = linspace (0,1,5); + K = exp (- (x.' - x).^2/ 0.5); + p = sigma_pts (5, [], K); + assert (mean (p), zeros(1,5), sqrt(eps)); + assert (cov (p), K, sqrt(eps)); +***** error sigma_pts(2,1); +***** error sigma_pts(2,[],1); +***** error sigma_pts(2,1,1); +***** error sigma_pts(2,[0.5 0.5],[-1 0; 0 0]); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/ttest.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ttest.m +***** test + x = 8:0.1:12; + [h, pval, ci] = ttest (x, 10); + assert (h, 0) + assert (pval, 1, 10*eps) + assert (ci, [9.6219 10.3781], 1E-5) + [h, pval, ci0] = ttest (x, 0); + assert (h, 1) + assert (pval, 0) + assert (ci0, ci, 2e-15) + [h, pval, ci] = ttest (x, 10, "tail", "right", "dim", 2, "alpha", 0.05); + assert (h, 0) + assert (pval, 0.5, 10*eps) + assert (ci, [9.68498 Inf], 1E-5) +***** error ttest ([8:0.1:12], 10, "tail", "invalid"); +***** error ttest ([8:0.1:12], 10, "tail", 25); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/canoncorr.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/canoncorr.m +***** shared X,Y,A,B,r,U,V,k + k = 10; + X = [1:k; sin(1:k); cos(1:k)]'; Y = [tan(1:k); tanh((1:k)/k)]'; + [A,B,r,U,V,stats] = canoncorr (X,Y); +***** assert (A, [-0.329229 0.072908; 0.074870 1.389318; -0.069302 -0.024109], 1E-6); +***** assert (B, [-0.017086 -0.398402; -4.475049 -0.824538], 1E-6); +***** assert (r, [0.99590 0.26754], 1E-5); +***** assert (U, center(X) * A, 10*eps); +***** assert (V, center(Y) * B, 10*eps); +***** assert (cov(U), eye(size(U, 2)), 10*eps); +***** assert (cov(V), eye(size(V, 2)), 10*eps); + rand ("state", 1); [A,B,r] = canoncorr (rand(5, 10),rand(5, 20)); +***** assert (r, ones(1, 5), 10*eps); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/Regression/RegressionGAM.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/Regression/RegressionGAM.m +***** demo + ## Train a RegressionGAM Model for synthetic values + f1 = @(x) cos (3 * x); + f2 = @(x) x .^ 3; + x1 = 2 * rand (50, 1) - 1; + x2 = 2 * rand (50, 1) - 1; + y = f1(x1) + f2(x2); + y = y + y .* 0.2 .* rand (50,1); + X = [x1, x2]; + a = fitrgam (X, y, "tol", 1e-3) +***** demo + ## Declare two different functions + f1 = @(x) cos (3 * x); + f2 = @(x) x .^ 3; + + ## Generate 80 samples for f1 and f2 + x = [-4*pi:0.1*pi:4*pi-0.1*pi]'; + X1 = f1 (x); + X2 = f2 (x); + + ## Create a synthetic response by adding noise + rand ("seed", 3); + Ytrue = X1 + X2; + Y = Ytrue + Ytrue .* 0.2 .* rand (80,1); + + ## Assemble predictor data + X = [X1, X2]; + + ## Train the GAM and test on the same data + a = fitrgam (X, Y, "order", [5, 5]); + [ypred, ySDsd, yInt] = predict (a, X); + + ## Plot the results + figure + [sortedY, indY] = sort (Ytrue); + plot (sortedY, "r-"); + xlim ([0, 80]); + hold on + plot (ypred(indY), "g+") + plot (yInt(indY,1), "k:") + plot (yInt(indY,2), "k:") + xlabel ("Predictor samples"); + ylabel ("Response"); + title ("actual vs predicted values for function f1(x) = cos (3x) "); + legend ({"Theoretical Response", "Predicted Response", "Prediction Intervals"}); + + ## Use 30% Holdout partitioning for training and testing data + C = cvpartition (80, "HoldOut", 0.3); + [ypred, ySDsd, yInt] = predict (a, X(test(C),:)); + + ## Plot the results + figure + [sortedY, indY] = sort (Ytrue(test(C))); + plot (sortedY, 'r-'); + xlim ([0, sum(test(C))]); + hold on + plot (ypred(indY), "g+") + plot (yInt(indY,1),'k:') + plot (yInt(indY,2),'k:') + xlabel ("Predictor samples"); + ylabel ("Response"); + title ("actual vs predicted values for function f1(x) = cos (3x) "); + legend ({"Theoretical Response", "Predicted Response", "Prediction Intervals"}); +***** test + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = [1; 2; 3; 4]; + a = RegressionGAM (x, y); + assert ({a.X, a.Y}, {x, y}) + assert ({a.BaseModel.Intercept}, {2.5000}) + assert ({a.Knots, a.Order, a.DoF}, {[5, 5, 5], [3, 3, 3], [8, 8, 8]}) + assert ({a.NumObservations, a.NumPredictors}, {4, 3}) + assert ({a.ResponseName, a.PredictorNames}, {"Y", {"x1", "x2", "x3"}}) + assert ({a.Formula}, {[]}) +***** test + x = [1, 2, 3, 4; 4, 5, 6, 7; 7, 8, 9, 1; 3, 2, 1, 2]; + y = [1; 2; 3; 4]; + pnames = {"A", "B", "C", "D"}; + formula = "Y ~ A + B + C + D + A:C"; + intMat = logical ([1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1;1,0,1,0]); + a = RegressionGAM (x, y, "predictors", pnames, "formula", formula); + assert ({a.IntMatrix}, {intMat}) + assert ({a.ResponseName, a.PredictorNames}, {"Y", pnames}) + assert ({a.Formula}, {formula}) +***** error RegressionGAM () +***** error RegressionGAM (ones(10,2)) +***** error ... + RegressionGAM (ones(10,2), ones (5,1)) +***** error ... + RegressionGAM ([1;2;3;"a";4], ones (5,1)) +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "some", "some") +***** error + RegressionGAM (ones(10,2), ones (10,1), "formula", {"y~x1+x2"}) +***** error + RegressionGAM (ones(10,2), ones (10,1), "formula", [0, 1, 0]) +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "formula", "something") +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "formula", "something~") +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "formula", "something~") +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "formula", "something~x1:") +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "interactions", "some") +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "interactions", -1) +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "interactions", [1 2 3 4]) +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "interactions", 3) +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "formula", "y ~ x1 + x2", "interactions", 1) +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "interactions", 1, "formula", "y ~ x1 + x2") +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "knots", "a") +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "order", 3, "dof", 2, "knots", 5) +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "dof", 'a') +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "knots", 5, "order", 3, "dof", 2) +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "order", 'a') +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "knots", 5, "dof", 2, "order", 2) +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "tol", -1) +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "responsename", -1) +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "predictors", -1) +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "predictors", ['a','b','c']) +***** error ... + RegressionGAM (ones(10,2), ones (10,1), "predictors", {'a','b','c'}) +***** error ... + predict (RegressionGAM (ones(10,1), ones(10,1))) +***** error ... + predict (RegressionGAM (ones(10,1), ones(10,1)), []) +***** error ... + predict (RegressionGAM(ones(10,2), ones(10,1)), 2) +***** error ... + predict (RegressionGAM(ones(10,2), ones(10,1)), ones (10,2), "some", "some") +***** error ... + predict (RegressionGAM(ones(10,2), ones(10,1)), ones (10,2), "includeinteractions", "some") +***** error ... + predict (RegressionGAM(ones(10,2), ones(10,1)), ones (10,2), "includeinteractions", 5) +***** error ... + predict (RegressionGAM(ones(10,2), ones(10,1)), ones (10,2), "alpha", 5) +***** error ... + predict (RegressionGAM(ones(10,2), ones(10,1)), ones (10,2), "alpha", -1) +***** error ... + predict (RegressionGAM(ones(10,2), ones(10,1)), ones (10,2), "alpha", 'a') +39 tests, 39 passed, 0 known failure, 0 skipped +[inst/ismissing.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ismissing.m +***** assert (ismissing ([1,NaN,3]), [false,true,false]) +***** assert (ismissing ('abcd f'), [false,false,false,false,true,false]) +***** assert (ismissing ({'xxx','','xyz'}), [false,true,false]) +***** assert (ismissing ({'x','','y'}), [false,true,false]) +***** assert (ismissing ({'x','','y';'z','a',''}), logical([0,1,0;0,0,1])) +***** assert (ismissing ([1,2;NaN,2]), [false,false;true,false]) +***** assert (ismissing ([1,2;NaN,2], 2), [false,true;false,true]) +***** assert (ismissing ([1,2;NaN,2], [1 2]), [true,true;false,true]) +***** assert (ismissing ([1,2;NaN,2], NaN), [false,false;true,false]) +***** assert (ismissing (cat(3,magic(2),magic(2))), logical (zeros (2,2,2))) +***** assert (ismissing (cat(3,magic(2),[1 2;3 NaN])), logical (cat(3,[0,0;0,0],[0,0;0,1]))) +***** assert (ismissing ([1 2; 3 4], [5 1; 2 0]), logical([1 1; 0 0])) +***** assert (ismissing (cat(3,'f oo','ba r')), logical(cat(3,[0 1 0 0],[0 0 1 0]))) +***** assert (ismissing (cat(3,{'foo'},{''},{'bar'})), logical(cat(3,0,1,0))) +***** assert (ismissing (double (NaN)), true) +***** assert (ismissing (single (NaN)), true) +***** assert (ismissing (' '), true) +***** assert (ismissing ({''}), true) +***** assert (ismissing ({' '}), false) +***** assert (ismissing (double (eye(3)), single (1)), logical(eye(3))) +***** assert (ismissing (double (eye(3)), true), logical(eye(3))) +***** assert (ismissing (double (eye(3)), int32 (1)), logical(eye(3))) +***** assert (ismissing (single (eye(3)), true), logical(eye(3))) +***** assert (ismissing (single (eye(3)), double (1)), logical(eye(3))) +***** assert (ismissing (single(eye(3)), int32 (1)), logical(eye(3))) +***** assert (ismissing ({'123', '', 123}), [false false false]) +***** assert (ismissing (logical ([1 0 1])), [false false false]) +***** assert (ismissing (int32 ([1 2 3])), [false false false]) +***** assert (ismissing (uint32 ([1 2 3])), [false false false]) +***** assert (ismissing ({1, 2, 3}), [false false false]) +***** assert (ismissing ([struct struct struct]), [false false false]) +***** assert (ismissing (logical (eye(3)), true), logical(eye(3))) +***** assert (ismissing (logical (eye(3)), double (1)), logical(eye(3))) +***** assert (ismissing (logical (eye(3)), single (1)), logical(eye(3))) +***** assert (ismissing (logical (eye(3)), int32 (1)), logical(eye(3))) +***** assert (ismissing (int32 (eye(3)), int32 (1)), logical(eye(3))) +***** assert (ismissing (int32 (eye(3)), true), logical(eye(3))) +***** assert (ismissing (int32 (eye(3)), double (1)), logical(eye(3))) +***** assert (ismissing (int32 (eye(3)), single (1)), logical(eye(3))) +***** assert (ismissing ([]), logical([])) +***** assert (ismissing (''), logical([])) +***** assert (ismissing (ones (0,1)), logical(ones(0,1))) +***** assert (ismissing (ones (1,0)), logical(ones(1,0))) +***** assert (ismissing (ones (1,2,0)), logical(ones(1,2,0))) +***** error ismissing () +***** error <'indicator' and 'A' must have the same> ismissing ([1 2; 3 4], "abc") +***** error <'indicator' and 'A' must have the same> ismissing ({"", "", ""}, 1) +***** error <'indicator' and 'A' must have the same> ismissing (1, struct) +***** error ismissing (struct, 1) +49 tests, 49 passed, 0 known failure, 0 skipped +[inst/ttest2.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ttest2.m +***** test + a = 1:5; + b = 6:10; + b(5) = NaN; + [h,p,ci,stats] = ttest2 (a,b); + assert (h, 1); + assert (p, 0.002535996080258229, 1e-14); + assert (ci, [-6.822014919225481, -2.17798508077452], 1e-14); + assert (stats.tstat, -4.582575694955839, 1e-14); + assert (stats.df, 7); + assert (stats.sd, 1.4638501094228, 1e-13); +***** error ttest2 ([8:0.1:12], [8:0.1:12], "tail", "invalid"); +***** error ttest2 ([8:0.1:12], [8:0.1:12], "tail", 25); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/histfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/histfit.m +***** demo + histfit (randn (100, 1)) +***** test + hf = figure ("visible", "off"); + unwind_protect + x = [2, 4, 3, 2, 4, 3, 2, 5, 6, 4, 7, 5, 9, 8, 10, 4, 11]; + histfit (x); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** test + hf = figure ("visible", "off"); + unwind_protect + x = [2, 4, 3, 2, NaN, 3, 2, 5, 6, 4, 7, 5, 9, 8, 10, 4, 11]; + histfit (x); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** test + hf = figure ("visible", "off"); + unwind_protect + x = [2, 4, 3, 2, NaN, 3, 2, 5, 6, 4, 7, 5, 9, 8, 10, 4, 11]; + histfit (x, 3); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** error histfit (); +***** error histfit ([x',x']); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/dcov.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dcov.m +***** demo + base=@(x) (x- min(x))./(max(x)-min(x)); + N = 5e2; + x = randn (N,1); x = base (x); + z = randn (N,1); z = base (z); + # Linear relations + cy = [1 0.55 0.3 0 -0.3 -0.55 -1]; + ly = x .* cy; + ly(:,[1:3 5:end]) = base (ly(:,[1:3 5:end])); + # Correlated Gaussian + cz = 1 - abs (cy); + gy = base ( ly + cz.*z); + # Shapes + sx = repmat (x,1,7); + sy = zeros (size (ly)); + v = 2 * rand (size(x,1),2) - 1; + sx(:,1) = v(:,1); sy(:,1) = cos(2*pi*sx(:,1)) + 0.5*v(:,2).*exp(-sx(:,1).^2/0.5); + R =@(d) [cosd(d) sind(d); -sind(d) cosd(d)]; + tmp = R(35) * v.'; + sx(:,2) = tmp(1,:); sy(:,2) = tmp(2,:); + tmp = R(45) * v.'; + sx(:,3) = tmp(1,:); sy(:,3) = tmp(2,:); + sx(:,4) = v(:,1); sy(:,4) = sx(:,4).^2 + 0.5*v(:,2); + sx(:,5) = v(:,1); sy(:,5) = 3*sign(v(:,2)).*(sx(:,5)).^2 + v(:,2); + sx(:,6) = cos (2*pi*v(:,1)) + 0.5*(x-0.5); + sy(:,6) = sin (2*pi*v(:,1)) + 0.5*(z-0.5); + sx(:,7) = x + sign(v(:,1)); sy(:,7) = z + sign(v(:,2)); + sy = base (sy); + sx = base (sx); + # scaled shape + sc = 1/3; + ssy = (sy-0.5) * sc + 0.5; + n = size (ly,2); + ym = 1.2; + xm = 0.5; + fmt={'horizontalalignment','center'}; + ff = "% .2f"; + figure (1) + for i=1:n + subplot(4,n,i); + plot (x, gy(:,i), '.b'); + axis tight + axis off + text (xm,ym,sprintf (ff, dcov (x,gy(:,i))),fmt{:}) + + subplot(4,n,i+n); + plot (x, ly(:,i), '.b'); + axis tight + axis off + text (xm,ym,sprintf (ff, dcov (x,ly(:,i))),fmt{:}) + + subplot(4,n,i+2*n); + plot (sx(:,i), sy(:,i), '.b'); + axis tight + axis off + text (xm,ym,sprintf (ff, dcov (sx(:,i),sy(:,i))),fmt{:}) + v = axis (); + + subplot(4,n,i+3*n); + plot (sx(:,i), ssy(:,i), '.b'); + axis (v) + axis off + text (xm,ym,sprintf (ff, dcov (sx(:,i),ssy(:,i))),fmt{:}) + endfor +***** error dcov (randn (30, 5), randn (25,5)) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/binotest.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/binotest.m +***** demo + % flip a coin 1000 times, showing 475 heads + % Hypothesis: coin is fair, i.e. p=1/2 + [h,p_val,ci] = binotest(475,1000,0.5) + % Result: h = 0 : null hypothesis not rejected, coin could be fair + % P value 0.12, i.e. hypothesis not rejected for alpha up to 12% + % 0.444 <= p <= 0.506 with 95% confidence +***** demo + % flip a coin 100 times, showing 65 heads + % Hypothesis: coin shows less than 50% heads, i.e. p<=1/2 + [h,p_val,ci] = binotest(65,100,0.5,'tail','left','alpha',0.01) + % Result: h = 1 : null hypothesis is rejected, i.e. coin shows more heads than tails + % P value 0.0018, i.e. hypothesis not rejected for alpha up to 0.18% + % 0 <= p <= 0.76 with 99% confidence +***** test #example from https://en.wikipedia.org/wiki/Binomial_test + [h,p_val,ci] = binotest (51,235,1/6); + assert (p_val, 0.0437, 0.00005) + [h,p_val,ci] = binotest (51,235,1/6,'tail','left'); + assert (p_val, 0.027, 0.0005) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/slicesample.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/slicesample.m +***** demo + ## Define function to sample + d = 2; + mu = [-1; 2]; + rand ("seed", 5) # for reproducibility + Sigma = rand (d); + Sigma = (Sigma + Sigma'); + Sigma += eye (d)*abs (eigs (Sigma, 1, "sa")) * 1.1; + pdf = @(x)(2*pi)^(-d/2)*det(Sigma)^-.5*exp(-.5*sum((x.'-mu).*(Sigma\(x.'-mu)),1)); + + ## Inputs + start = ones (1,2); + nsamples = 500; + K = 500; + m = 10; + rande ("seed", 4); rand ("seed", 5) # for reproducibility + [smpl, accept] = slicesample (start, nsamples, "pdf", pdf, "burnin", K, "thin", m, "width", [20, 30]); + figure; + hold on; + plot (smpl(:,1), smpl(:,2), 'x'); + [x, y] = meshgrid (linspace (-6,4), linspace(-3,7)); + z = reshape (pdf ([x(:), y(:)]), size(x)); + mesh (x, y, z, "facecolor", "None"); + + ## Using sample points to find the volume of half a sphere with radius of .5 + f = @(x) ((.25-(x(:,1)+1).^2-(x(:,2)-2).^2).^.5.*(((x(:,1)+1).^2+(x(:,2)-2).^2)<.25)).'; + int = mean (f (smpl) ./ pdf (smpl)); + errest = std (f (smpl) ./ pdf (smpl)) / nsamples^.5; + trueerr = abs (2/3*pi*.25^(3/2)-int); + fprintf ("Monte Carlo integral estimate int f(x) dx = %f\n", int); + fprintf ("Monte Carlo integral error estimate %f\n", errest); + fprintf ("The actual error %f\n", trueerr); + mesh (x,y,reshape (f([x(:), y(:)]), size(x)), "facecolor", "None"); +***** demo + ## Integrate truncated normal distribution to find normilization constant + pdf = @(x) exp (-.5*x.^2)/(pi^.5*2^.5); + nsamples = 1e3; + rande ("seed", 4); rand ("seed", 5) # for reproducibility + [smpl, accept] = slicesample (1, nsamples, "pdf", pdf, "thin", 4); + f = @(x) exp (-.5 * x .^ 2) .* (x >= -2 & x <= 2); + x = linspace (-3, 3, 1000); + area (x, f(x)); + xlabel ("x"); + ylabel ("f(x)"); + int = mean (f (smpl) ./ pdf (smpl)); + errest = std (f (smpl) ./ pdf (smpl)) / nsamples ^ 0.5; + trueerr = abs (erf (2 ^ 0.5) * 2 ^ 0.5 * pi ^ 0.5 - int); + fprintf("Monte Carlo integral estimate int f(x) dx = %f\n", int); + fprintf("Monte Carlo integral error estimate %f\n", errest); + fprintf("The actual error %f\n", trueerr); +***** test + start = 0.5; + nsamples = 1e3; + pdf = @(x) exp (-.5*(x-1).^2)/(2*pi)^.5; + [smpl, accept] = slicesample (start, nsamples, "pdf", pdf, "thin", 2, "burnin", 0, "width", 5); + assert (mean (smpl, 1), 1, .1); + assert (var (smpl, 1), 1, .2); +***** error slicesample (); +***** error slicesample (1); +***** error slicesample (1, 1); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/shadow9/std.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/shadow9/std.m +***** assert (std (13), 0) +***** assert (std (single (13)), single (0)) +***** assert (std ([1,2,3]), 1) +***** assert (std ([1,2,3], 1), sqrt (2/3), eps) +***** assert (std ([1,2,3], [], 1), [0,0,0]) +***** assert (std ([1,2,3], [], 3), [0,0,0]) +***** assert (std (5, 99), 0) +***** assert (std (5, 99, 1), 0) +***** assert (std (5, 99, 2), 0) +***** assert (std ([5 3], [99 99], 2), 1) +***** assert (std ([1:7], [1:7]), sqrt (3)) +***** assert (std ([eye(3)], [1:3]), sqrt ([5/36, 2/9, 1/4]), eps) +***** assert (std (ones (2,2,2), [1:2], 3), [(zeros (2,2))]) +***** assert (std ([1 2; 3 4], 0, 'all'), std ([1:4])) +***** assert (std (reshape ([1:8], 2, 2, 2), 0, [1 3]), sqrt ([17/3 17/3]), eps) +***** assert (std ([1 2 3;1 2 3], [], [1 2]), sqrt (0.8), eps) +***** test + x = [-10:10]; + y = [x;x+5;x-5]; + assert (std (x), sqrt (38.5), 1e-14); + assert (std (y, [], 2), sqrt ([38.5; 38.5; 38.5]), 1e-14); + assert (std (y, 0, 2), sqrt ([38.5; 38.5; 38.5]), 1e-14); + assert (std (y, 1, 2), ones (3,1) * sqrt (36.66666666666666), 1e-14); + assert (std (y, "all"), sqrt (54.19354838709678), 1e-14); + y(2,4) = NaN; + assert (std (y, "all"), NaN); + assert (std (y, "all", "includenan"), NaN); + assert (std (y, "all", "omitnan"), sqrt (55.01533580116342), 1e-14); + assert (std (y, 0, 2, "includenan"), sqrt ([38.5; NaN; 38.5]), 1e-14); + assert (std (y, [], 2), sqrt ([38.5; NaN; 38.5]), 1e-14); + assert (std (y, [], 2, "omitnan"), ... + sqrt ([38.5; 37.81842105263158; 38.5]), 1e-14); +***** assert (std ([4 NaN 6], [1 2 1], "omitnan"), 1, eps) +***** assert (std ([4 5 6], [1 NaN 1], "omitnan"), 1, eps) +***** assert (std (magic(3), [1 NaN 3], "omitnan"), sqrt(3)*[1 2 1], eps) +***** assert (std ([4 NaN 6], [1 2 1], "omitnan", "all"), 1, eps) +***** assert (std ([4 NaN 6], [1 2 1], "all", "omitnan"), 1, eps) +***** assert (std ([4 5 6], [1 NaN 1], "omitnan", "all"), 1, eps) +***** assert (std ([4 NaN 6], [1 2 1], 2, "omitnan"), 1, eps) +***** assert (std ([4 5 6], [1 NaN 1], 2, "omitnan"), 1, eps) +***** assert (std (magic(3), [1 NaN 3], 1, "omitnan"), sqrt(3)*[1 2 1], eps) +***** assert (std (magic(3), [1 NaN 3], 2, "omitnan"), sqrt(3)*[0.5;1;0.5], eps) +***** assert (std (4*[4 5; 6 7; 8 9], [1 3], 2, 'omitnan'), sqrt(3)*[1;1;1], eps) +***** assert (std ([4 NaN; 6 7; 8 9], [1 1 3], 1, 'omitnan'), [1.6 sqrt(3)/2], eps) +***** assert (std (4*[4 NaN; 6 7; 8 9], [1 3], 2, 'omitnan'), sqrt(3)*[0;1;1], eps) +***** assert (std (3*reshape(1:18, [3 3 2]), [1 2 3], 1, 'omitnan'), ... + sqrt(5)*ones(1,3,2), eps) +***** assert (std (reshape(1:18, [3 3 2]), [1 2 3], 2, 'omitnan'), ... + sqrt(5)*ones(3,1,2), eps) +***** assert (std (3*reshape(1:18, [3 3 2]), ones (3,3,2), [1 2], 'omitnan'), ... + sqrt(60)*ones(1,1,2),eps) +***** assert (std (3*reshape(1:18, [3 3 2]), ones (3,3,2), [1 4], 'omitnan'), ... + sqrt(6)*ones(1,3,2),eps) +***** assert (std (6*reshape(1:18, [3 3 2]), ones (3,3,2), [1:3], 'omitnan'), ... + sqrt(969),eps) +***** test + x = reshape(1:18, [3 3 2]); + x([2, 14]) = NaN; + w = ones (3,3,2); + assert (std (16*x, w, [1:3], 'omitnan'), sqrt(6519), eps); +***** test + x = reshape(1:18, [3 3 2]); + w = ones (3,3,2); + w([2, 14]) = NaN; + assert (std (16*x, w, [1:3], 'omitnan'), sqrt(6519), eps); +***** assert (std ([1 2 3], "aLl"), 1); +***** assert (std ([1 2 3], "OmitNan"), 1); +***** assert (std ([1 2 3], "IncludeNan"), 1); +***** test + x = repmat ([1:20;6:25], [5, 2, 6, 3]); + assert (size (std (x, 0, [3 2])), [10, 1, 1, 3]); + assert (size (std (x, 1, [1 2])), [1, 1, 6, 3]); + assert (size (std (x, [], [1 2 4])), [1, 1, 6]); + assert (size (std (x, 0, [1 4 3])), [1, 40]); + assert (size (std (x, [], [1 2 3 4])), [1, 1]); +***** assert (std (3*magic(3)), sqrt([63 144 63]), eps) +***** assert (std (3*magic(3), 'omitnan'), sqrt([63 144 63]), eps) +***** assert (std (3*magic(3), 1), sqrt([42 96 42]), eps) +***** assert (std (3*magic(3), 1, 'omitnan'), sqrt([42 96 42]), eps) +***** assert (std (3*magic(3), ones(1,3), 1), sqrt([42 96 42]), eps) +***** assert (std (3*magic(3), ones(1,3), 1, 'omitnan'), sqrt([42 96 42]), eps) +***** assert (std (2*magic(3), [1 1 NaN], 1, 'omitnan'), [5 4 1], eps) +***** assert (std (3*magic(3), ones(3,3)), sqrt([42 96 42]), eps) +***** assert (std (3*magic(3), ones(3,3), 'omitnan'), sqrt([42 96 42]), eps) +***** assert (std (3*magic(3), [1 1 1; 1 1 1; 1 NaN 1], 'omitnan'), ... + sqrt([42 36 42]), eps) +***** assert (std (3*magic(3), ones(3,3), 1), sqrt([42 96 42]), eps) +***** assert (std (3*magic(3), ones(3,3), 1, 'omitnan'), sqrt([42 96 42]), eps) +***** assert (std (3*magic(3), [1 1 1; 1 1 1; 1 NaN 1], 1, 'omitnan'), ... + sqrt([42 36 42]), eps) +***** assert (std (3*magic(3), ones(3,3), [1 4]), sqrt([42 96 42]), eps) +***** assert (std (3*magic(3), ones(3,3), [1 4], 'omitnan'), sqrt([42 96 42]), eps) +***** assert (std (3*magic(3), [1 1 1; 1 1 1; 1 NaN 1],[1 4],'omitnan'), ... + sqrt([42 36 42]), eps) +***** test + x = repmat ([1:20;6:25], [5, 2, 6, 3]); + v = repmat (sqrt (33.38912133891213), [10, 1, 1, 3]); + assert (std (x, 0, [3, 2]), v, 1e-14); + v = repmat (sqrt (33.250), [10, 1, 1, 3]); + assert (std (x, 1, [3, 2]), v, 1e-14); + x(2,5,6,3) = NaN; + v(2,1,1,3) = NaN; + assert (std (x, 1, [3, 2]), v, 1e-14); + v = repmat (sqrt (33.38912133891213), [10 1 1 3]); + v(2,1,1,3) = NaN; + assert (std (x, [], [3, 2]), v, 1e-14); + v(2,1,1,3) = sqrt (33.40177912169048); + assert (std (x, [], [3, 2], "omitnan"), v, 1e-14); +***** assert (std (ones (2,2,2), [1:2], 3), [(zeros (2, 2))]) +***** assert (std (magic (3), [1:9], "all"), 2.581988897471611, 1e-14) +***** assert (std (ones (2,2), [], 3), zeros (2,2)) +***** assert (std (ones (2,2,2), [], 99), zeros (2,2,2)) +***** assert (std (magic (3), [], 3), zeros (3,3)) +***** assert (std (magic (3), [], 1), sqrt ([7, 16, 7])) +***** assert (std (magic (3), [], [1 3]), sqrt ([7, 16, 7])) +***** assert (std (magic (3), [], [1 99]), sqrt ([7, 16, 7])) +***** assert (std ([]), NaN) +***** assert (class (var (single ([]))), "single") +***** assert (std ([],[],1), NaN(1,0)) +***** assert (std ([],[],2), NaN(0,1)) +***** assert (std ([],[],3), []) +***** assert (class (var (single ([]), [], 1)), "single") +***** assert (std (ones (1,0)), NaN) +***** assert (std (ones (1,0), [], 1), NaN(1,0)) +***** assert (std (ones (1,0), [], 2), NaN) +***** assert (std (ones (1,0), [], 3), NaN(1,0)) +***** assert (class (var (ones (1, 0, "single"), [], 1)), "single") +***** assert (std (ones (0,1)), NaN) +***** assert (std (ones (0,1), [], 1), NaN) +***** assert (std (ones (0,1), [], 2), NaN(0,1)) +***** assert (std (ones (0,1), [], 3), NaN(0,1)) +***** assert (std (ones (1,3,0,2)), NaN(1,1,0,2)) +***** assert (std (ones (1,3,0,2), [], 1), NaN(1,3,0,2)) +***** assert (std (ones (1,3,0,2), [], 2), NaN(1,1,0,2)) +***** assert (std (ones (1,3,0,2), [], 3), NaN(1,3,1,2)) +***** assert (std (ones (1,3,0,2), [], 4), NaN(1,3,0)) +***** test + [~, m] = std ([]); + assert (m, NaN); +***** test <*62395> + [~, m] = std (13); + assert (m, 13); + [~, m] = std (single(13)); + assert (m, single(13)); + [~, m] = std ([1, 2, 3; 3 2 1], []); + assert (m, [2 2 2]); + [~, m] = std ([1, 2, 3; 3 2 1], [], 1); + assert (m, [2 2 2]); + [~, m] = std ([1, 2, 3; 3 2 1], [], 2); + assert (m, [2 2]'); + [~, m] = std ([1, 2, 3; 3 2 1], [], 3); + assert (m, [1 2 3; 3 2 1]); +***** test <*62395> + [~, m] = std (5,99); + assert (m, 5); + [~, m] = std ([1:7], [1:7]); + assert (m, 5); + [~, m] = std ([eye(3)], [1:3]); + assert (m, [1/6, 1/3, 0.5], eps); + [~, m] = std (ones (2,2,2), [1:2], 3); + assert (m, ones (2,2)); + [~, m] = std ([1 2; 3 4], 0, 'all'); + assert (m, 2.5, eps); + [~, m] = std (reshape ([1:8], 2, 2, 2), 0, [1 3]); + assert (m, [3.5, 5.5], eps); +***** test + [v, m] = std (4 * eye (2), [1, 3]); + assert (v, sqrt ([3, 3]), 1e-14); + assert (m, [1, 3]); +***** test <*62395> + [~, m] = std ([]); + assert (m, NaN); +***** test + x = repmat ([1:20;6:25], [5, 2, 6, 3]); + [~, m] = std (x, 0, [3 2]); + assert (m, mean (x, [3 2])); + [~, m] = std (x, 0, [1 2]); + assert (m, mean (x, [1 2])); + [~, m] = std (x, 0, [1 3 4]); + assert (m, mean (x, [1 3 4])); +***** test + x = repmat ([1:20;6:25], [5, 2, 6, 3]); + x(2,5,6,3) = NaN; + [~, m] = std (x, 0, [3 2], "omitnan"); + assert (m, mean (x, [3 2], "omitnan")); +***** test <*63203> + [v, m] = std (Inf); + assert (v, NaN); + assert (m, Inf); +***** test <*63203> + [v, m] = std (NaN); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = std ([1, Inf, 3]); + assert (v, NaN); + assert (m, Inf); +***** test <*63203> + [v, m] = std ([1, Inf, 3]'); + assert (v, NaN); + assert (m, Inf); +***** test <*63203> + [v, m] = std ([1, NaN, 3]); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = std ([1, NaN, 3]'); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = std ([1, Inf, 3], [], 1); + assert (v, [0, NaN, 0]); + assert (m, [1, Inf, 3]); +***** test <*63203> + [v, m] = std ([1, Inf, 3], [], 2); + assert (v, NaN); + assert (m, Inf); +***** test <*63203> + [v, m] = std ([1, Inf, 3], [], 3); + assert (v, [0, NaN, 0]); + assert (m, [1, Inf, 3]); +***** test <*63203> + [v, m] = std ([1, NaN, 3], [], 1); + assert (v, [0, NaN, 0]); + assert (m, [1, NaN, 3]); +***** test <*63203> + [v, m] = std ([1, NaN, 3], [], 2); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = std ([1, NaN, 3], [], 3); + assert (v, [0, NaN, 0]); + assert (m, [1, NaN, 3]); +***** test <*63203> + [v, m] = std ([1, 2, 3; 3, Inf, 5]); + assert (v, sqrt ([2, NaN, 2])); + assert (m, [2, Inf, 4]); +***** test <*63203> + [v, m] = std ([1, Inf, 3; 3, Inf, 5]); + assert (v, sqrt ([2, NaN, 2])); + assert (m, [2, Inf, 4]); +***** test <*63203> + [v, m] = std ([1, 2, 3; 3, NaN, 5]); + assert (v, sqrt ([2, NaN, 2])); + assert (m, [2, NaN, 4]); +***** test <*63203> + [v, m] = std ([1, NaN, 3; 3, NaN, 5]); + assert (v, sqrt ([2, NaN, 2])); + assert (m, [2, NaN, 4]); +***** test <*63203> + [v, m] = std ([Inf, 2, NaN]); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = std ([Inf, 2, NaN]'); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = std ([NaN, 2, Inf]); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = std ([NaN, 2, Inf]'); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = std ([Inf, 2, NaN], [], 1); + assert (v, [NaN, 0, NaN]); + assert (m, [Inf, 2, NaN]); +***** test <*63203> + [v, m] = std ([Inf, 2, NaN], [], 2); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = std ([NaN, 2, Inf], [], 1); + assert (v, [NaN, 0, NaN]); + assert (m, [NaN, 2, Inf]); +***** test <*63203> + [v, m] = std ([NaN, 2, Inf], [], 2); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = std ([1, 3, NaN; 3, 5, Inf]); + assert (v, sqrt ([2, 2, NaN])); + assert (m, [2, 4, NaN]); +***** test <*63203> + [v, m] = std ([1, 3, Inf; 3, 5, NaN]); + assert (v, sqrt ([2, 2, NaN])); + assert (m, [2, 4, NaN]); +***** test <*63291> + [v, m] = std (2 * eye (2)); + assert (v, sqrt ([2, 2])); + assert (m, [1, 1]); +***** test <*63291> + [v, m] = std (4 * eye (2), [1, 3]); + assert (v, sqrt ([3, 3])); + assert (m, [1, 3]); +***** test <*63291> + [v, m] = std (sparse (2 * eye (2))); + assert (full (v), sqrt ([2, 2])); + assert (full (m), [1, 1]); +***** test <*63291> + [v, m] = std (sparse (4 * eye (2)), [1, 3]); + assert (full (v), sqrt ([3, 3])); + assert (full (m), [1, 3]); +***** test <*63291> + [v, m] = std (sparse (eye (2))); + assert (issparse (v)); + assert (issparse (m)); +***** test <*63291> + [v, m] = std (sparse (eye (2)), [1, 3]); + assert (issparse (v)); + assert (issparse (m)); +***** error std () +***** error std (1, 2, "omitnan", 3) +***** error std (1, 2, 3, 4) +***** error std (1, 2, 3, 4, 5) +***** error std (1, "foo") +***** error std (1, [], "foo") +***** error std ([1 2 3], 2) +***** error std ([1 2], 2, "all") +***** error std ([1 2],0.5, "all") +***** error std (1, -1) +***** error std (1, [1 -1]) +***** error ... + std ([1 2 3], [1 -1 0]) +***** error std ({1:5}) +***** error std ("char") +***** error std (['A'; 'B']) +***** error std (1, [], ones (2,2)) +***** error std (1, 0, 1.5) +***** error std (1, [], 0) +***** error std (1, [], 1.5) +***** error std ([1 2 3], [], [-1 1]) +***** error ... + std (repmat ([1:20;6:25], [5 2 6 3]), 0, [1 2 2 2]) +***** error ... + std ([1 2], eye (2)) +***** error ... + std ([1 2 3 4], [1 2; 3 4]) +***** error ... + std ([1 2 3 4], [1 2; 3 4], 1) +***** error ... + std ([1 2 3 4], [1 2; 3 4], [2 3]) +***** error ... + std (ones (2, 2), [1 2], [1 2]) +***** error ... + std ([1 2 3 4; 5 6 7 8], [1 2 1 2 1; 1 2 1 2 1], 1) +***** error ... + std (repmat ([1:20;6:25], [5 2 6 3]), repmat ([1:20;6:25], [5 2 3]), [2 3]) +***** error std ([1 2 3; 2 3 4], [1 3 4]) +***** error std ([1 2], [1 2 3]) +***** error std (1, [1 2]) +***** error std ([1 2 3; 2 3 4], [1 3 4], 1) +***** error std ([1 2 3; 2 3 4], [1 3], 2) +***** error std ([1 2], [1 2], 1) +***** error <'all' flag cannot be used with DIM or VECDIM options> ... + std (1, [], 1, "all") +***** error ... + std ([1 2 3; 2 3 4], [1 3], "all") +***** error ... + std (repmat ([1:20;6:25], [5 2 6 3]), repmat ([1:20;6:25], [5 2 3]), "all") +162 tests, 162 passed, 0 known failure, 0 skipped +[inst/shadow9/median.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/shadow9/median.m +***** assert (median (1), 1) +***** assert (median ([1,2,3]), 2) +***** assert (median ([1,2,3]'), 2) +***** assert (median (cat(3,3,1,2)), 2) +***** assert (median ([3,1,2]), 2) +***** assert (median ([2,4,6,8]), 5) +***** assert (median ([8,2,6,4]), 5) +***** assert (median (single ([1,2,3])), single (2)) +***** assert (median ([1,2], 3), [1,2]) +***** test + x = [1, 2, 3, 4, 5, 6]; + x2 = x'; + y = [1, 2, 3, 4, 5, 6, 7]; + y2 = y'; + + assert (median (x) == median (x2) && median (x) == 3.5); + assert (median (y) == median (y2) && median (y) == 4); + assert (median ([x2, 2 * x2]), [3.5, 7]); + assert (median ([y2, 3 * y2]), [4, 12]); +***** test + in = [1 2 3]; + out = 2; + assert (median (in, "default"), median (in)); + assert (median (in, "default"), out); +***** test + in = single ([1 2 3]); + out = 2; + assert (median (in, "default"), single (median (in))); + assert (median (in, "default"), single (out)); + assert (median (in, "double"), double (out)); + assert (median (in, "native"), single (out)); +***** test + in = uint8 ([1 2 3]); + out = 2; + assert (median (in, "default"), double (median (in))); + assert (median (in, "default"), double (out)); + assert (median (in, "double"), out); + assert (median (in, "native"), uint8 (out)); +***** test + in = logical ([1 0 1]); + out = 1; + assert (median (in, "default"), double (median (in))); + assert (median (in, "default"), double (out)); + assert (median (in, "double"), double (out)); + assert (median (in, "native"), double (out)); +***** test + x = repmat ([2 2.1 2.2 2 NaN; 3 1 2 NaN 5; 1 1.1 1.4 5 3], [1, 1, 4]); + y = repmat ([2 1.1 2 NaN NaN], [1, 1, 4]); + assert (median (x), y); + assert (median (x, 1), y); + y = repmat ([2 1.1 2 3.5 4], [1, 1, 4]); + assert (median (x, "omitnan"), y); + assert (median (x, 1, "omitnan"), y); + y = repmat ([2.05; 2.5; 1.4], [1, 1, 4]); + assert (median (x, 2, "omitnan"), y); + y = repmat ([NaN; NaN; 1.4], [1, 1, 4]); + assert (median (x, 2), y); + assert (median (x, "all"), NaN); + assert (median (x, "all", "omitnan"), 2); +***** assert (median (cat (3, 3, 1, NaN, 2), "omitnan"), 2) +***** assert (median (cat (3, 3, 1, NaN, 2), 3, "omitnan"), 2) +***** test + assert (median (true, "all"), logical (1)); + assert (median (false), logical (0)); + assert (median ([true false true]), true); + assert (median ([true false true], 2), true); + assert (median ([true false true], 1), logical ([1 0 1])); + assert (median ([true false NaN], 1), [1 0 NaN]); + assert (median ([true false NaN], 2), NaN); + assert (median ([true false NaN], 2, "omitnan"), 0.5); + assert (median ([true false NaN], 2, "omitnan", "native"), double(0.5)); +***** test + x = repmat ([1:20;6:25], [5 2 6 3]); + assert (size (median (x, [3 2])), [10 1 1 3]); + assert (size (median (x, [1 2])), [1 1 6 3]); + assert (size (median (x, [1 2 4])), [1 1 6]); + assert (size (median (x, [1 4 3])), [1 40]); + assert (size (median (x, [1 2 3 4])), [1 1]); +***** assert (median (ones (2,2), 3), ones (2,2)) +***** assert (median (ones (2,2,2), 99), ones (2,2,2)) +***** assert (median (magic (3), 3), magic (3)) +***** assert (median (magic (3), [1 3]), [4, 5, 6]) +***** assert (median (magic (3), [1 99]), [4, 5, 6]) +***** test + x = repmat ([2 2.1 2.2 2 NaN; 3 1 2 NaN 5; 1 1.1 1.4 5 3], [1, 1, 4]); + assert (median (x, [3 2]), [NaN NaN 1.4]'); + assert (median (x, [3 2], "omitnan"), [2.05 2.5 1.4]'); + assert (median (x, [1 3]), [2 1.1 2 NaN NaN]); + assert (median (x, [1 3], "omitnan"), [2 1.1 2 3.5 4]); +***** assert (median (NaN), NaN) +***** assert (median (NaN, "omitnan"), NaN) +***** assert (median (NaN (2)), [NaN NaN]) +***** assert (median (NaN (2), "omitnan"), [NaN NaN]) +***** assert (median ([1 NaN 3]), NaN) +***** assert (median ([1 NaN 3], 1), [1 NaN 3]) +***** assert (median ([1 NaN 3], 2), NaN) +***** assert (median ([1 NaN 3]'), NaN) +***** assert (median ([1 NaN 3]', 1), NaN) +***** assert (median ([1 NaN 3]', 2), [1; NaN; 3]) +***** assert (median ([1 NaN 3], "omitnan"), 2) +***** assert (median ([1 NaN 3]', "omitnan"), 2) +***** assert (median ([1 NaN 3], 1, "omitnan"), [1 NaN 3]) +***** assert (median ([1 NaN 3], 2, "omitnan"), 2) +***** assert (median ([1 NaN 3]', 1, "omitnan"), 2) +***** assert (median ([1 NaN 3]', 2, "omitnan"), [1; NaN; 3]) +***** assert (median ([1 2 NaN 3]), NaN) +***** assert (median ([1 2 NaN 3], "omitnan"), 2) +***** assert (median ([1,2,NaN;4,5,6;NaN,8,9]), [NaN, 5, NaN]) +***** assert <*64011> (median ([1,2,NaN;4,5,6;NaN,8,9], "omitnan"), [2.5, 5, 7.5], eps) +***** assert (median ([1 2 ; NaN 4]), [NaN 3]) +***** assert (median ([1 2 ; NaN 4], "omitnan"), [1 3]) +***** assert (median ([1 2 ; NaN 4], 1, "omitnan"), [1 3]) +***** assert (median ([1 2 ; NaN 4], 2, "omitnan"), [1.5; 4], eps) +***** assert (median ([1 2 ; NaN 4], 3, "omitnan"), [1 2 ; NaN 4]) +***** assert (median ([NaN 2 ; NaN 4]), [NaN 3]) +***** assert (median ([NaN 2 ; NaN 4], "omitnan"), [NaN 3]) +***** assert (median (ones (1, 0, 3)), NaN (1, 1, 3)) +***** assert <*65405> (median ([NaN NaN], 1, "omitnan"), [NaN NaN]) +***** assert <*65405> (median ([NaN NaN], 2, "omitnan"), NaN) +***** assert <*65405> (median ([NaN NaN]', 1, "omitnan"), NaN) +***** assert <*65405> (median ([NaN NaN]', 2, "omitnan"), [NaN; NaN]) +***** assert <*65405> (median ([NaN NaN], "omitnan"), NaN) +***** assert <*65405> (median ([NaN NaN]', "omitnan"), NaN) +***** assert <*65405> (median (NaN(1,9), 1, "omitnan"), NaN(1,9)) +***** assert <*65405> (median (NaN(1,9), 2, "omitnan"), NaN) +***** assert <*65405> (median (NaN(1,9), 3, "omitnan"), NaN(1,9)) +***** assert <*65405> (median (NaN(9,1), 1, "omitnan"), NaN) +***** assert <*65405> (median (NaN(9,1), 2, "omitnan"), NaN(9,1)) +***** assert <*65405> (median (NaN(9,1), 3, "omitnan"), NaN(9,1)) +***** assert <*65405> (median (NaN(9,2), 1, "omitnan"), NaN(1,2)) +***** assert <*65405> (median (NaN(9,2), 2, "omitnan"), NaN(9,1)) +***** assert <*65405> (median (NaN(9,2), "omitnan"), NaN(1,2)) +***** assert (median (NaN("single")), NaN("single")) +***** assert (median (NaN("single"), "omitnan"), NaN("single")) +***** assert (median (NaN("single"), "double"), NaN("double")) +***** assert (median (single([1 2 ; NaN 4])), single([NaN 3])) +***** assert (median (single([1 2 ; NaN 4]), "double"), double([NaN 3])) +***** assert (median (single([1 2 ; NaN 4]), "omitnan"), single([1 3])) +***** assert (median (single([1 2 ; NaN 4]), "omitnan", "double"), double([1 3])) +***** assert (median (single([NaN 2 ; NaN 4]), "double"), double([NaN 3])) +***** assert (median (single([NaN 2 ; NaN 4]), "omitnan"), single([NaN 3])) +***** assert (median (single([NaN 2 ; NaN 4]), "omitnan", "double"), double([NaN 3])) +***** test <*64011> + x = [magic(3), magic(3)]; + x([3, 7, 11, 12, 16, 17]) = NaN; + ynan = [NaN, 5, NaN, NaN, 5, NaN]; + yomitnan = [5.5, 5, 4.5, 8, 5, 2]; + assert (median (x), ynan); + assert (median (x, "omitnan"), yomitnan, eps); + assert (median (cat (3, x, x)), cat (3, ynan, ynan)); + assert (median (cat (3, x, x), "omitnan"), cat (3, yomitnan, yomitnan), eps); +***** assert (median (Inf), Inf) +***** assert (median (-Inf), -Inf) +***** assert (median ([-Inf Inf]), NaN) +***** assert (median ([3 Inf]), Inf) +***** assert (median ([3 4 Inf]), 4) +***** assert (median ([Inf 3 4]), 4) +***** assert (median ([Inf 3 Inf]), Inf) +***** assert (median ([1, 2, Inf]), 2) +***** assert (median ([1, 2, Inf, Inf]), Inf) +***** assert (median ([1, -Inf, Inf, Inf]), Inf) +***** assert (median ([-Inf, -Inf, Inf, Inf]), NaN) +***** assert (median([-Inf, Inf, Inf, Inf]), Inf) +***** assert (median([-Inf, -Inf, -Inf, Inf]), -Inf) +***** assert (median([-Inf, -Inf, -Inf, 2]), -Inf) +***** assert (median([-Inf, -Inf, 1, 2]), -Inf) +***** assert (median ([]), NaN) +***** assert (median (ones(1,0)), NaN) +***** assert (median (ones(0,1)), NaN) +***** assert (median ([], 1), NaN(1,0)) +***** assert (median ([], 2), NaN(0,1)) +***** assert (median ([], 3), NaN(0,0)) +***** assert (median (ones(1,0), 1), NaN(1,0)) +***** assert (median (ones(1,0), 2), NaN(1,1)) +***** assert (median (ones(1,0), 3), NaN(1,0)) +***** assert (median (ones(0,1), 1), NaN(1,1)) +***** assert (median (ones(0,1), 2), NaN(0,1)) +***** assert (median (ones(0,1), 3), NaN(0,1)) +***** assert (median (ones(0,1,0,1), 1), NaN(1,1,0)) +***** assert (median (ones(0,1,0,1), 2), NaN(0,1,0)) +***** assert (median (ones(0,1,0,1), 3), NaN(0,1,1)) +***** assert (median (ones(0,1,0,1), 4), NaN(0,1,0)) +***** assert (median([1 3 3i 2 1i]), 2) +***** assert (median([1 2 4i; 3 2i 4]), [2, 1+1i, 2+2i]) +***** shared a, b, x, y + old_state = rand ("state"); + restore_state = onCleanup (@() rand ("state", old_state)); + rand ("state", 2); + a = rand (2,3,4,5); + b = rand (3,4,6,5); + x = sort (a, 4); + y = sort (b, 3); +***** assert <*35679> (median (a, 4), x(:, :, :, 3)) +***** assert <*35679> (median (b, 3), (y(:, :, 3, :) + y(:, :, 4, :))/2) +***** shared ## Clear shared to prevent variable echo for any later test failures +***** test + x = ones(15,1,4); + x([13,15],1,:) = NaN; + assert (median (x, 1, "omitnan"), ones (1,1,4)) +***** assert (median ([true, false]), true) +***** assert (median (logical ([])), false) +***** assert (median (uint8 ([1, 3])), uint8 (2)) +***** assert (median (uint8 ([])), uint8 (NaN)) +***** assert (median (uint8 ([NaN 10])), uint8 (5)) +***** assert (median (int8 ([1, 3, 4])), int8 (3)) +***** assert (median (int8 ([])), int8 (NaN)) +***** assert (median (single ([1, 3, 4])), single (3)) +***** assert (median (single ([1, 3, NaN])), single (NaN)) +***** assert <54567> (median (uint8 ([253, 255])), uint8 (254)) +***** assert <54567> (median (uint8 ([253, 254])), uint8 (254)) +***** assert <54567> (median (int8 ([127, 126, 125, 124; 1 3 5 9])), ... + int8 ([64 65 65 67])) +***** assert <54567> (median (int8 ([127, 126, 125, 124; 1 3 5 9]), 2), ... + int8 ([126; 4])) +***** assert <54567> (median (int64 ([intmax("int64"), intmax("int64")-2])), ... + intmax ("int64") - 1) +***** assert <54567> (median ( ... + int64 ([intmax("int64"), intmax("int64")-2; 1 2]), 2), ... + int64([intmax("int64") - 1; 2])) +***** assert <54567> (median (uint64 ([intmax("uint64"), intmax("uint64")-2])), ... + intmax ("uint64") - 1) +***** assert <54567> (median ( ... + uint64 ([intmax("uint64"), intmax("uint64")-2; 1 2]), 2), ... + uint64([intmax("uint64") - 1; 2])) +***** assert <54567> (median (... + [intmin('int8') intmin('int8')+5 intmax('int8')-5 intmax('int8')]), ... + int8(-1)) +***** assert <54567> (median ([int8([1 2 3 4]); ... + intmin('int8') intmin('int8')+5 intmax('int8')-5 intmax('int8')], 2), ... + int8([3;-1])) +***** assert <54567> (median (... + [intmin('int64') intmin('int64')+5 intmax('int64')-5 intmax('int64')]), ... + int64(-1)) +***** assert <54567> (median ([int64([1 2 3 4]); ... + intmin('int64') intmin('int64')+5 intmax('int64')-5 intmax('int64')], 2), ... + int64([3;-1])) +***** assert <54567> (median ([intmax("uint64"), intmax("uint64")-2]), ... + intmax("uint64")-1) +***** assert <54567> (median ([intmax("uint64"), intmax("uint64")-2], "default"), ... + double(intmax("uint64")-1)) +***** assert <54567> (median ([intmax("uint64"), intmax("uint64")-2], "double"), ... + double(intmax("uint64")-1)) +***** assert <54567> (median ([intmax("uint64"), intmax("uint64")-2], "native"), ... + intmax("uint64")-1) +***** assert (median ([1 2 3], "aLL"), 2) +***** assert (median ([1 2 3], "OmitNan"), 2) +***** assert (median ([1 2 3], "DOUBle"), 2) +***** error median () +***** error median (1, 2, 3) +***** error median (1, 2, 3, 4) +***** error median (1, "all", 3) +***** error median (1, "b") +***** error median (1, 1, "foo") +***** error <'all' cannot be used with> median (1, 3, "all") +***** error <'all' cannot be used with> median (1, [2 3], "all") +***** error median ({1:5}) +***** error median ("char") +***** error median(1, "double", "native") +***** error median (1, ones (2,2)) +***** error median (1, 1.5) +***** error median (1, 0) +***** error median ([1 2 3], [-1 1]) +***** error median(1, [1 2 2]) +159 tests, 159 passed, 0 known failure, 0 skipped +[inst/shadow9/mean.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/shadow9/mean.m +***** test + x = -10:10; + y = x'; + z = [y, y+10]; + assert (mean (x), 0); + assert (mean (y), 0); + assert (mean (z), [0, 10]); +***** assert (mean (magic (3), 1), [5, 5, 5]) +***** assert (mean (magic (3), 2), [5; 5; 5]) +***** assert (mean (logical ([1 0 1 1])), 0.75) +***** assert (mean (single ([1 0 1 1])), single (0.75)) +***** assert (mean ([1 2], 3), [1 2]) +***** test + in = [1 2 3]; + out = 2; + assert (mean (in, "default"), mean (in)); + assert (mean (in, "default"), out); + assert (mean (in, "double"), out); + assert (mean (in, "native"), out); +***** test + in = single ([1 2 3]); + out = 2; + assert (mean (in, "default"), mean (in)); + assert (mean (in, "default"), single (out)); + assert (mean (in, "double"), out); + assert (mean (in, "native"), single (out)); +***** test + in = logical ([1 0 1]); + out = 2/3; + assert (mean (in, "default"), mean (in), eps); + assert (mean (in, "default"), out, eps); + assert (mean (in, "double"), out, eps); + assert (mean (in, "native"), out, eps); +***** test + in = char ("ab"); + out = 97.5; + assert (mean (in, "default"), mean (in), eps); + assert (mean (in, "default"), out, eps); + assert (mean (in, "double"), out, eps); +***** test + in = uint8 ([1 2 3]); + out = 2; + assert (mean (in, "default"), mean (in)); + assert (mean (in, "default"), out); + assert (mean (in, "double"), out); + assert (mean (in, "native"), uint8 (out)); +***** test + in = uint8 ([0 1 2 3]); + out = 1.5; + out_u8 = 2; + assert (mean (in, "default"), mean (in), eps); + assert (mean (in, "default"), out, eps); + assert (mean (in, "double"), out, eps); + assert (mean (in, "native"), uint8 (out_u8)); + assert (class (mean (in, "native")), "uint8"); +***** test # internal sum exceeding intmax + in = uint8 ([3 141 141 255]); + out = 135; + assert (mean (in, "default"), mean (in)); + assert (mean (in, "default"), out); + assert (mean (in, "double"), out); + assert (mean (in, "native"), uint8 (out)); + assert (class (mean (in, "native")), "uint8"); +***** test # fractional answer with internal sum exceeding intmax + in = uint8 ([1 141 141 255]); + out = 134.5; + out_u8 = 135; + assert (mean (in, "default"), mean (in)); + assert (mean (in, "default"), out); + assert (mean (in, "double"), out); + assert (mean (in, "native"), uint8 (out_u8)); + assert (class (mean (in, "native")), "uint8"); +***** test <54567> # large int64 sum exceeding intmax and double precision limit + in_same = uint64 ([intmax("uint64") intmax("uint64")-2]); + out_same = intmax ("uint64")-1; + in_opp = int64 ([intmin("int64"), intmax("int64")-1]); + out_opp = -1; + in_neg = int64 ([intmin("int64") intmin("int64")+2]); + out_neg = intmin ("int64")+1; + + ## both positive + assert (mean (in_same, "default"), mean (in_same)); + assert (mean (in_same, "default"), double (out_same)); + assert (mean (in_same, "double"), double (out_same)); + assert (mean (in_same, "native"), uint64 (out_same)); + assert (class (mean (in_same, "native")), "uint64"); + + ## opposite signs + assert (mean (in_opp, "default"), mean (in_opp)); + assert (mean (in_opp, "default"), double (out_opp)); + assert (mean (in_opp, "double"), double (out_opp)); + assert (mean (in_opp, "native"), int64 (out_opp)); + assert (class (mean (in_opp, "native")), "int64"); + + ## both negative + assert (mean (in_neg, "default"), mean (in_neg)); + assert (mean (in_neg, "default"), double(out_neg)); + assert (mean (in_neg, "double"), double(out_neg)); + assert (mean (in_neg, "native"), int64(out_neg)); + assert (class (mean (in_neg, "native")), "int64"); +***** test <54567> + in = [(intmin('int64')+5), (intmax('int64'))-5]; + assert (mean (in, "native"), int64(-1)); + assert (class (mean (in, "native")), "int64"); + assert (mean (double(in)), double(0) ); + assert (mean (in), double(-0.5) ); + assert (mean (in, "default"), double(-0.5) ); + assert (mean (in, "double"), double(-0.5) ); + assert (mean (in, "all", "native"), int64(-1)); + assert (mean (in, 2, "native"), int64(-1)); + assert (mean (in, [1 2], "native"), int64(-1)); + assert (mean (in, [2 3], "native"), int64(-1)); + assert (mean ([intmin("int64"), in, intmax("int64")]), double(-0.5)) + assert (mean ([in; int64([1 3])], 2, "native"), int64([-1; 2])); +***** test + x = [-10:10]; + y = [x;x+5;x-5]; + assert (mean (x), 0); + assert (mean (y, 2), [0, 5, -5]'); + assert (mean (y, "all"), 0); + y(2,4) = NaN; + assert (mean (y', "omitnan"), [0 5.35 -5]); + z = y + 20; + assert (mean (z, "all"), NaN); + assert (mean (z, "all", "includenan"), NaN); + assert (mean (z, "all", "omitnan"), 20.03225806451613, 4e-14); + m = [20 NaN 15]; + assert (mean (z'), m); + assert (mean (z', "includenan"), m); + m = [20 25.35 15]; + assert (mean (z', "omitnan"), m); + assert (mean (z, 2, "omitnan"), m'); + assert (mean (z, 2, "native", "omitnan"), m'); + assert (mean (z, 2, "omitnan", "native"), m'); +***** test + assert (mean (true, "all"), 1); + assert (mean (false), 0); + assert (mean ([true false true]), 2/3, 4e-14); + assert (mean ([true false true], 1), [1 0 1]); + assert (mean ([true false NaN], 1), [1 0 NaN]); + assert (mean ([true false NaN], 2), NaN); + assert (mean ([true false NaN], 2, "omitnan"), 0.5); + assert (mean ([true false NaN], 2, "omitnan", "native"), 0.5); +***** assert (mean ("abc"), double (98)) +***** assert (mean ("ab"), double (97.5), eps) +***** assert (mean ("abc", "double"), double (98)) +***** assert (mean ("abc", "default"), double (98)) +***** test + x = magic (4); + x([2, 9:12]) = NaN; + assert (mean (x), [NaN 8.5, NaN, 8.5], eps); + assert (mean (x,1), [NaN 8.5, NaN, 8.5], eps); + assert (mean (x,2), NaN(4,1), eps); + assert (mean (x,3), x, eps); + assert (mean (x, 'omitnan'), [29/3, 8.5, NaN, 8.5], eps); + assert (mean (x, 1, 'omitnan'), [29/3, 8.5, NaN, 8.5], eps); + assert (mean (x, 2, 'omitnan'), [31/3; 9.5; 28/3; 19/3], eps); + assert (mean (x, 3, 'omitnan'), x, eps); +***** assert (mean ([]), NaN(1,1)) +***** assert (mean (single([])), NaN(1,1,"single")) +***** assert (mean ([], 1), NaN(1,0)) +***** assert (mean ([], 2), NaN(0,1)) +***** assert (mean ([], 3), NaN(0,0)) +***** assert (mean (ones(1,0)), NaN(1,1)) +***** assert (mean (ones(1,0), 1), NaN(1,0)) +***** assert (mean (ones(1,0), 2), NaN(1,1)) +***** assert (mean (ones(1,0), 3), NaN(1,0)) +***** assert (mean (ones(0,1)), NaN(1,1)) +***** assert (mean (ones(0,1), 1), NaN(1,1)) +***** assert (mean (ones(0,1), 2), NaN(0,1)) +***** assert (mean (ones(0,1), 3), NaN(0,1)) +***** assert (mean (ones(0,1,0)), NaN(1,1,0)) +***** assert (mean (ones(0,1,0), 1), NaN(1,1,0)) +***** assert (mean (ones(0,1,0), 2), NaN(0,1,0)) +***** assert (mean (ones(0,1,0), 3), NaN(0,1,1)) +***** assert (mean (ones(0,0,1,0)), NaN(1,0,1,0)) +***** assert (mean (ones(0,0,1,0), 1), NaN(1,0,1,0)) +***** assert (mean (ones(0,0,1,0), 2), NaN(0,1,1,0)) +***** assert (mean (ones(0,0,1,0), 3), NaN(0,0,1,0)) +***** test + x = repmat ([1:20;6:25], [5 2 6 3]); + assert (size (mean (x, [3 2])), [10 1 1 3]); + assert (size (mean (x, [1 2])), [1 1 6 3]); + assert (size (mean (x, [1 2 4])), [1 1 6]); + assert (size (mean (x, [1 4 3])), [1 40]); + assert (size (mean (x, [1 2 3 4])), [1 1]); +***** assert (mean (ones (2,2), 3), ones (2,2)) +***** assert (mean (ones (2,2,2), 99), ones (2,2,2)) +***** assert (mean (magic (3), 3), magic (3)) +***** assert (mean (magic (3), [1 3]), [5, 5, 5]) +***** assert (mean (magic (3), [1 99]), [5, 5, 5]) +***** test + x = repmat ([1:20;6:25], [5 2 6 3]); + m = repmat ([10.5;15.5], [5 1 1 3]); + assert (mean (x, [3 2]), m, 4e-14); + x(2,5,6,3) = NaN; + m(2,1,1,3) = NaN; + assert (mean (x, [3 2]), m, 4e-14); + m(2,1,1,3) = 15.52301255230125; + assert (mean (x, [3 2], "omitnan"), m, 4e-14); +***** assert (mean ([1 2 3], "aLL"), 2) +***** assert (mean ([1 2 3], "OmitNan"), 2) +***** assert (mean ([1 2 3], "DOUBle"), 2) +***** assert <*63848> (mean (ones (80e6, 1, "single")), 1, eps) +***** assert <*63848> (mean (ones (80e6, 1, "single"), "all"), 1, eps) +***** assert <*63848> (mean (ones (80e6, 1, "single"), 1), 1, eps) +***** assert <*63848> (mean (ones (80e6, 1, "single"), [1 2]), 1, eps) +***** assert <*63848> (mean (ones (80e6, 1, "single"), [1 3]), 1, eps) +***** assert <63848> (mean ([flintmax("double"), ones(1, 2^8-1, "double")]), ... + 35184372088833-1/(2^8), eps(35184372088833)) +!!!!! known bug: https://octave.org/testfailure/?63848 +ASSERT errors for: assert (mean ([flintmax("double"), ones(1, 2 ^ 8 - 1, "double")]),35184372088833 - 1 / (2 ^ 8),eps (35184372088833)) + + Location | Observed | Expected | Reason + () 35184372088832 35184372088833 Abs err 1 exceeds tol 0.0078125 by 1 +***** error mean () +***** error mean (1, 2, 3) +***** error mean (1, 2, 3, 4) +***** error mean (1, "all", 3) +***** error mean (1, "b") +***** error mean (1, 1, "foo") +***** error mean ("abc", "native") +***** error mean ({1:5}) +***** error mean (1, ones (2,2)) +***** error mean (1, 1.5) +***** error mean (1, 0) +***** error mean (1, []) +***** error mean (1, -1) +***** error mean (1, -1.5) +***** error mean (1, NaN) +***** error mean (1, Inf) +***** error mean (repmat ([1:20;6:25], [5 2]), -1) +***** error mean (repmat ([1:5;5:9], [5 2]), [1 -1]) +***** error mean (1, ones(1,0)) +***** error mean (1, [2 2]) +80 tests, 79 passed, 0 known failure, 1 skipped +[inst/shadow9/mad.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/shadow9/mad.m +***** assert (mad (1), 0) +***** assert (mad (1,1), 0) +***** assert (mad (1,0,3), 0) +***** assert (mad (1,1,3), 0) +***** assert (mad (1,[],5), 0) +***** assert (mad ([1,2,3]), 2/3) +***** assert (mad ([1,2,3],[]), 2/3) +***** assert (mad ([1,2,3],0), 2/3) +***** assert (mad ([1,2,3],1), 1) +***** assert (mad ([1,2,3],0,2), 2/3) +***** assert (mad ([1,2,3],[],2), 2/3) +***** assert (mad ([1,2,3],1,2), 1) +***** assert (mad ([1,2,3],0,1), zeros (1,3)) +***** assert (mad ([1,2,3],1,1), zeros (1,3)) +***** assert (mad ([1,2,3]',0,2), zeros (3,1)) +***** assert (mad ([1,2,3]',1,2), zeros (3,1)) +***** assert (mad ([1,2,3]',0,1), 2/3) +***** assert (mad ([1,2,3]',1,1), 1) +***** test + A = [57, 59, 60, 100, 59, 58, 57, 58, 300, 61, 62, 60, 62, 58, 57]; + AA = [A;2*A;3*A]; + m0 = [38.000, 39.333, 40.000, 66.667, 39.333, 38.667, 38.000, 38.667, ... + 200.000, 40.667, 41.333, 40.000, 41.333, 38.667, 38.000]; + m1 = [32.569;65.138; 97.707]; + + assert (mad (AA), m0, 1e-3); + assert (mad (AA,1), A); + assert (mad (AA,1,1), A); + assert (mad (AA,0,2), m1, 1e-3); + assert (mad (AA,1,2), [2;4;6]); + assert (mad (A,0,1), zeros (size (A))); + assert (mad (A,1,1), zeros (size (A))); +***** test + x = repmat ([2 2.1 2.2 2 NaN; 3 1 2 NaN 5; 1 1.1 1.4 5 3], [1, 1, 4]); + m0 = repmat ([0.6667, 0.4667, 0.3111, 1.5, 1], [1, 1, 4]); + m1 = repmat ([1, 0.1, 0.2, 1.5, 1], [1, 1, 4]); + assert (mad (x), m0, 1e-4); + assert (mad (x, 1), m1, 1e-14); + assert (mad (x, [], [1, 2]), 1.0036 * ones(1,1,4), 1e-4) + assert (mad (x, 1, [1, 2]), 0.9 * ones(1,1,4), 1e-14) + assert (mad (x, 0, [1, 3]), m0(1,:,1), 1e-4) + assert (mad (x, 1, [1, 3]), m1(1,:,1), 1e-14) + assert (mad (x, 0, [2, 3]), [0.075; 1.25; 1.36], 1e-14) + assert (mad (x, 1, [2, 3]), [0.05; 1; 0.4], 1e-14) + assert (mad (x, 0, [1, 2, 3]) == mad (x, 0, "All")) + assert (mad (x, 1, [1, 2, 3]) == mad (x, 1, "All")) +***** test + x = repmat ([1:20;6:25], [5 2 6 3]); + assert (size (mad (x, [], [3 2])), [10 1 1 3]); + assert (size (mad (x, 0, [1 2])), [1 1 6 3]); + assert (size (mad (x, 1, [1 2 4])), [1 1 6]); + assert (size (mad (x, [], [1 4 3])), [1 40]); + assert (size (mad (x, 1, [1 2 3 4])), [1 1]); +***** assert (mad (ones (2,2), 0, 3), zeros (2,2)) +***** assert (mad (ones (2,2,2), 1, 99), zeros (2,2,2)) +***** assert (mad (magic (3), 1, 3), zeros (3)) +***** assert (mad (magic (3), 1, [1 3]), [1, 4, 1]) +***** assert (mad (magic (3), 1, [1 99]), [1, 4, 1]) +***** assert (mad ([]), NaN) +***** assert (mad ([], 1), NaN) +***** assert (mad (NaN), NaN) +***** assert (mad (NaN, 1), NaN) +***** assert (mad (Inf), NaN) +***** assert (mad (Inf, 1), NaN) +***** assert (mad (-Inf), NaN) +***** assert (mad (-Inf, 1), NaN) +***** assert (mad ([-Inf Inf]), NaN) +***** assert (mad ([-Inf Inf], 1), NaN) +***** assert (mad ([3 Inf]), Inf) +***** assert (mad ([3 4 Inf]), Inf) +***** assert (mad ([Inf 3 4]), Inf) +***** assert (mad ([Inf 3 Inf]), Inf) +***** assert (mad ([Inf 3 Inf], 1), Inf) +***** assert (mad ([1 2; 3 Inf]), [1 Inf]) +***** assert (mad ([1 2; 3 Inf], 1), [1 Inf]) +***** assert (mad ([3, 4, Inf]), Inf) +***** assert (mad ([Inf, 3, 4]), Inf) +***** assert (mad ([3, 4, Inf], 0), Inf) +***** assert (mad ([3, 4, Inf], 0, 1), [0, 0, NaN]) +***** assert (mad ([3, 4, Inf], 0, 2), Inf) +***** assert (mad ([3, 4, Inf], 0, 3), [0, 0, NaN]) +***** assert (mad ([3, 4, Inf]', 0), Inf) +***** assert (mad ([3, 4, Inf]', 0, 1), Inf) +***** assert (mad ([3, 4, Inf]', 0, 2), [0; 0; NaN]) +***** assert (mad ([3, 4, Inf]', 0, 3), [0; 0; NaN]) +***** assert (mad ([Inf, 3, 4], 1), 1) +***** assert (mad ([3, 4, Inf], 1), 1) +***** assert (mad ([3, 4, Inf], 1, 1), [0, 0, NaN]) +***** assert (mad ([3, 4, Inf], 1, 2), 1) +***** assert (mad ([3, 4, Inf], 1, 3), [0, 0, NaN]) +***** assert (mad ([3, 4, Inf]', 1), 1) +***** assert (mad ([3, 4, Inf]', 1, 1), 1) +***** assert (mad ([3, 4, Inf]', 1, 2), [0; 0; NaN]) +***** assert (mad ([3, 4, Inf]', 1, 3), [0; 0; NaN]) +***** assert (mad ([3, Inf, Inf], 1), Inf) +***** assert (mad ([3, 4, 5, Inf], 1), 1) +***** assert (mad ([3, 4, Inf, Inf], 1), Inf) +***** assert (mad ([3, Inf, Inf, Inf], 1), Inf) +***** assert (mad ([1, 2; 3, 4; Inf, Inf], 0), [Inf, Inf]) +***** assert (mad ([1, 2; 3, 4; Inf, Inf], 1), [2, 2]) +***** assert (mad ([1, 2; 3, Inf; Inf, Inf], 1), [2, Inf]) +***** assert (mad ([1, 2; 3, 4; 5, 6; Inf, Inf], 1), [2, 2]) +***** assert (mad ([1, 2; 3, 4; 5, Inf; Inf, Inf], 1), [2, Inf]) +***** assert (mad ([Inf, 2; Inf, 4; Inf, Inf], 0), [NaN, Inf]) +***** assert (mad ([Inf, 2; Inf, 4; Inf, Inf], 1), [NaN, 2]) +***** assert (mad ([]), NaN) +***** assert (mad (ones(1,0)), NaN) +***** assert (mad (ones(0,1)), NaN) +***** assert (mad ([], 0, 1), NaN(1,0)) +***** assert (mad ([], 0, 2), NaN(0,1)) +***** assert (mad ([], 0, 3), NaN(0,0)) +***** assert (mad (ones(1,0), 0, 1), NaN(1,0)) +***** assert (mad (ones(1,0), 0, 2), NaN(1,1)) +***** assert (mad (ones(1,0), 0, 3), NaN(1,0)) +***** assert (mad (ones(0,1), 0, 1), NaN(1,1)) +***** assert (mad (ones(0,1), 0, 2), NaN(0,1)) +***** assert (mad (ones(0,1), 0, 3), NaN(0,1)) +***** assert (mad (ones(0,1,0,1), 0, 1), NaN(1,1,0)) +***** assert (mad (ones(0,1,0,1), 0, 2), NaN(0,1,0)) +***** assert (mad (ones(0,1,0,1), 0, 3), NaN(0,1,1)) +***** assert (mad (ones(0,1,0,1), 0, 4), NaN(0,1,0)) +***** assert (mad([1 3 3i 2 1i]), 1.5297, 1e-4) +***** assert (mad([1 3 3i 2 1i], 1), 1) +***** assert (mad([1 2 4i; 3 2i 4]), [1, 1.4142, 2.8284], 1e-4) +***** assert (mad([1 2 4i; 3 2i 4], 1), [1, 1.4142, 2.8284], 1e-4) +***** assert (mad([1 2 4i; 3 2i 4], 1, 2), [1; 1]) +***** assert (mad([1 2 4i; 3 2i 4], 0, 2), [1.9493; 1.8084], 1e-4) +***** assert <*65405> (mad ([-Inf Inf]), NaN) +***** assert <*65405> (mad ([-Inf Inf], 0), NaN) +***** assert <*65405> (mad ([-Inf Inf], 1), NaN) +***** assert <*65405> (mad ([-Inf Inf]', 0), NaN) +***** assert <*65405> (mad ([-Inf Inf]', 1), NaN) +***** assert <*65405> (mad ([-Inf Inf]', 0, 1), NaN) +***** assert <*65405> (mad ([-Inf Inf]', 0, 2), [NaN; NaN]) +***** assert <*65405> (mad ([-Inf Inf]', 0, 3), [NaN; NaN]) +***** assert <*65405> (mad ([-Inf Inf]', 1, 1), NaN) +***** assert <*65405> (mad ([-Inf Inf]', 1, 2), [NaN; NaN]) +***** assert <*65405> (mad ([-Inf Inf]', 1, 3), [NaN; NaN]) +***** assert <*65405> (mad (Inf(2), 0), [NaN, NaN]) +***** assert <*65405> (mad (Inf(2), 1), [NaN, NaN]) +***** assert <*65405> (mad (Inf(2), 0, 1), [NaN, NaN]) +***** assert <*65405> (mad (Inf(2), 0, 2), [NaN; NaN]) +***** assert <*65405> (mad (Inf(2), 0, 3), NaN(2)) +***** assert <*65405> (mad (Inf(2), 1, 1), [NaN, NaN]) +***** assert <*65405> (mad (Inf(2), 1, 2), [NaN; NaN]) +***** assert <*65405> (mad (Inf(2), 1, 3), NaN(2)) +***** assert (mad ([1 2 3], 0, "aLL"), 2/3) +***** assert (mad ([1 2 3], 1, "aLL"), 1) +***** error mad () +***** error mad (1, 2, 3, 4) +***** error mad ("text") +***** error mad ({2 3 4}) +***** error mad (1, "all", 3) +***** error mad (1, "b") +***** error mad (1, 1, "foo") +***** error mad (1, [] ,ones (2,2)) +***** error mad (1, [], 1.5) +***** error mad (1, [], 0) +***** error mad ([1 2 3], [], [-1 1]) +***** error mad(1, [], [1 2 2]) +128 tests, 128 passed, 0 known failure, 0 skipped +[inst/shadow9/var.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/shadow9/var.m +***** assert (var (13), 0) +***** assert (var (single (13)), single (0)) +***** assert (var ([1,2,3]), 1) +***** assert (var ([1,2,3], 1), 2/3, eps) +***** assert (var ([1,2,3], [], 1), [0,0,0]) +***** assert (var ([1,2,3], [], 3), [0,0,0]) +***** assert (var (5, 99), 0) +***** assert (var (5, 99, 1), 0) +***** assert (var (5, 99, 2), 0) +***** assert (var ([5 3], [99 99], 2), 1) +***** assert (var ([1:7], [1:7]), 3) +***** assert (var ([eye(3)], [1:3]), [5/36, 2/9, 1/4], eps) +***** assert (var (ones (2,2,2), [1:2], 3), [(zeros (2,2))]) +***** assert (var ([1 2; 3 4], 0, 'all'), var ([1:4])) +***** assert (var (reshape ([1:8], 2, 2, 2), 0, [1 3]), [17/3 17/3], eps) +***** assert (var ([1 2 3;1 2 3], [], [1 2]), 0.8, eps) +***** test + x = [-10:10]; + y = [x;x+5;x-5]; + assert (var (x), 38.5); + assert (var (y, [], 2), [38.5; 38.5; 38.5]); + assert (var (y, 0, 2), [38.5; 38.5; 38.5]); + assert (var (y, 1, 2), ones (3,1) * 36.66666666666666, 1e-14); + assert (var (y, "all"), 54.19354838709678, 1e-14); + y(2,4) = NaN; + assert (var (y, "all"), NaN); + assert (var (y, "all", "includenan"), NaN); + assert (var (y, "all", "omitnan"), 55.01533580116342, 1e-14); + assert (var (y, 0, 2, "includenan"), [38.5; NaN; 38.5]); + assert (var (y, [], 2), [38.5; NaN; 38.5]); + assert (var (y, [], 2, "omitnan"), [38.5; 37.81842105263158; 38.5], 1e-14); +***** assert (var ([1 NaN 3], [1 2 3], "omitnan"), 0.75, eps) +***** assert (var ([1 2 3], [1 NaN 3], "omitnan"), 0.75, eps) +***** assert (var (magic(3), [1 NaN 3], "omitnan"), [3 12 3], eps) +***** assert (var ([1 NaN 3], [1 2 3], "omitnan", "all"), 0.75, eps) +***** assert (var ([1 NaN 3], [1 2 3], "all", "omitnan"), 0.75, eps) +***** assert (var ([1 2 3], [1 NaN 3], "omitnan", "all"), 0.75, eps) +***** assert (var ([1 NaN 3], [1 2 3], 2, "omitnan"), 0.75, eps) +***** assert (var ([1 2 3], [1 NaN 3], 2, "omitnan"), 0.75, eps) +***** assert (var (magic(3), [1 NaN 3], 1, "omitnan"), [3 12 3], eps) +***** assert (var (magic(3), [1 NaN 3], 2, "omitnan"), [0.75;3;0.75], eps) +***** assert (var ([4 4; 4 6; 6 6], [1 3], 2, 'omitnan'), [0;0.75;0], eps) +***** assert (var ([4 NaN; 4 6; 6 6], [1 2 3], 1, 'omitnan'), [1 0]) +***** assert (var ([4 NaN; 4 6; 6 6], [1 3], 2, 'omitnan'), [0;0.75;0], eps) +***** assert (var (3*reshape(1:18, [3 3 2]), [1 2 3], 1, 'omitnan'), ones(1,3,2)*5) +***** assert (var (reshape(1:18, [3 3 2]), [1 2 3], 2, 'omitnan'), 5*ones(3,1,2)) +***** assert (var (3*reshape(1:18, [3 3 2]), ones (3,3,2), [1 2], 'omitnan'), ... + 60 * ones(1,1,2)) +***** assert (var (3*reshape(1:18, [3 3 2]), ones (3,3,2), [1 4], 'omitnan'), ... + 6 * ones(1,3,2)) +***** assert (var (6*reshape(1:18, [3 3 2]), ones (3,3,2), [1:3], 'omitnan'), 969) +***** test + x = reshape(1:18, [3 3 2]); + x([2, 14]) = NaN; + w = ones (3,3,2); + assert (var (16*x, w, [1:3], 'omitnan'), 6519); +***** test + x = reshape(1:18, [3 3 2]); + w = ones (3,3,2); + w([2, 14]) = NaN; + assert (var (16*x, w, [1:3], 'omitnan'), 6519); +***** assert (var ([1 2 3], "aLl"), 1); +***** assert (var ([1 2 3], "OmitNan"), 1); +***** assert (var ([1 2 3], "IncludeNan"), 1); +***** test + x = repmat ([1:20;6:25], [5, 2, 6, 3]); + assert (size (var (x, 0, [3 2])), [10, 1, 1, 3]); + assert (size (var (x, 1, [1 2])), [1, 1, 6, 3]); + assert (size (var (x, [], [1 2 4])), [1, 1, 6]); + assert (size (var (x, 0, [1 4 3])), [1, 40]); + assert (size (var (x, [], [1 2 3 4])), [1, 1]); +***** assert (var (3*magic(3)), [63 144 63]) +***** assert (var (3*magic(3), 'omitnan'), [63 144 63]) +***** assert (var (3*magic(3), 1), [42 96 42]) +***** assert (var (3*magic(3), 1, 'omitnan'), [42 96 42]) +***** assert (var (3*magic(3), ones(1,3), 1), [42 96 42]) +***** assert (var (3*magic(3), ones(1,3), 1, 'omitnan'), [42 96 42]) +***** assert (var (2*magic(3), [1 1 NaN], 1, 'omitnan'), [25 16 1]) +***** assert (var (3*magic(3), ones(3,3)), [42 96 42]) +***** assert (var (3*magic(3), ones(3,3), 'omitnan'), [42 96 42]) +***** assert (var (3*magic(3), [1 1 1; 1 1 1; 1 NaN 1], 'omitnan'), [42 36 42]) +***** assert (var (3*magic(3), ones(3,3), 1), [42 96 42]) +***** assert (var (3*magic(3), ones(3,3), 1, 'omitnan'), [42 96 42]) +***** assert (var (3*magic(3), [1 1 1; 1 1 1; 1 NaN 1], 1, 'omitnan'), [42 36 42]) +***** assert (var (3*magic(3), ones(3,3), [1 4]), [42 96 42]) +***** assert (var (3*magic(3), ones(3,3), [1 4], 'omitnan'), [42 96 42]) +***** assert (var (3*magic(3), [1 1 1; 1 1 1; 1 NaN 1],[1 4],'omitnan'), [42 36 42]) +***** test + x = repmat ([1:20;6:25], [5, 2, 6, 3]); + v = repmat (33.38912133891213, [10, 1, 1, 3]); + assert (var (x, 0, [3, 2]), v, 1e-14); + v = repmat (33.250, [10, 1, 1, 3]); + assert (var (x, 1, [3, 2]), v, 1e-14); + x(2,5,6,3) = NaN; + v(2,1,1,3) = NaN; + assert (var (x, 1, [3, 2]), v, 4e-14); + v = repmat (33.38912133891213, [10 1 1 3]); + v(2,1,1,3) = NaN; + assert (var (x, [], [3, 2]), v, 4e-14); + v(2,1,1,3) = 33.40177912169048; + assert (var (x, [], [3, 2], "omitnan"), v, 4e-14); +***** assert (var (ones (2,2,2), [1:2], 3), [(zeros (2, 2))]) +***** assert (var (magic (3), [1:9], "all"), 6.666666666666667, 1e-14) +***** assert (var (ones (2,2), [], 3), zeros (2,2)) +***** assert (var (ones (2,2,2), [], 99), zeros (2,2,2)) +***** assert (var (magic (3), [], 3), zeros (3,3)) +***** assert (var (magic (3), [], 1), [7, 16, 7]) +***** assert (var (magic (3), [], [1 3]), [7, 16, 7]) +***** assert (var (magic (3), [], [1 99]), [7, 16, 7]) +***** assert (var ([]), NaN) +***** assert (class (var (single ([]))), "single") +***** assert (var ([],[],1), NaN(1,0)) +***** assert (var ([],[],2), NaN(0,1)) +***** assert (var ([],[],3), []) +***** assert (class (var (single ([]), [], 1)), "single") +***** assert (var (ones (1,0)), NaN) +***** assert (var (ones (1,0), [], 1), NaN(1,0)) +***** assert (var (ones (1,0), [], 2), NaN) +***** assert (var (ones (1,0), [], 3), NaN(1,0)) +***** assert (class (var (ones (1, 0, "single"), [], 1)), "single") +***** assert (var (ones (0,1)), NaN) +***** assert (var (ones (0,1), [], 1), NaN) +***** assert (var (ones (0,1), [], 2), NaN(0,1)) +***** assert (var (ones (0,1), [], 3), NaN(0,1)) +***** assert (var (ones (1,3,0,2)), NaN(1,1,0,2)) +***** assert (var (ones (1,3,0,2), [], 1), NaN(1,3,0,2)) +***** assert (var (ones (1,3,0,2), [], 2), NaN(1,1,0,2)) +***** assert (var (ones (1,3,0,2), [], 3), NaN(1,3,1,2)) +***** assert (var (ones (1,3,0,2), [], 4), NaN(1,3,0)) +***** test + [~, m] = var ([]); + assert (m, NaN); +***** test <*62395> + [~, m] = var (13); + assert (m, 13); + [~, m] = var (single(13)); + assert (m, single(13)); + [~, m] = var ([1, 2, 3; 3 2 1], []); + assert (m, [2 2 2]); + [~, m] = var ([1, 2, 3; 3 2 1], [], 1); + assert (m, [2 2 2]); + [~, m] = var ([1, 2, 3; 3 2 1], [], 2); + assert (m, [2 2]'); + [~, m] = var ([1, 2, 3; 3 2 1], [], 3); + assert (m, [1 2 3; 3 2 1]); +***** test <*62395> + [~, m] = var (5,99); + assert (m, 5); + [~, m] = var ([1:7], [1:7]); + assert (m, 5); + [~, m] = var ([eye(3)], [1:3]); + assert (m, [1/6, 1/3, 0.5], eps); + [~, m] = var (ones (2,2,2), [1:2], 3); + assert (m, ones (2,2)); + [~, m] = var ([1 2; 3 4], 0, 'all'); + assert (m, 2.5, eps); + [~, m] = var (reshape ([1:8], 2, 2, 2), 0, [1 3]); + assert (m, [3.5, 5.5], eps); +***** test + [v, m] = var (4 * eye (2), [1, 3]); + assert (v, [3, 3]); + assert (m, [1, 3]); +***** test <*62395> + [~, m] = var ([]); + assert (m, NaN); +***** test <*62395> + x = repmat ([1:20;6:25], [5, 2, 6, 3]); + [~, m] = var (x, 0, [3 2]); + assert (m, mean (x, [3 2])); + [~, m] = var (x, 0, [1 2]); + assert (m, mean (x, [1 2])); + [~, m] = var (x, 0, [1 3 4]); + assert (m, mean (x, [1 3 4])); +***** test + x = repmat ([1:20;6:25], [5, 2, 6, 3]); + x(2,5,6,3) = NaN; + [~, m] = var (x, 0, [3 2], "omitnan"); + assert (m, mean (x, [3 2], "omitnan")); +***** test <*63203> + [v, m] = var (Inf); + assert (v, NaN); + assert (m, Inf); +***** test <*63203> + [v, m] = var (NaN); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = var ([1, Inf, 3]); + assert (v, NaN); + assert (m, Inf); +***** test <*63203> + [v, m] = var ([1, Inf, 3]'); + assert (v, NaN); + assert (m, Inf); +***** test <*63203> + [v, m] = var ([1, NaN, 3]); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = var ([1, NaN, 3]'); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = var ([1, Inf, 3], [], 1); + assert (v, [0, NaN, 0]); + assert (m, [1, Inf, 3]); +***** test <*63203> + [v, m] = var ([1, Inf, 3], [], 2); + assert (v, NaN); + assert (m, Inf); +***** test <*63203> + [v, m] = var ([1, Inf, 3], [], 3); + assert (v, [0, NaN, 0]); + assert (m, [1, Inf, 3]); +***** test <*63203> + [v, m] = var ([1, NaN, 3], [], 1); + assert (v, [0, NaN, 0]); + assert (m, [1, NaN, 3]); +***** test <*63203> + [v, m] = var ([1, NaN, 3], [], 2); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = var ([1, NaN, 3], [], 3); + assert (v, [0, NaN, 0]); + assert (m, [1, NaN, 3]); +***** test <*63203> + [v, m] = var ([1, 2, 3; 3, Inf, 5]); + assert (v, [2, NaN, 2]); + assert (m, [2, Inf, 4]); +***** test <*63203> + [v, m] = var ([1, Inf, 3; 3, Inf, 5]); + assert (v, [2, NaN, 2]); + assert (m, [2, Inf, 4]); +***** test <*63203> + [v, m] = var ([1, 2, 3; 3, NaN, 5]); + assert (v, [2, NaN, 2]); + assert (m, [2, NaN, 4]); +***** test <*63203> + [v, m] = var ([1, NaN, 3; 3, NaN, 5]); + assert (v, [2, NaN, 2]); + assert (m, [2, NaN, 4]); +***** test <*63203> + [v, m] = var ([Inf, 2, NaN]); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = var ([Inf, 2, NaN]'); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = var ([NaN, 2, Inf]); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = var ([NaN, 2, Inf]'); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = var ([Inf, 2, NaN], [], 1); + assert (v, [NaN, 0, NaN]); + assert (m, [Inf, 2, NaN]); +***** test <*63203> + [v, m] = var ([Inf, 2, NaN], [], 2); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = var ([NaN, 2, Inf], [], 1); + assert (v, [NaN, 0, NaN]); + assert (m, [NaN, 2, Inf]); +***** test <*63203> + [v, m] = var ([NaN, 2, Inf], [], 2); + assert (v, NaN); + assert (m, NaN); +***** test <*63203> + [v, m] = var ([1, 3, NaN; 3, 5, Inf]); + assert (v, [2, 2, NaN]); + assert (m, [2, 4, NaN]); +***** test <*63203> + [v, m] = var ([1, 3, Inf; 3, 5, NaN]); + assert (v, [2, 2, NaN]); + assert (m, [2, 4, NaN]); +***** test <*63291> + [v, m] = var (2 * eye (2)); + assert (v, [2, 2]); + assert (m, [1, 1]); +***** test <*63291> + [v, m] = var (4 * eye (2), [1, 3]); + assert (v, [3, 3]); + assert (m, [1, 3]); +***** test <*63291> + [v, m] = var (sparse (2 * eye (2))); + assert (full (v), [2, 2]); + assert (full (m), [1, 1]); +***** test <*63291> + [v, m] = var (sparse (4 * eye (2)), [1, 3]); + assert (full (v), [3, 3]); + assert (full (m), [1, 3]); +***** test<*63291> + [v, m] = var (sparse (eye (2))); + assert (issparse (v)); + assert (issparse (m)); +***** test<*63291> + [v, m] = var (sparse (eye (2)), [1, 3]); + assert (issparse (v)); + assert (issparse (m)); +***** error var () +***** error var (1, 2, "omitnan", 3) +***** error var (1, 2, 3, 4) +***** error var (1, 2, 3, 4, 5) +***** error var (1, "foo") +***** error var (1, [], "foo") +***** error var ([1 2 3], 2) +***** error var ([1 2], 2, "all") +***** error var ([1 2],0.5, "all") +***** error var (1, -1) +***** error var (1, [1 -1]) +***** error ... + var ([1 2 3], [1 -1 0]) +***** error var ({1:5}) +***** error var ("char") +***** error var (['A'; 'B']) +***** error var (1, [], ones (2,2)) +***** error var (1, 0, 1.5) +***** error var (1, [], 0) +***** error var (1, [], 1.5) +***** error var ([1 2 3], [], [-1 1]) +***** error ... + var (repmat ([1:20;6:25], [5 2 6 3]), 0, [1 2 2 2]) +***** error ... + var ([1 2], eye (2)) +***** error ... + var ([1 2 3 4], [1 2; 3 4]) +***** error ... + var ([1 2 3 4], [1 2; 3 4], 1) +***** error ... + var ([1 2 3 4], [1 2; 3 4], [2 3]) +***** error ... + var (ones (2, 2), [1 2], [1 2]) +***** error ... + var ([1 2 3 4; 5 6 7 8], [1 2 1 2 1; 1 2 1 2 1], 1) +***** error ... + var (repmat ([1:20;6:25], [5 2 6 3]), repmat ([1:20;6:25], [5 2 3]), [2 3]) +***** error var ([1 2 3; 2 3 4], [1 3 4]) +***** error var ([1 2], [1 2 3]) +***** error var (1, [1 2]) +***** error var ([1 2 3; 2 3 4], [1 3 4], 1) +***** error var ([1 2 3; 2 3 4], [1 3], 2) +***** error var ([1 2], [1 2], 1) +***** error <'all' flag cannot be used with DIM or VECDIM options> ... + var (1, [], 1, "all") +***** error ... + var ([1 2 3; 2 3 4], [1 3], "all") +***** error ... + var (repmat ([1:20;6:25], [5 2 6 3]), repmat ([1:20;6:25], [5 2 3]), "all") +162 tests, 162 passed, 0 known failure, 0 skipped +[inst/ecdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ecdf.m +***** demo + y = exprnd (10, 50, 1); ## random failure times are exponential(10) + d = exprnd (20, 50, 1); ## drop-out times are exponential(20) + t = min (y, d); ## we observe the minimum of these times + censored = (y > d); ## we also observe whether the subject failed + + ## Calculate and plot the empirical cdf and confidence bounds + [f, x, flo, fup] = ecdf (t, "censoring", censored); + stairs (x, f); + hold on; + stairs (x, flo, "r:"); stairs (x, fup, "r:"); + + ## Superimpose a plot of the known true cdf + xx = 0:.1:max (t); yy = 1 - exp (-xx / 10); plot (xx, yy, "g-"); + hold off; +***** demo + R = wblrnd (100, 2, 100, 1); + ecdf (R, "Function", "survivor", "Alpha", 0.01, "Bounds", "on"); + hold on + x = 1:1:250; + wblsurv = 1 - cdf ("weibull", x, 100, 2); + plot (x, wblsurv, "g-", "LineWidth", 2) + legend ("Empirical survivor function", "Lower confidence bound", ... + "Upper confidence bound", "Weibull survivor function", ... + "Location", "northeast"); + hold off +***** error ecdf (); +***** error ecdf (randi (15,2)); +***** error ecdf ([3,2,4,3+2i,5]); +***** error kstest ([2,3,4,5,6],"tail"); +***** error kstest ([2,3,4,5,6],"tail", "whatever"); +***** error kstest ([2,3,4,5,6],"function", ""); +***** error kstest ([2,3,4,5,6],"badoption", 0.51); +***** error kstest ([2,3,4,5,6],"tail", 0); +***** error kstest ([2,3,4,5,6],"alpha", 0); +***** error kstest ([2,3,4,5,6],"alpha", NaN); +***** error kstest ([NaN,NaN,NaN,NaN,NaN],"tail", "unequal"); +***** error kstest ([2,3,4,5,6],"alpha", 0.05, "CDF", [2,3,4;1,3,4;1,2,1]); +***** test + hf = figure ("visible", "off"); + unwind_protect + x = [2, 3, 4, 3, 5, 4, 6, 5, 8, 3, 7, 8, 9, 0]; + [F, x, Flo, Fup] = ecdf (x); + F_out = [0; 0.0714; 0.1429; 0.3571; 0.5; 0.6429; 0.7143; 0.7857; 0.9286; 1]; + assert (F, F_out, ones (10,1) * 1e-4); + x_out = [0 0 2 3 4 5 6 7 8 9]'; + assert (x, x_out); + Flo_out = [NaN, 0, 0, 0.1061, 0.2381, 0.3919, 0.4776, 0.5708, 0.7937, NaN]'; + assert (Flo, Flo_out, ones (10,1) * 1e-4); + Fup_out = [NaN, 0.2063, 0.3262, 0.6081, 0.7619, 0.8939, 0.9509, 1, 1, NaN]'; + assert (Fup, Fup_out, ones (10,1) * 1e-4); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** test + hf = figure ("visible", "off"); + unwind_protect + x = [2, 3, 4, 3, 5, 4, 6, 5, 8, 3, 7, 8, 9, 0]; + ecdf (x); + unwind_protect_cleanup + close (hf); + end_unwind_protect +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/hmmviterbi.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/hmmviterbi.m +***** test + sequence = [1, 2, 1, 1, 1, 2, 2, 1, 2, 3, 3, 3, ... + 3, 2, 3, 1, 1, 1, 1, 3, 3, 2, 3, 1, 3]; + transprob = [0.8, 0.2; 0.4, 0.6]; + outprob = [0.2, 0.4, 0.4; 0.7, 0.2, 0.1]; + vpath = hmmviterbi (sequence, transprob, outprob); + expected = [1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, ... + 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1]; + assert (vpath, expected); +***** test + sequence = {"A", "B", "A", "A", "A", "B", "B", "A", "B", "C", "C", "C", ... + "C", "B", "C", "A", "A", "A", "A", "C", "C", "B", "C", "A", "C"}; + transprob = [0.8, 0.2; 0.4, 0.6]; + outprob = [0.2, 0.4, 0.4; 0.7, 0.2, 0.1]; + symbols = {"A", "B", "C"}; + statenames = {"One", "Two"}; + vpath = hmmviterbi (sequence, transprob, outprob, "symbols", symbols, ... + "statenames", statenames); + expected = {"One", "One", "Two", "Two", "Two", "One", "One", "One", ... + "One", "One", "One", "One", "One", "One", "One", "Two", ... + "Two", "Two", "Two", "One", "One", "One", "One", "One", "One"}; + assert (vpath, expected); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/princomp.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/princomp.m +***** shared COEFF,SCORE,latent,tsquare,m,x,R,V,lambda,i,S,F +***** test + x=[7 4 3 + 4 1 8 + 6 3 5 + 8 6 1 + 8 5 7 + 7 2 9 + 5 3 3 + 9 5 8 + 7 4 5 + 8 2 2]; + R = corrcoef (x); + [V, lambda] = eig (R); + [~, i] = sort(diag(lambda), "descend"); #arrange largest PC first + S = V(:, i) * diag(sqrt(diag(lambda)(i))); + ## contribution of first 2 PCs to each original variable +***** assert(diag(S(:, 1:2)*S(:, 1:2)'), [0.8662; 0.8420; 0.9876], 1E-4); + B = V(:, i) * diag( 1./ sqrt(diag(lambda)(i))); + F = zscore(x)*B; + [COEFF,SCORE,latent,tsquare] = princomp(zscore(x, 1)); +***** assert(tsquare,sumsq(F, 2),1E4*eps); +***** test + x=[1,2,3;2,1,3]'; + [COEFF,SCORE,latent,tsquare] = princomp(x); + m=[sqrt(2),sqrt(2);sqrt(2),-sqrt(2);-2*sqrt(2),0]/2; + m(:,1) = m(:,1)*sign(COEFF(1,1)); + m(:,2) = m(:,2)*sign(COEFF(1,2)); +***** assert(COEFF,m(1:2,:),10*eps); +***** assert(SCORE,-m,10*eps); +***** assert(latent,[1.5;.5],10*eps); +***** assert(tsquare,[4;4;4]/3,10*eps); +***** test + x=x'; + [COEFF,SCORE,latent,tsquare] = princomp(x); + m=[sqrt(2),sqrt(2),0;-sqrt(2),sqrt(2),0;0,0,2]/2; + m(:,1) = m(:,1)*sign(COEFF(1,1)); + m(:,2) = m(:,2)*sign(COEFF(1,2)); + m(:,3) = m(:,3)*sign(COEFF(3,3)); +***** assert(COEFF,m,10*eps); +***** assert(SCORE(:,1),-m(1:2,1),10*eps); +***** assert(SCORE(:,2:3),zeros(2),10*eps); +***** assert(latent,[1;0;0],10*eps); +***** assert(tsquare,[0.5;0.5],10*eps) +***** test + [COEFF,SCORE,latent,tsquare] = princomp(x, "econ"); +***** assert(COEFF,m(:, 1),10*eps); +***** assert(SCORE,-m(1:2,1),10*eps); +***** assert(latent,[1],10*eps); +***** assert(tsquare,[0.5;0.5],10*eps) +19 tests, 19 passed, 0 known failure, 0 skipped +[inst/ff2n.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ff2n.m +***** error ff2n (); +***** error ff2n (2, 5); +***** error ff2n (2.5); +***** error ff2n (0); +***** error ff2n (-3); +***** error ff2n (3+2i); +***** error ff2n (Inf); +***** error ff2n (NaN); +***** test + A = ff2n (3); + assert (A, fullfact (3)); +***** test + A = ff2n (8); + assert (A, fullfact (8)); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/grp2idx.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/grp2idx.m +***** test + in = [true false false true]; + out = {[1; 2; 2; 1] {"1"; "0"} [true; false]}; + assert (nthargout (1:3, @grp2idx, in), out) + assert (nthargout (1:3, @grp2idx, in), nthargout (1:3, @grp2idx, in')) +***** test + assert (nthargout (1:3, @grp2idx, [false, true]), + {[1; 2] {"0"; "1"} [false; true]}); + assert (nthargout (1:3, @grp2idx, [true, false]), + {[1; 2] {"1"; "0"} [true; false]}); +***** assert (nthargout (1:3, @grp2idx, ["oct"; "sci"; "oct"; "oct"; "sci"]), + {[1; 2; 1; 1; 2] {"oct"; "sci"} ["oct"; "sci"]}); +***** assert (nthargout (1:3, @grp2idx, {"oct"; "sci"; "oct"; "oct"; "sci"}), + {[1; 2; 1; 1; 2] {"oct"; "sci"} {"oct"; "sci"}}); +***** assert (nthargout (1:3, @grp2idx, [ 1 -3 -2 -3 -3 2 1 -1 3 -3]), + {[1; 2; 3; 2; 2; 4; 1; 5; 6; 2], {"1"; "-3"; "-2"; "2"; "-1"; "3"}, ... + [1; -3; -2; 2; -1; 3]}); +***** assert (nthargout (1:3, @grp2idx, [2 2 3 NaN 2 3]), + {[1; 1; 2; NaN; 1; 2] {"2"; "3"} [2; 3]}) +***** assert (nthargout (1:3, @grp2idx, {"et" "sa" "sa" "" "et"}), + {[1; 2; 2; NaN; 1] {"et"; "sa"} {"et"; "sa"}}) +***** test assert (nthargout (1:3, @grp2idx, ["sci"; "oct"; "sci"; "oct"; "oct"]), + {[1; 2; 1; 2; 2] {"sci"; "oct"} ["sci"; "oct"]}); +***** test assert (nthargout (1:3, @grp2idx, {"sci"; "oct"; "sci"; "oct"; "oct"}), + {[1; 2; 1; 2; 2] {"sci"; "oct"} {"sci"; "oct"}}); +***** test assert (nthargout (1:3, @grp2idx, {"sa" "et" "et" "" "sa"}), + {[1; 2; 2; NaN; 1] {"sa"; "et"} {"sa"; "et"}}) +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/inconsistent.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/inconsistent.m +***** error inconsistent () +***** error inconsistent ([1 2 1], 2, 3) +***** error inconsistent (ones (2, 2)) +***** error inconsistent ([1 2 1], -1) +***** error inconsistent ([1 2 1], 1.3) +***** error inconsistent ([1 2 1], [1 1]) +***** error inconsistent (ones (2, 3)) +***** test + load fisheriris; + Z = linkage(meas, 'average', 'chebychev'); + assert (cond (inconsistent (Z)), 39.9, 1e-3); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/hotelling_t2test2.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/hotelling_t2test2.m +***** error hotelling_t2test2 (); +***** error ... + hotelling_t2test2 ([2, 3, 4, 5, 6]); +***** error ... + hotelling_t2test2 (1, [2, 3, 4, 5, 6]); +***** error ... + hotelling_t2test2 (ones (2,2,2), [2, 3, 4, 5, 6]); +***** error ... + hotelling_t2test2 ([2, 3, 4, 5, 6], 2); +***** error ... + hotelling_t2test2 ([2, 3, 4, 5, 6], ones (2,2,2)); +***** error ... + hotelling_t2test2 (ones (20,2), ones (20,2), "alpha", 1); +***** error ... + hotelling_t2test2 (ones (20,2), ones (20,2), "alpha", -0.2); +***** error ... + hotelling_t2test2 (ones (20,2), ones (20,2), "alpha", "a"); +***** error ... + hotelling_t2test2 (ones (20,2), ones (20,2), "alpha", [0.01, 0.05]); +***** error ... + hotelling_t2test2 (ones (20,2), ones (20,2), "name", 0.01); +***** error ... + hotelling_t2test2 (ones (20,1), ones (20,2)); +***** error ... + hotelling_t2test2 (ones (20,2), ones (25,3)); +***** test randn ("seed", 1); - x = lognrnd (1, 1, [1, 100]); -***** error ... - paramci (LognormalDistribution.fit (x), "alpha") -***** error ... - paramci (LognormalDistribution.fit (x), "alpha", 0) -***** error ... - paramci (LognormalDistribution.fit (x), "alpha", 1) -***** error ... - paramci (LognormalDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (LognormalDistribution.fit (x), "alpha", "") -***** error ... - paramci (LognormalDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (LognormalDistribution.fit (x), "parameter", "mu", "alpha", {0.05}) -***** error ... - paramci (LognormalDistribution.fit (x), "parameter", {"mu", "sigma", "parm"}) -***** error ... - paramci (LognormalDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"mu", "sigma", "param"}) -***** error ... - paramci (LognormalDistribution.fit (x), "parameter", "param") -***** error ... - paramci (LognormalDistribution.fit (x), "alpha", 0.01, "parameter", "param") -***** error ... - paramci (LognormalDistribution.fit (x), "NAME", "value") -***** error ... - paramci (LognormalDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (LognormalDistribution.fit (x), "alpha", 0.01, "parameter", "mu", ... - "NAME", "value") -***** error ... - plot (LognormalDistribution, "Parent") -***** error ... - plot (LognormalDistribution, "PlotType", 12) -***** error ... - plot (LognormalDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (LognormalDistribution, "PlotType", "pdfcdf") -***** error ... - plot (LognormalDistribution, "Discrete", "pdfcdf") -***** error ... - plot (LognormalDistribution, "Discrete", [1, 0]) -***** error ... - plot (LognormalDistribution, "Discrete", {true}) -***** error ... - plot (LognormalDistribution, "Parent", 12) -***** error ... - plot (LognormalDistribution, "Parent", "hax") -***** error ... - proflik (LognormalDistribution, 2) -***** error ... - proflik (LognormalDistribution.fit (x), 3) -***** error ... - proflik (LognormalDistribution.fit (x), [1, 2]) -***** error ... - proflik (LognormalDistribution.fit (x), {1}) -***** error ... - proflik (LognormalDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (LognormalDistribution.fit (x), 1, "Display") -***** error ... - proflik (LognormalDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (LognormalDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (LognormalDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (LognormalDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (LognormalDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (LognormalDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (LognormalDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (LognormalDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (LognormalDistribution) -***** error ... - truncate (LognormalDistribution, 2) -***** error ... - truncate (LognormalDistribution, 4, 2) -***** shared pd - pd = LognormalDistribution(1, 1); - pd(2) = LognormalDistribution(1, 3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -93 tests, 93 passed, 0 known failure, 0 skipped -[inst/dist_obj/InverseGaussianDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/InverseGaussianDistribution.m -***** shared pd, t - pd = InverseGaussianDistribution (1, 1); - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.6681, 0.8855, 0.9532, 0.9791, 0.9901], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7234, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.8108, 0.8855, 0.9532, 0.9791], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.7234, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0.3320, 0.5411, 0.8483, 1.4479, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.1889, 2.4264, 2.7417, 3.1993, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.5411, 0.8483, 1.4479, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4264, 2.7417, 3.1993, 4, NaN], 1e-4); -***** assert (iqr (pd), 0.8643, 1e-4); -***** assert (iqr (t), 0.8222, 1e-4); -***** assert (mean (pd), 1); -***** assert (mean (t), 2.6953, 1e-4); -***** assert (median (pd), 0.6758, 1e-4); -***** assert (median (t), 2.5716, 1e-4); -***** assert (pdf (pd, [0:5]), [0, 0.3989, 0.1098, 0.0394, 0.0162, 0.0072], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 1.1736, 0.4211, 0.1730, 0], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.3989, 0.1098, 0.0394, 0.0162, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 1.1736, 0.4211, 0.1730, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 1); -***** assert (std (t), 0.5332, 1e-4); -***** assert (var (pd), 1); -***** assert (var (t), 0.2843, 1e-4); -***** error ... - InverseGaussianDistribution(0, 1) -***** error ... - InverseGaussianDistribution(Inf, 1) -***** error ... - InverseGaussianDistribution(i, 1) -***** error ... - InverseGaussianDistribution("a", 1) -***** error ... - InverseGaussianDistribution([1, 2], 1) -***** error ... - InverseGaussianDistribution(NaN, 1) -***** error ... - InverseGaussianDistribution(1, 0) -***** error ... - InverseGaussianDistribution(1, -1) -***** error ... - InverseGaussianDistribution(1, Inf) -***** error ... - InverseGaussianDistribution(1, i) -***** error ... - InverseGaussianDistribution(1, "a") -***** error ... - InverseGaussianDistribution(1, [1, 2]) -***** error ... - InverseGaussianDistribution(1, NaN) -***** error ... - cdf (InverseGaussianDistribution, 2, "uper") -***** error ... - cdf (InverseGaussianDistribution, 2, 3) -***** shared x - x = invgrnd (1, 1, [1, 100]); -***** error ... - paramci (InverseGaussianDistribution.fit (x), "alpha") -***** error ... - paramci (InverseGaussianDistribution.fit (x), "alpha", 0) -***** error ... - paramci (InverseGaussianDistribution.fit (x), "alpha", 1) -***** error ... - paramci (InverseGaussianDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (InverseGaussianDistribution.fit (x), "alpha", "") -***** error ... - paramci (InverseGaussianDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (InverseGaussianDistribution.fit (x), "parameter", "mu", ... - "alpha", {0.05}) -***** error ... - paramci (InverseGaussianDistribution.fit (x), ... - "parameter", {"mu", "lambda", "param"}) -***** error ... - paramci (InverseGaussianDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"mu", "lambda", "param"}) -***** error ... - paramci (InverseGaussianDistribution.fit (x), "parameter", "param") -***** error ... - paramci (InverseGaussianDistribution.fit (x), "alpha", 0.01, ... - "parameter", "param") -***** error ... - paramci (InverseGaussianDistribution.fit (x), "NAME", "value") -***** error ... - paramci (InverseGaussianDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (InverseGaussianDistribution.fit (x), "alpha", 0.01, ... - "parameter", "mu", "NAME", "value") -***** error ... - plot (InverseGaussianDistribution, "Parent") -***** error ... - plot (InverseGaussianDistribution, "PlotType", 12) -***** error ... - plot (InverseGaussianDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (InverseGaussianDistribution, "PlotType", "pdfcdf") -***** error ... - plot (InverseGaussianDistribution, "Discrete", "pdfcdf") -***** error ... - plot (InverseGaussianDistribution, "Discrete", [1, 0]) -***** error ... - plot (InverseGaussianDistribution, "Discrete", {true}) -***** error ... - plot (InverseGaussianDistribution, "Parent", 12) -***** error ... - plot (InverseGaussianDistribution, "Parent", "hax") -***** error ... - proflik (InverseGaussianDistribution, 2) -***** error ... - proflik (InverseGaussianDistribution.fit (x), 3) -***** error ... - proflik (InverseGaussianDistribution.fit (x), [1, 2]) -***** error ... - proflik (InverseGaussianDistribution.fit (x), {1}) -***** error ... - proflik (InverseGaussianDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (InverseGaussianDistribution.fit (x), 1, "Display") -***** error ... - proflik (InverseGaussianDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (InverseGaussianDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (InverseGaussianDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (InverseGaussianDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (InverseGaussianDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (InverseGaussianDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (InverseGaussianDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (InverseGaussianDistribution.fit (x), 1, {[1 2 3]}, "Display", "on") -***** error ... - truncate (InverseGaussianDistribution) -***** error ... - truncate (InverseGaussianDistribution, 2) -***** error ... - truncate (InverseGaussianDistribution, 4, 2) -***** shared pd - pd = InverseGaussianDistribution(1, 1); - pd(2) = InverseGaussianDistribution(1, 3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -94 tests, 94 passed, 0 known failure, 0 skipped -[inst/dist_obj/MultinomialDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/MultinomialDistribution.m -***** shared pd, t - pd = MultinomialDistribution ([0.1, 0.2, 0.3, 0.2, 0.1, 0.1]); - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [2, 3, 4]), [0.3, 0.6, 0.8], eps); -***** assert (cdf (t, [2, 3, 4]), [0.2857, 0.7143, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.1, 0.3, 0.6, 0.8], eps); -***** assert (cdf (pd, [1.5, 2-eps, 3, 4]), [0.1, 0.1, 0.6, 0.8], eps); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0.2857, 0.7143, 1], 1e-4); -***** assert (cdf (t, [1.5, 2-eps, 3, 4]), [0, 0, 0.7143, 1], 1e-4); -***** assert (cdf (pd, [1, 2.5, 4, 6]), [0.1, 0.3, 0.8, 1], eps); -***** assert (icdf (pd, [0, 0.2857, 0.7143, 1]), [1, 2, 4, 6]); -***** assert (icdf (t, [0, 0.2857, 0.7143, 1]), [2, 2, 4, 4]); -***** assert (icdf (t, [0, 0.35, 0.7143, 1]), [2, 3, 4, 4]); -***** assert (icdf (t, [0, 0.35, 0.7143, 1, NaN]), [2, 3, 4, 4, NaN]); -***** assert (icdf (t, [-0.5, 0, 0.35, 0.7143, 1, NaN]), [NaN, 2, 3, 4, 4, NaN]); -***** assert (icdf (pd, [-0.5, 0, 0.35, 0.7143, 1, NaN]), [NaN, 1, 3, 4, 6, NaN]); -***** assert (iqr (pd), 2); -***** assert (iqr (t), 2); -***** assert (mean (pd), 3.3, 1e-14); -***** assert (mean (t), 3, eps); -***** assert (median (pd), 3); -***** assert (median (t), 3); -***** assert (pdf (pd, [-5, 1, 2.5, 4, 6, NaN, 9]), [0, 0.1, 0, 0.2, 0.1, NaN, 0]); -***** assert (pdf (pd, [-5, 1, 2, 3, 4, 6, NaN, 9]), ... - [0, 0.1, 0.2, 0.3, 0.2, 0.1, NaN, 0]); -***** assert (pdf (t, [-5, 1, 2, 3, 4, 6, NaN, 0]), ... - [0, 0, 0.2857, 0.4286, 0.2857, 0, NaN, 0], 1e-4); -***** assert (pdf (t, [-5, 1, 2, 4, 6, NaN, 0]), ... - [0, 0, 0.2857, 0.2857, 0, NaN, 0], 1e-4); -***** assert (unique (random (pd, 1000, 5)), [1, 2, 3, 4, 5, 6]'); -***** assert (unique (random (t, 1000, 5)), [2, 3, 4]'); -***** assert (std (pd), 1.4177, 1e-4); -***** assert (std (t), 0.7559, 1e-4); -***** assert (var (pd), 2.0100, 1e-4); -***** assert (var (t), 0.5714, 1e-4); -***** error ... - MultinomialDistribution(0) -***** error ... - MultinomialDistribution(-1) -***** error ... - MultinomialDistribution(Inf) -***** error ... - MultinomialDistribution(i) -***** error ... - MultinomialDistribution("a") -***** error ... - MultinomialDistribution([1, 2]) -***** error ... - MultinomialDistribution(NaN) -***** error ... - cdf (MultinomialDistribution, 2, "uper") -***** error ... - cdf (MultinomialDistribution, 2, 3) -***** error ... - cdf (MultinomialDistribution, i) -***** error ... - plot (MultinomialDistribution, "Parent") -***** error ... - plot (MultinomialDistribution, "PlotType", 12) -***** error ... - plot (MultinomialDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (MultinomialDistribution, "PlotType", "pdfcdf") -***** error ... - plot (MultinomialDistribution, "Discrete", "pdfcdf") -***** error ... - plot (MultinomialDistribution, "Discrete", [1, 0]) -***** error ... - plot (MultinomialDistribution, "Discrete", {true}) -***** error ... - plot (MultinomialDistribution, "Parent", 12) -***** error ... - plot (MultinomialDistribution, "Parent", "hax") -***** error ... - truncate (MultinomialDistribution) -***** error ... - truncate (MultinomialDistribution, 2) -***** error ... - truncate (MultinomialDistribution, 4, 2) -***** shared pd - pd = MultinomialDistribution([0.1, 0.2, 0.3, 0.4]); - pd(2) = MultinomialDistribution([0.1, 0.2, 0.3, 0.4]); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -62 tests, 62 passed, 0 known failure, 0 skipped -[inst/dist_obj/ExponentialDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/ExponentialDistribution.m -***** shared pd, t - pd = ExponentialDistribution (1); - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.6321, 0.8647, 0.9502, 0.9817, 0.9933], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7311, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.7769, 0.8647, 0.9502, 0.9817], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.7311, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0.2231, 0.5108, 0.9163, 1.6094, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.1899, 2.4244, 2.7315, 3.1768, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.5108, 0.9163, 1.6094, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4244, 2.7315, 3.1768, 4, NaN], 1e-4); -***** assert (iqr (pd), 1.0986, 1e-4); -***** assert (iqr (t), 0.8020, 1e-4); -***** assert (mean (pd), 1); -***** assert (mean (t), 2.6870, 1e-4); -***** assert (median (pd), 0.6931, 1e-4); -***** assert (median (t), 2.5662, 1e-4); -***** assert (pdf (pd, [0:5]), [1, 0.3679, 0.1353, 0.0498, 0.0183, 0.0067], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 1.1565, 0.4255, 0.1565, 0], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.3679, 0.1353, 0.0498, 0.0183, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 1.1565, 0.4255, 0.1565, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 1); -***** assert (std (t), 0.5253, 1e-4); -***** assert (var (pd), 1); -***** assert (var (t), 0.2759, 1e-4); -***** error ... - ExponentialDistribution(0) -***** error ... - ExponentialDistribution(-1) -***** error ... - ExponentialDistribution(Inf) -***** error ... - ExponentialDistribution(i) -***** error ... - ExponentialDistribution("a") -***** error ... - ExponentialDistribution([1, 2]) -***** error ... - ExponentialDistribution(NaN) -***** error ... - cdf (ExponentialDistribution, 2, "uper") -***** error ... - cdf (ExponentialDistribution, 2, 3) -***** shared x - x = exprnd (1, [100, 1]); -***** error ... - paramci (ExponentialDistribution.fit (x), "alpha") -***** error ... - paramci (ExponentialDistribution.fit (x), "alpha", 0) -***** error ... - paramci (ExponentialDistribution.fit (x), "alpha", 1) -***** error ... - paramci (ExponentialDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (ExponentialDistribution.fit (x), "alpha", "") -***** error ... - paramci (ExponentialDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (ExponentialDistribution.fit (x), "parameter", "mu", ... - "alpha", {0.05}) -***** error ... - paramci (ExponentialDistribution.fit (x), "parameter", {"mu", "param"}) -***** error ... - paramci (ExponentialDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"mu", "param"}) -***** error ... - paramci (ExponentialDistribution.fit (x), "parameter", "param") -***** error ... - paramci (ExponentialDistribution.fit (x), "alpha", 0.01, "parameter", "parm") -***** error ... - paramci (ExponentialDistribution.fit (x), "NAME", "value") -***** error ... - paramci (ExponentialDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (ExponentialDistribution.fit (x), "alpha", 0.01, ... - "parameter", "mu", "NAME", "value") -***** error ... - plot (ExponentialDistribution, "Parent") -***** error ... - plot (ExponentialDistribution, "PlotType", 12) -***** error ... - plot (ExponentialDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (ExponentialDistribution, "PlotType", "pdfcdf") -***** error ... - plot (ExponentialDistribution, "Discrete", "pdfcdf") -***** error ... - plot (ExponentialDistribution, "Discrete", [1, 0]) -***** error ... - plot (ExponentialDistribution, "Discrete", {true}) -***** error ... - plot (ExponentialDistribution, "Parent", 12) -***** error ... - plot (ExponentialDistribution, "Parent", "hax") -***** error ... - proflik (ExponentialDistribution, 2) -***** error ... - proflik (ExponentialDistribution.fit (x), 3) -***** error ... - proflik (ExponentialDistribution.fit (x), [1, 2]) -***** error ... - proflik (ExponentialDistribution.fit (x), {1}) -***** error ... - proflik (ExponentialDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (ExponentialDistribution.fit (x), 1, "Display") -***** error ... - proflik (ExponentialDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (ExponentialDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (ExponentialDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (ExponentialDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (ExponentialDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (ExponentialDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (ExponentialDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (ExponentialDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (ExponentialDistribution) -***** error ... - truncate (ExponentialDistribution, 2) -***** error ... - truncate (ExponentialDistribution, 4, 2) -***** shared pd - pd = ExponentialDistribution(1); - pd(2) = ExponentialDistribution(3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -88 tests, 88 passed, 0 known failure, 0 skipped -[inst/dist_obj/UniformDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/UniformDistribution.m -***** shared pd, t - pd = UniformDistribution (0, 5); - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.2, 0.4, 0.6, 0.8, 1], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.5, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.3, 0.4, 0.6, 0.8, NaN], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.5, 1, NaN], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 1, 2, 3, 4, 5], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.4, 2.8, 3.2, 3.6, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 2, 3, 4, 5, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.8, 3.2, 3.6, 4, NaN], 1e-4); -***** assert (iqr (pd), 2.5, 1e-14); -***** assert (iqr (t), 1, 1e-14); -***** assert (mean (pd), 2.5, 1e-14); -***** assert (mean (t), 3, 1e-14); -***** assert (median (pd), 2.5, 1e-14); -***** assert (median (t), 3, 1e-14); -***** assert (pdf (pd, [0:5]), [0.2, 0.2, 0.2, 0.2, 0.2, 0.2], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 0.5, 0.5, 0.5, 0], 1e-4); -***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0.2, NaN], 1e-4); -***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 1.4434, 1e-4); -***** assert (std (t), 0.5774, 1e-4); -***** assert (var (pd), 2.0833, 1e-4); -***** assert (var (t), 0.3333, 1e-4); -***** error ... - UniformDistribution (i, 1) -***** error ... - UniformDistribution (Inf, 1) -***** error ... - UniformDistribution ([1, 2], 1) -***** error ... - UniformDistribution ("a", 1) -***** error ... - UniformDistribution (NaN, 1) -***** error ... - UniformDistribution (1, i) -***** error ... - UniformDistribution (1, Inf) -***** error ... - UniformDistribution (1, [1, 2]) -***** error ... - UniformDistribution (1, "a") -***** error ... - UniformDistribution (1, NaN) -***** error ... - UniformDistribution (2, 1) -***** error ... - cdf (UniformDistribution, 2, "uper") -***** error ... - cdf (UniformDistribution, 2, 3) -***** error ... - plot (UniformDistribution, "Parent") -***** error ... - plot (UniformDistribution, "PlotType", 12) -***** error ... - plot (UniformDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (UniformDistribution, "PlotType", "pdfcdf") -***** error ... - plot (UniformDistribution, "Discrete", "pdfcdf") -***** error ... - plot (UniformDistribution, "Discrete", [1, 0]) -***** error ... - plot (UniformDistribution, "Discrete", {true}) -***** error ... - plot (UniformDistribution, "Parent", 12) -***** error ... - plot (UniformDistribution, "Parent", "hax") -***** error ... - truncate (UniformDistribution) -***** error ... - truncate (UniformDistribution, 2) -***** error ... - truncate (UniformDistribution, 4, 2) -***** shared pd - pd = UniformDistribution (0, 1); - pd(2) = UniformDistribution (0, 2); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -61 tests, 61 passed, 0 known failure, 0 skipped -[inst/dist_obj/RicianDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/RicianDistribution.m -***** shared pd, t - pd = RicianDistribution; - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.2671, 0.7310, 0.9563, 0.9971, 0.9999], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.8466, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.5120, 0.7310, 0.9563, 0.9971, NaN], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.8466, 1, NaN], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0.8501, 1.2736, 1.6863, 2.2011, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.1517, 2.3296, 2.5545, 2.8868, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 1.2736, 1.6863, 2.2011, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.3296, 2.5545, 2.8868, 4, NaN], 1e-4); -***** assert (iqr (pd), 1.0890, 1e-4); -***** assert (iqr (t), 0.5928, 1e-4); -***** assert (mean (pd), 1.5486, 1e-4); -***** assert (mean (t), 2.5380, 1e-4); -***** assert (median (pd), 1.4755, 1e-4); -***** assert (median (t), 2.4341, 1e-4); -***** assert (pdf (pd, [0:5]), [0, 0.4658, 0.3742, 0.0987, 0.0092, 0.0003], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 1.4063, 0.3707, 0.0346, 0], 1e-4); -***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0.4864, NaN], 1e-4); -***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 0.7758, 1e-4); -***** assert (std (t), 0.4294, 1e-4); -***** assert (var (pd), 0.6019, 1e-4); -***** assert (var (t), 0.1844, 1e-4); -***** error ... - RicianDistribution(-eps, 1) -***** error ... - RicianDistribution(-1, 1) -***** error ... - RicianDistribution(Inf, 1) -***** error ... - RicianDistribution(i, 1) -***** error ... - RicianDistribution("a", 1) -***** error ... - RicianDistribution([1, 2], 1) -***** error ... - RicianDistribution(NaN, 1) -***** error ... - RicianDistribution(1, 0) -***** error ... - RicianDistribution(1, -1) -***** error ... - RicianDistribution(1, Inf) -***** error ... - RicianDistribution(1, i) -***** error ... - RicianDistribution(1, "a") -***** error ... - RicianDistribution(1, [1, 2]) -***** error ... - RicianDistribution(1, NaN) -***** error ... - cdf (RicianDistribution, 2, "uper") -***** error ... - cdf (RicianDistribution, 2, 3) -***** shared x - x = gevrnd (1, 1, 1, [1, 100]); -***** error ... - paramci (RicianDistribution.fit (x), "alpha") -***** error ... - paramci (RicianDistribution.fit (x), "alpha", 0) -***** error ... - paramci (RicianDistribution.fit (x), "alpha", 1) -***** error ... - paramci (RicianDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (RicianDistribution.fit (x), "alpha", "") -***** error ... - paramci (RicianDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (RicianDistribution.fit (x), "parameter", "s", "alpha", {0.05}) -***** error ... - paramci (RicianDistribution.fit (x), "parameter", {"s", "sigma", "param"}) -***** error ... - paramci (RicianDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"s", "sigma", "param"}) -***** error ... - paramci (RicianDistribution.fit (x), "parameter", "param") -***** error ... - paramci (RicianDistribution.fit (x), "alpha", 0.01, "parameter", "param") -***** error ... - paramci (RicianDistribution.fit (x), "NAME", "value") -***** error ... - paramci (RicianDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (RicianDistribution.fit (x), "alpha", 0.01, "parameter", "s", ... - "NAME", "value") -***** error ... - plot (RicianDistribution, "Parent") -***** error ... - plot (RicianDistribution, "PlotType", 12) -***** error ... - plot (RicianDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (RicianDistribution, "PlotType", "pdfcdf") -***** error ... - plot (RicianDistribution, "Discrete", "pdfcdf") -***** error ... - plot (RicianDistribution, "Discrete", [1, 0]) -***** error ... - plot (RicianDistribution, "Discrete", {true}) -***** error ... - plot (RicianDistribution, "Parent", 12) -***** error ... - plot (RicianDistribution, "Parent", "hax") -***** error ... - proflik (RicianDistribution, 2) -***** error ... - proflik (RicianDistribution.fit (x), 3) -***** error ... - proflik (RicianDistribution.fit (x), [1, 2]) -***** error ... - proflik (RicianDistribution.fit (x), {1}) -***** error ... - proflik (RicianDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (RicianDistribution.fit (x), 1, "Display") -***** error ... - proflik (RicianDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (RicianDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (RicianDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (RicianDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (RicianDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (RicianDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (RicianDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (RicianDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (RicianDistribution) -***** error ... - truncate (RicianDistribution, 2) -***** error ... - truncate (RicianDistribution, 4, 2) -***** shared pd - pd = RicianDistribution(1, 1); - pd(2) = RicianDistribution(1, 3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -95 tests, 95 passed, 0 known failure, 0 skipped -[inst/dist_obj/tLocationScaleDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/tLocationScaleDistribution.m -***** shared pd, t - pd = tLocationScaleDistribution; - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0.5, 0.8184, 0.9490, 0.9850, 0.9948, 0.9979], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7841, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.9030, 0.9490, 0.9850, 0.9948, NaN], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.7841, 1, NaN], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [-Inf, -0.9195, -0.2672, 0.2672, 0.9195, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.1559, 2.3533, 2.6223, 3.0432, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, -0.2672, 0.2672, 0.9195, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.3533, 2.6223, 3.0432, 4, NaN], 1e-4); -***** assert (iqr (pd), 1.4534, 1e-4); -***** assert (iqr (t), 0.7139, 1e-4); -***** assert (mean (pd), 0, eps); -***** assert (mean (t), 2.6099, 1e-4); -***** assert (median (pd), 0, eps); -***** assert (median (t), 2.4758, 1e-4); -***** assert (pdf (pd, [0:5]), [0.3796, 0.2197, 0.0651, 0.0173, 0.0051, 0.0018], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 1.4209, 0.3775, 0.1119, 0], 1e-4); -***** assert (pdf (pd, [-1, 1.5, NaN]), [0.2197, 0.1245, NaN], 1e-4); -***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 1.2910, 1e-4); -***** assert (std (t), 0.4989, 1e-4); -***** assert (var (pd), 1.6667, 1e-4); -***** assert (var (t), 0.2489, 1e-4); -***** error ... - tLocationScaleDistribution(i, 1, 1) -***** error ... - tLocationScaleDistribution(Inf, 1, 1) -***** error ... - tLocationScaleDistribution([1, 2], 1, 1) -***** error ... - tLocationScaleDistribution("a", 1, 1) -***** error ... - tLocationScaleDistribution(NaN, 1, 1) -***** error ... - tLocationScaleDistribution(0, 0, 1) -***** error ... - tLocationScaleDistribution(0, -1, 1) -***** error ... - tLocationScaleDistribution(0, Inf, 1) -***** error ... - tLocationScaleDistribution(0, i, 1) -***** error ... - tLocationScaleDistribution(0, "a", 1) -***** error ... - tLocationScaleDistribution(0, [1, 2], 1) -***** error ... - tLocationScaleDistribution(0, NaN, 1) -***** error ... - tLocationScaleDistribution(0, 1, 0) -***** error ... - tLocationScaleDistribution(0, 1, -1) -***** error ... - tLocationScaleDistribution(0, 1, Inf) -***** error ... - tLocationScaleDistribution(0, 1, i) -***** error ... - tLocationScaleDistribution(0, 1, "a") -***** error ... - tLocationScaleDistribution(0, 1, [1, 2]) -***** error ... - tLocationScaleDistribution(0, 1, NaN) -***** error ... - cdf (tLocationScaleDistribution, 2, "uper") -***** error ... - cdf (tLocationScaleDistribution, 2, 3) -***** shared x - x = tlsrnd (0, 1, 1, [1, 100]); -***** error ... - paramci (tLocationScaleDistribution.fit (x), "alpha") -***** error ... - paramci (tLocationScaleDistribution.fit (x), "alpha", 0) -***** error ... - paramci (tLocationScaleDistribution.fit (x), "alpha", 1) -***** error ... - paramci (tLocationScaleDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (tLocationScaleDistribution.fit (x), "alpha", "") -***** error ... - paramci (tLocationScaleDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (tLocationScaleDistribution.fit (x), "parameter", "mu", ... - "alpha", {0.05}) -***** error ... - paramci (tLocationScaleDistribution.fit (x), ... - "parameter", {"mu", "sigma", "nu", "param"}) -***** error ... - paramci (tLocationScaleDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"mu", "sigma", "nu", "param"}) -***** error ... - paramci (tLocationScaleDistribution.fit (x), "parameter", "param") -***** error ... - paramci (tLocationScaleDistribution.fit (x), "alpha", 0.01, ... - "parameter", "param") -***** error ... - paramci (tLocationScaleDistribution.fit (x), "NAME", "value") -***** error ... - paramci (tLocationScaleDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (tLocationScaleDistribution.fit (x), "alpha", 0.01, ... - "parameter", "mu", "NAME", "value") -***** error ... - plot (tLocationScaleDistribution, "Parent") -***** error ... - plot (tLocationScaleDistribution, "PlotType", 12) -***** error ... - plot (tLocationScaleDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (tLocationScaleDistribution, "PlotType", "pdfcdf") -***** error ... - plot (tLocationScaleDistribution, "Discrete", "pdfcdf") -***** error ... - plot (tLocationScaleDistribution, "Discrete", [1, 0]) -***** error ... - plot (tLocationScaleDistribution, "Discrete", {true}) -***** error ... - plot (tLocationScaleDistribution, "Parent", 12) -***** error ... - plot (tLocationScaleDistribution, "Parent", "hax") -***** error ... - proflik (tLocationScaleDistribution, 2) -***** error ... - proflik (tLocationScaleDistribution.fit (x), 4) -***** error ... - proflik (tLocationScaleDistribution.fit (x), [1, 2]) -***** error ... - proflik (tLocationScaleDistribution.fit (x), {1}) -***** error ... - proflik (tLocationScaleDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (tLocationScaleDistribution.fit (x), 1, "Display") -***** error ... - proflik (tLocationScaleDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (tLocationScaleDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (tLocationScaleDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (tLocationScaleDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (tLocationScaleDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (tLocationScaleDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (tLocationScaleDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (tLocationScaleDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (tLocationScaleDistribution) -***** error ... - truncate (tLocationScaleDistribution, 2) -***** error ... - truncate (tLocationScaleDistribution, 4, 2) -***** shared pd - pd = tLocationScaleDistribution (0, 1, 1); - pd(2) = tLocationScaleDistribution (0, 1, 3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -100 tests, 100 passed, 0 known failure, 0 skipped -[inst/dist_obj/BinomialDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/BinomialDistribution.m -***** shared pd, t - pd = BinomialDistribution (5, 0.5); - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0.0312, 0.1875, 0.5, 0.8125, 0.9688, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.1875, 0.5, 0.8125, 0.9688, NaN], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 2, 2, 3, 3, 5], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 2, 3, 3, 5, NaN], 1e-4); -***** assert (iqr (pd), 1); -***** assert (mean (pd), 2.5, 1e-10); -***** assert (median (pd), 2.5); -***** assert (pdf (pd, [0:5]), [0.0312, 0.1562, 0.3125, 0.3125, 0.1562, 0.0312], 1e-4); -***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (std (pd), 1.1180, 1e-4); -***** assert (var (pd), 1.2500, 1e-4); -***** error ... - BinomialDistribution(Inf, 0.5) -***** error ... - BinomialDistribution(i, 0.5) -***** error ... - BinomialDistribution("a", 0.5) -***** error ... - BinomialDistribution([1, 2], 0.5) -***** error ... - BinomialDistribution(NaN, 0.5) -***** error ... - BinomialDistribution(1, 1.01) -***** error ... - BinomialDistribution(1, -0.01) -***** error ... - BinomialDistribution(1, Inf) -***** error ... - BinomialDistribution(1, i) -***** error ... - BinomialDistribution(1, "a") -***** error ... - BinomialDistribution(1, [1, 2]) -***** error ... - BinomialDistribution(1, NaN) -***** error ... - cdf (BinomialDistribution, 2, "uper") -***** error ... - cdf (BinomialDistribution, 2, 3) -***** shared x - rand ("seed", 2); - x = binornd (5, 0.5, [1, 100]); -***** error ... - paramci (BinomialDistribution.fit (x, 6), "alpha") -***** error ... - paramci (BinomialDistribution.fit (x, 6), "alpha", 0) -***** error ... - paramci (BinomialDistribution.fit (x, 6), "alpha", 1) -***** error ... - paramci (BinomialDistribution.fit (x, 6), "alpha", [0.5 2]) -***** error ... - paramci (BinomialDistribution.fit (x, 6), "alpha", "") -***** error ... - paramci (BinomialDistribution.fit (x, 6), "alpha", {0.05}) -***** error ... - paramci (BinomialDistribution.fit (x, 6), "parameter", "p", ... - "alpha", {0.05}) -***** error ... - paramci (BinomialDistribution.fit (x, 6), ... - "parameter", {"N", "p", "param"}) -***** error ... - paramci (BinomialDistribution.fit (x, 6), "alpha", 0.01, ... - "parameter", {"N", "p", "param"}) -***** error ... - paramci (BinomialDistribution.fit (x, 6), "parameter", "param") -***** error ... - paramci (BinomialDistribution.fit (x, 6), "parameter", "N") -***** error ... - paramci (BinomialDistribution.fit (x, 6), "alpha", 0.01, ... - "parameter", "param") -***** error ... - paramci (BinomialDistribution.fit (x, 6), "NAME", "value") -***** error ... - paramci (BinomialDistribution.fit (x, 6), "alpha", 0.01, ... - "NAME", "value") -***** error ... - paramci (BinomialDistribution.fit (x, 6), "alpha", 0.01, ... - "parameter", "p", "NAME", "value") -***** error ... - plot (BinomialDistribution, "Parent") -***** error ... - plot (BinomialDistribution, "PlotType", 12) -***** error ... - plot (BinomialDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (BinomialDistribution, "PlotType", "pdfcdf") -***** error ... - plot (BinomialDistribution, "Discrete", "pdfcdf") -***** error ... - plot (BinomialDistribution, "Discrete", [1, 0]) -***** error ... - plot (BinomialDistribution, "Discrete", {true}) -***** error ... - plot (BinomialDistribution, "Parent", 12) -***** error ... - plot (BinomialDistribution, "Parent", "hax") -***** error ... - proflik (BinomialDistribution, 2) -***** error ... - proflik (BinomialDistribution.fit (x, 6), 3) -***** error ... - proflik (BinomialDistribution.fit (x, 6), [1, 2]) -***** error ... - proflik (BinomialDistribution.fit (x, 6), {1}) -***** error ... - proflik (BinomialDistribution.fit (x, 6), 2, ones (2)) -***** error ... - proflik (BinomialDistribution.fit (x, 6), 2, "Display") -***** error ... - proflik (BinomialDistribution.fit (x, 6), 2, "Display", 1) -***** error ... - proflik (BinomialDistribution.fit (x, 6), 2, "Display", {1}) -***** error ... - proflik (BinomialDistribution.fit (x, 6), 2, "Display", {"on"}) -***** error ... - proflik (BinomialDistribution.fit (x, 6), 2, "Display", ["on"; "on"]) -***** error ... - proflik (BinomialDistribution.fit (x, 6), 2, "Display", "onnn") -***** error ... - proflik (BinomialDistribution.fit (x, 6), 2, "NAME", "on") -***** error ... - proflik (BinomialDistribution.fit (x, 6), 2, {"NAME"}, "on") -***** error ... - proflik (BinomialDistribution.fit (x, 6), 2, {[1 2 3]}, "Display", "on") -***** error ... - truncate (BinomialDistribution) -***** error ... - truncate (BinomialDistribution, 2) -***** error ... - truncate (BinomialDistribution, 4, 2) -***** shared pd - pd = BinomialDistribution(1, 0.5); - pd(2) = BinomialDistribution(1, 0.6); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -81 tests, 81 passed, 0 known failure, 0 skipped -[inst/dist_obj/BetaDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/BetaDistribution.m -***** shared pd, t - pd = BetaDistribution; - t = truncate (pd, 0.2, 0.8); -***** assert (cdf (pd, [0:0.2:1]), [0, 0.2, 0.4, 0.6, 0.8, 1], 1e-4); -***** assert (cdf (t, [0:0.2:1]), [0, 0, 0.3333, 0.6667, 1, 1], 1e-4); -***** assert (cdf (pd, [-1, 1, NaN]), [0, 1, NaN], 1e-4); -***** assert (cdf (t, [-1, 1, NaN]), [0, 1, NaN], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0.2, 0.4, 0.6, 0.8, 1], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [0.2, 0.32, 0.44, 0.56, 0.68, 0.8], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.4, 0.6, 0.8, 1, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 0.44, 0.56, 0.68, 0.8, NaN], 1e-4); -***** assert (iqr (pd), 0.5, 1e-4); -***** assert (iqr (t), 0.3, 1e-4); -***** assert (mean (pd), 0.5); -***** assert (mean (t), 0.5, 1e-6); -***** assert (median (pd), 0.5); -***** assert (median (t), 0.5, 1e-6); -***** assert (pdf (pd, [0:0.2:1]), [1, 1, 1, 1, 1, 1], 1e-4); -***** assert (pdf (t, [0:0.2:1]), [0, 1.6667, 1.6667, 1.6667, 1.6667, 0], 1e-4); -***** assert (pdf (pd, [-1, 1, NaN]), [0, 1, NaN], 1e-4); -***** assert (pdf (t, [-1, 1, NaN]), [0, 0, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 0.2), false); -***** assert (any (random (t, 1000, 1) > 0.8), false); -***** assert (std (pd), 0.2887, 1e-4); -***** assert (std (t), 0.1732, 1e-4); -***** assert (var (pd), 0.0833, 1e-4); -***** assert (var (t), 0.0300, 1e-4); -***** error ... - BetaDistribution(0, 1) -***** error ... - BetaDistribution(Inf, 1) -***** error ... - BetaDistribution(i, 1) -***** error ... - BetaDistribution("a", 1) -***** error ... - BetaDistribution([1, 2], 1) -***** error ... - BetaDistribution(NaN, 1) -***** error ... - BetaDistribution(1, 0) -***** error ... - BetaDistribution(1, -1) -***** error ... - BetaDistribution(1, Inf) -***** error ... - BetaDistribution(1, i) -***** error ... - BetaDistribution(1, "a") -***** error ... - BetaDistribution(1, [1, 2]) -***** error ... - BetaDistribution(1, NaN) -***** error ... - cdf (BetaDistribution, 2, "uper") -***** error ... - cdf (BetaDistribution, 2, 3) -***** shared x - randg ("seed", 1); - x = betarnd (1, 1, [100, 1]); -***** error ... - paramci (BetaDistribution.fit (x), "alpha") -***** error ... - paramci (BetaDistribution.fit (x), "alpha", 0) -***** error ... - paramci (BetaDistribution.fit (x), "alpha", 1) -***** error ... - paramci (BetaDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (BetaDistribution.fit (x), "alpha", "") -***** error ... - paramci (BetaDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (BetaDistribution.fit (x), "parameter", "a", "alpha", {0.05}) -***** error ... - paramci (BetaDistribution.fit (x), "parameter", {"a", "b", "param"}) -***** error ... - paramci (BetaDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"a", "b", "param"}) -***** error ... - paramci (BetaDistribution.fit (x), "parameter", "param") -***** error ... - paramci (BetaDistribution.fit (x), "alpha", 0.01, "parameter", "param") -***** error ... - paramci (BetaDistribution.fit (x), "NAME", "value") -***** error ... - paramci (BetaDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (BetaDistribution.fit (x), "alpha", 0.01, "parameter", "a", ... - "NAME", "value") -***** error ... - plot (BetaDistribution, "Parent") -***** error ... - plot (BetaDistribution, "PlotType", 12) -***** error ... - plot (BetaDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (BetaDistribution, "PlotType", "pdfcdf") -***** error ... - plot (BetaDistribution, "Discrete", "pdfcdf") -***** error ... - plot (BetaDistribution, "Discrete", [1, 0]) -***** error ... - plot (BetaDistribution, "Discrete", {true}) -***** error ... - plot (BetaDistribution, "Parent", 12) -***** error ... - plot (BetaDistribution, "Parent", "hax") -***** error ... - proflik (BetaDistribution, 2) -***** error ... - proflik (BetaDistribution.fit (x), 3) -***** error ... - proflik (BetaDistribution.fit (x), [1, 2]) -***** error ... - proflik (BetaDistribution.fit (x), {1}) -***** error ... - proflik (BetaDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (BetaDistribution.fit (x), 1, "Display") -***** error ... - proflik (BetaDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (BetaDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (BetaDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (BetaDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (BetaDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (BetaDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (BetaDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (BetaDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (BetaDistribution) -***** error ... - truncate (BetaDistribution, 2) -***** error ... - truncate (BetaDistribution, 4, 2) -***** shared pd - pd = BetaDistribution(1, 1); - pd(2) = BetaDistribution(1, 3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -94 tests, 94 passed, 0 known failure, 0 skipped -[inst/dist_obj/GeneralizedParetoDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/GeneralizedParetoDistribution.m -***** shared pd, t - pd = GeneralizedParetoDistribution (1, 1, 1); - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0, 0.5, 0.6667, 0.75, 0.8], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.6667, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.3333, 0.5, 0.6667, 0.75], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.6667, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [1, 1.25, 1.6667, 2.5, 5, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.2222, 2.5, 2.8571, 3.3333, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 1.6667, 2.5, 5, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.5, 2.8571, 3.3333, 4, NaN], 1e-4); -***** assert (iqr (pd), 2.6667, 1e-4); -***** assert (iqr (t), 0.9143, 1e-4); -***** assert (mean (pd), Inf); -***** assert (mean (t), 2.7726, 1e-4); -***** assert (median (pd), 2); -***** assert (median (t), 2.6667, 1e-4); -***** assert (pdf (pd, [0:5]), [0, 1, 0.25, 0.1111, 0.0625, 0.04], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 1, 0.4444, 0.25, 0], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 1, 0.25, 0.1111, 0.0625, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 1, 0.4444, 0.25, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), Inf); -***** assert (std (t), 0.5592, 1e-4); -***** assert (var (pd), Inf); -***** assert (var (t), 0.3128, 1e-4); -***** error ... - GeneralizedParetoDistribution(Inf, 1, 1) -***** error ... - GeneralizedParetoDistribution(i, 1, 1) -***** error ... - GeneralizedParetoDistribution("a", 1, 1) -***** error ... - GeneralizedParetoDistribution([1, 2], 1, 1) -***** error ... - GeneralizedParetoDistribution(NaN, 1, 1) -***** error ... - GeneralizedParetoDistribution(1, 0, 1) -***** error ... - GeneralizedParetoDistribution(1, -1, 1) -***** error ... - GeneralizedParetoDistribution(1, Inf, 1) -***** error ... - GeneralizedParetoDistribution(1, i, 1) -***** error ... - GeneralizedParetoDistribution(1, "a", 1) -***** error ... - GeneralizedParetoDistribution(1, [1, 2], 1) -***** error ... - GeneralizedParetoDistribution(1, NaN, 1) -***** error ... - GeneralizedParetoDistribution(1, 1, Inf) -***** error ... - GeneralizedParetoDistribution(1, 1, i) -***** error ... - GeneralizedParetoDistribution(1, 1, "a") -***** error ... - GeneralizedParetoDistribution(1, 1, [1, 2]) -***** error ... - GeneralizedParetoDistribution(1, 1, NaN) -***** error ... - cdf (GeneralizedParetoDistribution, 2, "uper") -***** error ... - cdf (GeneralizedParetoDistribution, 2, 3) -***** shared x - x = gprnd (1, 1, 1, [1, 100]); -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha") -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", 0) -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", 1) -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", [0.5 2]) -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", "") -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", {0.05}) -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), ... - "parameter", "sigma", "alpha", {0.05}) -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), ... - "parameter", {"k", "sigma", "param"}) -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", 0.01, ... - "parameter", {"k", "sigma", "param"}) -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), "parameter", "param") -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", 0.01, ... - "parameter", "param") -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), "NAME", "value") -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", 0.01, ... - "NAME", "value") -***** error ... - paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", 0.01, ... - "parameter", "sigma", "NAME", "value") -***** error ... - plot (GeneralizedParetoDistribution, "Parent") -***** error ... - plot (GeneralizedParetoDistribution, "PlotType", 12) -***** error ... - plot (GeneralizedParetoDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (GeneralizedParetoDistribution, "PlotType", "pdfcdf") -***** error ... - plot (GeneralizedParetoDistribution, "Discrete", "pdfcdf") -***** error ... - plot (GeneralizedParetoDistribution, "Discrete", [1, 0]) -***** error ... - plot (GeneralizedParetoDistribution, "Discrete", {true}) -***** error ... - plot (GeneralizedParetoDistribution, "Parent", 12) -***** error ... - plot (GeneralizedParetoDistribution, "Parent", "hax") -***** error ... - proflik (GeneralizedParetoDistribution, 2) -***** error ... - proflik (GeneralizedParetoDistribution.fit (x, 1), 3) -***** error ... - proflik (GeneralizedParetoDistribution.fit (x, 1), [1, 2]) -***** error ... - proflik (GeneralizedParetoDistribution.fit (x, 1), {1}) -***** error ... - proflik (GeneralizedParetoDistribution.fit (x, 1), 1, ones (2)) -***** error ... - proflik (GeneralizedParetoDistribution.fit (x, 1), 1, "Display") -***** error ... - proflik (GeneralizedParetoDistribution.fit (x, 1), 1, "Display", 1) -***** error ... - proflik (GeneralizedParetoDistribution.fit (x, 1), 1, "Display", {1}) -***** error ... - proflik (GeneralizedParetoDistribution.fit (x, 1), 1, "Display", {"on"}) -***** error ... - proflik (GeneralizedParetoDistribution.fit (x, 1), 1, ... - "Display", ["on"; "on"]) -***** error ... - proflik (GeneralizedParetoDistribution.fit (x, 1), 1, "Display", "onnn") -***** error ... - proflik (GeneralizedParetoDistribution.fit (x, 1), 1, "NAME", "on") -***** error ... - proflik (GeneralizedParetoDistribution.fit (x, 1), 1, {"NAME"}, "on") -***** error ... - proflik (GeneralizedParetoDistribution.fit (x, 1), 1, {[1 2 3 4]}, ... - "Display", "on") -***** error ... - truncate (GeneralizedParetoDistribution) -***** error ... - truncate (GeneralizedParetoDistribution, 2) -***** error ... - truncate (GeneralizedParetoDistribution, 4, 2) -***** shared pd - pd = GeneralizedParetoDistribution(1, 1, 1); - pd(2) = GeneralizedParetoDistribution(1, 3, 1); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -98 tests, 98 passed, 0 known failure, 0 skipped -[inst/dist_obj/LogisticDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/LogisticDistribution.m -***** shared pd, t - pd = LogisticDistribution (0, 1); - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0.5, 0.7311, 0.8808, 0.9526, 0.9820, 0.9933], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7091, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.8176, 0.8808, 0.9526, 0.9820], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.7091, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [-Inf, -1.3863, -0.4055, 0.4055, 1.3863, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.2088, 2.4599, 2.7789, 3.2252, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, -0.4055, 0.4055, 1.3863, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4599, 2.7789, 3.2252, 4, NaN], 1e-4); -***** assert (iqr (pd), 2.1972, 1e-4); -***** assert (iqr (t), 0.8286, 1e-4); -***** assert (mean (pd), 0, 1e-4); -***** assert (mean (t), 2.7193, 1e-4); -***** assert (median (pd), 0); -***** assert (median (t), 2.6085, 1e-4); -***** assert (pdf (pd, [0:5]), [0.25, 0.1966, 0.1050, 0.0452, 0.0177, 0.0066], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 1.0373, 0.4463, 0.1745, 0], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0.1966, 0.1966, 0.1050, 0.0452, 0.0177, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 1.0373, 0.4463, 0.1745, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 1.8138, 1e-4); -***** assert (std (t), 0.5320, 1e-4); -***** assert (var (pd), 3.2899, 1e-4); -***** assert (var (t), 0.2830, 1e-4); -***** error ... - LogisticDistribution(Inf, 1) -***** error ... - LogisticDistribution(i, 1) -***** error ... - LogisticDistribution("a", 1) -***** error ... - LogisticDistribution([1, 2], 1) -***** error ... - LogisticDistribution(NaN, 1) -***** error ... - LogisticDistribution(1, 0) -***** error ... - LogisticDistribution(1, -1) -***** error ... - LogisticDistribution(1, Inf) -***** error ... - LogisticDistribution(1, i) -***** error ... - LogisticDistribution(1, "a") -***** error ... - LogisticDistribution(1, [1, 2]) -***** error ... - LogisticDistribution(1, NaN) -***** error ... - cdf (LogisticDistribution, 2, "uper") -***** error ... - cdf (LogisticDistribution, 2, 3) -***** shared x - x = logirnd (1, 1, [1, 100]); -***** error ... - paramci (LogisticDistribution.fit (x), "alpha") -***** error ... - paramci (LogisticDistribution.fit (x), "alpha", 0) -***** error ... - paramci (LogisticDistribution.fit (x), "alpha", 1) -***** error ... - paramci (LogisticDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (LogisticDistribution.fit (x), "alpha", "") -***** error ... - paramci (LogisticDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (LogisticDistribution.fit (x), "parameter", "mu", "alpha", {0.05}) -***** error ... - paramci (LogisticDistribution.fit (x), "parameter", {"mu", "sigma", "param"}) -***** error ... - paramci (LogisticDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"mu", "sigma", "param"}) -***** error ... - paramci (LogisticDistribution.fit (x), "parameter", "param") -***** error ... - paramci (LogisticDistribution.fit (x), "alpha", 0.01, "parameter", "param") -***** error ... - paramci (LogisticDistribution.fit (x), "NAME", "value") -***** error ... - paramci (LogisticDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (LogisticDistribution.fit (x), "alpha", 0.01, "parameter", "mu", ... - "NAME", "value") -***** error ... - plot (LogisticDistribution, "Parent") -***** error ... - plot (LogisticDistribution, "PlotType", 12) -***** error ... - plot (LogisticDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (LogisticDistribution, "PlotType", "pdfcdf") -***** error ... - plot (LogisticDistribution, "Discrete", "pdfcdf") -***** error ... - plot (LogisticDistribution, "Discrete", [1, 0]) -***** error ... - plot (LogisticDistribution, "Discrete", {true}) -***** error ... - plot (LogisticDistribution, "Parent", 12) -***** error ... - plot (LogisticDistribution, "Parent", "hax") -***** error ... - proflik (LogisticDistribution, 2) -***** error ... - proflik (LogisticDistribution.fit (x), 3) -***** error ... - proflik (LogisticDistribution.fit (x), [1, 2]) -***** error ... - proflik (LogisticDistribution.fit (x), {1}) -***** error ... - proflik (LogisticDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (LogisticDistribution.fit (x), 1, "Display") -***** error ... - proflik (LogisticDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (LogisticDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (LogisticDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (LogisticDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (LogisticDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (LogisticDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (LogisticDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (LogisticDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (LogisticDistribution) -***** error ... - truncate (LogisticDistribution, 2) -***** error ... - truncate (LogisticDistribution, 4, 2) -***** shared pd - pd = LogisticDistribution(1, 1); - pd(2) = LogisticDistribution(1, 3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -93 tests, 93 passed, 0 known failure, 0 skipped -[inst/dist_obj/GammaDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/GammaDistribution.m -***** shared pd, t - pd = GammaDistribution (1, 1); - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.6321, 0.8647, 0.9502, 0.9817, 0.9933], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7311, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.7769, 0.8647, 0.9502, 0.9817], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.7311, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0.2231, 0.5108, 0.9163, 1.6094, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.1899, 2.4244, 2.7315, 3.1768, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.5108, 0.9163, 1.6094, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4244, 2.7315, 3.1768, 4, NaN], 1e-4); -***** assert (iqr (pd), 1.0986, 1e-4); -***** assert (iqr (t), 0.8020, 1e-4); -***** assert (mean (pd), 1); -***** assert (mean (t), 2.6870, 1e-4); -***** assert (median (pd), 0.6931, 1e-4); -***** assert (median (t), 2.5662, 1e-4); -***** assert (pdf (pd, [0:5]), [1, 0.3679, 0.1353, 0.0498, 0.0183, 0.0067], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 1.1565, 0.4255, 0.1565, 0], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.3679, 0.1353, 0.0498, 0.0183, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 1.1565, 0.4255, 0.1565, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 1); -***** assert (std (t), 0.5253, 1e-4); -***** assert (var (pd), 1); -***** assert (var (t), 0.2759, 1e-4); -***** error ... - GammaDistribution(0, 1) -***** error ... - GammaDistribution(Inf, 1) -***** error ... - GammaDistribution(i, 1) -***** error ... - GammaDistribution("a", 1) -***** error ... - GammaDistribution([1, 2], 1) -***** error ... - GammaDistribution(NaN, 1) -***** error ... - GammaDistribution(1, 0) -***** error ... - GammaDistribution(1, -1) -***** error ... - GammaDistribution(1, Inf) -***** error ... - GammaDistribution(1, i) -***** error ... - GammaDistribution(1, "a") -***** error ... - GammaDistribution(1, [1, 2]) -***** error ... - GammaDistribution(1, NaN) -***** error ... - cdf (GammaDistribution, 2, "uper") -***** error ... - cdf (GammaDistribution, 2, 3) -***** shared x - x = gamrnd (1, 1, [100, 1]); -***** error ... - paramci (GammaDistribution.fit (x), "alpha") -***** error ... - paramci (GammaDistribution.fit (x), "alpha", 0) -***** error ... - paramci (GammaDistribution.fit (x), "alpha", 1) -***** error ... - paramci (GammaDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (GammaDistribution.fit (x), "alpha", "") -***** error ... - paramci (GammaDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (GammaDistribution.fit (x), "parameter", "a", "alpha", {0.05}) -***** error ... - paramci (GammaDistribution.fit (x), "parameter", {"a", "b", "param"}) -***** error ... - paramci (GammaDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"a", "b", "param"}) -***** error ... - paramci (GammaDistribution.fit (x), "parameter", "param") -***** error ... - paramci (GammaDistribution.fit (x), "alpha", 0.01, "parameter", "param") -***** error ... - paramci (GammaDistribution.fit (x), "NAME", "value") -***** error ... - paramci (GammaDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (GammaDistribution.fit (x), "alpha", 0.01, "parameter", "a", ... - "NAME", "value") -***** error ... - plot (GammaDistribution, "Parent") -***** error ... - plot (GammaDistribution, "PlotType", 12) -***** error ... - plot (GammaDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (GammaDistribution, "PlotType", "pdfcdf") -***** error ... - plot (GammaDistribution, "Discrete", "pdfcdf") -***** error ... - plot (GammaDistribution, "Discrete", [1, 0]) -***** error ... - plot (GammaDistribution, "Discrete", {true}) -***** error ... - plot (GammaDistribution, "Parent", 12) -***** error ... - plot (GammaDistribution, "Parent", "hax") -***** error ... - proflik (GammaDistribution, 2) -***** error ... - proflik (GammaDistribution.fit (x), 3) -***** error ... - proflik (GammaDistribution.fit (x), [1, 2]) -***** error ... - proflik (GammaDistribution.fit (x), {1}) -***** error ... - proflik (GammaDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (GammaDistribution.fit (x), 1, "Display") -***** error ... - proflik (GammaDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (GammaDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (GammaDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (GammaDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (GammaDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (GammaDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (GammaDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (GammaDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (GammaDistribution) -***** error ... - truncate (GammaDistribution, 2) -***** error ... - truncate (GammaDistribution, 4, 2) -***** shared pd - pd = GammaDistribution(1, 1); - pd(2) = GammaDistribution(1, 3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -94 tests, 94 passed, 0 known failure, 0 skipped -[inst/dist_obj/BirnbaumSaundersDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/BirnbaumSaundersDistribution.m -***** shared pd, t - pd = BirnbaumSaundersDistribution; - t = truncate (pd, 2, 4); -***** assert (cdf (pd, [0:5]), [0, 0.5, 0.7602, 0.8759, 0.9332, 0.9632], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0, 0.6687, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.6585, 0.7602, 0.8759, 0.9332, NaN], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.6687, 1, NaN], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0.4411, 0.7767, 1.2875, 2.2673, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2.2293, 2.5073, 2.8567, 3.3210, 4], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.7767, 1.2875, 2.2673, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.5073, 2.8567, 3.3210, 4, NaN], 1e-4); -***** assert (iqr (pd), 1.4236, 1e-4); -***** assert (iqr (t), 0.8968, 1e-4); -***** assert (mean (pd), 1.5, eps); -***** assert (mean (t), 2.7723, 1e-4); -***** assert (median (pd), 1, 1e-4); -***** assert (median (t), 2.6711, 1e-4); -***** assert (pdf (pd, [0:5]), [0, 0.3989, 0.1648, 0.0788, 0.0405, 0.0216], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 0.9528, 0.4559, 0.2340, 0], 1e-4); -***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0.2497, NaN], 1e-4); -***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < 2), false); -***** assert (any (random (t, 1000, 1) > 4), false); -***** assert (std (pd), 1.5, eps); -***** assert (std (t), 0.5528, 1e-4); -***** assert (var (pd), 2.25, eps); -***** assert (var (t), 0.3056, 1e-4); -***** error ... - BirnbaumSaundersDistribution(0, 1) -***** error ... - BirnbaumSaundersDistribution(Inf, 1) -***** error ... - BirnbaumSaundersDistribution(i, 1) -***** error ... - BirnbaumSaundersDistribution("beta", 1) -***** error ... - BirnbaumSaundersDistribution([1, 2], 1) -***** error ... - BirnbaumSaundersDistribution(NaN, 1) -***** error ... - BirnbaumSaundersDistribution(1, 0) -***** error ... - BirnbaumSaundersDistribution(1, -1) -***** error ... - BirnbaumSaundersDistribution(1, Inf) -***** error ... - BirnbaumSaundersDistribution(1, i) -***** error ... - BirnbaumSaundersDistribution(1, "beta") -***** error ... - BirnbaumSaundersDistribution(1, [1, 2]) -***** error ... - BirnbaumSaundersDistribution(1, NaN) -***** error ... - cdf (BirnbaumSaundersDistribution, 2, "uper") -***** error ... - cdf (BirnbaumSaundersDistribution, 2, 3) -***** shared x - rand ("seed", 5); - x = bisarnd (1, 1, [100, 1]); -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), "alpha") -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), "alpha", 0) -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), "alpha", 1) -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), "alpha", "") -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), "parameter", ... - "beta", "alpha", {0.05}) -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), ... - "parameter", {"beta", "gamma", "param"}) -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"beta", "gamma", "param"}) -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), "parameter", "param") -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), "alpha", 0.01, ... - "parameter", "param") -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), "NAME", "value") -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), "alpha", 0.01, ... - "NAME", "value") -***** error ... - paramci (BirnbaumSaundersDistribution.fit (x), "alpha", 0.01, ... - "parameter", "beta", "NAME", "value") -***** error ... - plot (BirnbaumSaundersDistribution, "Parent") -***** error ... - plot (BirnbaumSaundersDistribution, "PlotType", 12) -***** error ... - plot (BirnbaumSaundersDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (BirnbaumSaundersDistribution, "PlotType", "pdfcdf") -***** error ... - plot (BirnbaumSaundersDistribution, "Discrete", "pdfcdf") -***** error ... - plot (BirnbaumSaundersDistribution, "Discrete", [1, 0]) -***** error ... - plot (BirnbaumSaundersDistribution, "Discrete", {true}) -***** error ... - plot (BirnbaumSaundersDistribution, "Parent", 12) -***** error ... - plot (BirnbaumSaundersDistribution, "Parent", "hax") -***** error ... - proflik (BirnbaumSaundersDistribution, 2) -***** error ... - proflik (BirnbaumSaundersDistribution.fit (x), 3) -***** error ... - proflik (BirnbaumSaundersDistribution.fit (x), [1, 2]) -***** error ... - proflik (BirnbaumSaundersDistribution.fit (x), {1}) -***** error ... - proflik (BirnbaumSaundersDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (BirnbaumSaundersDistribution.fit (x), 1, "Display") -***** error ... - proflik (BirnbaumSaundersDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (BirnbaumSaundersDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (BirnbaumSaundersDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (BirnbaumSaundersDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (BirnbaumSaundersDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (BirnbaumSaundersDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (BirnbaumSaundersDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (BirnbaumSaundersDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (BirnbaumSaundersDistribution) -***** error ... - truncate (BirnbaumSaundersDistribution, 2) -***** error ... - truncate (BirnbaumSaundersDistribution, 4, 2) -***** shared pd - pd = BirnbaumSaundersDistribution(1, 1); - pd(2) = BirnbaumSaundersDistribution(1, 3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -94 tests, 94 passed, 0 known failure, 0 skipped -[inst/dist_obj/NormalDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/NormalDistribution.m -***** shared pd, t - pd = NormalDistribution; - t = truncate (pd, -2, 2); -***** assert (cdf (pd, [0:5]), [0.5, 0.8413, 0.9772, 0.9987, 1, 1], 1e-4); -***** assert (cdf (t, [0:5]), [0.5, 0.8576, 1, 1, 1, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.9332, 0.9772, 0.9987, 1], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0.9538, 1, 1, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [-Inf, -0.8416, -0.2533, 0.2533, 0.8416, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [-2, -0.7938, -0.2416, 0.2416, 0.7938, 2], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, -0.2533, 0.2533, 0.8416, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, -0.2416, 0.2416, 0.7938, 2, NaN], 1e-4); -***** assert (iqr (pd), 1.3490, 1e-4); -***** assert (iqr (t), 1.2782, 1e-4); -***** assert (mean (pd), 0); -***** assert (mean (t), 0, eps); -***** assert (median (pd), 0); -***** assert (median (t), 0); -***** assert (pdf (pd, [0:5]), [0.3989, 0.2420, 0.0540, 0.0044, 0.0001, 0], 1e-4); -***** assert (pdf (t, [0:5]), [0.4180, 0.2535, 0.0566, 0, 0, 0], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0.2420, 0.2420, 0.0540, 0.0044, 0.0001, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0.2535, 0.2535, 0.0566, 0, 0, NaN], 1e-4); -***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) -***** assert (any (random (t, 1000, 1) < -2), false); -***** assert (any (random (t, 1000, 1) > 2), false); -***** assert (std (pd), 1); -***** assert (std (t), 0.8796, 1e-4); -***** assert (var (pd), 1); -***** assert (var (t), 0.7737, 1e-4); -***** error ... - NormalDistribution(Inf, 1) -***** error ... - NormalDistribution(i, 1) -***** error ... - NormalDistribution("a", 1) -***** error ... - NormalDistribution([1, 2], 1) -***** error ... - NormalDistribution(NaN, 1) -***** error ... - NormalDistribution(1, 0) -***** error ... - NormalDistribution(1, -1) -***** error ... - NormalDistribution(1, Inf) -***** error ... - NormalDistribution(1, i) -***** error ... - NormalDistribution(1, "a") -***** error ... - NormalDistribution(1, [1, 2]) -***** error ... - NormalDistribution(1, NaN) -***** error ... - cdf (NormalDistribution, 2, "uper") -***** error ... - cdf (NormalDistribution, 2, 3) -***** shared x - x = normrnd (1, 1, [1, 100]); -***** error ... - paramci (NormalDistribution.fit (x), "alpha") -***** error ... - paramci (NormalDistribution.fit (x), "alpha", 0) -***** error ... - paramci (NormalDistribution.fit (x), "alpha", 1) -***** error ... - paramci (NormalDistribution.fit (x), "alpha", [0.5 2]) -***** error ... - paramci (NormalDistribution.fit (x), "alpha", "") -***** error ... - paramci (NormalDistribution.fit (x), "alpha", {0.05}) -***** error ... - paramci (NormalDistribution.fit (x), "parameter", "mu", "alpha", {0.05}) -***** error ... - paramci (NormalDistribution.fit (x), "parameter", {"mu", "sigma", "param"}) -***** error ... - paramci (NormalDistribution.fit (x), "alpha", 0.01, ... - "parameter", {"mu", "sigma", "param"}) -***** error ... - paramci (NormalDistribution.fit (x), "parameter", "param") -***** error ... - paramci (NormalDistribution.fit (x), "alpha", 0.01, "parameter", "param") -***** error ... - paramci (NormalDistribution.fit (x), "NAME", "value") -***** error ... - paramci (NormalDistribution.fit (x), "alpha", 0.01, "NAME", "value") -***** error ... - paramci (NormalDistribution.fit (x), "alpha", 0.01, "parameter", "mu", ... - "NAME", "value") -***** error ... - plot (NormalDistribution, "Parent") -***** error ... - plot (NormalDistribution, "PlotType", 12) -***** error ... - plot (NormalDistribution, "PlotType", {"pdf", "cdf"}) -***** error ... - plot (NormalDistribution, "PlotType", "pdfcdf") -***** error ... - plot (NormalDistribution, "Discrete", "pdfcdf") -***** error ... - plot (NormalDistribution, "Discrete", [1, 0]) -***** error ... - plot (NormalDistribution, "Discrete", {true}) -***** error ... - plot (NormalDistribution, "Parent", 12) -***** error ... - plot (NormalDistribution, "Parent", "hax") -***** error ... - proflik (NormalDistribution, 2) -***** error ... - proflik (NormalDistribution.fit (x), 3) -***** error ... - proflik (NormalDistribution.fit (x), [1, 2]) -***** error ... - proflik (NormalDistribution.fit (x), {1}) -***** error ... - proflik (NormalDistribution.fit (x), 1, ones (2)) -***** error ... - proflik (NormalDistribution.fit (x), 1, "Display") -***** error ... - proflik (NormalDistribution.fit (x), 1, "Display", 1) -***** error ... - proflik (NormalDistribution.fit (x), 1, "Display", {1}) -***** error ... - proflik (NormalDistribution.fit (x), 1, "Display", {"on"}) -***** error ... - proflik (NormalDistribution.fit (x), 1, "Display", ["on"; "on"]) -***** error ... - proflik (NormalDistribution.fit (x), 1, "Display", "onnn") -***** error ... - proflik (NormalDistribution.fit (x), 1, "NAME", "on") -***** error ... - proflik (NormalDistribution.fit (x), 1, {"NAME"}, "on") -***** error ... - proflik (NormalDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") -***** error ... - truncate (NormalDistribution) -***** error ... - truncate (NormalDistribution, 2) -***** error ... - truncate (NormalDistribution, 4, 2) -***** shared pd - pd = NormalDistribution(1, 1); - pd(2) = NormalDistribution(1, 3); -***** error cdf (pd, 1) -***** error icdf (pd, 0.5) -***** error iqr (pd) -***** error mean (pd) -***** error median (pd) -***** error negloglik (pd) -***** error paramci (pd) -***** error pdf (pd, 1) -***** error plot (pd) -***** error proflik (pd, 2) -***** error random (pd) -***** error std (pd) -***** error ... - truncate (pd, 2, 4) -***** error var (pd) -93 tests, 93 passed, 0 known failure, 0 skipped -[inst/tiedrank.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/tiedrank.m + x1 = randn (60000, 5); + randn ("seed", 5); + x2 = randn (30000, 5); + [h, pval, stats] = hotelling_t2test2 (x1, x2); + assert (h, 0); + assert (stats.df1, 5); + assert (stats.df2, 89994); +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/kmeans.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/kmeans.m +***** demo + ## Generate a two-cluster problem + randn ("seed", 31) # for reproducibility + C1 = randn (100, 2) + 1; + randn ("seed", 32) # for reproducibility + C2 = randn (100, 2) - 1; + data = [C1; C2]; + + ## Perform clustering + rand ("seed", 1) # for reproducibility + [idx, centers] = kmeans (data, 2); + + ## Plot the result + figure; + plot (data (idx==1, 1), data (idx==1, 2), "ro"); + hold on; + plot (data (idx==2, 1), data (idx==2, 2), "bs"); + plot (centers (:, 1), centers (:, 2), "kv", "markersize", 10); + hold off; +***** demo + ## Cluster data using k-means clustering, then plot the cluster regions + ## Load Fisher's iris data set and use the petal lengths and widths as + ## predictors + + load fisheriris + X = meas(:,3:4); + + figure; + plot (X(:,1), X(:,2), "k*", "MarkerSize", 5); + title ("Fisher's Iris Data"); + xlabel ("Petal Lengths (cm)"); + ylabel ("Petal Widths (cm)"); + + ## Cluster the data. Specify k = 3 clusters + rand ("seed", 1) # for reproducibility + [idx, C] = kmeans (X, 3); + x1 = min (X(:,1)):0.01:max (X(:,1)); + x2 = min (X(:,2)):0.01:max (X(:,2)); + [x1G, x2G] = meshgrid (x1, x2); + XGrid = [x1G(:), x2G(:)]; + + idx2Region = kmeans (XGrid, 3, "MaxIter", 1, "Start", C); + figure; + gscatter (XGrid(:,1), XGrid(:,2), idx2Region, ... + [0, 0.75, 0.75; 0.75, 0, 0.75; 0.75, 0.75, 0], ".."); + hold on; + plot (X(:,1), X(:,2), "k*", "MarkerSize", 5); + title ("Fisher's Iris Data"); + xlabel ("Petal Lengths (cm)"); + ylabel ("Petal Widths (cm)"); + legend ("Region 1", "Region 2", "Region 3", "Data", "Location", "SouthEast"); + hold off +***** demo + ## Partition Data into Two Clusters + + randn ("seed", 1) # for reproducibility + r1 = randn (100, 2) * 0.75 + ones (100, 2); + randn ("seed", 2) # for reproducibility + r2 = randn (100, 2) * 0.5 - ones (100, 2); + X = [r1; r2]; + + figure; + plot (X(:,1), X(:,2), "."); + title ("Randomly Generated Data"); + rand ("seed", 1) # for reproducibility + [idx, C] = kmeans (X, 2, "Distance", "cityblock", ... + "Replicates", 5, "Display", "final"); + figure; + plot (X(idx==1,1), X(idx==1,2), "r.", "MarkerSize", 12); + hold on + plot(X(idx==2,1), X(idx==2,2), "b.", "MarkerSize", 12); + plot (C(:,1), C(:,2), "kx", "MarkerSize", 15, "LineWidth", 3); + legend ("Cluster 1", "Cluster 2", "Centroids", "Location", "NorthWest"); + title ("Cluster Assignments and Centroids"); + hold off +***** demo + ## Assign New Data to Existing Clusters + + ## Generate a training data set using three distributions + randn ("seed", 5) # for reproducibility + r1 = randn (100, 2) * 0.75 + ones (100, 2); + randn ("seed", 7) # for reproducibility + r2 = randn (100, 2) * 0.5 - ones (100, 2); + randn ("seed", 9) # for reproducibility + r3 = randn (100, 2) * 0.75; + X = [r1; r2; r3]; + + ## Partition the training data into three clusters by using kmeans + + rand ("seed", 1) # for reproducibility + [idx, C] = kmeans (X, 3); + + ## Plot the clusters and the cluster centroids + + figure + gscatter (X(:,1), X(:,2), idx, "bgm", "***"); + hold on + plot (C(:,1), C(:,2), "kx"); + legend ("Cluster 1", "Cluster 2", "Cluster 3", "Cluster Centroid") + + ## Generate a test data set + randn ("seed", 25) # for reproducibility + r1 = randn (100, 2) * 0.75 + ones (100, 2); + randn ("seed", 27) # for reproducibility + r2 = randn (100, 2) * 0.5 - ones (100, 2); + randn ("seed", 29) # for reproducibility + r3 = randn (100, 2) * 0.75; + Xtest = [r1; r2; r3]; + + ## Classify the test data set using the existing clusters + ## Find the nearest centroid from each test data point by using pdist2 + + D = pdist2 (C, Xtest, "euclidean"); + [group, ~] = find (D == min (D)); + + ## Plot the test data and label the test data using idx_test with gscatter + + gscatter (Xtest(:,1), Xtest(:,2), group, "bgm", "ooo"); + legend ("Cluster 1", "Cluster 2", "Cluster 3", "Cluster Centroid", ... + "Data classified to Cluster 1", "Data classified to Cluster 2", ... + "Data classified to Cluster 3", "Location", "NorthWest"); + title ("Assign New Data to Existing Clusters"); ***** test - mileage = [33.3, 34.5, 37.4; 33.4, 34.8, 36.8; ... - 32.9, 33.8, 37.6; 32.6, 33.4, 36.6; ... - 32.5, 33.7, 37.0; 33.0, 33.9, 36.7]; - [r,tieadj] = tiedrank([10, 20, 30, 40, 50]); - assert (r, [1, 2, 3, 4, 5]); - assert (tieadj, 0); - [r,tieadj] = tiedrank([10, 20, 30, 40, 50]'); - assert (r, [1; 2; 3; 4; 5]); + samples = 4; + dims = 3; + k = 2; + [cls, c, d, z] = kmeans (rand (samples,dims), k, "start", rand (k,dims, 5), + "emptyAction", "singleton"); + assert (size (cls), [samples, 1]); + assert (size (c), [k, dims]); + assert (size (d), [k, 1]); + assert (size (z), [samples, k]); ***** test - mileage = [33.3, 34.5, 37.4; 33.4, 34.8, 36.8; ... - 32.9, 33.8, 37.6; 32.6, 33.4, 36.6; ... - 32.5, 33.7, 37.0; 33.0, 33.9, 36.7]; - [r,tieadj] = tiedrank([10, 20, 30, 40, 50], 1); - assert (r, [1, 2, 3, 4, 5]); - assert (tieadj, [0 0 0]'); + samples = 4; + dims = 3; + k = 2; + [cls, c, d, z] = kmeans (rand (samples,dims), [], "start", rand (k,dims, 5), + "emptyAction", "singleton"); + assert (size (cls), [samples, 1]); + assert (size (c), [k, dims]); + assert (size (d), [k, 1]); + assert (size (z), [samples, k]); +***** test + [cls, c] = kmeans ([1 0; 2 0], 2, "start", [8,0;0,8], "emptyaction", "drop"); + assert (cls, [1; 1]); + assert (c, [1.5, 0; NA, NA]); +***** test + kmeans (rand (4,3), 2, "start", rand (2,3, 5), "replicates", 5, + "emptyAction", "singleton"); +***** test + kmeans (rand (3,4), 2, "start", "sample", "emptyAction", "singleton"); +***** test + kmeans (rand (3,4), 2, "start", "plus", "emptyAction", "singleton"); +***** test + kmeans (rand (3,4), 2, "start", "cluster", "emptyAction", "singleton"); +***** test + kmeans (rand (3,4), 2, "start", "uniform", "emptyAction", "singleton"); +***** test + kmeans (rand (4,3), 2, "distance", "sqeuclidean", "emptyAction", "singleton"); +***** test + kmeans (rand (4,3), 2, "distance", "cityblock", "emptyAction", "singleton"); +***** test + kmeans (rand (4,3), 2, "distance", "cosine", "emptyAction", "singleton"); +***** test + kmeans (rand (4,3), 2, "distance", "correlation", "emptyAction", "singleton"); +***** test + kmeans (rand (4,3), 2, "distance", "hamming", "emptyAction", "singleton"); +***** test + kmeans ([1 0; 1.1 0], 2, "start", eye(2), "emptyaction", "singleton"); +***** error kmeans (rand (3,2), 4); +***** error kmeans ([1 0; 1.1 0], 2, "start", eye(2), "emptyaction", "panic"); +***** error kmeans (rand (4,3), 2, "start", rand (2,3, 5), "replicates", 1); +***** error kmeans (rand (4,3), 2, "start", rand (2,2)); +***** error kmeans (rand (4,3), 2, "distance", "manhattan"); +***** error kmeans (rand (3,4), 2, "start", "normal"); +***** error kmeans (rand (4,3), 2, "replicates", i); +***** error kmeans (rand (4,3), 2, "replicates", -1); +***** error kmeans (rand (4,3), 2, "replicates", []); +***** error kmeans (rand (4,3), 2, "replicates", [1 2]); +***** error kmeans (rand (4,3), 2, "replicates", "one"); +***** error kmeans (rand (4,3), 2, "MAXITER", i); +***** error kmeans (rand (4,3), 2, "MaxIter", -1); +***** error kmeans (rand (4,3), 2, "maxiter", []); +***** error kmeans (rand (4,3), 2, "maxiter", [1 2]); +***** error kmeans (rand (4,3), 2, "maxiter", "one"); +***** error kmeans ([1 0; 1.1 0], 2, "start", eye(2), "emptyaction", "error"); +31 tests, 31 passed, 0 known failure, 0 skipped +[inst/nansum.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/nansum.m +***** assert (nansum ([2 4 NaN 7]), 13) +***** assert (nansum ([2 4 NaN Inf]), Inf) +***** assert (nansum ([1 NaN 3; NaN 5 6; 7 8 NaN]), [8 13 9]) +***** assert (nansum ([1 NaN 3; NaN 5 6; 7 8 NaN], 2), [4; 11; 15]) +***** assert (nansum (single ([1 NaN 3; NaN 5 6; 7 8 NaN])), single ([8 13 9])) +***** assert (nansum (single ([1 NaN 3; NaN 5 6; 7 8 NaN]), "double"), [8 13 9]) +***** assert (nansum (uint8 ([2 4 1 7])), 14) +***** assert (nansum (uint8 ([2 4 1 7]), "native"), uint8 (14)) +***** assert (nansum (uint8 ([2 4 1 7])), 14) +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/manovacluster.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/manovacluster.m +***** demo + load carbig + X = [MPG Acceleration Weight Displacement]; + [d, p, stats] = manova1 (X, Origin); + manovacluster (stats) +***** test + hf = figure ("visible", "off"); + unwind_protect + load carbig + X = [MPG Acceleration Weight Displacement]; + [d, p, stats] = manova1 (X, Origin); + manovacluster (stats); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** error manovacluster (stats, "some"); 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/vartest.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/vartest.m -***** error vartest (); -***** error vartest ([1, 2, 3, 4], -0.5); -***** error ... - vartest ([1, 2, 3, 4], 1, "alpha", 0); -***** error ... - vartest ([1, 2, 3, 4], 1, "alpha", 1.2); -***** error ... - vartest ([1, 2, 3, 4], 1, "alpha", "val"); -***** error ... - vartest ([1, 2, 3, 4], 1, "tail", "val"); -***** error ... - vartest ([1, 2, 3, 4], 1, "alpha", 0.01, "tail", "val"); -***** error ... - vartest ([1, 2, 3, 4], 1, "dim", 3); -***** error ... - vartest ([1, 2, 3, 4], 1, "alpha", 0.01, "tail", "both", "dim", 3); -***** error ... - vartest ([1, 2, 3, 4], 1, "alpha", 0.01, "tail", "both", "badoption", 3); -***** error ... - vartest ([1, 2, 3, 4], 1, "alpha", 0.01, "tail"); +[inst/standardizeMissing.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/standardizeMissing.m +***** assert (standardizeMissing (1, 1), NaN) +***** assert (standardizeMissing (1, 0), 1) +***** assert (standardizeMissing (eye(2), 1), [NaN 0;0 NaN]) +***** assert (standardizeMissing ([1:3;4:6], [2 3; 4 5]), [1, NaN, NaN; NaN, NaN, 6]) +***** assert (standardizeMissing (cat (3,1,2,3,4), 3), cat (3,1,2,NaN,4)) +***** assert (standardizeMissing ('foo', 'a'), 'foo') +***** assert (standardizeMissing ('foo', 'f'), ' oo') +***** assert (standardizeMissing ('foo', 'o'), 'f ') +***** assert (standardizeMissing ('foo', 'oo'), 'f ') +***** assert (standardizeMissing ({'foo'}, 'f'), {'foo'}) +***** assert (standardizeMissing ({'foo'}, {'f'}), {'foo'}) +***** assert (standardizeMissing ({'foo'}, 'test'), {'foo'}) +***** assert (standardizeMissing ({'foo'}, {'test'}), {'foo'}) +***** assert (standardizeMissing ({'foo'}, 'foo'), {''}) +***** assert (standardizeMissing ({'foo'}, {'foo'}), {''}) +***** assert (standardizeMissing (['foo';'bar'], 'oar'), ['f ';'b ']) +***** assert (standardizeMissing (['foo';'bar'], ['o';'a';'r']), ['f ';'b ']) +***** assert (standardizeMissing (['foo';'bar'], ['o ';'ar']), ['f ';'b ']) +***** assert (standardizeMissing ({'foo','bar'}, 'foo'), {'','bar'}) +***** assert (standardizeMissing ({'foo','bar'}, 'f'), {'foo','bar'}) +***** assert (standardizeMissing ({'foo','bar'}, {'foo', 'a'}), {'','bar'}) +***** assert (standardizeMissing ({'foo'}, {'f', 'oo'}), {'foo'}) +***** assert (standardizeMissing ({'foo','bar'}, {'foo'}), {'','bar'}) +***** assert (standardizeMissing ({'foo','bar'}, {'foo', 'a'}), {'','bar'}) +***** assert (standardizeMissing (double (1), single (1)), double (NaN)) +***** assert (standardizeMissing (single (1), single (1)), single (NaN)) +***** assert (standardizeMissing (single (1), double (1)), single (NaN)) +***** assert (standardizeMissing (single (1), true), single (NaN)) +***** assert (standardizeMissing (double (1), int32(1)), double (NaN)) +***** assert (standardizeMissing (true, true), true) +***** assert (standardizeMissing (true, 1), true) +***** assert (standardizeMissing (int32 (1), int32 (1)), int32 (1)) +***** assert (standardizeMissing (int32 (1), 1), int32 (1)) +***** assert (standardizeMissing (uint32 (1), uint32 (1)), uint32 (1)) +***** assert (standardizeMissing (uint32 (1), 1), uint32 (1)) +***** error standardizeMissing (); +***** error standardizeMissing (1); +***** error standardizeMissing (1,2,3); +***** error standardizeMissing ({'abc', 1}, 1); +***** error standardizeMissing (struct ('a','b'), 1); +***** error <'indicator' and 'A' must have > standardizeMissing ([1 2 3], {1}); +***** error <'indicator' and 'A' must have > standardizeMissing ([1 2 3], 'a'); +***** error <'indicator' and 'A' must have > standardizeMissing ([1 2 3], struct ('a', 1)); +***** error <'indicator' and 'A' must have > standardizeMissing ('foo', 1); +***** error <'indicator' and 'A' must have > standardizeMissing ('foo', {1}); +***** error <'indicator' and 'A' must have > standardizeMissing ('foo', {'f'}); +***** error <'indicator' and 'A' must have > standardizeMissing ('foo', struct ('a', 1)); +***** error <'indicator' and 'A' must have > standardizeMissing ({'foo'}, 1); +***** error <'indicator' and 'A' must have > standardizeMissing ({'foo'}, 1); +49 tests, 49 passed, 0 known failure, 0 skipped +[inst/mcnemar_test.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/mcnemar_test.m ***** test - load carsmall - [h, pval, ci] = vartest (MPG, 7^2); + [h, pval, chisq] = mcnemar_test ([101,121;59,33]); assert (h, 1); - assert (pval, 0.04335086742174443, 1e-14); - assert (ci, [49.397; 88.039], 1e-3); + assert (pval, 3.8151e-06, 1e-10); + assert (chisq, 21.356, 1e-3); +***** test + [h, pval, chisq] = mcnemar_test ([59,6;16,80]); + assert (h, 1); + assert (pval, 0.034690, 1e-6); + assert (isempty (chisq), true); +***** test + [h, pval, chisq] = mcnemar_test ([59,6;16,80], 0.01); + assert (h, 0); + assert (pval, 0.034690, 1e-6); + assert (isempty (chisq), true); +***** test + [h, pval, chisq] = mcnemar_test ([59,6;16,80], "mid-p"); + assert (h, 1); + assert (pval, 0.034690, 1e-6); + assert (isempty (chisq), true); +***** test + [h, pval, chisq] = mcnemar_test ([59,6;16,80], "asymptotic"); + assert (h, 1); + assert (pval, 0.033006, 1e-6); + assert (chisq, 4.5455, 1e-4); +***** test + [h, pval, chisq] = mcnemar_test ([59,6;16,80], "exact"); + assert (h, 0); + assert (pval, 0.052479, 1e-6); + assert (isempty (chisq), true); +***** test + [h, pval, chisq] = mcnemar_test ([59,6;16,80], "corrected"); + assert (h, 0); + assert (pval, 0.055009, 1e-6); + assert (chisq, 3.6818, 1e-4); +***** test + [h, pval, chisq] = mcnemar_test ([59,6;16,80], 0.1, "corrected"); + assert (h, 1); + assert (pval, 0.055009, 1e-6); + assert (chisq, 3.6818, 1e-4); +***** error mcnemar_test (59, 6, 16, 80) +***** error mcnemar_test (ones (3, 3)) +***** error ... + mcnemar_test ([59,6;16,-80]) +***** error ... + mcnemar_test ([59,6;16,4.5]) +***** error ... + mcnemar_test ([59,6;16,80], {""}) +***** error ... + mcnemar_test ([59,6;16,80], -0.2) +***** error ... + mcnemar_test ([59,6;16,80], [0.05, 0.1]) +***** error ... + mcnemar_test ([59,6;16,80], 1) +***** error ... + mcnemar_test ([59,6;16,80], "") +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/pdist.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/pdist.m +***** shared xy, t, eucl, x + xy = [0 1; 0 2; 7 6; 5 6]; + t = 1e-3; + eucl = @(v,m) sqrt(sumsq(repmat(v,rows(m),1)-m,2)); + x = [1 2 3; 4 5 6; 7 8 9; 3 2 1]; +***** assert (pdist (xy), [1.000 8.602 7.071 8.062 6.403 2.000], t); +***** assert (pdist (xy, eucl), [1.000 8.602 7.071 8.062 6.403 2.000], t); +***** assert (pdist (xy, "euclidean"), [1.000 8.602 7.071 8.062 6.403 2.000], t); +***** assert (pdist (xy, "seuclidean"), [0.380 2.735 2.363 2.486 2.070 0.561], t); +***** assert (pdist (xy, "mahalanobis"), [1.384 1.967 2.446 2.384 1.535 2.045], t); +***** assert (pdist (xy, "cityblock"), [1.000 12.00 10.00 11.00 9.000 2.000], t); +***** assert (pdist (xy, "minkowski"), [1.000 8.602 7.071 8.062 6.403 2.000], t); +***** assert (pdist (xy, "minkowski", 3), [1.000 7.763 6.299 7.410 5.738 2.000], t); +***** assert (pdist (xy, "cosine"), [0.000 0.349 0.231 0.349 0.231 0.013], t); +***** assert (pdist (xy, "correlation"), [0.000 2.000 0.000 2.000 0.000 2.000], t); +***** assert (pdist (xy, "spearman"), [0.000 2.000 0.000 2.000 0.000 2.000], t); +***** assert (pdist (xy, "hamming"), [0.500 1.000 1.000 1.000 1.000 0.500], t); +***** assert (pdist (xy, "jaccard"), [1.000 1.000 1.000 1.000 1.000 0.500], t); +***** assert (pdist (xy, "chebychev"), [1.000 7.000 5.000 7.000 5.000 2.000], t); +***** assert (pdist (x), [5.1962, 10.3923, 2.8284, 5.1962, 5.9161, 10.7703], 1e-4); +***** assert (pdist (x, "euclidean"), ... + [5.1962, 10.3923, 2.8284, 5.1962, 5.9161, 10.7703], 1e-4); +***** assert (pdist (x, eucl), ... + [5.1962, 10.3923, 2.8284, 5.1962, 5.9161, 10.7703], 1e-4); +***** assert (pdist (x, "squaredeuclidean"), [27, 108, 8, 27, 35, 116]); +***** assert (pdist (x, "seuclidean"), ... + [1.8071, 3.6142, 0.9831, 1.8071, 1.8143, 3.4854], 1e-4); +***** warning ... + pdist (x, "mahalanobis"); +***** assert (pdist (x, "cityblock"), [9, 18, 4, 9, 9, 18]); +***** assert (pdist (x, "minkowski"), ... + [5.1962, 10.3923, 2.8284, 5.1962, 5.9161, 10.7703], 1e-4); +***** assert (pdist (x, "minkowski", 3), ... + [4.3267, 8.6535, 2.5198, 4.3267, 5.3485, 9.2521], 1e-4); +***** assert (pdist (x, "cosine"), ... + [0.0254, 0.0406, 0.2857, 0.0018, 0.1472, 0.1173], 1e-4); +***** assert (pdist (x, "correlation"), [0, 0, 2, 0, 2, 2], 1e-14); +***** assert (pdist (x, "spearman"), [0, 0, 2, 0, 2, 2], 1e-14); +***** assert (pdist (x, "hamming"), [1, 1, 2/3, 1, 1, 1]); +***** assert (pdist (x, "jaccard"), [1, 1, 2/3, 1, 1, 1]); +***** assert (pdist (x, "chebychev"), [3, 6, 2, 3, 5, 8]); +29 tests, 29 passed, 0 known failure, 0 skipped +[inst/manova1.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/manova1.m +***** demo + load carbig + [d,p] = manova1([MPG, Acceleration, Weight, Displacement], Origin) +***** test + load carbig + [d,p] = manova1([MPG, Acceleration, Weight, Displacement], Origin); + assert (d, 3); + assert (p, [0, 3.140583347827075e-07, 0.007510999577743149, ... + 0.1934100745898493]', [1e-12, 1e-12, 1e-12, 1e-12]'); +***** test + load carbig + [d,p] = manova1([MPG, Acceleration, Weight], Origin); + assert (d, 2); + assert (p, [0, 0.00516082975137544, 0.1206528056514453]', ... + [1e-12, 1e-12, 1e-12]'); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/dendrogram.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dendrogram.m +***** demo + ## simple dendrogram + y = [4, 5; 2, 6; 3, 7; 8, 9; 1, 10]; + y(:,3) = 1:5; + dendrogram (y); + title ("simple dendrogram"); +***** demo + ## another simple dendrogram + v = 2 * rand (30, 1) - 1; + d = abs (bsxfun (@minus, v(:, 1), v(:, 1)')); + y = linkage (squareform (d, "tovector")); + dendrogram (y); + title ("another simple dendrogram"); +***** demo + ## collapsed tree, find all the leaves of node 5 + X = randn (60, 2); + D = pdist (X); + y = linkage (D, "average"); + subplot (2, 1, 1); + title ("original tree"); + dendrogram (y, 0); + subplot (2, 1, 2); + title ("collapsed tree"); + [~, t] = dendrogram (y, 20); + find(t == 5) +***** demo + ## optimal leaf order + X = randn (30, 2); + D = pdist (X); + y = linkage (D, "average"); + order = optimalleaforder (y, D); + subplot (2, 1, 1); + title ("original leaf order"); + dendrogram (y); + subplot (2, 1, 2); + title ("optimal leaf order"); + dendrogram (y, "Reorder", order); +***** demo + ## horizontal orientation and labels + X = randn (8, 2); + D = pdist (X); + L = ["Snow White"; "Doc"; "Grumpy"; "Happy"; "Sleepy"; "Bashful"; ... + "Sneezy"; "Dopey"]; + y = linkage (D, "average"); + dendrogram (y, "Orientation", "left", "Labels", L); + title ("horizontal orientation and labels"); +***** shared visibility_setting + visibility_setting = get (0, "DefaultFigureVisible"); +***** test + hf = figure ("visible", "off"); + unwind_protect + y = [4, 5; 2, 6; 3, 7; 8, 9; 1, 10]; + y(:,3) = 1:5; + dendrogram (y); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** test + hf = figure ("visible", "off"); + unwind_protect + y = [4, 5; 2, 6; 3, 7; 8, 9; 1, 10]; + y(:,3) = 1:5; + dendrogram (y); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** test + hf = figure ("visible", "off"); + unwind_protect + v = 2 * rand (30, 1) - 1; + d = abs (bsxfun (@minus, v(:, 1), v(:, 1)')); + y = linkage (squareform (d, "tovector")); + dendrogram (y); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** test + hf = figure ("visible", "off"); + unwind_protect + X = randn (30, 2); + D = pdist (X); + y = linkage (D, "average"); + order = optimalleaforder (y, D); + subplot (2, 1, 1); + title ("original leaf order"); + dendrogram (y); + subplot (2, 1, 2); + title ("optimal leaf order"); + dendrogram (y, "Reorder", order); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** error dendrogram (); +***** error dendrogram (ones (2, 2), 1); +***** error dendrogram ([1 2 1], 1, "xxx", "xxx"); +***** error dendrogram ([1 2 1], "Reorder", "xxx"); +***** error dendrogram ([1 2 1], "Reorder", [1 2 3 4]); + fail ('dendrogram ([1 2 1], "Orientation", "north")', "invalid orientation .*") +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/hmmestimate.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/hmmestimate.m +***** test + sequence = [1, 2, 1, 1, 1, 2, 2, 1, 2, 3, 3, ... + 3, 3, 2, 3, 1, 1, 1, 1, 3, 3, 2, 3, 1, 3]; + states = [1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, ... + 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1]; + [transprobest, outprobest] = hmmestimate (sequence, states); + expectedtransprob = [0.88889, 0.11111; 0.28571, 0.71429]; + expectedoutprob = [0.16667, 0.33333, 0.50000; 1.00000, 0.00000, 0.00000]; + assert (transprobest, expectedtransprob, 0.001); + assert (outprobest, expectedoutprob, 0.001); +***** test + sequence = {"A", "B", "A", "A", "A", "B", "B", "A", "B", "C", "C", "C", ... + "C", "B", "C", "A", "A", "A", "A", "C", "C", "B", "C", "A", "C"}; + states = {"One", "One", "Two", "Two", "Two", "One", "One", "One", "One", ... + "One", "One", "One", "One", "One", "One", "Two", "Two", "Two", ... + "Two", "One", "One", "One", "One", "One", "One"}; + symbols = {"A", "B", "C"}; + statenames = {"One", "Two"}; + [transprobest, outprobest] = hmmestimate (sequence, states, "symbols", ... + symbols, "statenames", statenames); + expectedtransprob = [0.88889, 0.11111; 0.28571, 0.71429]; + expectedoutprob = [0.16667, 0.33333, 0.50000; 1.00000, 0.00000, 0.00000]; + assert (transprobest, expectedtransprob, 0.001); + assert (outprobest, expectedoutprob, 0.001); +***** test + sequence = [1, 2, 1, 1, 1, 2, 2, 1, 2, 3, 3, 3, ... + 3, 2, 3, 1, 1, 1, 1, 3, 3, 2, 3, 1, 3]; + states = [1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, ... + 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1]; + pseudotransitions = [8, 2; 4, 6]; + pseudoemissions = [2, 4, 4; 7, 2, 1]; + [transprobest, outprobest] = hmmestimate (sequence, states, ... + "pseudotransitions", pseudotransitions, "pseudoemissions", pseudoemissions); + expectedtransprob = [0.85714, 0.14286; 0.35294, 0.64706]; + expectedoutprob = [0.178571, 0.357143, 0.464286; ... + 0.823529, 0.117647, 0.058824]; + assert (transprobest, expectedtransprob, 0.001); + assert (outprobest, expectedoutprob, 0.001); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/fullfact.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/fullfact.m +***** demo + ## Full factorial design with 3 binary variables + fullfact (3) +***** demo + ## Full factorial design with 3 ordinal variables + fullfact ([2, 3, 4]) +***** error fullfact (); +***** error fullfact (2, 5); +***** error fullfact (2.5); +***** error fullfact (0); +***** error fullfact (-3); +***** error fullfact (3+2i); +***** error fullfact (Inf); +***** error fullfact (NaN); +***** error fullfact ([1, 2, -3]); +***** error fullfact ([0, 1, 2]); +***** error fullfact ([1, 2, NaN]); +***** error fullfact ([1, 2, Inf]); +***** test + A = fullfact (2); + assert (A, [0, 0; 0, 1; 1, 0; 1, 1]); +***** test + A = fullfact ([1, 2]); + assert (A, [1, 1; 1, 2]); +***** test + A = fullfact ([1, 2, 4]); + A_out = [1, 1, 1; 1, 1, 2; 1, 1, 3; 1, 1, 4; ... + 1, 2, 1; 1, 2, 2; 1, 2, 3; 1, 2, 4]; + assert (A, A_out); +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/procrustes.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/procrustes.m +***** demo + ## Create some random points in two dimensions + n = 10; + randn ("seed", 1); + X = normrnd (0, 1, [n, 2]); + + ## Those same points, rotated, scaled, translated, plus some noise + S = [0.5, -sqrt(3)/2; sqrt(3)/2, 0.5]; # rotate 60 degrees + Y = normrnd (0.5*X*S + 2, 0.05, n, 2); + + ## Conform Y to X, plot original X and Y, and transformed Y + [d, Z] = procrustes (X, Y); + plot (X(:,1), X(:,2), "rx", Y(:,1), Y(:,2), "b.", Z(:,1), Z(:,2), "bx"); +***** demo + ## Find Procrustes distance and plot superimposed shape + + X = [40 88; 51 88; 35 78; 36 75; 39 72; 44 71; 48 71; 52 74; 55 77]; + Y = [36 43; 48 42; 31 26; 33 28; 37 30; 40 31; 45 30; 48 28; 51 24]; + plot (X(:,1),X(:,2),"x"); + hold on + plot (Y(:,1),Y(:,2),"o"); + xlim ([0 100]); + ylim ([0 100]); + legend ("Target shape (X)", "Source shape (Y)"); + [d, Z] = procrustes (X, Y) + plot (Z(:,1), Z(:,2), "s"); + legend ("Target shape (X)", "Source shape (Y)", "Transformed shape (Z)"); + hold off +***** demo + ## Apply Procrustes transformation to larger set of points + + ## Create matrices with landmark points for two triangles + X = [5, 0; 5, 5; 8, 5]; # target + Y = [0, 0; 1, 0; 1, 1]; # source + + ## Create a matrix with more points on the source triangle + Y_mp = [linspace(Y(1,1),Y(2,1),10)', linspace(Y(1,2),Y(2,2),10)'; ... + linspace(Y(2,1),Y(3,1),10)', linspace(Y(2,2),Y(3,2),10)'; ... + linspace(Y(3,1),Y(1,1),10)', linspace(Y(3,2),Y(1,2),10)']; + + ## Plot both shapes, including the larger set of points for the source shape + plot ([X(:,1); X(1,1)], [X(:,2); X(1,2)], "bx-"); + hold on + plot ([Y(:,1); Y(1,1)], [Y(:,2); Y(1,2)], "ro-", "MarkerFaceColor", "r"); + plot (Y_mp(:,1), Y_mp(:,2), "ro"); + xlim ([-1 10]); + ylim ([-1 6]); + legend ("Target shape (X)", "Source shape (Y)", ... + "More points on Y", "Location", "northwest"); + hold off + + ## Obtain the Procrustes transformation + [d, Z, transform] = procrustes (X, Y) + + ## Use the Procrustes transformation to superimpose the more points (Y_mp) + ## on the source shape onto the target shape, and then visualize the results. + Z_mp = transform.b * Y_mp * transform.T + transform.c(1,:); + figure + plot ([X(:,1); X(1,1)], [X(:,2); X(1,2)], "bx-"); + hold on + plot ([Y(:,1); Y(1,1)], [Y(:,2); Y(1,2)], "ro-", "MarkerFaceColor", "r"); + plot (Y_mp(:,1), Y_mp(:,2), "ro"); + xlim ([-1 10]); + ylim ([-1 6]); + plot ([Z(:,1); Z(1,1)],[Z(:,2); Z(1,2)],"ks-","MarkerFaceColor","k"); + plot (Z_mp(:,1),Z_mp(:,2),"ks"); + legend ("Target shape (X)", "Source shape (Y)", ... + "More points on Y", "Transformed source shape (Z)", ... + "Transformed additional points", "Location", "northwest"); + hold off +***** demo + ## Compare shapes without reflection + + T = [33, 93; 33, 87; 33, 80; 31, 72; 32, 65; 32, 58; 30, 72; ... + 28, 72; 25, 69; 22, 64; 23, 59; 26, 57; 30, 57]; + S = [48, 83; 48, 77; 48, 70; 48, 65; 49, 59; 49, 56; 50, 66; ... + 52, 66; 56, 65; 58, 61; 57, 57; 54, 56; 51, 55]; + plot (T(:,1), T(:,2), "x-"); + hold on + plot (S(:,1), S(:,2), "o-"); + legend ("Target shape (d)", "Source shape (b)"); + hold off + d_false = procrustes (T, S, "reflection", false); + printf ("Procrustes distance without reflection: %f\n", d_false); + d_true = procrustes (T, S, "reflection", true); + printf ("Procrustes distance with reflection: %f\n", d_true); + d_best = procrustes (T, S, "reflection", "best"); + printf ("Procrustes distance with best fit: %f\n", d_true); +***** error procrustes (); +***** error procrustes (1, 2, 3, 4, 5, 6); +***** error ... + procrustes (ones (2, 2, 2), ones (2, 2, 2)); +***** error ... + procrustes ([1, 2; -3, 4; 2, 3], [1, 2; -3, 4; 2, 3+i]); +***** error ... + procrustes ([1, 2; -3, 4; 2, 3], [1, 2; -3, 4; 2, NaN]); +***** error ... + procrustes ([1, 2; -3, 4; 2, 3], [1, 2; -3, 4; 2, Inf]); +***** error ... + procrustes (ones (10 ,3), ones (11, 3)); +***** error ... + procrustes (ones (10 ,3), ones (10, 4)); +***** error ... + procrustes (ones (10 ,3), ones (10, 3), "reflection"); +***** error ... + procrustes (ones (10 ,3), ones (10, 3), true); +***** error ... + procrustes (ones (10 ,3), ones (10, 3), "scaling", 0); +***** error ... + procrustes (ones (10 ,3), ones (10, 3), "scaling", [true true]); +***** error ... + procrustes (ones (10 ,3), ones (10, 3), "reflection", 1); +***** error ... + procrustes (ones (10 ,3), ones (10, 3), "reflection", "some"); +***** error ... + procrustes (ones (10 ,3), ones (10, 3), "param1", "some"); +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/kruskalwallis.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/kruskalwallis.m +***** demo + x = meshgrid (1:6); + x = x + normrnd (0, 1, 6, 6); + kruskalwallis (x, [], 'off'); +***** demo + x = meshgrid (1:6); + x = x + normrnd (0, 1, 6, 6); + [p, atab] = kruskalwallis(x); +***** demo + x = ones (30, 4) .* [-2, 0, 1, 5]; + x = x + normrnd (0, 2, 30, 4); + group = {"A", "B", "C", "D"}; + kruskalwallis (x, group); +***** test + data = [1.006, 0.996, 0.998, 1.000, 0.992, 0.993, 1.002, 0.999, 0.994, 1.000, ... + 0.998, 1.006, 1.000, 1.002, 0.997, 0.998, 0.996, 1.000, 1.006, 0.988, ... + 0.991, 0.987, 0.997, 0.999, 0.995, 0.994, 1.000, 0.999, 0.996, 0.996, ... + 1.005, 1.002, 0.994, 1.000, 0.995, 0.994, 0.998, 0.996, 1.002, 0.996, ... + 0.998, 0.998, 0.982, 0.990, 1.002, 0.984, 0.996, 0.993, 0.980, 0.996, ... + 1.009, 1.013, 1.009, 0.997, 0.988, 1.002, 0.995, 0.998, 0.981, 0.996, ... + 0.990, 1.004, 0.996, 1.001, 0.998, 1.000, 1.018, 1.010, 0.996, 1.002, ... + 0.998, 1.000, 1.006, 1.000, 1.002, 0.996, 0.998, 0.996, 1.002, 1.006, ... + 1.002, 0.998, 0.996, 0.995, 0.996, 1.004, 1.004, 0.998, 0.999, 0.991, ... + 0.991, 0.995, 0.984, 0.994, 0.997, 0.997, 0.991, 0.998, 1.004, 0.997]; + group = [1:10] .* ones (10,10); + group = group(:); + [p, tbl] = kruskalwallis (data, group, "off"); + assert (p, 0.048229, 1e-6); + assert (tbl{2,5}, 17.03124, 1e-5); + assert (tbl{2,3}, 9, 0); + assert (tbl{4,2}, 82655.5, 1e-16); + data = reshape (data, 10, 10); + [p, tbl, stats] = kruskalwallis (data, [], "off"); + assert (p, 0.048229, 1e-6); + assert (tbl{2,5}, 17.03124, 1e-5); + assert (tbl{2,3}, 9, 0); + assert (tbl{4,2}, 82655.5, 1e-16); + means = [51.85, 60.45, 37.6, 51.1, 29.5, 54.25, 64.55, 66.7, 53.65, 35.35]; + N = 10 * ones (1, 10); + assert (stats.meanranks, means, 1e-6); + assert (length (stats.gnames), 10, 0); + assert (stats.n, N, 0); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/regress.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/regress.m +***** test + % Longley data from the NIST Statistical Reference Dataset + Z = [ 60323 83.0 234289 2356 1590 107608 1947 + 61122 88.5 259426 2325 1456 108632 1948 + 60171 88.2 258054 3682 1616 109773 1949 + 61187 89.5 284599 3351 1650 110929 1950 + 63221 96.2 328975 2099 3099 112075 1951 + 63639 98.1 346999 1932 3594 113270 1952 + 64989 99.0 365385 1870 3547 115094 1953 + 63761 100.0 363112 3578 3350 116219 1954 + 66019 101.2 397469 2904 3048 117388 1955 + 67857 104.6 419180 2822 2857 118734 1956 + 68169 108.4 442769 2936 2798 120445 1957 + 66513 110.8 444546 4681 2637 121950 1958 + 68655 112.6 482704 3813 2552 123366 1959 + 69564 114.2 502601 3931 2514 125368 1960 + 69331 115.7 518173 4806 2572 127852 1961 + 70551 116.9 554894 4007 2827 130081 1962 ]; + % Results certified by NIST using 500 digit arithmetic + % b and standard error in b + V = [ -3482258.63459582 890420.383607373 + 15.0618722713733 84.9149257747669 + -0.358191792925910E-01 0.334910077722432E-01 + -2.02022980381683 0.488399681651699 + -1.03322686717359 0.214274163161675 + -0.511041056535807E-01 0.226073200069370 + 1829.15146461355 455.478499142212 ]; + Rsq = 0.995479004577296; + F = 330.285339234588; + y = Z(:,1); X = [ones(rows(Z),1), Z(:,2:end)]; + alpha = 0.05; + [b, bint, r, rint, stats] = regress (y, X, alpha); + assert(b,V(:,1),4e-6); + assert(stats(1),Rsq,1e-12); + assert(stats(2),F,3e-8); + assert(((bint(:,1)-bint(:,2))/2)/tinv(alpha/2,9),V(:,2),-1.e-5); +warning: matrix singular to machine precision, rcond = 3.50566e-20 +warning: called from + regress at line 131 column 7 + __test__ at line 33 column 28 + test at line 682 column 11 + /tmp/tmp.0OhMRfHUlr at line 830 column 31 + +1 test, 1 passed, 0 known failure, 0 skipped +[inst/normalise_distribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/normalise_distribution.m +***** test + v = normalise_distribution ([1 2 3], [], 1); + assert (v, [0 0 0]) +***** test + v = normalise_distribution ([1 2 3], [], 2); + assert (v, norminv ([1 3 5] / 6), 3 * eps) +***** test + v = normalise_distribution ([1 2 3]', [], 2); + assert (v, [0 0 0]') +***** test + v = normalise_distribution ([1 2 3]', [], 1); + assert (v, norminv ([1 3 5]' / 6), 3 * eps) +***** test + v = normalise_distribution ([1 1 2 2 3 3], [], 2); + assert (v, norminv ([3 3 7 7 11 11] / 12), 3 * eps) +***** test + v = normalise_distribution ([1 1 2 2 3 3]', [], 1); + assert (v, norminv ([3 3 7 7 11 11]' / 12), 3 * eps) +***** test + A = randn ( 10 ); + N = normalise_distribution (A, @normcdf); + assert (A, N, 10000 * eps) +***** test + A = exprnd (1, 100); + N = normalise_distribution (A, @(x)(expcdf (x, 1))); + assert (mean (vec (N)), 0, 0.1) + assert (std (vec (N)), 1, 0.1) +***** test + A = rand (1000,1); + N = normalise_distribution (A, {@(x)(unifcdf (x, 0, 1))}); + assert (mean (vec (N)), 0, 0.2) + assert (std (vec (N)), 1, 0.1) +***** test + A = [rand(1000,1), randn(1000, 1)]; + N = normalise_distribution (A, {@(x)(unifcdf (x, 0, 1)), @normcdf}); + assert (mean (N), [0, 0], 0.2) + assert (std (N), [1, 1], 0.1) +***** test + A = [rand(1000,1), randn(1000, 1), exprnd(1, 1000, 1)]'; + N = normalise_distribution (A, {@(x)(unifcdf (x, 0, 1)); @normcdf; @(x)(expcdf (x, 1))}, 2); + assert (mean (N, 2), [0, 0, 0]', 0.2); + assert (std (N, [], 2), [1, 1, 1]', 0.1); +***** xtest + A = exprnd (1, 1000, 9); A (300:500, 4:6) = 17; + N = normalise_distribution (A); + assert (mean (N), [0 0 0 0.38 0.38 0.38 0 0 0], 0.1); + assert (var (N), [1 1 1 2.59 2.59 2.59 1 1 1], 0.1); +***** test +***** error normalise_distribution (zeros (3, 4), ... + {@(x)(unifcdf (x, 0, 1)); @normcdf; @(x)(expcdf (x,1))}); +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/adtest.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/adtest.m +***** error adtest (); +***** error adtest (ones (20,2)); +***** error adtest ([1+i,0-3i]); +***** error ... + adtest (ones (20,1), "Distribution", "normal"); +***** error ... + adtest (rand (20,1), "Distribution", {"normal", 5, 3}); +***** error ... + adtest (rand (20,1), "Distribution", {"norm", 5}); +***** error ... + adtest (rand (20,1), "Distribution", {"exp", 5, 4}); +***** error ... + adtest (rand (20,1), "Distribution", {"ev", 5}); +***** error ... + adtest (rand (20,1), "Distribution", {"logn", 5, 3, 2}); +***** error ... + adtest (rand (20,1), "Distribution", {"Weibull", 5}); +***** error ... + adtest (rand (20,1), "Distribution", 35); +***** error ... + adtest (rand (20,1), "Name", "norm"); +***** error ... + adtest (rand (20,1), "Name", {"norm", 75, 10}); +***** error ... + adtest (rand (20,1), "Distribution", "norm", "Asymptotic", true); +***** error ... + adtest (rand (20,1), "MCTol", 0.001, "Asymptotic", true); +***** error ... + adtest (rand (20,1), "Distribution", {"norm", 5, 3}, "MCTol", 0.001, ... + "Asymptotic", true); +***** error ... + [h, pval, ADstat, CV] = adtest (ones (20,1), "Distribution", {"norm",5,3},... + "Alpha", 0.000000001); +***** error ... + [h, pval, ADstat, CV] = adtest (ones (20,1), "Distribution", {"norm",5,3},... + "Alpha", 0.999999999); +***** error ... + adtest (10); +***** warning ... + randn ("seed", 34); + adtest (ones (20,1), "Alpha", 0.000001); +***** warning ... + randn ("seed", 34); + adtest (normrnd(0,1,100,1), "Alpha", 0.99999); +***** warning ... + randn ("seed", 34); + adtest (normrnd(0,1,100,1), "Alpha", 0.00001); +***** test + load examgrades + x = grades(:,1); + [h, pval, adstat, cv] = adtest (x); + assert (h, false); + assert (pval, 0.1854, 1e-4); + assert (adstat, 0.5194, 1e-4); + assert (cv, 0.7470, 1e-4); +***** test + load examgrades + x = grades(:,1); + [h, pval, adstat, cv] = adtest (x, "Distribution", "ev"); + assert (h, false); + assert (pval, 0.071363, 1e-6); +***** test + load examgrades + x = grades(:,1); + [h, pval, adstat, cv] = adtest (x, "Distribution", {"norm", 75, 10}); + assert (h, false); + assert (pval, 0.4687, 1e-4); +25 tests, 25 passed, 0 known failure, 0 skipped +[inst/pdist2.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/pdist2.m +***** shared x, y, xx + x = [1, 1, 1; 2, 2, 2; 3, 3, 3]; + y = [0, 0, 0; 1, 2, 3; 0, 2, 4; 4, 7, 1]; + xx = [1 2 3; 4 5 6; 7 8 9; 3 2 1]; +***** test + d = sqrt([3, 5, 11, 45; 12, 2, 8, 30; 27, 5, 11, 21]); + assert (pdist2 (x, y), d); +***** test + d = [5.1962, 2.2361, 3.3166, 6.7082; ... + 3.4641, 2.2361, 3.3166, 5.4772]; + i = [3, 1, 1, 1; 2, 3, 3, 2]; + [D, I] = pdist2 (x, y, "euclidean", "largest", 2); + assert ({D, I}, {d, i}, 1e-4); +***** test + d = [1.7321, 1.4142, 2.8284, 4.5826; ... + 3.4641, 2.2361, 3.3166, 5.4772]; + i = [1, 2, 2, 3;2, 1, 1, 2]; + [D, I] = pdist2 (x, y, "euclidean", "smallest", 2); + assert ({D, I}, {d, i}, 1e-4); +***** test + yy = [1 2 3;5 6 7;9 5 1]; + d = [0, 6.1644, 5.3852; 1.4142, 6.9282, 8.7750; ... + 3.7417, 7.0711, 9.9499; 6.1644, 10.4881, 10.3441]; + i = [2, 4, 4; 3, 2, 2; 1, 3, 3; 4, 1, 1]; + [D, I] = pdist2 (y, yy, "euclidean", "smallest", 4); + assert ({D, I}, {d, i}, 1e-4); +***** test + yy = [1 2 3;5 6 7;9 5 1]; + d = [0, 38, 29; 2, 48, 77; 14, 50, 99; 38, 110, 107]; + i = [2, 4, 4; 3, 2, 2; 1, 3, 3; 4, 1, 1]; + [D, I] = pdist2 (y, yy, "squaredeuclidean", "smallest", 4); + assert ({D, I}, {d, i}, 1e-4); +***** test + yy = [1 2 3;5 6 7;9 5 1]; + d = [0, 3.3256, 2.7249; 0.7610, 3.3453, 4.4799; ... + 1.8514, 3.3869, 5.0703; 2.5525, 5.0709, 5.1297]; + i = [2, 2, 4; 3, 4, 2; 1, 3, 1; 4, 1, 3]; + [D, I] = pdist2 (y, yy, "seuclidean", "smallest", 4); + assert ({D, I}, {d, i}, 1e-4); +***** test + d = [2.1213, 4.2426, 6.3640; 1.2247, 2.4495, 4.4159; ... + 3.2404, 4.8990, 6.8191; 2.7386, 4.2426, 6.1237]; + assert (pdist2 (y, x, "mahalanobis"), d, 1e-4); +***** test + xx = [1, 3, 4; 3, 5, 4; 8, 7, 6]; + d = [1.3053, 1.8257, 15.0499; 1.3053, 3.3665, 16.5680]; + i = [2, 2, 2; 3, 4, 4]; + [D, I] = pdist2 (y, xx, "mahalanobis", "smallest", 2); + assert ({D, I}, {d, i}, 1e-4); +***** test + d = [2.5240, 4.1633, 17.3638; 2.0905, 3.9158, 17.0147]; + i = [1, 1, 3; 4, 3, 1]; + [D, I] = pdist2 (y, xx, "mahalanobis", "largest", 2); + assert ({D, I}, {d, i}, 1e-4); +***** test + d = [3, 3, 5, 9; 6, 2, 4, 8; 9, 3, 5, 7]; + assert (pdist2 (x, y, "cityblock"), d); +***** test + d = [1, 2, 3, 6; 2, 1, 2, 5; 3, 2, 3, 4]; + assert (pdist2 (x, y, "chebychev"), d); +***** test + d = repmat ([NaN, 0.0742, 0.2254, 0.1472], [3, 1]); + assert (pdist2 (x, y, "cosine"), d, 1e-4); +***** test + yy = [1 2 3;5 6 7;9 5 1]; + d = [0, 0, 0.5; 0, 0, 2; 1.5, 1.5, 2; NaN, NaN, NaN]; + i = [2, 2, 4; 3, 3, 2; 4, 4, 3; 1, 1, 1]; + [D, I] = pdist2 (y, yy, "correlation", "smallest", 4); + assert ({D, I}, {d, i}, eps); + [D, I] = pdist2 (y, yy, "spearman", "smallest", 4); + assert ({D, I}, {d, i}, eps); +***** test + d = [1, 2/3, 1, 1; 1, 2/3, 1, 1; 1, 2/3, 2/3, 2/3]; + i = [1, 1, 1, 2; 2, 2, 3, 3; 3, 3, 2, 1]; + [D, I] = pdist2 (x, y, "hamming", "largest", 4); + assert ({D, I}, {d, i}, eps); + [D, I] = pdist2 (x, y, "jaccard", "largest", 4); + assert ({D, I}, {d, i}, eps); +***** test + xx = [1, 2, 3, 4; 2, 3, 4, 5; 3, 4, 5, 6]; + yy = [1, 2, 2, 3; 2, 3, 3, 4]; + [D, I] = pdist2 (x, y, "euclidean", "Smallest", 4); + eucldist = @(v,m) sqrt(sumsq(repmat(v,rows(m),1)-m,2)); + [d, i] = pdist2 (x, y, eucldist, "Smallest", 4); + assert ({D, I}, {d, i}); +***** warning ... + pdist2 (xx, xx, "mahalanobis"); +***** error pdist2 (1) +***** error ... + pdist2 (ones (4, 5), ones (4)) +***** error ... + pdist2 (ones (4, 2, 3), ones (3, 2)) +***** error ... + pdist2 (ones (3), ones (3), "euclidean", "Largest") +***** error ... + pdist2 (ones (3), ones (3), "minkowski", 3, "Largest") +***** error ... + pdist2 (ones (3), ones (3), "minkowski", 3, "large", 4) +***** error ... + pdist2 (ones (3), ones (3), "minkowski", 3, "Largest", 4, "smallest", 5) +***** error ... + [d, i] = pdist2(ones (3), ones (3), "minkowski", 3) +***** error ... + pdist2 (ones (3), ones (3), "seuclidean", 3) +***** error ... + pdist2 (ones (3), ones (3), "seuclidean", [1, -1, 3]) +***** error ... + pdist2 (ones (3), eye (3), "mahalanobis", eye(2)) +***** error ... + pdist2 (ones (3), eye (3), "mahalanobis", ones(3)) +***** error ... + pdist2 (ones (3), eye (3), "minkowski", 0) +***** error ... + pdist2 (ones (3), eye (3), "minkowski", -5) +***** error ... + pdist2 (ones (3), eye (3), "minkowski", [1, 2]) +***** error ... + pdist2 (ones (3), ones (3), @(v,m) sqrt(repmat(v,rows(m),1)-m,2)) +***** error ... + pdist2 (ones (3), ones (3), @(v,m) sqrt(sum(sumsq(repmat(v,rows(m),1)-m,2)))) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/kstest.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/kstest.m +***** error kstest () +***** error kstest (ones(2,4)) +***** error kstest ([2,3,5,7,3+3i]) +***** error kstest ([2,3,4,5,6],"tail") +***** error kstest ([2,3,4,5,6],"tail", "whatever") +***** error kstest ([2,3,4,5,6],"badoption", 0.51) +***** error kstest ([2,3,4,5,6],"tail", 0) +***** error kstest ([2,3,4,5,6],"alpha", 0) +***** error kstest ([2,3,4,5,6],"alpha", NaN) +***** error kstest ([NaN,NaN,NaN,NaN,NaN],"tail", "unequal") +***** error kstest ([2,3,4,5,6],"alpha", 0.05, "CDF", [2,3,4;1,3,4;1,2,1]) +***** test + load examgrades + [h, p] = kstest (grades(:,1)); + assert (h, true); + assert (p, 7.58603305206105e-107, 1e-14); +***** test + load stockreturns + x = stocks(:,3); + [h,p,k,c] = kstest (x, "Tail", "larger"); + assert (h, true); + assert (p, 5.085438806199252e-05, 1e-14); + assert (k, 0.2197, 1e-4); + assert (c, 0.1207, 1e-4); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/glmfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/glmfit.m +***** test + rand ("seed", 1); + X = rand (50, 1); + b_true = [0.4; 1.5]; + mu_true = exp (b_true(1) + b_true(2) * X); + randp ("seed", 1); + y = poissrnd (mu_true); + b = glmfit(X, y, "poisson", "link", "log"); + assert(b(1), b_true(1), 0.5); + assert(b(2), b_true(2), 0.5); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/combnk.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/combnk.m +***** demo + c = combnk (1:5, 2); + disp ("All pairs of integers between 1 and 5:"); + disp (c); +***** test + c = combnk (1:3, 2); + assert (c, [1, 2; 1, 3; 2, 3]); +***** test + c = combnk (1:3, 6); + assert (isempty (c)); +***** test + c = combnk ({1, 2, 3}, 2); + assert (c, {1, 2; 1, 3; 2, 3}); +***** test + c = combnk ("hello", 2); + assert (c, ["lo"; "lo"; "ll"; "eo"; "el"; "el"; "ho"; "hl"; "hl"; "he"]); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/wblplot.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/wblplot.m +***** demo + x = [16 34 53 75 93 120]; + wblplot (x); +***** demo + x = [2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67]'; + c = [0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1]'; + [h, p] = wblplot (x, c); + p +***** demo + x = [16, 34, 53, 75, 93, 120, 150, 191, 240 ,339]; + [h, p] = wblplot (x, [], [], 0.05); + p + ## Benchmark Reliasoft eta = 146.2545 beta 1.1973 rho = 0.9999 +***** demo + x = [46 64 83 105 123 150 150]; + c = [0 0 0 0 0 0 1]; + f = [1 1 1 1 1 1 4]; + wblplot (x, c, f, 0.05); +***** demo + x = [46 64 83 105 123 150 150]; + c = [0 0 0 0 0 0 1]; + f = [1 1 1 1 1 1 4]; + ## Subtract 30.92 from x to simulate a 3 parameter wbl with gamma = 30.92 + wblplot (x - 30.92, c, f, 0.05); +***** test + hf = figure ("visible", "off"); + unwind_protect + x = [16, 34, 53, 75, 93, 120, 150, 191, 240 ,339]; + [h, p] = wblplot (x, [], [], 0.05); + assert (numel (h), 4) + assert (p(1), 146.2545, 1E-4) + assert (p(2), 1.1973, 1E-4) + assert (p(3), 0.9999, 5E-5) + unwind_protect_cleanup + close (hf); + end_unwind_protect +1 test, 1 passed, 0 known failure, 0 skipped +[inst/anovan.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/anovan.m +***** demo + + # Two-sample unpaired test on independent samples (equivalent to Student's + # t-test). Note that the absolute value of t-statistic can be obtained by + # taking the square root of the reported F statistic. In this example, + # t = sqrt (1.44) = 1.20. + + score = [54 23 45 54 45 43 34 65 77 46 65]'; + gender = {"male" "male" "male" "male" "male" "female" "female" "female" ... + "female" "female" "female"}'; + + [P, ATAB, STATS] = anovan (score, gender, "display", "on", "varnames", "gender"); +***** demo + + # Two-sample paired test on dependent or matched samples equivalent to a + # paired t-test. As for the first example, the t-statistic can be obtained by + # taking the square root of the reported F statistic. Note that the interaction + # between treatment x subject was dropped from the full model by assigning + # subject as a random factor ('). + + score = [4.5 5.6; 3.7 6.4; 5.3 6.4; 5.4 6.0; 3.9 5.7]'; + treatment = {"before" "after"; "before" "after"; "before" "after"; + "before" "after"; "before" "after"}'; + subject = {"GS" "GS"; "JM" "JM"; "HM" "HM"; "JW" "JW"; "PS" "PS"}'; + + [P, ATAB, STATS] = anovan (score(:), {treatment(:), subject(:)}, ... + "model", "full", "random", 2, "sstype", 2, ... + "varnames", {"treatment", "subject"}, ... + "display", "on"); +***** demo + + # One-way ANOVA on the data from a study on the strength of structural beams, + # in Hogg and Ledolter (1987) Engineering Statistics. New York: MacMillan + + strength = [82 86 79 83 84 85 86 87 74 82 ... + 78 75 76 77 79 79 77 78 82 79]'; + alloy = {"st","st","st","st","st","st","st","st", ... + "al1","al1","al1","al1","al1","al1", ... + "al2","al2","al2","al2","al2","al2"}'; + + [P, ATAB, STATS] = anovan (strength, alloy, "display", "on", ... + "varnames", "alloy"); +***** demo + + # One-way repeated measures ANOVA on the data from a study on the number of + # words recalled by 10 subjects for three time condtions, in Loftus & Masson + # (1994) Psychon Bull Rev. 1(4):476-490, Table 2. Note that the interaction + # between seconds x subject was dropped from the full model by assigning + # subject as a random factor ('). + + words = [10 13 13; 6 8 8; 11 14 14; 22 23 25; 16 18 20; ... + 15 17 17; 1 1 4; 12 15 17; 9 12 12; 8 9 12]; + seconds = [1 2 5; 1 2 5; 1 2 5; 1 2 5; 1 2 5; ... + 1 2 5; 1 2 5; 1 2 5; 1 2 5; 1 2 5;]; + subject = [ 1 1 1; 2 2 2; 3 3 3; 4 4 4; 5 5 5; ... + 6 6 6; 7 7 7; 8 8 8; 9 9 9; 10 10 10]; + + [P, ATAB, STATS] = anovan (words(:), {seconds(:), subject(:)}, ... + "model", "full", "random", 2, "sstype", 2, ... + "display", "on", "varnames", {"seconds", "subject"}); +***** demo + + # Balanced two-way ANOVA with interaction on the data from a study of popcorn + # brands and popper types, in Hogg and Ledolter (1987) Engineering Statistics. + # New York: MacMillan + + popcorn = [5.5, 4.5, 3.5; 5.5, 4.5, 4.0; 6.0, 4.0, 3.0; ... + 6.5, 5.0, 4.0; 7.0, 5.5, 5.0; 7.0, 5.0, 4.5]; + brands = {"Gourmet", "National", "Generic"; ... + "Gourmet", "National", "Generic"; ... + "Gourmet", "National", "Generic"; ... + "Gourmet", "National", "Generic"; ... + "Gourmet", "National", "Generic"; ... + "Gourmet", "National", "Generic"}; + popper = {"oil", "oil", "oil"; "oil", "oil", "oil"; "oil", "oil", "oil"; ... + "air", "air", "air"; "air", "air", "air"; "air", "air", "air"}; + + [P, ATAB, STATS] = anovan (popcorn(:), {brands(:), popper(:)}, ... + "display", "on", "model", "full", ... + "varnames", {"brands", "popper"}); +***** demo + + # Unbalanced two-way ANOVA (2x2) on the data from a study on the effects of + # gender and having a college degree on salaries of company employees, + # in Maxwell, Delaney and Kelly (2018): Chapter 7, Table 15 + + salary = [24 26 25 24 27 24 27 23 15 17 20 16, ... + 25 29 27 19 18 21 20 21 22 19]'; + gender = {"f" "f" "f" "f" "f" "f" "f" "f" "f" "f" "f" "f"... + "m" "m" "m" "m" "m" "m" "m" "m" "m" "m"}'; + degree = [1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0]'; + + [P, ATAB, STATS] = anovan (salary, {gender, degree}, "model", "full", ... + "sstype", 3, "display", "on", "varnames", ... + {"gender", "degree"}); +***** demo + + # Unbalanced two-way ANOVA (3x2) on the data from a study of the effect of + # adding sugar and/or milk on the tendency of coffee to make people babble, + # in from Navarro (2019): 16.10 + + sugar = {"real" "fake" "fake" "real" "real" "real" "none" "none" "none" ... + "fake" "fake" "fake" "real" "real" "real" "none" "none" "fake"}'; + milk = {"yes" "no" "no" "yes" "yes" "no" "yes" "yes" "yes" ... + "no" "no" "yes" "no" "no" "no" "no" "no" "yes"}'; + babble = [4.6 4.4 3.9 5.6 5.1 5.5 3.9 3.5 3.7... + 5.6 4.7 5.9 6.0 5.4 6.6 5.8 5.3 5.7]'; + + [P, ATAB, STATS] = anovan (babble, {sugar, milk}, "model", "full", ... + "sstype", 3, "display", "on", ... + "varnames", {"sugar", "milk"}); +***** demo + + # Unbalanced three-way ANOVA (3x2x2) on the data from a study of the effects + # of three different drugs, biofeedback and diet on patient blood pressure, + # adapted* from Maxwell, Delaney and Kelly (2018): Chapter 8, Table 12 + # * Missing values introduced to make the sample sizes unequal to test the + # calculation of different types of sums-of-squares + + drug = {"X" "X" "X" "X" "X" "X" "X" "X" "X" "X" "X" "X" ... + "X" "X" "X" "X" "X" "X" "X" "X" "X" "X" "X" "X"; + "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" ... + "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y"; + "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" ... + "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z"}; + feedback = [1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0; + 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0; + 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0]; + diet = [0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1; + 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1; + 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1]; + BP = [170 175 165 180 160 158 161 173 157 152 181 190 ... + 173 194 197 190 176 198 164 190 169 164 176 175; + 186 194 201 215 219 209 164 166 159 182 187 174 ... + 189 194 217 206 199 195 171 173 196 199 180 NaN; + 180 187 199 170 204 194 162 184 183 156 180 173 ... + 202 228 190 206 224 204 205 199 170 160 NaN NaN]; + + [P, ATAB, STATS] = anovan (BP(:), {drug(:), feedback(:), diet(:)}, ... + "model", "full", "sstype", 3, ... + "display", "on", ... + "varnames", {"drug", "feedback", "diet"}); +***** demo + + # Balanced three-way ANOVA (2x2x2) with one of the factors being a blocking + # factor. The data is from a randomized block design study on the effects + # of antioxidant treatment on glutathione-S-transferase (GST) levels in + # different mouse strains, from Festing (2014), ILAR Journal, 55(3):427-476. + # Note that all interactions involving block were dropped from the full model + # by assigning block as a random factor ('). + + measurement = [444 614 423 625 408 856 447 719 ... + 764 831 586 782 609 1002 606 766]'; + strain= {"NIH","NIH","BALB/C","BALB/C","A/J","A/J","129/Ola","129/Ola", ... + "NIH","NIH","BALB/C","BALB/C","A/J","A/J","129/Ola","129/Ola"}'; + treatment={"C" "T" "C" "T" "C" "T" "C" "T" "C" "T" "C" "T" "C" "T" "C" "T"}'; + block = [1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2]'; + + [P, ATAB, STATS] = anovan (measurement/10, {strain, treatment, block}, ... + "sstype", 2, "model", "full", "random", 3, ... + "display", "on", ... + "varnames", {"strain", "treatment", "block"}); +***** demo + + # One-way ANCOVA on data from a study of the additive effects of species + # and temperature on chirpy pulses of crickets, from Stitch, The Worst Stats + # Text eveR + + pulse = [67.9 65.1 77.3 78.7 79.4 80.4 85.8 86.6 87.5 89.1 ... + 98.6 100.8 99.3 101.7 44.3 47.2 47.6 49.6 50.3 51.8 ... + 60 58.5 58.9 60.7 69.8 70.9 76.2 76.1 77 77.7 84.7]'; + temp = [20.8 20.8 24 24 24 24 26.2 26.2 26.2 26.2 28.4 ... + 29 30.4 30.4 17.2 18.3 18.3 18.3 18.9 18.9 20.4 ... + 21 21 22.1 23.5 24.2 25.9 26.5 26.5 26.5 28.6]'; + species = {"ex" "ex" "ex" "ex" "ex" "ex" "ex" "ex" "ex" "ex" "ex" ... + "ex" "ex" "ex" "niv" "niv" "niv" "niv" "niv" "niv" "niv" ... + "niv" "niv" "niv" "niv" "niv" "niv" "niv" "niv" "niv" "niv"}; + + [P, ATAB, STATS] = anovan (pulse, {species, temp}, "model", "linear", ... + "continuous", 2, "sstype", "h", "display", "on", ... + "varnames", {"species", "temp"}); +***** demo + + # Factorial ANCOVA on data from a study of the effects of treatment and + # exercise on stress reduction score after adjusting for age. Data from R + # datarium package). + + score = [95.6 82.2 97.2 96.4 81.4 83.6 89.4 83.8 83.3 85.7 ... + 97.2 78.2 78.9 91.8 86.9 84.1 88.6 89.8 87.3 85.4 ... + 81.8 65.8 68.1 70.0 69.9 75.1 72.3 70.9 71.5 72.5 ... + 84.9 96.1 94.6 82.5 90.7 87.0 86.8 93.3 87.6 92.4 ... + 100. 80.5 92.9 84.0 88.4 91.1 85.7 91.3 92.3 87.9 ... + 91.7 88.6 75.8 75.7 75.3 82.4 80.1 86.0 81.8 82.5]'; + treatment = {"yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" ... + "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" ... + "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" ... + "no" "no" "no" "no" "no" "no" "no" "no" "no" "no" ... + "no" "no" "no" "no" "no" "no" "no" "no" "no" "no" ... + "no" "no" "no" "no" "no" "no" "no" "no" "no" "no"}'; + exercise = {"lo" "lo" "lo" "lo" "lo" "lo" "lo" "lo" "lo" "lo" ... + "mid" "mid" "mid" "mid" "mid" "mid" "mid" "mid" "mid" "mid" ... + "hi" "hi" "hi" "hi" "hi" "hi" "hi" "hi" "hi" "hi" ... + "lo" "lo" "lo" "lo" "lo" "lo" "lo" "lo" "lo" "lo" ... + "mid" "mid" "mid" "mid" "mid" "mid" "mid" "mid" "mid" "mid" ... + "hi" "hi" "hi" "hi" "hi" "hi" "hi" "hi" "hi" "hi"}'; + age = [59 65 70 66 61 65 57 61 58 55 62 61 60 59 55 57 60 63 62 57 ... + 58 56 57 59 59 60 55 53 55 58 68 62 61 54 59 63 60 67 60 67 ... + 75 54 57 62 65 60 58 61 65 57 56 58 58 58 52 53 60 62 61 61]'; + + [P, ATAB, STATS] = anovan (score, {treatment, exercise, age}, ... + "model", [1 0 0; 0 1 0; 0 0 1; 1 1 0], ... + "continuous", 3, "sstype", "h", "display", "on", ... + "varnames", {"treatment", "exercise", "age"}); +***** demo + + # Unbalanced one-way ANOVA with custom, orthogonal contrasts. The statistics + # relating to the contrasts are shown in the table of model parameters, and + # can be retrieved from the STATS.coeffs output. + + dv = [ 8.706 10.362 11.552 6.941 10.983 10.092 6.421 14.943 15.931 ... + 22.968 18.590 16.567 15.944 21.637 14.492 17.965 18.851 22.891 ... + 22.028 16.884 17.252 18.325 25.435 19.141 21.238 22.196 18.038 ... + 22.628 31.163 26.053 24.419 32.145 28.966 30.207 29.142 33.212 ... + 25.694 ]'; + g = [1 1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 3 3 3 ... + 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5]'; + C = [ 0.4001601 0.3333333 0.5 0.0 + 0.4001601 0.3333333 -0.5 0.0 + 0.4001601 -0.6666667 0.0 0.0 + -0.6002401 0.0000000 0.0 0.5 + -0.6002401 0.0000000 0.0 -0.5]; + + [P,ATAB, STATS] = anovan (dv, g, "contrasts", C, "varnames", "score", ... + "alpha", 0.05, "display", "on"); +***** demo + + # One-way ANOVA with the linear model fit by weighted least squares to + # account for heteroskedasticity. In this example, the variance appears + # proportional to the outcome, so weights have been estimated by initially + # fitting the model without weights and regressing the absolute residuals on + # the fitted values. Although this data could have been analysed by Welch's + # ANOVA test, the approach here can generalize to ANOVA models with more than + # one factor. + + g = [1, 1, 1, 1, 1, 1, 1, 1, ... + 2, 2, 2, 2, 2, 2, 2, 2, ... + 3, 3, 3, 3, 3, 3, 3, 3]'; + y = [13, 16, 16, 7, 11, 5, 1, 9, ... + 10, 25, 66, 43, 47, 56, 6, 39, ... + 11, 39, 26, 35, 25, 14, 24, 17]'; + + [P,ATAB,STATS] = anovan(y, g, "display", "off"); + fitted = STATS.X * STATS.coeffs(:,1); # fitted values + b = polyfit (fitted, abs (STATS.resid), 1); + v = polyval (b, fitted); # Variance as a function of the fitted values + figure("Name", "Regression of the absolute residuals on the fitted values"); + plot (fitted, abs (STATS.resid),'ob');hold on; plot(fitted,v,'-r'); hold off; + xlabel("Fitted values"); ylabel("Absolute residuals"); + + [P,ATAB,STATS] = anovan (y, g, "weights", v.^-1); +***** test + score = [54 23 45 54 45 43 34 65 77 46 65]'; + gender = {'male' 'male' 'male' 'male' 'male' 'female' 'female' 'female' ... + 'female' 'female' 'female'}'; + + [P, T, STATS] = anovan (score,gender,'display','off'); + assert (P(1), 0.2612876773271042, 1e-09); # compared to p calculated by MATLAB anovan + assert (sqrt(T{2,6}), abs(1.198608733288208), 1e-09); # compared to abs(t) calculated from sqrt(F) by MATLAB anovan + assert (P(1), 0.2612876773271047, 1e-09); # compared to p calculated by MATLAB ttest2 + assert (sqrt(T{2,6}), abs(-1.198608733288208), 1e-09); # compared to abs(t) calculated by MATLAB ttest2 +***** test + score = [4.5 5.6; 3.7 6.4; 5.3 6.4; 5.4 6.0; 3.9 5.7]'; + treatment = {'before' 'after'; 'before' 'after'; 'before' 'after'; + 'before' 'after'; 'before' 'after'}'; + subject = {'GS' 'GS'; 'JM' 'JM'; 'HM' 'HM'; 'JW' 'JW'; 'PS' 'PS'}'; + + [P, ATAB, STATS] = anovan (score(:),{treatment(:),subject(:)},'display','off','sstype',2); + assert (P(1), 0.016004356735364, 1e-09); # compared to p calculated by MATLAB anovan + assert (sqrt(ATAB{2,6}), abs(4.00941576558195), 1e-09); # compared to abs(t) calculated from sqrt(F) by MATLAB anovan + assert (P(1), 0.016004356735364, 1e-09); # compared to p calculated by MATLAB ttest2 + assert (sqrt(ATAB{2,6}), abs(-4.00941576558195), 1e-09); # compared to abs(t) calculated by MATLAB ttest2 +***** test + strength = [82 86 79 83 84 85 86 87 74 82 ... + 78 75 76 77 79 79 77 78 82 79]'; + alloy = {'st','st','st','st','st','st','st','st', ... + 'al1','al1','al1','al1','al1','al1', ... + 'al2','al2','al2','al2','al2','al2'}'; + + [P, ATAB, STATS] = anovan (strength,{alloy},'display','off'); + assert (P(1), 0.000152643638830491, 1e-09); + assert (ATAB{2,6}, 15.4, 1e-09); +***** test + words = [10 13 13; 6 8 8; 11 14 14; 22 23 25; 16 18 20; ... + 15 17 17; 1 1 4; 12 15 17; 9 12 12; 8 9 12]; + subject = [ 1 1 1; 2 2 2; 3 3 3; 4 4 4; 5 5 5; ... + 6 6 6; 7 7 7; 8 8 8; 9 9 9; 10 10 10]; + seconds = [1 2 5; 1 2 5; 1 2 5; 1 2 5; 1 2 5; ... + 1 2 5; 1 2 5; 1 2 5; 1 2 5; 1 2 5;]; + + [P, ATAB, STATS] = anovan (words(:),{seconds(:),subject(:)},'model','full','random',2,'sstype',2,'display','off'); + assert (P(1), 1.51865926758752e-07, 1e-09); + assert (ATAB{2,2}, 52.2666666666667, 1e-09); + assert (ATAB{3,2}, 942.533333333333, 1e-09); + assert (ATAB{4,2}, 11.0666666666667, 1e-09); +***** test + popcorn = [5.5, 4.5, 3.5; 5.5, 4.5, 4.0; 6.0, 4.0, 3.0; ... + 6.5, 5.0, 4.0; 7.0, 5.5, 5.0; 7.0, 5.0, 4.5]; + brands = {'Gourmet', 'National', 'Generic'; ... + 'Gourmet', 'National', 'Generic'; ... + 'Gourmet', 'National', 'Generic'; ... + 'Gourmet', 'National', 'Generic'; ... + 'Gourmet', 'National', 'Generic'; ... + 'Gourmet', 'National', 'Generic'}; + popper = {'oil', 'oil', 'oil'; 'oil', 'oil', 'oil'; 'oil', 'oil', 'oil'; ... + 'air', 'air', 'air'; 'air', 'air', 'air'; 'air', 'air', 'air'}; + + [P, ATAB, STATS] = anovan (popcorn(:),{brands(:),popper(:)},'display','off','model','full'); + assert (P(1), 7.67895738278171e-07, 1e-09); + assert (P(2), 0.000100373896304998, 1e-09); + assert (P(3), 0.746215396636649, 1e-09); + assert (ATAB{2,6}, 56.7, 1e-09); + assert (ATAB{3,6}, 32.4, 1e-09); + assert (ATAB{4,6}, 0.29999999999997, 1e-09); +***** test + salary = [24 26 25 24 27 24 27 23 15 17 20 16, ... + 25 29 27 19 18 21 20 21 22 19]'; + gender = {'f' 'f' 'f' 'f' 'f' 'f' 'f' 'f' 'f' 'f' 'f' 'f'... + 'm' 'm' 'm' 'm' 'm' 'm' 'm' 'm' 'm' 'm'}'; + degree = [1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0]'; + + [P, ATAB, STATS] = anovan (salary,{gender,degree},'model','full','sstype',1,'display','off'); + assert (P(1), 0.747462549227232, 1e-09); + assert (P(2), 1.03809316857694e-08, 1e-09); + assert (P(3), 0.523689833702691, 1e-09); + assert (ATAB{2,2}, 0.296969696969699, 1e-09); + assert (ATAB{3,2}, 272.391841491841, 1e-09); + assert (ATAB{4,2}, 1.17482517482512, 1e-09); + assert (ATAB{5,2}, 50.0000000000001, 1e-09); + [P, ATAB, STATS] = anovan (salary,{degree,gender},'model','full','sstype',1,'display','off'); + assert (P(1), 2.53445097305047e-08, 1e-09); + assert (P(2), 0.00388133678528749, 1e-09); + assert (P(3), 0.523689833702671, 1e-09); + assert (ATAB{2,2}, 242.227272727273, 1e-09); + assert (ATAB{3,2}, 30.4615384615384, 1e-09); + assert (ATAB{4,2}, 1.17482517482523, 1e-09); + assert (ATAB{5,2}, 50.0000000000001, 1e-09); + [P, ATAB, STATS] = anovan (salary,{gender,degree},'model','full','sstype',2,'display','off'); + assert (P(1), 0.00388133678528743, 1e-09); + assert (P(2), 1.03809316857694e-08, 1e-09); + assert (P(3), 0.523689833702691, 1e-09); + assert (ATAB{2,2}, 30.4615384615385, 1e-09); + assert (ATAB{3,2}, 272.391841491841, 1e-09); + assert (ATAB{4,2}, 1.17482517482512, 1e-09); + assert (ATAB{5,2}, 50.0000000000001, 1e-09); + [P, ATAB, STATS] = anovan (salary,{gender,degree},'model','full','sstype',3,'display','off'); + assert (P(1), 0.00442898146583742, 1e-09); + assert (P(2), 1.30634252053587e-08, 1e-09); + assert (P(3), 0.523689833702691, 1e-09); + assert (ATAB{2,2}, 29.3706293706294, 1e-09); + assert (ATAB{3,2}, 264.335664335664, 1e-09); + assert (ATAB{4,2}, 1.17482517482512, 1e-09); + assert (ATAB{5,2}, 50.0000000000001, 1e-09); +***** test + sugar = {'real' 'fake' 'fake' 'real' 'real' 'real' 'none' 'none' 'none' ... + 'fake' 'fake' 'fake' 'real' 'real' 'real' 'none' 'none' 'fake'}'; + milk = {'yes' 'no' 'no' 'yes' 'yes' 'no' 'yes' 'yes' 'yes' ... + 'no' 'no' 'yes' 'no' 'no' 'no' 'no' 'no' 'yes'}'; + babble = [4.6 4.4 3.9 5.6 5.1 5.5 3.9 3.5 3.7... + 5.6 4.7 5.9 6.0 5.4 6.6 5.8 5.3 5.7]'; + + [P, ATAB, STATS] = anovan (babble,{sugar,milk},'model','full','sstype',1,'display','off'); + assert (P(1), 0.0108632139833963, 1e-09); + assert (P(2), 0.0810606976703546, 1e-09); + assert (P(3), 0.00175433329935627, 1e-09); + assert (ATAB{2,2}, 3.55752380952381, 1e-09); + assert (ATAB{3,2}, 0.956108477471702, 1e-09); + assert (ATAB{4,2}, 5.94386771300448, 1e-09); + assert (ATAB{5,2}, 3.1625, 1e-09); + [P, ATAB, STATS] = anovan (babble,{milk,sugar},'model','full','sstype',1,'display','off'); + assert (P(1), 0.0373333189297505, 1e-09); + assert (P(2), 0.017075098787169, 1e-09); + assert (P(3), 0.00175433329935627, 1e-09); + assert (ATAB{2,2}, 1.444, 1e-09); + assert (ATAB{3,2}, 3.06963228699552, 1e-09); + assert (ATAB{4,2}, 5.94386771300448, 1e-09); + assert (ATAB{5,2}, 3.1625, 1e-09); + [P, ATAB, STATS] = anovan (babble,{sugar,milk},'model','full','sstype',2,'display','off'); + assert (P(1), 0.017075098787169, 1e-09); + assert (P(2), 0.0810606976703546, 1e-09); + assert (P(3), 0.00175433329935627, 1e-09); + assert (ATAB{2,2}, 3.06963228699552, 1e-09); + assert (ATAB{3,2}, 0.956108477471702, 1e-09); + assert (ATAB{4,2}, 5.94386771300448, 1e-09); + assert (ATAB{5,2}, 3.1625, 1e-09); + [P, ATAB, STATS] = anovan (babble,{sugar,milk},'model','full','sstype',3,'display','off'); + assert (P(1), 0.0454263063473954, 1e-09); + assert (P(2), 0.0746719907091438, 1e-09); + assert (P(3), 0.00175433329935627, 1e-09); + assert (ATAB{2,2}, 2.13184977578476, 1e-09); + assert (ATAB{3,2}, 1.00413461538462, 1e-09); + assert (ATAB{4,2}, 5.94386771300448, 1e-09); + assert (ATAB{5,2}, 3.1625, 1e-09); +***** test + drug = {'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' ... + 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X'; + 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' ... + 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y'; + 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' ... + 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z'}; + feedback = [1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0; + 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0; + 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0]; + diet = [0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1; + 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1; + 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1]; + BP = [170 175 165 180 160 158 161 173 157 152 181 190 ... + 173 194 197 190 176 198 164 190 169 164 176 175; + 186 194 201 215 219 209 164 166 159 182 187 174 ... + 189 194 217 206 199 195 171 173 196 199 180 NaN; + 180 187 199 170 204 194 162 184 183 156 180 173 ... + 202 228 190 206 224 204 205 199 170 160 NaN NaN]; + + [P, ATAB, STATS] = anovan (BP(:),{drug(:),feedback(:),diet(:)},'model','full','sstype', 1,'display','off'); + assert (P(1), 7.02561843825325e-05, 1e-09); + assert (P(2), 0.000425806013389362, 1e-09); + assert (P(3), 6.16780773446401e-07, 1e-09); + assert (P(4), 0.261347622678438, 1e-09); + assert (P(5), 0.0542278432357043, 1e-09); + assert (P(6), 0.590353225626655, 1e-09); + assert (P(7), 0.0861628249564267, 1e-09); + assert (ATAB{2,2}, 3614.70355731226, 1e-09); + assert (ATAB{3,2}, 2227.46639771024, 1e-09); + assert (ATAB{4,2}, 5008.25614451819, 1e-09); + assert (ATAB{5,2}, 437.066007908781, 1e-09); + assert (ATAB{6,2}, 976.180770397332, 1e-09); + assert (ATAB{7,2}, 46.616653365254, 1e-09); + assert (ATAB{8,2}, 814.345251396648, 1e-09); + assert (ATAB{9,2}, 9065.8, 1e-09); + [P, ATAB, STATS] = anovan (BP(:),{drug(:),feedback(:),diet(:)},'model','full','sstype',2,'display','off'); + assert (P(1), 9.4879638470754e-05, 1e-09); + assert (P(2), 0.00124177666315809, 1e-09); + assert (P(3), 6.86162012732911e-07, 1e-09); + assert (P(4), 0.260856132341256, 1e-09); + assert (P(5), 0.0523758623892078, 1e-09); + assert (P(6), 0.590353225626655, 1e-09); + assert (P(7), 0.0861628249564267, 1e-09); + assert (ATAB{2,2}, 3481.72176560122, 1e-09); + assert (ATAB{3,2}, 1837.08812970469, 1e-09); + assert (ATAB{4,2}, 4957.20277938622, 1e-09); + assert (ATAB{5,2}, 437.693674777847, 1e-09); + assert (ATAB{6,2}, 988.431929811402, 1e-09); + assert (ATAB{7,2}, 46.616653365254, 1e-09); + assert (ATAB{8,2}, 814.345251396648, 1e-09); + assert (ATAB{9,2}, 9065.8, 1e-09); + [P, ATAB, STATS] = anovan (BP(:),{drug(:),feedback(:),diet(:)},'model','full','sstype', 3,'display','off'); + assert (P(1), 0.000106518678028207, 1e-09); + assert (P(2), 0.00125371366571508, 1e-09); + assert (P(3), 5.30813260778464e-07, 1e-09); + assert (P(4), 0.308353667232981, 1e-09); + assert (P(5), 0.0562901327343161, 1e-09); + assert (P(6), 0.599091042141092, 1e-09); + assert (P(7), 0.0861628249564267, 1e-09); + assert (ATAB{2,2}, 3430.88156424581, 1e-09); + assert (ATAB{3,2}, 1833.68031496063, 1e-09); + assert (ATAB{4,2}, 5080.48346456693, 1e-09); + assert (ATAB{5,2}, 382.07709497207, 1e-09); + assert (ATAB{6,2}, 963.037988826813, 1e-09); + assert (ATAB{7,2}, 44.4519685039322, 1e-09); + assert (ATAB{8,2}, 814.345251396648, 1e-09); + assert (ATAB{9,2}, 9065.8, 1e-09); +***** test + measurement = [444 614 423 625 408 856 447 719 ... + 764 831 586 782 609 1002 606 766]'; + strain= {'NIH','NIH','BALB/C','BALB/C','A/J','A/J','129/Ola','129/Ola', ... + 'NIH','NIH','BALB/C','BALB/C','A/J','A/J','129/Ola','129/Ola'}'; + treatment={'C' 'T' 'C' 'T' 'C' 'T' 'C' 'T' 'C' 'T' 'C' 'T' 'C' 'T' 'C' 'T'}'; + block = [1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2]'; + + [P, ATAB, STATS] = anovan (measurement/10,{strain,treatment,block},'model','full','random',3,'display','off'); + assert (P(1), 0.0914352969909372, 1e-09); + assert (P(2), 5.04077373924908e-05, 1e-09); + assert (P(4), 0.0283196918836667, 1e-09); + assert (ATAB{2,2}, 286.132500000002, 1e-09); + assert (ATAB{3,2}, 2275.29, 1e-09); + assert (ATAB{4,2}, 1242.5625, 1e-09); + assert (ATAB{5,2}, 495.905000000001, 1e-09); + assert (ATAB{6,2}, 207.007499999999, 1e-09); +***** test + pulse = [67.9 65.1 77.3 78.7 79.4 80.4 85.8 86.6 87.5 89.1 ... + 98.6 100.8 99.3 101.7 44.3 47.2 47.6 49.6 50.3 51.8 ... + 60 58.5 58.9 60.7 69.8 70.9 76.2 76.1 77 77.7 84.7]'; + temp = [20.8 20.8 24 24 24 24 26.2 26.2 26.2 26.2 28.4 ... + 29 30.4 30.4 17.2 18.3 18.3 18.3 18.9 18.9 20.4 ... + 21 21 22.1 23.5 24.2 25.9 26.5 26.5 26.5 28.6]'; + species = {'ex' 'ex' 'ex' 'ex' 'ex' 'ex' 'ex' 'ex' 'ex' 'ex' 'ex' ... + 'ex' 'ex' 'ex' 'niv' 'niv' 'niv' 'niv' 'niv' 'niv' 'niv' ... + 'niv' 'niv' 'niv' 'niv' 'niv' 'niv' 'niv' 'niv' 'niv' 'niv'}; + + [P, ATAB, STATS] = anovan (pulse,{species,temp},'model','linear','continuous',2,'sstype','h','display','off'); + assert (P(1), 6.27153318786007e-14, 1e-09); + assert (P(2), 2.48773241196644e-25, 1e-09); + assert (ATAB{2,2}, 598.003953318404, 1e-09); + assert (ATAB{3,2}, 4376.08256843712, 1e-09); + assert (ATAB{4,2}, 89.3498685376726, 1e-09); + assert (ATAB{2,6}, 187.399388123951, 1e-09); + assert (ATAB{3,6}, 1371.35413763454, 1e-09); +***** test + score = [95.6 82.2 97.2 96.4 81.4 83.6 89.4 83.8 83.3 85.7 ... + 97.2 78.2 78.9 91.8 86.9 84.1 88.6 89.8 87.3 85.4 ... + 81.8 65.8 68.1 70.0 69.9 75.1 72.3 70.9 71.5 72.5 ... + 84.9 96.1 94.6 82.5 90.7 87.0 86.8 93.3 87.6 92.4 ... + 100. 80.5 92.9 84.0 88.4 91.1 85.7 91.3 92.3 87.9 ... + 91.7 88.6 75.8 75.7 75.3 82.4 80.1 86.0 81.8 82.5]'; + treatment = {'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' ... + 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' ... + 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' ... + 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' ... + 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' ... + 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no'}'; + exercise = {'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' ... + 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' ... + 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' ... + 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' ... + 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' ... + 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi'}'; + age = [59 65 70 66 61 65 57 61 58 55 62 61 60 59 55 57 60 63 62 57 ... + 58 56 57 59 59 60 55 53 55 58 68 62 61 54 59 63 60 67 60 67 ... + 75 54 57 62 65 60 58 61 65 57 56 58 58 58 52 53 60 62 61 61]'; + + [P, ATAB, STATS] = anovan (score,{treatment,exercise,age},'model','full','continuous',3,'sstype','h','display','off'); + assert (P(5), 0.9245630968248468, 1e-09); + assert (P(6), 0.791115159521822, 1e-09); + assert (P(7), 0.9296668751457956, 1e-09); + [P, ATAB, STATS] = anovan (score,{treatment,exercise,age},'model',[1 0 0; 0 1 0; 0 0 1; 1 1 0],'continuous',3,'sstype','h','display','off'); + assert (P(1), 0.00158132928938933, 1e-09); + assert (P(2), 2.12537505039986e-07, 1e-09); + assert (P(3), 0.00390292555160047, 1e-09); + assert (P(4), 0.0164086580775543, 1e-09); + assert (ATAB{2,6}, 11.0956027650549, 1e-09); + assert (ATAB{3,6}, 20.8195665467178, 1e-09); + assert (ATAB{4,6}, 9.10966630720186, 1e-09); + assert (ATAB{5,6}, 4.4457923698584, 1e-09); +***** test + dv = [ 8.706 10.362 11.552 6.941 10.983 10.092 6.421 14.943 15.931 ... + 22.968 18.590 16.567 15.944 21.637 14.492 17.965 18.851 22.891 ... + 22.028 16.884 17.252 18.325 25.435 19.141 21.238 22.196 18.038 ... + 22.628 31.163 26.053 24.419 32.145 28.966 30.207 29.142 33.212 ... + 25.694 ]'; + g = [1 1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5]'; + C = [ 0.4001601 0.3333333 0.5 0.0 + 0.4001601 0.3333333 -0.5 0.0 + 0.4001601 -0.6666667 0.0 0.0 + -0.6002401 0.0000000 0.0 0.5 + -0.6002401 0.0000000 0.0 -0.5]; + + [P,ATAB,STATS] = anovan (dv,g,'contrasts',{C},'display','off'); + assert (STATS.coeffs(1,1), 19.4001, 1e-04); + assert (STATS.coeffs(2,1), -9.3297, 1e-04); + assert (STATS.coeffs(3,1), -5.0000, 1e-04); + assert (STATS.coeffs(4,1), -8.0000, 1e-04); + assert (STATS.coeffs(5,1), -8.0000, 1e-04); + assert (STATS.coeffs(1,2), 0.4831, 1e-04); + assert (STATS.coeffs(2,2), 0.9694, 1e-04); + assert (STATS.coeffs(3,2), 1.3073, 1e-04); + assert (STATS.coeffs(4,2), 1.6411, 1e-04); + assert (STATS.coeffs(5,2), 1.4507, 1e-04); + assert (STATS.coeffs(1,5), 40.161, 1e-03); + assert (STATS.coeffs(2,5), -9.624, 1e-03); + assert (STATS.coeffs(3,5), -3.825, 1e-03); + assert (STATS.coeffs(4,5), -4.875, 1e-03); + assert (STATS.coeffs(5,5), -5.515, 1e-03); + assert (STATS.coeffs(2,6), 5.74e-11, 1e-12); + assert (STATS.coeffs(3,6), 0.000572, 1e-06); + assert (STATS.coeffs(4,6), 2.86e-05, 1e-07); + assert (STATS.coeffs(5,6), 4.44e-06, 1e-08); 12 tests, 12 passed, 0 known failure, 0 skipped +[inst/cophenet.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cophenet.m +***** demo + randn ("seed", 5) # for reproducibility + X = randn (10,2); + y = pdist (X); + Z = linkage (y, "average"); + cophenet (Z, y) +***** error cophenet () +***** error cophenet (1) +***** error ... + cophenet (ones (2,2), 1) +***** error ... + cophenet ([1 2 1], "a") +***** error ... + cophenet ([1 2 1], [1 2]) +5 tests, 5 passed, 0 known failure, 0 skipped [inst/multcompare.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/multcompare.m ***** demo @@ -10217,1936 +9990,6 @@ assert (padj(8), 0.7757550, 1e-07); assert (padj(9), 0.7757550, 1e-07); 8 tests, 8 passed, 0 known failure, 0 skipped -[inst/logistic_regression.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/logistic_regression.m -***** test - # Output compared to following MATLAB commands - # [B, DEV, STATS] = mnrfit(X,Y+1,'model','ordinal'); - # P = mnrval(B,X) - X = [1.489381332449196, 1.1534152241851305; ... - 1.8110085304863965, 0.9449666896938425; ... - -0.04453299665130296, 0.34278203449678646; ... - -0.36616019468850347, 1.130254275908322; ... - 0.15339143291005095, -0.7921044310668951; ... - -1.6031878794469698, -1.8343471035233376; ... - -0.14349521143198166, -0.6762996896828459; ... - -0.4403818557740143, -0.7921044310668951; ... - -0.7372685001160434, -0.027793137932169563; ... - -0.11875465773681024, 0.5512305689880763]; - Y = [1,1,1,1,1,0,0,0,0,0]'; - [INTERCEPT, SLOPE, DEV, DL, D2L, P] = logistic_regression (Y, X, false); -***** test - # Output compared to following MATLAB commands - # [B, DEV, STATS] = mnrfit(X,Y+1,'model','ordinal'); - load carbig - X = [Acceleration Displacement Horsepower Weight]; - miles = [1,1,1,1,1,1,1,1,1,1,NaN,NaN,NaN,NaN,NaN,1,1,NaN,1,1,2,2,1,2,2,2, ... - 2,2,2,2,2,1,1,1,1,2,2,2,2,NaN,2,1,1,2,1,1,1,1,1,1,1,1,1,2,2,1,2, ... - 2,3,3,3,3,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,2,2,2, ... - 2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,2,2,2,1,2,2, ... - 2,1,1,3,2,2,2,1,2,2,1,2,2,2,1,3,2,3,2,1,1,1,1,1,1,1,1,3,2,2,3,3, ... - 2,2,2,2,2,3,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,3,2,2,2,2,2,2,1,3,2,2, ... - 2,2,2,3,2,2,2,2,2,1,1,1,1,2,2,2,2,3,2,3,3,2,1,1,1,3,3,2,2,2,1,2, ... - 2,1,1,1,1,1,3,3,3,2,3,1,1,1,1,1,2,2,1,1,1,1,1,3,2,2,2,3,3,3,3,2, ... - 2,2,4,3,3,4,3,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,1,1,3,2,2,3,2,2,2,2, ... - 2,1,2,1,3,3,2,2,2,2,2,1,1,1,1,1,1,2,1,3,3,3,2,2,2,2,2,3,3,3,3,2, ... - 2,2,3,4,3,3,3,2,2,2,2,3,3,3,3,3,4,2,4,4,4,3,3,4,4,3,3,3,2,3,2,3, ... - 2,2,2,2,3,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,NaN,3,2,2,2,2,2,1,2, ... - 2,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,3,3,2,2,4,3,2,3]'; - [INTERCEPT, SLOPE, DEV, DL, D2L, P] = logistic_regression (miles, X, false); - assert (DEV, 433.197174495549, 1e-05); - assert (INTERCEPT(1), -16.6895155618903, 1e-05); - assert (INTERCEPT(2), -11.7207818178493, 1e-05); - assert (INTERCEPT(3), -8.0605768506075, 1e-05); - assert (SLOPE(1), 0.104762463756714, 1e-05); - assert (SLOPE(2), 0.0103357623191891, 1e-05); - assert (SLOPE(3), 0.0645199313242276, 1e-05); - assert (SLOPE(4), 0.00166377028388103, 1e-05); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/adtest.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/adtest.m -***** error adtest (); -***** error adtest (ones (20,2)); -***** error adtest ([1+i,0-3i]); -***** error ... - adtest (ones (20,1), "Distribution", "normal"); -***** error ... - adtest (rand (20,1), "Distribution", {"normal", 5, 3}); -***** error ... - adtest (rand (20,1), "Distribution", {"norm", 5}); -***** error ... - adtest (rand (20,1), "Distribution", {"exp", 5, 4}); -***** error ... - adtest (rand (20,1), "Distribution", {"ev", 5}); -***** error ... - adtest (rand (20,1), "Distribution", {"logn", 5, 3, 2}); -***** error ... - adtest (rand (20,1), "Distribution", {"Weibull", 5}); -***** error ... - adtest (rand (20,1), "Distribution", 35); -***** error ... - adtest (rand (20,1), "Name", "norm"); -***** error ... - adtest (rand (20,1), "Name", {"norm", 75, 10}); -***** error ... - adtest (rand (20,1), "Distribution", "norm", "Asymptotic", true); -***** error ... - adtest (rand (20,1), "MCTol", 0.001, "Asymptotic", true); -***** error ... - adtest (rand (20,1), "Distribution", {"norm", 5, 3}, "MCTol", 0.001, ... - "Asymptotic", true); -***** error ... - [h, pval, ADstat, CV] = adtest (ones (20,1), "Distribution", {"norm",5,3},... - "Alpha", 0.000000001); -***** error ... - [h, pval, ADstat, CV] = adtest (ones (20,1), "Distribution", {"norm",5,3},... - "Alpha", 0.999999999); -***** error ... - adtest (10); -***** warning ... - randn ("seed", 34); - adtest (ones (20,1), "Alpha", 0.000001); -***** warning ... - randn ("seed", 34); - adtest (normrnd(0,1,100,1), "Alpha", 0.99999); -***** warning ... - randn ("seed", 34); - adtest (normrnd(0,1,100,1), "Alpha", 0.00001); -***** test - load examgrades - x = grades(:,1); - [h, pval, adstat, cv] = adtest (x); - assert (h, false); - assert (pval, 0.1854, 1e-4); - assert (adstat, 0.5194, 1e-4); - assert (cv, 0.7470, 1e-4); -***** test - load examgrades - x = grades(:,1); - [h, pval, adstat, cv] = adtest (x, "Distribution", "ev"); - assert (h, false); - assert (pval, 0.071363, 1e-6); -***** test - load examgrades - x = grades(:,1); - [h, pval, adstat, cv] = adtest (x, "Distribution", {"norm", 75, 10}); - assert (h, false); - assert (pval, 0.4687, 1e-4); -25 tests, 25 passed, 0 known failure, 0 skipped -[inst/ecdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ecdf.m -***** demo - y = exprnd (10, 50, 1); ## random failure times are exponential(10) - d = exprnd (20, 50, 1); ## drop-out times are exponential(20) - t = min (y, d); ## we observe the minimum of these times - censored = (y > d); ## we also observe whether the subject failed - - ## Calculate and plot the empirical cdf and confidence bounds - [f, x, flo, fup] = ecdf (t, "censoring", censored); - stairs (x, f); - hold on; - stairs (x, flo, "r:"); stairs (x, fup, "r:"); - - ## Superimpose a plot of the known true cdf - xx = 0:.1:max (t); yy = 1 - exp (-xx / 10); plot (xx, yy, "g-"); - hold off; -***** demo - R = wblrnd (100, 2, 100, 1); - ecdf (R, "Function", "survivor", "Alpha", 0.01, "Bounds", "on"); - hold on - x = 1:1:250; - wblsurv = 1 - cdf ("weibull", x, 100, 2); - plot (x, wblsurv, "g-", "LineWidth", 2) - legend ("Empirical survivor function", "Lower confidence bound", ... - "Upper confidence bound", "Weibull survivor function", ... - "Location", "northeast"); - hold off -***** error ecdf (); -***** error ecdf (randi (15,2)); -***** error ecdf ([3,2,4,3+2i,5]); -***** error kstest ([2,3,4,5,6],"tail"); -***** error kstest ([2,3,4,5,6],"tail", "whatever"); -***** error kstest ([2,3,4,5,6],"function", ""); -***** error kstest ([2,3,4,5,6],"badoption", 0.51); -***** error kstest ([2,3,4,5,6],"tail", 0); -***** error kstest ([2,3,4,5,6],"alpha", 0); -***** error kstest ([2,3,4,5,6],"alpha", NaN); -***** error kstest ([NaN,NaN,NaN,NaN,NaN],"tail", "unequal"); -***** error kstest ([2,3,4,5,6],"alpha", 0.05, "CDF", [2,3,4;1,3,4;1,2,1]); -***** test - hf = figure ("visible", "off"); - unwind_protect - x = [2, 3, 4, 3, 5, 4, 6, 5, 8, 3, 7, 8, 9, 0]; - [F, x, Flo, Fup] = ecdf (x); - F_out = [0; 0.0714; 0.1429; 0.3571; 0.5; 0.6429; 0.7143; 0.7857; 0.9286; 1]; - assert (F, F_out, ones (10,1) * 1e-4); - x_out = [0 0 2 3 4 5 6 7 8 9]'; - assert (x, x_out); - Flo_out = [NaN, 0, 0, 0.1061, 0.2381, 0.3919, 0.4776, 0.5708, 0.7937, NaN]'; - assert (Flo, Flo_out, ones (10,1) * 1e-4); - Fup_out = [NaN, 0.2063, 0.3262, 0.6081, 0.7619, 0.8939, 0.9509, 1, 1, NaN]'; - assert (Fup, Fup_out, ones (10,1) * 1e-4); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** test - hf = figure ("visible", "off"); - unwind_protect - x = [2, 3, 4, 3, 5, 4, 6, 5, 8, 3, 7, 8, 9, 0]; - ecdf (x); - unwind_protect_cleanup - close (hf); - end_unwind_protect -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/dist_wrap/icdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/icdf.m -***** shared p - p = [0.05:0.05:0.5]; -***** assert (icdf ("Beta", p, 5, 2), betainv (p, 5, 2)) -***** assert (icdf ("beta", p, 5, 2), betainv (p, 5, 2)) -***** assert (icdf ("Binomial", p, 5, 2), binoinv (p, 5, 2)) -***** assert (icdf ("bino", p, 5, 2), binoinv (p, 5, 2)) -***** assert (icdf ("Birnbaum-Saunders", p, 5, 2), bisainv (p, 5, 2)) -***** assert (icdf ("bisa", p, 5, 2), bisainv (p, 5, 2)) -***** assert (icdf ("Burr", p, 5, 2, 2), burrinv (p, 5, 2, 2)) -***** assert (icdf ("burr", p, 5, 2, 2), burrinv (p, 5, 2, 2)) -***** assert (icdf ("Cauchy", p, 5, 2), cauchyinv (p, 5, 2)) -***** assert (icdf ("cauchy", p, 5, 2), cauchyinv (p, 5, 2)) -***** assert (icdf ("Chi-squared", p, 5), chi2inv (p, 5)) -***** assert (icdf ("chi2", p, 5), chi2inv (p, 5)) -***** assert (icdf ("Extreme Value", p, 5, 2), evinv (p, 5, 2)) -***** assert (icdf ("ev", p, 5, 2), evinv (p, 5, 2)) -***** assert (icdf ("Exponential", p, 5), expinv (p, 5)) -***** assert (icdf ("exp", p, 5), expinv (p, 5)) -***** assert (icdf ("F-Distribution", p, 5, 2), finv (p, 5, 2)) -***** assert (icdf ("f", p, 5, 2), finv (p, 5, 2)) -***** assert (icdf ("Gamma", p, 5, 2), gaminv (p, 5, 2)) -***** assert (icdf ("gam", p, 5, 2), gaminv (p, 5, 2)) -***** assert (icdf ("Geometric", p, 5), geoinv (p, 5)) -***** assert (icdf ("geo", p, 5), geoinv (p, 5)) -***** assert (icdf ("Generalized Extreme Value", p, 5, 2, 2), gevinv (p, 5, 2, 2)) -***** assert (icdf ("gev", p, 5, 2, 2), gevinv (p, 5, 2, 2)) -***** assert (icdf ("Generalized Pareto", p, 5, 2, 2), gpinv (p, 5, 2, 2)) -***** assert (icdf ("gp", p, 5, 2, 2), gpinv (p, 5, 2, 2)) -***** assert (icdf ("Gumbel", p, 5, 2), gumbelinv (p, 5, 2)) -***** assert (icdf ("gumbel", p, 5, 2), gumbelinv (p, 5, 2)) -***** assert (icdf ("Half-normal", p, 5, 2), hninv (p, 5, 2)) -***** assert (icdf ("hn", p, 5, 2), hninv (p, 5, 2)) -***** assert (icdf ("Hypergeometric", p, 5, 2, 2), hygeinv (p, 5, 2, 2)) -***** assert (icdf ("hyge", p, 5, 2, 2), hygeinv (p, 5, 2, 2)) -***** assert (icdf ("Inverse Gaussian", p, 5, 2), invginv (p, 5, 2)) -***** assert (icdf ("invg", p, 5, 2), invginv (p, 5, 2)) -***** assert (icdf ("Laplace", p, 5, 2), laplaceinv (p, 5, 2)) -***** assert (icdf ("laplace", p, 5, 2), laplaceinv (p, 5, 2)) -***** assert (icdf ("Logistic", p, 5, 2), logiinv (p, 5, 2)) -***** assert (icdf ("logi", p, 5, 2), logiinv (p, 5, 2)) -***** assert (icdf ("Log-Logistic", p, 5, 2), loglinv (p, 5, 2)) -***** assert (icdf ("logl", p, 5, 2), loglinv (p, 5, 2)) -***** assert (icdf ("Lognormal", p, 5, 2), logninv (p, 5, 2)) -***** assert (icdf ("logn", p, 5, 2), logninv (p, 5, 2)) -***** assert (icdf ("Nakagami", p, 5, 2), nakainv (p, 5, 2)) -***** assert (icdf ("naka", p, 5, 2), nakainv (p, 5, 2)) -***** assert (icdf ("Negative Binomial", p, 5, 2), nbininv (p, 5, 2)) -***** assert (icdf ("nbin", p, 5, 2), nbininv (p, 5, 2)) -***** assert (icdf ("Noncentral F-Distribution", p, 5, 2, 2), ncfinv (p, 5, 2, 2)) -***** assert (icdf ("ncf", p, 5, 2, 2), ncfinv (p, 5, 2, 2)) -***** assert (icdf ("Noncentral Student T", p, 5, 2), nctinv (p, 5, 2)) -***** assert (icdf ("nct", p, 5, 2), nctinv (p, 5, 2)) -***** assert (icdf ("Noncentral Chi-Squared", p, 5, 2), ncx2inv (p, 5, 2)) -***** assert (icdf ("ncx2", p, 5, 2), ncx2inv (p, 5, 2)) -***** assert (icdf ("Normal", p, 5, 2), norminv (p, 5, 2)) -***** assert (icdf ("norm", p, 5, 2), norminv (p, 5, 2)) -***** assert (icdf ("Poisson", p, 5), poissinv (p, 5)) -***** assert (icdf ("poiss", p, 5), poissinv (p, 5)) -***** assert (icdf ("Rayleigh", p, 5), raylinv (p, 5)) -***** assert (icdf ("rayl", p, 5), raylinv (p, 5)) -***** assert (icdf ("Rician", p, 5, 1), riceinv (p, 5, 1)) -***** assert (icdf ("rice", p, 5, 1), riceinv (p, 5, 1)) -***** assert (icdf ("Student T", p, 5), tinv (p, 5)) -***** assert (icdf ("t", p, 5), tinv (p, 5)) -***** assert (icdf ("location-scale T", p, 5, 1, 2), tlsinv (p, 5, 1, 2)) -***** assert (icdf ("tls", p, 5, 1, 2), tlsinv (p, 5, 1, 2)) -***** assert (icdf ("Triangular", p, 5, 2, 2), triinv (p, 5, 2, 2)) -***** assert (icdf ("tri", p, 5, 2, 2), triinv (p, 5, 2, 2)) -***** assert (icdf ("Discrete Uniform", p, 5), unidinv (p, 5)) -***** assert (icdf ("unid", p, 5), unidinv (p, 5)) -***** assert (icdf ("Uniform", p, 5, 2), unifinv (p, 5, 2)) -***** assert (icdf ("unif", p, 5, 2), unifinv (p, 5, 2)) -***** assert (icdf ("Von Mises", p, 5, 2), vminv (p, 5, 2)) -***** assert (icdf ("vm", p, 5, 2), vminv (p, 5, 2)) -***** assert (icdf ("Weibull", p, 5, 2), wblinv (p, 5, 2)) -***** assert (icdf ("wbl", p, 5, 2), wblinv (p, 5, 2)) -***** error icdf (1) -***** error icdf ({"beta"}) -***** error icdf ("beta", {[1 2 3 4 5]}) -***** error icdf ("beta", "text") -***** error icdf ("beta", 1+i) -***** error ... - icdf ("Beta", p, "a", 2) -***** error ... - icdf ("Beta", p, 5, "") -***** error ... - icdf ("Beta", p, 5, {2}) -***** error icdf ("chi2", p) -***** error icdf ("Beta", p, 5) -***** error icdf ("Burr", p, 5) -***** error icdf ("Burr", p, 5, 2) -86 tests, 86 passed, 0 known failure, 0 skipped -[inst/dist_wrap/fitdist.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/fitdist.m -***** test - x = betarnd (1, 1, 100, 1); - pd = fitdist (x, "Beta"); - [phat, pci] = betafit (x); - assert ([pd.a, pd.b], phat); - assert (paramci (pd), pci); -***** test - x1 = betarnd (1, 1, 100, 1); - x2 = betarnd (5, 2, 100, 1); - pd = fitdist ([x1; x2], "Beta", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = betafit (x1); - assert ([pd(1).a, pd(1).b], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = betafit (x2); - assert ([pd(2).a, pd(2).b], phat); - assert (paramci (pd(2)), pci); -***** test - N = 1; - x = binornd (N, 0.5, 100, 1); - pd = fitdist (x, "binomial"); - [phat, pci] = binofit (sum (x), numel (x)); - assert ([pd.N, pd.p], [N, phat]); - assert (paramci (pd), pci); -***** test - N = 3; - x = binornd (N, 0.4, 100, 1); - pd = fitdist (x, "binomial", "ntrials", N); - [phat, pci] = binofit (sum (x), numel (x) * N); - assert ([pd.N, pd.p], [N, phat]); - assert (paramci (pd), pci); -***** test - N = 1; - x1 = binornd (N, 0.5, 100, 1); - x2 = binornd (N, 0.7, 100, 1); - pd = fitdist ([x1; x2], "binomial", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = binofit (sum (x1), numel (x1)); - assert ([pd(1).N, pd(1).p], [N, phat]); - assert (paramci (pd(1)), pci); - [phat, pci] = binofit (sum (x2), numel (x2)); - assert ([pd(2).N, pd(2).p], [N, phat]); - assert (paramci (pd(2)), pci); -***** test - N = 5; - x1 = binornd (N, 0.5, 100, 1); - x2 = binornd (N, 0.8, 100, 1); - pd = fitdist ([x1; x2], "binomial", "ntrials", N, ... - "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = binofit (sum (x1), numel (x1) * N); - assert ([pd(1).N, pd(1).p], [N, phat]); - assert (paramci (pd(1)), pci); - [phat, pci] = binofit (sum (x2), numel (x2) * N); - assert ([pd(2).N, pd(2).p], [N, phat]); - assert (paramci (pd(2)), pci); -***** test - x = bisarnd (1, 1, 100, 1); - pd = fitdist (x, "BirnbaumSaunders"); - [phat, pci] = bisafit (x); - assert ([pd.beta, pd.gamma], phat); - assert (paramci (pd), pci); -***** test - x1 = bisarnd (1, 1, 100, 1); - x2 = bisarnd (5, 2, 100, 1); - pd = fitdist ([x1; x2], "bisa", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = bisafit (x1); - assert ([pd(1).beta, pd(1).gamma], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = bisafit (x2); - assert ([pd(2).beta, pd(2).gamma], phat); - assert (paramci (pd(2)), pci); -***** test - x = exprnd (1, 100, 1); - pd = fitdist (x, "exponential"); - [muhat, muci] = expfit (x); - assert ([pd.mu], muhat); - assert (paramci (pd), muci); -***** test - x1 = exprnd (1, 100, 1); - x2 = exprnd (5, 100, 1); - pd = fitdist ([x1; x2], "exponential", "By", [ones(100,1); 2*ones(100,1)]); - [muhat, muci] = expfit (x1); - assert ([pd(1).mu], muhat); - assert (paramci (pd(1)), muci); - [muhat, muci] = expfit (x2); - assert ([pd(2).mu], muhat); - assert (paramci (pd(2)), muci); -***** test - x = evrnd (1, 1, 100, 1); - pd = fitdist (x, "ev"); - [phat, pci] = evfit (x); - assert ([pd.mu, pd.sigma], phat); - assert (paramci (pd), pci); -***** test - x1 = evrnd (1, 1, 100, 1); - x2 = evrnd (5, 2, 100, 1); - pd = fitdist ([x1; x2], "extremevalue", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = evfit (x1); - assert ([pd(1).mu, pd(1).sigma], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = evfit (x2); - assert ([pd(2).mu, pd(2).sigma], phat); - assert (paramci (pd(2)), pci); -***** test - x = gamrnd (1, 1, 100, 1); - pd = fitdist (x, "Gamma"); - [phat, pci] = gamfit (x); - assert ([pd.a, pd.b], phat); - assert (paramci (pd), pci); -***** test - x1 = gamrnd (1, 1, 100, 1); - x2 = gamrnd (5, 2, 100, 1); - pd = fitdist ([x1; x2], "Gamma", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = gamfit (x1); - assert ([pd(1).a, pd(1).b], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = gamfit (x2); - assert ([pd(2).a, pd(2).b], phat); - assert (paramci (pd(2)), pci); -***** test - rand ("seed", 4); # for reproducibility - x = gevrnd (-0.5, 1, 2, 1000, 1); - pd = fitdist (x, "generalizedextremevalue"); - [phat, pci] = gevfit (x); - assert ([pd.k, pd.sigma, pd.mu], phat); - assert (paramci (pd), pci); -***** test - rand ("seed", 5); # for reproducibility - x1 = gevrnd (-0.5, 1, 2, 1000, 1); - rand ("seed", 9); # for reproducibility - x2 = gevrnd (0, 1, -4, 1000, 1); - pd = fitdist ([x1; x2], "gev", "By", [ones(1000,1); 2*ones(1000,1)]); - [phat, pci] = gevfit (x1); - assert ([pd(1).k, pd(1).sigma, pd(1).mu], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = gevfit (x2); - assert ([pd(2).k, pd(2).sigma, pd(2).mu], phat); - assert (paramci (pd(2)), pci); -***** test - x = gprnd (1, 1, 1, 100, 1); - pd = fitdist (x, "GeneralizedPareto"); - [phat, pci] = gpfit (x, 1); - assert ([pd.k, pd.sigma, pd.theta], phat); - assert (paramci (pd), pci); -***** test - x = gprnd (1, 1, 2, 100, 1); - pd = fitdist (x, "GeneralizedPareto", "theta", 2); - [phat, pci] = gpfit (x, 2); - assert ([pd.k, pd.sigma, pd.theta], phat); - assert (paramci (pd), pci); -***** test - x1 = gprnd (1, 1, 1, 100, 1); - x2 = gprnd (0, 2, 1, 100, 1); - pd = fitdist ([x1; x2], "gp", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = gpfit (x1, 1); - assert ([pd(1).k, pd(1).sigma, pd(1).theta], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = gpfit (x2, 1); - assert ([pd(2).k, pd(2).sigma, pd(2).theta], phat); - assert (paramci (pd(2)), pci); -***** test - x1 = gprnd (3, 2, 2, 100, 1); - x2 = gprnd (2, 3, 2, 100, 1); - pd = fitdist ([x1; x2], "GeneralizedPareto", "theta", 2, ... - "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = gpfit (x1, 2); - assert ([pd(1).k, pd(1).sigma, pd(1).theta], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = gpfit (x2, 2); - assert ([pd(2).k, pd(2).sigma, pd(2).theta], phat); - assert (paramci (pd(2)), pci); -***** test - x = hnrnd (0, 1, 100, 1); - pd = fitdist (x, "HalfNormal"); - [phat, pci] = hnfit (x, 0); - assert ([pd.mu, pd.sigma], phat); - assert (paramci (pd), pci); -***** test - x = hnrnd (1, 1, 100, 1); - pd = fitdist (x, "HalfNormal", "mu", 1); - [phat, pci] = hnfit (x, 1); - assert ([pd.mu, pd.sigma], phat); - assert (paramci (pd), pci); -***** test - x1 = hnrnd (0, 1, 100, 1); - x2 = hnrnd (0, 2, 100, 1); - pd = fitdist ([x1; x2], "HalfNormal", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = hnfit (x1, 0); - assert ([pd(1).mu, pd(1).sigma], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = hnfit (x2, 0); - assert ([pd(2).mu, pd(2).sigma], phat); - assert (paramci (pd(2)), pci); -***** test - x1 = hnrnd (2, 1, 100, 1); - x2 = hnrnd (2, 2, 100, 1); - pd = fitdist ([x1; x2], "HalfNormal", "mu", 2, ... - "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = hnfit (x1, 2); - assert ([pd(1).mu, pd(1).sigma], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = hnfit (x2, 2); - assert ([pd(2).mu, pd(2).sigma], phat); - assert (paramci (pd(2)), pci); -***** test - x = invgrnd (1, 1, 100, 1); - pd = fitdist (x, "InverseGaussian"); - [phat, pci] = invgfit (x); - assert ([pd.mu, pd.lambda], phat); - assert (paramci (pd), pci); -***** test - x1 = invgrnd (1, 1, 100, 1); - x2 = invgrnd (5, 2, 100, 1); - pd = fitdist ([x1; x2], "InverseGaussian", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = invgfit (x1); - assert ([pd(1).mu, pd(1).lambda], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = invgfit (x2); - assert ([pd(2).mu, pd(2).lambda], phat); - assert (paramci (pd(2)), pci); -***** test - x = logirnd (1, 1, 100, 1); - pd = fitdist (x, "logistic"); - [phat, pci] = logifit (x); - assert ([pd.mu, pd.sigma], phat); - assert (paramci (pd), pci); -***** test - x1 = logirnd (1, 1, 100, 1); - x2 = logirnd (5, 2, 100, 1); - pd = fitdist ([x1; x2], "logistic", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = logifit (x1); - assert ([pd(1).mu, pd(1).sigma], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = logifit (x2); - assert ([pd(2).mu, pd(2).sigma], phat); - assert (paramci (pd(2)), pci); -***** test - x = loglrnd (1, 1, 100, 1); - pd = fitdist (x, "loglogistic"); - [phat, pci] = loglfit (x); - assert ([pd.mu, pd.sigma], phat); - assert (paramci (pd), pci); -***** test - x1 = loglrnd (1, 1, 100, 1); - x2 = loglrnd (5, 2, 100, 1); - pd = fitdist ([x1; x2], "loglogistic", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = loglfit (x1); - assert ([pd(1).mu, pd(1).sigma], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = loglfit (x2); - assert ([pd(2).mu, pd(2).sigma], phat); - assert (paramci (pd(2)), pci); -***** test - x = lognrnd (1, 1, 100, 1); - pd = fitdist (x, "lognormal"); - [phat, pci] = lognfit (x); - assert ([pd.mu, pd.sigma], phat); - assert (paramci (pd), pci); -***** test - x1 = lognrnd (1, 1, 100, 1); - x2 = lognrnd (5, 2, 100, 1); - pd = fitdist ([x1; x2], "lognormal", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = lognfit (x1); - assert ([pd(1).mu, pd(1).sigma], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = lognfit (x2); - assert ([pd(2).mu, pd(2).sigma], phat); - assert (paramci (pd(2)), pci); -***** test - x = nakarnd (2, 0.5, 100, 1); - pd = fitdist (x, "Nakagami"); - [phat, pci] = nakafit (x); - assert ([pd.mu, pd.omega], phat); - assert (paramci (pd), pci); -***** test - x1 = nakarnd (2, 0.5, 100, 1); - x2 = nakarnd (5, 0.8, 100, 1); - pd = fitdist ([x1; x2], "Nakagami", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = nakafit (x1); - assert ([pd(1).mu, pd(1).omega], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = nakafit (x2); - assert ([pd(2).mu, pd(2).omega], phat); - assert (paramci (pd(2)), pci); -***** test - randp ("seed", 123); - randg ("seed", 321); - x = nbinrnd (2, 0.5, 100, 1); - pd = fitdist (x, "negativebinomial"); - [phat, pci] = nbinfit (x); - assert ([pd.R, pd.P], phat); - assert (paramci (pd), pci); -***** test - randp ("seed", 345); - randg ("seed", 543); - x1 = nbinrnd (2, 0.5, 100, 1); - randp ("seed", 432); - randg ("seed", 234); - x2 = nbinrnd (5, 0.8, 100, 1); - pd = fitdist ([x1; x2], "nbin", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = nbinfit (x1); - assert ([pd(1).R, pd(1).P], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = nbinfit (x2); - assert ([pd(2).R, pd(2).P], phat); - assert (paramci (pd(2)), pci); -***** test - x = normrnd (1, 1, 100, 1); - pd = fitdist (x, "normal"); - [muhat, sigmahat, muci, sigmaci] = normfit (x); - assert ([pd.mu, pd.sigma], [muhat, sigmahat]); - assert (paramci (pd), [muci, sigmaci]); -***** test - x1 = normrnd (1, 1, 100, 1); - x2 = normrnd (5, 2, 100, 1); - pd = fitdist ([x1; x2], "normal", "By", [ones(100,1); 2*ones(100,1)]); - [muhat, sigmahat, muci, sigmaci] = normfit (x1); - assert ([pd(1).mu, pd(1).sigma], [muhat, sigmahat]); - assert (paramci (pd(1)), [muci, sigmaci]); - [muhat, sigmahat, muci, sigmaci] = normfit (x2); - assert ([pd(2).mu, pd(2).sigma], [muhat, sigmahat]); - assert (paramci (pd(2)), [muci, sigmaci]); -***** test - x = poissrnd (1, 100, 1); - pd = fitdist (x, "poisson"); - [phat, pci] = poissfit (x); - assert (pd.lambda, phat); - assert (paramci (pd), pci); -***** test - x1 = poissrnd (1, 100, 1); - x2 = poissrnd (5, 100, 1); - pd = fitdist ([x1; x2], "poisson", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = poissfit (x1); - assert (pd(1).lambda, phat); - assert (paramci (pd(1)), pci); - [phat, pci] = poissfit (x2); - assert (pd(2).lambda, phat); - assert (paramci (pd(2)), pci); -***** test - x = raylrnd (1, 100, 1); - pd = fitdist (x, "rayleigh"); - [phat, pci] = raylfit (x); - assert (pd.sigma, phat); - assert (paramci (pd), pci); -***** test - x1 = raylrnd (1, 100, 1); - x2 = raylrnd (5, 100, 1); - pd = fitdist ([x1; x2], "rayleigh", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = raylfit (x1); - assert ( pd(1).sigma, phat); - assert (paramci (pd(1)), pci); - [phat, pci] = raylfit (x2); - assert (pd(2).sigma, phat); - assert (paramci (pd(2)), pci); -***** test - x = ricernd (1, 1, 100, 1); - pd = fitdist (x, "rician"); - [phat, pci] = ricefit (x); - assert ([pd.s, pd.sigma], phat); - assert (paramci (pd), pci); -***** test - x1 = ricernd (1, 1, 100, 1); - x2 = ricernd (5, 2, 100, 1); - pd = fitdist ([x1; x2], "rician", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = ricefit (x1); - assert ([pd(1).s, pd(1).sigma], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = ricefit (x2); - assert ([pd(2).s, pd(2).sigma], phat); - assert (paramci (pd(2)), pci); -***** warning ... - fitdist ([1 2 3 4 5], "Stable"); -***** test - x = tlsrnd (0, 1, 1, 100, 1); - pd = fitdist (x, "tlocationscale"); - [phat, pci] = tlsfit (x); - assert ([pd.mu, pd.sigma, pd.nu], phat); - assert (paramci (pd), pci); -***** test - x1 = tlsrnd (0, 1, 1, 100, 1); - x2 = tlsrnd (5, 2, 1, 100, 1); - pd = fitdist ([x1; x2], "tlocationscale", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = tlsfit (x1); - assert ([pd(1).mu, pd(1).sigma, pd(1).nu], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = tlsfit (x2); - assert ([pd(2).mu, pd(2).sigma, pd(2).nu], phat); - assert (paramci (pd(2)), pci); -***** test - x = [1 2 3 4 5]; - pd = fitdist (x, "weibull"); - [phat, pci] = wblfit (x); - assert ([pd.lambda, pd.k], phat); - assert (paramci (pd), pci); -***** test - x = [1 2 3 4 5 6 7 8 9 10]; - pd = fitdist (x, "weibull", "By", [1 1 1 1 1 2 2 2 2 2]); - [phat, pci] = wblfit (x(1:5)); - assert ([pd(1).lambda, pd(1).k], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = wblfit (x(6:10)); - assert ([pd(2).lambda, pd(2).k], phat); - assert (paramci (pd(2)), pci); -***** error fitdist (1) -***** error fitdist (1, ["as";"sd"]) -***** error fitdist (1, "some") -***** error ... - fitdist (ones (2), "normal") -***** error ... - fitdist ([i, 2, 3], "normal") -***** error ... - fitdist (["a", "s", "d"], "normal") -***** error ... - fitdist ([1, 2, 3], "normal", "By") -***** error ... - fitdist ([1, 2, 3], "normal", "By", [1, 2]) -***** error ... - fitdist ([1, 2, 3], "normal", "Censoring", [1, 2]) -***** error ... - fitdist ([1, 2, 3], "normal", "frequency", [1, 2]) -***** error ... - fitdist ([1, 2, 3], "negativebinomial", "frequency", [1, -2, 3]) -***** error ... - fitdist ([1, 2, 3], "normal", "alpha", [1, 2]) -***** error ... - fitdist ([1, 2, 3], "normal", "alpha", i) -***** error ... - fitdist ([1, 2, 3], "normal", "alpha", -0.5) -***** error ... - fitdist ([1, 2, 3], "normal", "alpha", 1.5) -***** error ... - fitdist ([1, 2, 3], "normal", "ntrials", [1, 2]) -***** error ... - fitdist ([1, 2, 3], "normal", "ntrials", 0) -***** error ... - fitdist ([1, 2, 3], "normal", "options", 0) -***** error ... - fitdist ([1, 2, 3], "normal", "options", struct ("options", 1)) -***** warning fitdist ([1, 2, 3], "kernel", "kernel", "normal"); -***** warning fitdist ([1, 2, 3], "kernel", "support", "positive"); -***** warning fitdist ([1, 2, 3], "kernel", "width", 1); -***** error ... - fitdist ([1, 2, 3], "normal", "param", struct ("options", 1)) -***** error ... - [pdca, gn, gl] = fitdist ([1, 2, 3], "normal"); -***** error ... - fitdist ([1, 2, 3], "generalizedpareto", "theta", 2); -***** error ... - fitdist ([1, 2, 3], "halfnormal", "mu", 2); -75 tests, 75 passed, 0 known failure, 0 skipped -[inst/dist_wrap/makedist.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/makedist.m -***** test - pd = makedist ("beta"); - assert (class (pd), "BetaDistribution"); - assert (pd.a, 1); - assert (pd.b, 1); -***** test - pd = makedist ("beta", "a", 5); - assert (pd.a, 5); - assert (pd.b, 1); -***** test - pd = makedist ("beta", "b", 5); - assert (pd.a, 1); - assert (pd.b, 5); -***** test - pd = makedist ("beta", "a", 3, "b", 5); - assert (pd.a, 3); - assert (pd.b, 5); -***** test - pd = makedist ("binomial"); - assert (class (pd), "BinomialDistribution"); - assert (pd.N, 1); - assert (pd.p, 0.5); -***** test - pd = makedist ("binomial", "N", 5); - assert (pd.N, 5); - assert (pd.p, 0.5); -***** test - pd = makedist ("binomial", "p", 0.2); - assert (pd.N, 1); - assert (pd.p, 0.2); -***** test - pd = makedist ("binomial", "N", 3, "p", 0.3); - assert (pd.N, 3); - assert (pd.p, 0.3); -***** test - pd = makedist ("birnbaumsaunders"); - assert (class (pd), "BirnbaumSaundersDistribution"); - assert (pd.beta, 1); - assert (pd.gamma, 1); -***** test - pd = makedist ("birnbaumsaunders", "beta", 5); - assert (pd.beta, 5); - assert (pd.gamma, 1); -***** test - pd = makedist ("birnbaumsaunders", "gamma", 5); - assert (pd.beta, 1); - assert (pd.gamma, 5); -***** test - pd = makedist ("birnbaumsaunders", "beta", 3, "gamma", 5); - assert (pd.beta, 3); - assert (pd.gamma, 5); -***** test - pd = makedist ("burr"); - assert (class (pd), "BurrDistribution"); - assert (pd.alpha, 1); - assert (pd.c, 1); - assert (pd.k, 1); -***** test - pd = makedist ("burr", "k", 5); - assert (pd.alpha, 1); - assert (pd.c, 1); - assert (pd.k, 5); -***** test - pd = makedist ("burr", "c", 5); - assert (pd.alpha, 1); - assert (pd.c, 5); - assert (pd.k, 1); -***** test - pd = makedist ("burr", "alpha", 3, "c", 5); - assert (pd.alpha, 3); - assert (pd.c, 5); - assert (pd.k, 1); -***** test - pd = makedist ("burr", "k", 3, "c", 5); - assert (pd.alpha, 1); - assert (pd.c, 5); - assert (pd.k, 3); -***** test - pd = makedist ("exponential"); - assert (class (pd), "ExponentialDistribution"); - assert (pd.mu, 1); -***** test - pd = makedist ("exponential", "mu", 5); - assert (pd.mu, 5); -***** test - pd = makedist ("extremevalue"); - assert (class (pd), "ExtremeValueDistribution"); - assert (pd.mu, 0); - assert (pd.sigma, 1); -***** test - pd = makedist ("extremevalue", "mu", 5); - assert (class (pd), "ExtremeValueDistribution"); - assert (pd.mu, 5); - assert (pd.sigma, 1); -***** test - pd = makedist ("ev", "sigma", 5); - assert (class (pd), "ExtremeValueDistribution"); - assert (pd.mu, 0); - assert (pd.sigma, 5); -***** test - pd = makedist ("ev", "mu", -3, "sigma", 5); - assert (class (pd), "ExtremeValueDistribution"); - assert (pd.mu, -3); - assert (pd.sigma, 5); -***** test - pd = makedist ("gamma"); - assert (class (pd), "GammaDistribution"); - assert (pd.a, 1); - assert (pd.b, 1); -***** test - pd = makedist ("gamma", "a", 5); - assert (pd.a, 5); - assert (pd.b, 1); -***** test - pd = makedist ("gamma", "b", 5); - assert (pd.a, 1); - assert (pd.b, 5); -***** test - pd = makedist ("gamma", "a", 3, "b", 5); - assert (pd.a, 3); - assert (pd.b, 5); -***** test - pd = makedist ("GeneralizedExtremeValue"); - assert (class (pd), "GeneralizedExtremeValueDistribution"); - assert (pd.k, 0); - assert (pd.sigma, 1); - assert (pd.mu, 0); -***** test - pd = makedist ("GeneralizedExtremeValue", "k", 5); - assert (pd.k, 5); - assert (pd.sigma, 1); - assert (pd.mu, 0); -***** test - pd = makedist ("GeneralizedExtremeValue", "sigma", 5); - assert (pd.k, 0); - assert (pd.sigma, 5); - assert (pd.mu, 0); -***** test - pd = makedist ("GeneralizedExtremeValue", "k", 3, "sigma", 5); - assert (pd.k, 3); - assert (pd.sigma, 5); - assert (pd.mu, 0); -***** test - pd = makedist ("GeneralizedExtremeValue", "mu", 3, "sigma", 5); - assert (pd.k, 0); - assert (pd.sigma, 5); - assert (pd.mu, 3); -***** test - pd = makedist ("GeneralizedPareto"); - assert (class (pd), "GeneralizedParetoDistribution"); - assert (pd.k, 1); - assert (pd.sigma, 1); - assert (pd.theta, 1); -***** test - pd = makedist ("GeneralizedPareto", "k", 5); - assert (pd.k, 5); - assert (pd.sigma, 1); - assert (pd.theta, 1); -***** test - pd = makedist ("GeneralizedPareto", "sigma", 5); - assert (pd.k, 1); - assert (pd.sigma, 5); - assert (pd.theta, 1); -***** test - pd = makedist ("GeneralizedPareto", "k", 3, "sigma", 5); - assert (pd.k, 3); - assert (pd.sigma, 5); - assert (pd.theta, 1); -***** test - pd = makedist ("GeneralizedPareto", "theta", 3, "sigma", 5); - assert (pd.k, 1); - assert (pd.sigma, 5); - assert (pd.theta, 3); -***** test - pd = makedist ("HalfNormal"); - assert (class (pd), "HalfNormalDistribution"); - assert (pd.mu, 0); - assert (pd.sigma, 1); -***** test - pd = makedist ("HalfNormal", "mu", 5); - assert (pd.mu, 5); - assert (pd.sigma, 1); -***** test - pd = makedist ("HalfNormal", "sigma", 5); - assert (pd.mu, 0); - assert (pd.sigma, 5); -***** test - pd = makedist ("HalfNormal", "mu", 3, "sigma", 5); - assert (pd.mu, 3); - assert (pd.sigma, 5); -***** test - pd = makedist ("InverseGaussian"); - assert (class (pd), "InverseGaussianDistribution"); - assert (pd.mu, 1); - assert (pd.lambda, 1); -***** test - pd = makedist ("InverseGaussian", "mu", 5); - assert (pd.mu, 5); - assert (pd.lambda, 1); -***** test - pd = makedist ("InverseGaussian", "lambda", 5); - assert (pd.mu, 1); - assert (pd.lambda, 5); -***** test - pd = makedist ("InverseGaussian", "mu", 3, "lambda", 5); - assert (pd.mu, 3); - assert (pd.lambda, 5); -***** test - pd = makedist ("logistic"); - assert (class (pd), "LogisticDistribution"); - assert (pd.mu, 0); - assert (pd.sigma, 1); -***** test - pd = makedist ("logistic", "mu", 5); - assert (pd.mu, 5); - assert (pd.sigma, 1); -***** test - pd = makedist ("logistic", "sigma", 5); - assert (pd.mu, 0); - assert (pd.sigma, 5); -***** test - pd = makedist ("logistic", "mu", 3, "sigma", 5); - assert (pd.mu, 3); - assert (pd.sigma, 5); -***** test - pd = makedist ("loglogistic"); - assert (class (pd), "LoglogisticDistribution"); - assert (pd.mu, 0); - assert (pd.sigma, 1); -***** test - pd = makedist ("loglogistic", "mu", 5); - assert (pd.mu, 5); - assert (pd.sigma, 1); -***** test - pd = makedist ("loglogistic", "sigma", 5); - assert (pd.mu, 0); - assert (pd.sigma, 5); -***** test - pd = makedist ("loglogistic", "mu", 3, "sigma", 5); - assert (pd.mu, 3); - assert (pd.sigma, 5); -***** test - pd = makedist ("Lognormal"); - assert (class (pd), "LognormalDistribution"); - assert (pd.mu, 0); - assert (pd.sigma, 1); -***** test - pd = makedist ("Lognormal", "mu", 5); - assert (pd.mu, 5); - assert (pd.sigma, 1); -***** test - pd = makedist ("Lognormal", "sigma", 5); - assert (pd.mu, 0); - assert (pd.sigma, 5); -***** test - pd = makedist ("Lognormal", "mu", -3, "sigma", 5); - assert (pd.mu, -3); - assert (pd.sigma, 5); -***** test - pd = makedist ("Loguniform"); - assert (class (pd), "LoguniformDistribution"); - assert (pd.Lower, 1); - assert (pd.Upper, 4); -***** test - pd = makedist ("Loguniform", "Lower", 2); - assert (pd.Lower, 2); - assert (pd.Upper, 4); -***** test - pd = makedist ("Loguniform", "Lower", 1, "Upper", 3); - assert (pd.Lower, 1); - assert (pd.Upper, 3); -***** test - pd = makedist ("Multinomial"); - assert (class (pd), "MultinomialDistribution"); - assert (pd.Probabilities, [0.5, 0.5]); -***** test - pd = makedist ("Multinomial", "Probabilities", [0.2, 0.3, 0.1, 0.4]); - assert (class (pd), "MultinomialDistribution"); - assert (pd.Probabilities, [0.2, 0.3, 0.1, 0.4]); -***** test - pd = makedist ("Nakagami"); - assert (class (pd), "NakagamiDistribution"); - assert (pd.mu, 1); - assert (pd.omega, 1); -***** test - pd = makedist ("Nakagami", "mu", 5); - assert (class (pd), "NakagamiDistribution"); - assert (pd.mu, 5); - assert (pd.omega, 1); -***** test - pd = makedist ("Nakagami", "omega", 0.3); - assert (class (pd), "NakagamiDistribution"); - assert (pd.mu, 1); - assert (pd.omega, 0.3); -***** test - pd = makedist ("NegativeBinomial"); - assert (class (pd), "NegativeBinomialDistribution"); - assert (pd.R, 1); - assert (pd.P, 0.5); -***** test - pd = makedist ("NegativeBinomial", "R", 5); - assert (class (pd), "NegativeBinomialDistribution"); - assert (pd.R, 5); - assert (pd.P, 0.5); -***** test - pd = makedist ("NegativeBinomial", "p", 0.3); - assert (class (pd), "NegativeBinomialDistribution"); - assert (pd.R, 1); - assert (pd.P, 0.3); -***** test - pd = makedist ("Normal"); - assert (class (pd), "NormalDistribution"); - assert (pd.mu, 0); - assert (pd.sigma, 1); -***** test - pd = makedist ("Normal", "mu", 5); - assert (class (pd), "NormalDistribution"); - assert (pd.mu, 5); - assert (pd.sigma, 1); -***** test - pd = makedist ("Normal", "sigma", 5); - assert (class (pd), "NormalDistribution"); - assert (pd.mu, 0); - assert (pd.sigma, 5); -***** test - pd = makedist ("Normal", "mu", -3, "sigma", 5); - assert (class (pd), "NormalDistribution"); - assert (pd.mu, -3); - assert (pd.sigma, 5); -***** test - pd = makedist ("PiecewiseLinear"); - assert (class (pd), "PiecewiseLinearDistribution"); - assert (pd.x, [0; 1]); - assert (pd.Fx, [0; 1]); -***** test - pd = makedist ("PiecewiseLinear", "x", [0, 1, 2], "Fx", [0, 0.5, 1]); - assert (pd.x, [0; 1; 2]); - assert (pd.Fx, [0; 0.5; 1]); -***** test - pd = makedist ("Poisson"); - assert (class (pd), "PoissonDistribution"); - assert (pd.lambda, 1); -***** test - pd = makedist ("Poisson", "lambda", 5); - assert (pd.lambda, 5); -***** test - pd = makedist ("Rayleigh"); - assert (class (pd), "RayleighDistribution"); - assert (pd.sigma, 1); -***** test - pd = makedist ("Rayleigh", "sigma", 5); - assert (pd.sigma, 5); -***** test - pd = makedist ("Rician"); - assert (class (pd), "RicianDistribution"); - assert (pd.s, 1); - assert (pd.sigma, 1); -***** test - pd = makedist ("Rician", "s", 3); - assert (pd.s, 3); - assert (pd.sigma, 1); -***** test - pd = makedist ("Rician", "sigma", 3); - assert (pd.s, 1); - assert (pd.sigma, 3); -***** test - pd = makedist ("Rician", "s", 2, "sigma", 3); - assert (pd.s, 2); - assert (pd.sigma, 3); -***** warning - pd = makedist ("stable"); - assert (class (pd), "double"); - assert (isempty (pd), true); -***** test - pd = makedist ("tlocationscale"); - assert (class (pd), "tLocationScaleDistribution"); - assert (pd.mu, 0); - assert (pd.sigma, 1); - assert (pd.nu, 5); -***** test - pd = makedist ("tlocationscale", "mu", 5); - assert (pd.mu, 5); - assert (pd.sigma, 1); - assert (pd.nu, 5); -***** test - pd = makedist ("tlocationscale", "sigma", 2); - assert (pd.mu, 0); - assert (pd.sigma, 2); - assert (pd.nu, 5); -***** test - pd = makedist ("tlocationscale", "mu", 5, "sigma", 2); - assert (pd.mu, 5); - assert (pd.sigma, 2); - assert (pd.nu, 5); -***** test - pd = makedist ("tlocationscale", "nu", 1, "sigma", 2); - assert (pd.mu, 0); - assert (pd.sigma, 2); - assert (pd.nu, 1); -***** test - pd = makedist ("tlocationscale", "mu", -2, "sigma", 3, "nu", 1); - assert (pd.mu, -2); - assert (pd.sigma, 3); - assert (pd.nu, 1); -***** test - pd = makedist ("Triangular"); - assert (class (pd), "TriangularDistribution"); - assert (pd.A, 0); - assert (pd.B, 0.5); - assert (pd.C, 1); -***** test - pd = makedist ("Triangular", "A", -2); - assert (pd.A, -2); - assert (pd.B, 0.5); - assert (pd.C, 1); -***** test - pd = makedist ("Triangular", "A", 0.5, "B", 0.9); - assert (pd.A, 0.5); - assert (pd.B, 0.9); - assert (pd.C, 1); -***** test - pd = makedist ("Triangular", "A", 1, "B", 2, "C", 5); - assert (pd.A, 1); - assert (pd.B, 2); - assert (pd.C, 5); -***** test - pd = makedist ("Uniform"); - assert (class (pd), "UniformDistribution"); - assert (pd.Lower, 0); - assert (pd.Upper, 1); -***** test - pd = makedist ("Uniform", "Lower", -2); - assert (pd.Lower, -2); - assert (pd.Upper, 1); -***** test - pd = makedist ("Uniform", "Lower", 1, "Upper", 3); - assert (pd.Lower, 1); - assert (pd.Upper, 3); -***** test - pd = makedist ("Weibull"); - assert (class (pd), "WeibullDistribution"); - assert (pd.lambda, 1); - assert (pd.k, 1); -***** test - pd = makedist ("Weibull", "lambda", 3); - assert (pd.lambda, 3); - assert (pd.k, 1); -***** test - pd = makedist ("Weibull", "lambda", 3, "k", 2); - assert (pd.lambda, 3); - assert (pd.k, 2); -***** error makedist (1) -***** error makedist (["as";"sd"]) -***** error makedist ("some") -***** error ... - makedist ("Beta", "a") -***** error ... - makedist ("Beta", "a", 1, "Q", 23) -***** error ... - makedist ("Binomial", "N", 1, "Q", 23) -***** error ... - makedist ("BirnbaumSaunders", "N", 1) -***** error ... - makedist ("Burr", "lambda", 1, "sdfs", 34) -***** error ... - makedist ("extremevalue", "mu", 1, "sdfs", 34) -***** error ... - makedist ("exponential", "mu", 1, "sdfs", 34) -***** error ... - makedist ("Gamma", "k", 1, "sdfs", 34) -***** error ... - makedist ("GeneralizedExtremeValue", "k", 1, "sdfs", 34) -***** error ... - makedist ("GeneralizedPareto", "k", 1, "sdfs", 34) -***** error ... - makedist ("HalfNormal", "k", 1, "sdfs", 34) -***** error ... - makedist ("InverseGaussian", "k", 1, "sdfs", 34) -***** error ... - makedist ("Logistic", "k", 1, "sdfs", 34) -***** error ... - makedist ("Loglogistic", "k", 1, "sdfs", 34) -***** error ... - makedist ("Lognormal", "k", 1, "sdfs", 34) -***** error ... - makedist ("Loguniform", "k", 1, "sdfs", 34) -***** error ... - makedist ("Multinomial", "k", 1, "sdfs", 34) -***** error ... - makedist ("Nakagami", "mu", 1, "sdfs", 34) -***** error ... - makedist ("NegativeBinomial", "mu", 1, "sdfs", 34) -***** error ... - makedist ("Normal", "mu", 1, "sdfs", 34) -***** error ... - makedist ("PiecewiseLinear", "mu", 1, "sdfs", 34) -***** error ... - makedist ("Poisson", "mu", 1, "sdfs", 34) -***** error ... - makedist ("Rayleigh", "mu", 1, "sdfs", 34) -***** error ... - makedist ("Rician", "mu", 1, "sdfs", 34) -***** error ... - makedist ("Stable", "mu", 1, "sdfs", 34) -***** error ... - makedist ("tLocationScale", "mu", 1, "sdfs", 34) -***** error ... - makedist ("Triangular", "mu", 1, "sdfs", 34) -***** error ... - makedist ("Uniform", "mu", 1, "sdfs", 34) -***** error ... - makedist ("Weibull", "mu", 1, "sdfs", 34) -131 tests, 131 passed, 0 known failure, 0 skipped -[inst/dist_wrap/random.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/random.m -***** assert (size (random ("Beta", 5, 2, 2, 10)), size (betarnd (5, 2, 2, 10))) -***** assert (size (random ("beta", 5, 2, 2, 10)), size (betarnd (5, 2, 2, 10))) -***** assert (size (random ("Binomial", 5, 2, [10, 20])), size (binornd (5, 2, 10, 20))) -***** assert (size (random ("bino", 5, 2, [10, 20])), size (binornd (5, 2, 10, 20))) -***** assert (size (random ("Birnbaum-Saunders", 5, 2, [10, 20])), size (bisarnd (5, 2, 10, 20))) -***** assert (size (random ("bisa", 5, 2, [10, 20])), size (bisarnd (5, 2, 10, 20))) -***** assert (size (random ("Burr", 5, 2, 2, [10, 20])), size (burrrnd (5, 2, 2, 10, 20))) -***** assert (size (random ("burr", 5, 2, 2, [10, 20])), size (burrrnd (5, 2, 2, 10, 20))) -***** assert (size (random ("Cauchy", 5, 2, [10, 20])), size (cauchyrnd (5, 2, 10, 20))) -***** assert (size (random ("cauchy", 5, 2, [10, 20])), size (cauchyrnd (5, 2, 10, 20))) -***** assert (size (random ("Chi-squared", 5, [10, 20])), size (chi2rnd (5, 10, 20))) -***** assert (size (random ("chi2", 5, [10, 20])), size (chi2rnd (5, 10, 20))) -***** assert (size (random ("Extreme Value", 5, 2, [10, 20])), size (evrnd (5, 2, 10, 20))) -***** assert (size (random ("ev", 5, 2, [10, 20])), size (evrnd (5, 2, 10, 20))) -***** assert (size (random ("Exponential", 5, [10, 20])), size (exprnd (5, 10, 20))) -***** assert (size (random ("exp", 5, [10, 20])), size (exprnd (5, 10, 20))) -***** assert (size (random ("F-Distribution", 5, 2, [10, 20])), size (frnd (5, 2, 10, 20))) -***** assert (size (random ("f", 5, 2, [10, 20])), size (frnd (5, 2, 10, 20))) -***** assert (size (random ("Gamma", 5, 2, [10, 20])), size (gamrnd (5, 2, 10, 20))) -***** assert (size (random ("gam", 5, 2, [10, 20])), size (gamrnd (5, 2, 10, 20))) -***** assert (size (random ("Geometric", 5, [10, 20])), size (geornd (5, 10, 20))) -***** assert (size (random ("geo", 5, [10, 20])), size (geornd (5, 10, 20))) -***** assert (size (random ("Generalized Extreme Value", 5, 2, 2, [10, 20])), size (gevrnd (5, 2, 2, 10, 20))) -***** assert (size (random ("gev", 5, 2, 2, [10, 20])), size (gevrnd (5, 2, 2, 10, 20))) -***** assert (size (random ("Generalized Pareto", 5, 2, 2, [10, 20])), size (gprnd (5, 2, 2, 10, 20))) -***** assert (size (random ("gp", 5, 2, 2, [10, 20])), size (gprnd (5, 2, 2, 10, 20))) -***** assert (size (random ("Gumbel", 5, 2, [10, 20])), size (gumbelrnd (5, 2, 10, 20))) -***** assert (size (random ("gumbel", 5, 2, [10, 20])), size (gumbelrnd (5, 2, 10, 20))) -***** assert (size (random ("Half-normal", 5, 2, [10, 20])), size (hnrnd (5, 2, 10, 20))) -***** assert (size (random ("hn", 5, 2, [10, 20])), size (hnrnd (5, 2, 10, 20))) -***** assert (size (random ("Hypergeometric", 5, 2, 2, [10, 20])), size (hygernd (5, 2, 2, 10, 20))) -***** assert (size (random ("hyge", 5, 2, 2, [10, 20])), size (hygernd (5, 2, 2, 10, 20))) -***** assert (size (random ("Inverse Gaussian", 5, 2, [10, 20])), size (invgrnd (5, 2, 10, 20))) -***** assert (size (random ("invg", 5, 2, [10, 20])), size (invgrnd (5, 2, 10, 20))) -***** assert (size (random ("Laplace", 5, 2, [10, 20])), size (laplacernd (5, 2, 10, 20))) -***** assert (size (random ("laplace", 5, 2, [10, 20])), size (laplacernd (5, 2, 10, 20))) -***** assert (size (random ("Logistic", 5, 2, [10, 20])), size (logirnd (5, 2, 10, 20))) -***** assert (size (random ("logi", 5, 2, [10, 20])), size (logirnd (5, 2, 10, 20))) -***** assert (size (random ("Log-Logistic", 5, 2, [10, 20])), size (loglrnd (5, 2, 10, 20))) -***** assert (size (random ("logl", 5, 2, [10, 20])), size (loglrnd (5, 2, 10, 20))) -***** assert (size (random ("Lognormal", 5, 2, [10, 20])), size (lognrnd (5, 2, 10, 20))) -***** assert (size (random ("logn", 5, 2, [10, 20])), size (lognrnd (5, 2, 10, 20))) -***** assert (size (random ("Nakagami", 5, 2, [10, 20])), size (nakarnd (5, 2, 10, 20))) -***** assert (size (random ("naka", 5, 2, [10, 20])), size (nakarnd (5, 2, 10, 20))) -***** assert (size (random ("Negative Binomial", 5, 2, [10, 20])), size (nbinrnd (5, 2, 10, 20))) -***** assert (size (random ("nbin", 5, 2, [10, 20])), size (nbinrnd (5, 2, 10, 20))) -***** assert (size (random ("Noncentral F-Distribution", 5, 2, 2, [10, 20])), size (ncfrnd (5, 2, 2, 10, 20))) -***** assert (size (random ("ncf", 5, 2, 2, [10, 20])), size (ncfrnd (5, 2, 2, 10, 20))) -***** assert (size (random ("Noncentral Student T", 5, 2, [10, 20])), size (nctrnd (5, 2, 10, 20))) -***** assert (size (random ("nct", 5, 2, [10, 20])), size (nctrnd (5, 2, 10, 20))) -***** assert (size (random ("Noncentral Chi-Squared", 5, 2, [10, 20])), size (ncx2rnd (5, 2, 10, 20))) -***** assert (size (random ("ncx2", 5, 2, [10, 20])), size (ncx2rnd (5, 2, 10, 20))) -***** assert (size (random ("Normal", 5, 2, [10, 20])), size (normrnd (5, 2, 10, 20))) -***** assert (size (random ("norm", 5, 2, [10, 20])), size (normrnd (5, 2, 10, 20))) -***** assert (size (random ("Poisson", 5, [10, 20])), size (poissrnd (5, 10, 20))) -***** assert (size (random ("poiss", 5, [10, 20])), size (poissrnd (5, 10, 20))) -***** assert (size (random ("Rayleigh", 5, [10, 20])), size (raylrnd (5, 10, 20))) -***** assert (size (random ("rayl", 5, [10, 20])), size (raylrnd (5, 10, 20))) -***** assert (size (random ("Rician", 5, 1, [10, 20])), size (ricernd (5, 1, 10, 20))) -***** assert (size (random ("rice", 5, 1, [10, 20])), size (ricernd (5, 1, 10, 20))) -***** assert (size (random ("Student T", 5, [10, 20])), size (trnd (5, 10, 20))) -***** assert (size (random ("t", 5, [10, 20])), size (trnd (5, 10, 20))) -***** assert (size (random ("location-scale T", 5, 1, 2, [10, 20])), size (tlsrnd (5, 1, 2, 10, 20))) -***** assert (size (random ("tls", 5, 1, 2, [10, 20])), size (tlsrnd (5, 1, 2, 10, 20))) -***** assert (size (random ("Triangular", 5, 2, 2, [10, 20])), size (trirnd (5, 2, 2, 10, 20))) -***** assert (size (random ("tri", 5, 2, 2, [10, 20])), size (trirnd (5, 2, 2, 10, 20))) -***** assert (size (random ("Discrete Uniform", 5, [10, 20])), size (unidrnd (5, 10, 20))) -***** assert (size (random ("unid", 5, [10, 20])), size (unidrnd (5, 10, 20))) -***** assert (size (random ("Uniform", 5, 2, [10, 20])), size (unifrnd (5, 2, 10, 20))) -***** assert (size (random ("unif", 5, 2, [10, 20])), size (unifrnd (5, 2, 10, 20))) -***** assert (size (random ("Von Mises", 5, 2, [10, 20])), size (vmrnd (5, 2, 10, 20))) -***** assert (size (random ("vm", 5, 2, [10, 20])), size (vmrnd (5, 2, 10, 20))) -***** assert (size (random ("Weibull", 5, 2, [10, 20])), size (wblrnd (5, 2, 10, 20))) -***** assert (size (random ("wbl", 5, 2, [10, 20])), size (wblrnd (5, 2, 10, 20))) -***** error random (1) -***** error random ({"beta"}) -***** error ... - random ("Beta", "a", 2) -***** error ... - random ("Beta", 5, "") -***** error ... - random ("Beta", 5, {2}) -***** error ... - random ("Beta", "a", 2, 2, 10) -***** error ... - random ("Beta", 5, "", 2, 10) -***** error ... - random ("Beta", 5, {2}, 2, 10) -***** error ... - random ("Beta", 5, "", 2, 10) -***** error random ("chi2") -***** error random ("Beta", 5) -***** error random ("Burr", 5) -***** error random ("Burr", 5, 2) -87 tests, 87 passed, 0 known failure, 0 skipped -[inst/dist_wrap/cdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/cdf.m -***** shared x - x = [1:5]; -***** assert (cdf ("Beta", x, 5, 2), betacdf (x, 5, 2)) -***** assert (cdf ("beta", x, 5, 2, "upper"), betacdf (x, 5, 2, "upper")) -***** assert (cdf ("Binomial", x, 5, 2), binocdf (x, 5, 2)) -***** assert (cdf ("bino", x, 5, 2, "upper"), binocdf (x, 5, 2, "upper")) -***** assert (cdf ("Birnbaum-Saunders", x, 5, 2), bisacdf (x, 5, 2)) -***** assert (cdf ("bisa", x, 5, 2, "upper"), bisacdf (x, 5, 2, "upper")) -***** assert (cdf ("Burr", x, 5, 2, 2), burrcdf (x, 5, 2, 2)) -***** assert (cdf ("burr", x, 5, 2, 2, "upper"), burrcdf (x, 5, 2, 2, "upper")) -***** assert (cdf ("Cauchy", x, 5, 2), cauchycdf (x, 5, 2)) -***** assert (cdf ("cauchy", x, 5, 2, "upper"), cauchycdf (x, 5, 2, "upper")) -***** assert (cdf ("Chi-squared", x, 5), chi2cdf (x, 5)) -***** assert (cdf ("chi2", x, 5, "upper"), chi2cdf (x, 5, "upper")) -***** assert (cdf ("Extreme Value", x, 5, 2), evcdf (x, 5, 2)) -***** assert (cdf ("ev", x, 5, 2, "upper"), evcdf (x, 5, 2, "upper")) -***** assert (cdf ("Exponential", x, 5), expcdf (x, 5)) -***** assert (cdf ("exp", x, 5, "upper"), expcdf (x, 5, "upper")) -***** assert (cdf ("F-Distribution", x, 5, 2), fcdf (x, 5, 2)) -***** assert (cdf ("f", x, 5, 2, "upper"), fcdf (x, 5, 2, "upper")) -***** assert (cdf ("Gamma", x, 5, 2), gamcdf (x, 5, 2)) -***** assert (cdf ("gam", x, 5, 2, "upper"), gamcdf (x, 5, 2, "upper")) -***** assert (cdf ("Geometric", x, 5), geocdf (x, 5)) -***** assert (cdf ("geo", x, 5, "upper"), geocdf (x, 5, "upper")) -***** assert (cdf ("Generalized Extreme Value", x, 5, 2, 2), gevcdf (x, 5, 2, 2)) -***** assert (cdf ("gev", x, 5, 2, 2, "upper"), gevcdf (x, 5, 2, 2, "upper")) -***** assert (cdf ("Generalized Pareto", x, 5, 2, 2), gpcdf (x, 5, 2, 2)) -***** assert (cdf ("gp", x, 5, 2, 2, "upper"), gpcdf (x, 5, 2, 2, "upper")) -***** assert (cdf ("Gumbel", x, 5, 2), gumbelcdf (x, 5, 2)) -***** assert (cdf ("gumbel", x, 5, 2, "upper"), gumbelcdf (x, 5, 2, "upper")) -***** assert (cdf ("Half-normal", x, 5, 2), hncdf (x, 5, 2)) -***** assert (cdf ("hn", x, 5, 2, "upper"), hncdf (x, 5, 2, "upper")) -***** assert (cdf ("Hypergeometric", x, 5, 2, 2), hygecdf (x, 5, 2, 2)) -***** assert (cdf ("hyge", x, 5, 2, 2, "upper"), hygecdf (x, 5, 2, 2, "upper")) -***** assert (cdf ("Inverse Gaussian", x, 5, 2), invgcdf (x, 5, 2)) -***** assert (cdf ("invg", x, 5, 2, "upper"), invgcdf (x, 5, 2, "upper")) -***** assert (cdf ("Laplace", x, 5, 2), laplacecdf (x, 5, 2)) -***** assert (cdf ("laplace", x, 5, 2, "upper"), laplacecdf (x, 5, 2, "upper")) -***** assert (cdf ("Logistic", x, 5, 2), logicdf (x, 5, 2)) -***** assert (cdf ("logi", x, 5, 2, "upper"), logicdf (x, 5, 2, "upper")) -***** assert (cdf ("Log-Logistic", x, 5, 2), loglcdf (x, 5, 2)) -***** assert (cdf ("logl", x, 5, 2, "upper"), loglcdf (x, 5, 2, "upper")) -***** assert (cdf ("Lognormal", x, 5, 2), logncdf (x, 5, 2)) -***** assert (cdf ("logn", x, 5, 2, "upper"), logncdf (x, 5, 2, "upper")) -***** assert (cdf ("Nakagami", x, 5, 2), nakacdf (x, 5, 2)) -***** assert (cdf ("naka", x, 5, 2, "upper"), nakacdf (x, 5, 2, "upper")) -***** assert (cdf ("Negative Binomial", x, 5, 2), nbincdf (x, 5, 2)) -***** assert (cdf ("nbin", x, 5, 2, "upper"), nbincdf (x, 5, 2, "upper")) -***** assert (cdf ("Noncentral F-Distribution", x, 5, 2, 2), ncfcdf (x, 5, 2, 2)) -***** assert (cdf ("ncf", x, 5, 2, 2, "upper"), ncfcdf (x, 5, 2, 2, "upper")) -***** assert (cdf ("Noncentral Student T", x, 5, 2), nctcdf (x, 5, 2)) -***** assert (cdf ("nct", x, 5, 2, "upper"), nctcdf (x, 5, 2, "upper")) -***** assert (cdf ("Noncentral Chi-Squared", x, 5, 2), ncx2cdf (x, 5, 2)) -***** assert (cdf ("ncx2", x, 5, 2, "upper"), ncx2cdf (x, 5, 2, "upper")) -***** assert (cdf ("Normal", x, 5, 2), normcdf (x, 5, 2)) -***** assert (cdf ("norm", x, 5, 2, "upper"), normcdf (x, 5, 2, "upper")) -***** assert (cdf ("Poisson", x, 5), poisscdf (x, 5)) -***** assert (cdf ("poiss", x, 5, "upper"), poisscdf (x, 5, "upper")) -***** assert (cdf ("Rayleigh", x, 5), raylcdf (x, 5)) -***** assert (cdf ("rayl", x, 5, "upper"), raylcdf (x, 5, "upper")) -***** assert (cdf ("Rician", x, 5, 1), ricecdf (x, 5, 1)) -***** assert (cdf ("rice", x, 5, 1, "upper"), ricecdf (x, 5, 1, "upper")) -***** assert (cdf ("Student T", x, 5), tcdf (x, 5)) -***** assert (cdf ("t", x, 5, "upper"), tcdf (x, 5, "upper")) -***** assert (cdf ("location-scale T", x, 5, 1, 2), tlscdf (x, 5, 1, 2)) -***** assert (cdf ("tls", x, 5, 1, 2, "upper"), tlscdf (x, 5, 1, 2, "upper")) -***** assert (cdf ("Triangular", x, 5, 2, 2), tricdf (x, 5, 2, 2)) -***** assert (cdf ("tri", x, 5, 2, 2, "upper"), tricdf (x, 5, 2, 2, "upper")) -***** assert (cdf ("Discrete Uniform", x, 5), unidcdf (x, 5)) -***** assert (cdf ("unid", x, 5, "upper"), unidcdf (x, 5, "upper")) -***** assert (cdf ("Uniform", x, 5, 2), unifcdf (x, 5, 2)) -***** assert (cdf ("unif", x, 5, 2, "upper"), unifcdf (x, 5, 2, "upper")) -***** assert (cdf ("Von Mises", x, 5, 2), vmcdf (x, 5, 2)) -***** assert (cdf ("vm", x, 5, 2, "upper"), vmcdf (x, 5, 2, "upper")) -***** assert (cdf ("Weibull", x, 5, 2), wblcdf (x, 5, 2)) -***** assert (cdf ("wbl", x, 5, 2, "upper"), wblcdf (x, 5, 2, "upper")) -***** error cdf (1) -***** error cdf ({"beta"}) -***** error cdf ("beta", {[1 2 3 4 5]}) -***** error cdf ("beta", "text") -***** error cdf ("beta", 1+i) -***** error ... - cdf ("Beta", x, "a", 2) -***** error ... - cdf ("Beta", x, 5, "") -***** error ... - cdf ("Beta", x, 5, {2}) -***** error cdf ("chi2", x) -***** error cdf ("Beta", x, 5) -***** error cdf ("Burr", x, 5) -***** error cdf ("Burr", x, 5, 2) -86 tests, 86 passed, 0 known failure, 0 skipped -[inst/dist_wrap/mle.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/mle.m -***** error mle (ones (2)) -***** error mle ("text") -***** error mle ([1, 2, 3, i, 5]) -***** error ... - mle ([1:50], "distribution") -***** error ... - mle ([1:50], "censoring", logical ([1,0,1,0])) -***** error ... - mle ([1:50], "frequency", [1,0,1,0]) -***** error ... - mle ([1 0 1 0], "frequency", [-1 1 0 0]) -***** error ... - mle ([1 0 1 0], "distribution", "nbin", "frequency", [-1 1 0 0]) -***** error mle ([1:50], "alpha", [0.05, 0.01]) -***** error mle ([1:50], "alpha", 1) -***** error mle ([1:50], "alpha", -1) -***** error mle ([1:50], "alpha", i) -***** error ... - mle ([1:50], "ntrials", -1) -***** error ... - mle ([1:50], "ntrials", [20, 50]) -***** error ... - mle ([1:50], "ntrials", [20.3]) -***** error ... - mle ([1:50], "ntrials", 3i) -***** error ... - mle ([1:50], "options", 4) -***** error ... - mle ([1:50], "options", struct ("x", 3)) -***** error mle ([1:50], "NAME", "value") -***** error ... - mle ([1 0 1 0], "distribution", "bernoulli", "censoring", [1 1 0 0]) -***** error ... - mle ([1 2 1 0], "distribution", "bernoulli") -***** error ... - mle ([1 0 1 0], "distribution", "beta", "censoring", [1 1 0 0]) -***** error ... - mle ([1 0 1 0], "distribution", "bino", "censoring", [1 1 0 0]) -***** error ... - mle ([1 0 1 0], "distribution", "bino") -***** error ... - mle ([1 0 1 0], "distribution", "geo", "censoring", [1 1 0 0]) -***** error ... - mle ([1 0 1 0], "distribution", "gev", "censoring", [1 1 0 0]) -***** error ... - mle ([1 0 1 0], "distribution", "gp", "censoring", [1 1 0 0]) -***** error ... - mle ([1 0 -1 0], "distribution", "gp") -***** error ... - mle ([1 0 1 0], "distribution", "hn", "censoring", [1 1 0 0]) -***** error ... - mle ([1 0 -1 0], "distribution", "hn") -***** error ... - mle ([1 0 1 0], "distribution", "nbin", "censoring", [1 1 0 0]) -***** error ... - mle ([1 0 1 0], "distribution", "poisson", "censoring", [1 1 0 0]) -***** error ... - mle ([1 0 1 0], "distribution", "unid", "censoring", [1 1 0 0]) -***** error ... - mle ([1 0 1 0], "distribution", "unif", "censoring", [1 1 0 0]) -***** error mle ([1:50], "distribution", "value") -***** error ... - mle ([1 0 1 0], "distribution", "unif", "censoring", [1 1 0 0]) -36 tests, 36 passed, 0 known failure, 0 skipped -[inst/dist_wrap/pdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/pdf.m -***** shared x - x = [1:5]; -***** assert (pdf ("Beta", x, 5, 2), betapdf (x, 5, 2)) -***** assert (pdf ("beta", x, 5, 2), betapdf (x, 5, 2)) -***** assert (pdf ("Binomial", x, 5, 2), binopdf (x, 5, 2)) -***** assert (pdf ("bino", x, 5, 2), binopdf (x, 5, 2)) -***** assert (pdf ("Birnbaum-Saunders", x, 5, 2), bisapdf (x, 5, 2)) -***** assert (pdf ("bisa", x, 5, 2), bisapdf (x, 5, 2)) -***** assert (pdf ("Burr", x, 5, 2, 2), burrpdf (x, 5, 2, 2)) -***** assert (pdf ("burr", x, 5, 2, 2), burrpdf (x, 5, 2, 2)) -***** assert (pdf ("Cauchy", x, 5, 2), cauchypdf (x, 5, 2)) -***** assert (pdf ("cauchy", x, 5, 2), cauchypdf (x, 5, 2)) -***** assert (pdf ("Chi-squared", x, 5), chi2pdf (x, 5)) -***** assert (pdf ("chi2", x, 5), chi2pdf (x, 5)) -***** assert (pdf ("Extreme Value", x, 5, 2), evpdf (x, 5, 2)) -***** assert (pdf ("ev", x, 5, 2), evpdf (x, 5, 2)) -***** assert (pdf ("Exponential", x, 5), exppdf (x, 5)) -***** assert (pdf ("exp", x, 5), exppdf (x, 5)) -***** assert (pdf ("F-Distribution", x, 5, 2), fpdf (x, 5, 2)) -***** assert (pdf ("f", x, 5, 2), fpdf (x, 5, 2)) -***** assert (pdf ("Gamma", x, 5, 2), gampdf (x, 5, 2)) -***** assert (pdf ("gam", x, 5, 2), gampdf (x, 5, 2)) -***** assert (pdf ("Geometric", x, 5), geopdf (x, 5)) -***** assert (pdf ("geo", x, 5), geopdf (x, 5)) -***** assert (pdf ("Generalized Extreme Value", x, 5, 2, 2), gevpdf (x, 5, 2, 2)) -***** assert (pdf ("gev", x, 5, 2, 2), gevpdf (x, 5, 2, 2)) -***** assert (pdf ("Generalized Pareto", x, 5, 2, 2), gppdf (x, 5, 2, 2)) -***** assert (pdf ("gp", x, 5, 2, 2), gppdf (x, 5, 2, 2)) -***** assert (pdf ("Gumbel", x, 5, 2), gumbelpdf (x, 5, 2)) -***** assert (pdf ("gumbel", x, 5, 2), gumbelpdf (x, 5, 2)) -***** assert (pdf ("Half-normal", x, 5, 2), hnpdf (x, 5, 2)) -***** assert (pdf ("hn", x, 5, 2), hnpdf (x, 5, 2)) -***** assert (pdf ("Hypergeometric", x, 5, 2, 2), hygepdf (x, 5, 2, 2)) -***** assert (pdf ("hyge", x, 5, 2, 2), hygepdf (x, 5, 2, 2)) -***** assert (pdf ("Inverse Gaussian", x, 5, 2), invgpdf (x, 5, 2)) -***** assert (pdf ("invg", x, 5, 2), invgpdf (x, 5, 2)) -***** assert (pdf ("Laplace", x, 5, 2), laplacepdf (x, 5, 2)) -***** assert (pdf ("laplace", x, 5, 2), laplacepdf (x, 5, 2)) -***** assert (pdf ("Logistic", x, 5, 2), logipdf (x, 5, 2)) -***** assert (pdf ("logi", x, 5, 2), logipdf (x, 5, 2)) -***** assert (pdf ("Log-Logistic", x, 5, 2), loglpdf (x, 5, 2)) -***** assert (pdf ("logl", x, 5, 2), loglpdf (x, 5, 2)) -***** assert (pdf ("Lognormal", x, 5, 2), lognpdf (x, 5, 2)) -***** assert (pdf ("logn", x, 5, 2), lognpdf (x, 5, 2)) -***** assert (pdf ("Nakagami", x, 5, 2), nakapdf (x, 5, 2)) -***** assert (pdf ("naka", x, 5, 2), nakapdf (x, 5, 2)) -***** assert (pdf ("Negative Binomial", x, 5, 2), nbinpdf (x, 5, 2)) -***** assert (pdf ("nbin", x, 5, 2), nbinpdf (x, 5, 2)) -***** assert (pdf ("Noncentral F-Distribution", x, 5, 2, 2), ncfpdf (x, 5, 2, 2)) -***** assert (pdf ("ncf", x, 5, 2, 2), ncfpdf (x, 5, 2, 2)) -***** assert (pdf ("Noncentral Student T", x, 5, 2), nctpdf (x, 5, 2)) -***** assert (pdf ("nct", x, 5, 2), nctpdf (x, 5, 2)) -***** assert (pdf ("Noncentral Chi-Squared", x, 5, 2), ncx2pdf (x, 5, 2)) -***** assert (pdf ("ncx2", x, 5, 2), ncx2pdf (x, 5, 2)) -***** assert (pdf ("Normal", x, 5, 2), normpdf (x, 5, 2)) -***** assert (pdf ("norm", x, 5, 2), normpdf (x, 5, 2)) -***** assert (pdf ("Poisson", x, 5), poisspdf (x, 5)) -***** assert (pdf ("poiss", x, 5), poisspdf (x, 5)) -***** assert (pdf ("Rayleigh", x, 5), raylpdf (x, 5)) -***** assert (pdf ("rayl", x, 5), raylpdf (x, 5)) -***** assert (pdf ("Rician", x, 5, 1), ricepdf (x, 5, 1)) -***** assert (pdf ("rice", x, 5, 1), ricepdf (x, 5, 1)) -***** assert (pdf ("Student T", x, 5), tpdf (x, 5)) -***** assert (pdf ("t", x, 5), tpdf (x, 5)) -***** assert (pdf ("location-scale T", x, 5, 1, 2), tlspdf (x, 5, 1, 2)) -***** assert (pdf ("tls", x, 5, 1, 2), tlspdf (x, 5, 1, 2)) -***** assert (pdf ("Triangular", x, 5, 2, 2), tripdf (x, 5, 2, 2)) -***** assert (pdf ("tri", x, 5, 2, 2), tripdf (x, 5, 2, 2)) -***** assert (pdf ("Discrete Uniform", x, 5), unidpdf (x, 5)) -***** assert (pdf ("unid", x, 5), unidpdf (x, 5)) -***** assert (pdf ("Uniform", x, 5, 2), unifpdf (x, 5, 2)) -***** assert (pdf ("unif", x, 5, 2), unifpdf (x, 5, 2)) -***** assert (pdf ("Von Mises", x, 5, 2), vmpdf (x, 5, 2)) -***** assert (pdf ("vm", x, 5, 2), vmpdf (x, 5, 2)) -***** assert (pdf ("Weibull", x, 5, 2), wblpdf (x, 5, 2)) -***** assert (pdf ("wbl", x, 5, 2), wblpdf (x, 5, 2)) -***** error pdf (1) -***** error pdf ({"beta"}) -***** error pdf ("beta", {[1 2 3 4 5]}) -***** error pdf ("beta", "text") -***** error pdf ("beta", 1+i) -***** error ... - pdf ("Beta", x, "a", 2) -***** error ... - pdf ("Beta", x, 5, "") -***** error ... - pdf ("Beta", x, 5, {2}) -***** error pdf ("chi2", x) -***** error pdf ("Beta", x, 5) -***** error pdf ("Burr", x, 5) -***** error pdf ("Burr", x, 5, 2) -86 tests, 86 passed, 0 known failure, 0 skipped -[inst/chi2gof.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/chi2gof.m -***** demo - x = normrnd (50, 5, 100, 1); - [h, p, stats] = chi2gof (x) - [h, p, stats] = chi2gof (x, "cdf", @(x)normcdf (x, mean(x), std(x))) - [h, p, stats] = chi2gof (x, "cdf", {@normcdf, mean(x), std(x)}) -***** demo - x = rand (100,1 ); - n = length (x); - binedges = linspace (0, 1, 11); - expectedCounts = n * diff (binedges); - [h, p, stats] = chi2gof (x, "binedges", binedges, "expected", expectedCounts) -***** demo - bins = 0:5; - obsCounts = [6 16 10 12 4 2]; - n = sum(obsCounts); - lambdaHat = sum(bins.*obsCounts) / n; - expCounts = n * poisspdf(bins,lambdaHat); - [h, p, stats] = chi2gof (bins, "binctrs", bins, "frequency", obsCounts, ... - "expected", expCounts, "nparams",1) -***** error chi2gof () -***** error chi2gof ([2,3;3,4]) -***** error chi2gof ([1,2,3,4], "nbins", 3, "ctrs", [2,3,4]) -***** error chi2gof ([1,2,3,4], "frequency", [2,3,2]) -***** error chi2gof ([1,2,3,4], "frequency", [2,3,2,-2]) -***** error chi2gof ([1,2,3,4], "frequency", [2,3,2,2], "nparams", i) -***** error chi2gof ([1,2,3,4], "frequency", [2,3,2,2], "alpha", 1.3) -***** error chi2gof ([1,2,3,4], "expected", [-3,2,2]) -***** error chi2gof ([1,2,3,4], "expected", [3,2,2], "nbins", 5) -***** error chi2gof ([1,2,3,4], "cdf", @normcdff) -***** test - x = [1 2 1 3 2 4 3 2 4 3 2 2]; - [h, p, stats] = chi2gof (x); - assert (h, 0); - assert (p, NaN); - assert (stats.chi2stat, 0.1205375022748029, 1e-14); - assert (stats.df, 0); - assert (stats.edges, [1, 2.5, 4], 1e-14); - assert (stats.O, [7, 5], 1e-14); - assert (stats.E, [6.399995519909668, 5.600004480090332], 1e-14); -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/kruskalwallis.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/kruskalwallis.m -***** demo - x = meshgrid (1:6); - x = x + normrnd (0, 1, 6, 6); - kruskalwallis (x, [], 'off'); -***** demo - x = meshgrid (1:6); - x = x + normrnd (0, 1, 6, 6); - [p, atab] = kruskalwallis(x); -***** demo - x = ones (30, 4) .* [-2, 0, 1, 5]; - x = x + normrnd (0, 2, 30, 4); - group = {"A", "B", "C", "D"}; - kruskalwallis (x, group); -***** test - data = [1.006, 0.996, 0.998, 1.000, 0.992, 0.993, 1.002, 0.999, 0.994, 1.000, ... - 0.998, 1.006, 1.000, 1.002, 0.997, 0.998, 0.996, 1.000, 1.006, 0.988, ... - 0.991, 0.987, 0.997, 0.999, 0.995, 0.994, 1.000, 0.999, 0.996, 0.996, ... - 1.005, 1.002, 0.994, 1.000, 0.995, 0.994, 0.998, 0.996, 1.002, 0.996, ... - 0.998, 0.998, 0.982, 0.990, 1.002, 0.984, 0.996, 0.993, 0.980, 0.996, ... - 1.009, 1.013, 1.009, 0.997, 0.988, 1.002, 0.995, 0.998, 0.981, 0.996, ... - 0.990, 1.004, 0.996, 1.001, 0.998, 1.000, 1.018, 1.010, 0.996, 1.002, ... - 0.998, 1.000, 1.006, 1.000, 1.002, 0.996, 0.998, 0.996, 1.002, 1.006, ... - 1.002, 0.998, 0.996, 0.995, 0.996, 1.004, 1.004, 0.998, 0.999, 0.991, ... - 0.991, 0.995, 0.984, 0.994, 0.997, 0.997, 0.991, 0.998, 1.004, 0.997]; - group = [1:10] .* ones (10,10); - group = group(:); - [p, tbl] = kruskalwallis (data, group, "off"); - assert (p, 0.048229, 1e-6); - assert (tbl{2,5}, 17.03124, 1e-5); - assert (tbl{2,3}, 9, 0); - assert (tbl{4,2}, 82655.5, 1e-16); - data = reshape (data, 10, 10); - [p, tbl, stats] = kruskalwallis (data, [], "off"); - assert (p, 0.048229, 1e-6); - assert (tbl{2,5}, 17.03124, 1e-5); - assert (tbl{2,3}, 9, 0); - assert (tbl{4,2}, 82655.5, 1e-16); - means = [51.85, 60.45, 37.6, 51.1, 29.5, 54.25, 64.55, 66.7, 53.65, 35.35]; - N = 10 * ones (1, 10); - assert (stats.meanranks, means, 1e-6); - assert (length (stats.gnames), 10, 0); - assert (stats.n, N, 0); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/fullfact.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/fullfact.m -***** demo - ## Full factorial design with 3 binary variables - fullfact (3) -***** demo - ## Full factorial design with 3 ordinal variables - fullfact ([2, 3, 4]) -***** error fullfact (); -***** error fullfact (2, 5); -***** error fullfact (2.5); -***** error fullfact (0); -***** error fullfact (-3); -***** error fullfact (3+2i); -***** error fullfact (Inf); -***** error fullfact (NaN); -***** error fullfact ([1, 2, -3]); -***** error fullfact ([0, 1, 2]); -***** error fullfact ([1, 2, NaN]); -***** error fullfact ([1, 2, Inf]); -***** test - A = fullfact (2); - assert (A, [0, 0; 0, 1; 1, 0; 1, 1]); -***** test - A = fullfact ([1, 2]); - assert (A, [1, 1; 1, 2]); -***** test - A = fullfact ([1, 2, 4]); - A_out = [1, 1, 1; 1, 1, 2; 1, 1, 3; 1, 1, 4; ... - 1, 2, 1; 1, 2, 2; 1, 2, 3; 1, 2, 4]; - assert (A, A_out); -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/correlation_test.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/correlation_test.m -***** error correlation_test (); -***** error correlation_test (1); -***** error ... - correlation_test ([1 2 NaN]', [2 3 4]'); -***** error ... - correlation_test ([1 2 Inf]', [2 3 4]'); -***** error ... - correlation_test ([1 2 3+i]', [2 3 4]'); -***** error ... - correlation_test ([1 2 3]', [2 3 NaN]'); -***** error ... - correlation_test ([1 2 3]', [2 3 Inf]'); -***** error ... - correlation_test ([1 2 3]', [3 4 3+i]'); -***** error ... - correlation_test ([1 2 3]', [3 4 4 5]'); -***** error ... - correlation_test ([1 2 3]', [2 3 4]', "alpha", 0); -***** error ... - correlation_test ([1 2 3]', [2 3 4]', "alpha", 1.2); -***** error ... - correlation_test ([1 2 3]', [2 3 4]', "alpha", [.02 .1]); -***** error ... - correlation_test ([1 2 3]', [2 3 4]', "alpha", "a"); -***** error ... - correlation_test ([1 2 3]', [2 3 4]', "some", 0.05); -***** error ... - correlation_test ([1 2 3]', [2 3 4]', "tail", "val"); -***** error ... - correlation_test ([1 2 3]', [2 3 4]', "alpha", 0.01, "tail", "val"); -***** error ... - correlation_test ([1 2 3]', [2 3 4]', "method", 0.01); -***** error ... - correlation_test ([1 2 3]', [2 3 4]', "method", "some"); -***** test - x = [6 7 7 9 10 12 13 14 15 17]; - y = [19 22 27 25 30 28 30 29 25 32]; - [h, pval, stats] = correlation_test (x, y); - assert (stats.corrcoef, corr (x', y'), 1e-14); - assert (pval, 0.0223, 1e-4); -***** test - x = [6 7 7 9 10 12 13 14 15 17]'; - y = [19 22 27 25 30 28 30 29 25 32]'; - [h, pval, stats] = correlation_test (x, y); - assert (stats.corrcoef, corr (x, y), 1e-14); - assert (pval, 0.0223, 1e-4); -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/confusionchart.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/confusionchart.m -***** demo - ## Setting the chart properties - Yt = [8 5 6 8 5 3 1 6 4 2 5 3 1 4]'; - Yp = [8 5 6 8 5 2 3 4 4 5 5 7 2 6]'; - confusionchart (Yt, Yp, "Title", ... - "Demonstration with summaries","Normalization",... - "absolute","ColumnSummary", "column-normalized","RowSummary",... - "row-normalized") -***** demo - ## Cellstr as inputs - Yt = {"Positive", "Positive", "Positive", "Negative", "Negative"}; - Yp = {"Positive", "Positive", "Negative", "Negative", "Negative"}; - m = confusionmat (Yt, Yp); - confusionchart (m, {"Positive", "Negative"}); -***** demo - ## Editing the object properties - Yt = {"Positive", "Positive", "Positive", "Negative", "Negative"}; - Yp = {"Positive", "Positive", "Negative", "Negative", "Negative"}; - cm = confusionchart (Yt, Yp); - cm.Title = "This is an example with a green diagonal"; - cm.DiagonalColor = [0.4660, 0.6740, 0.1880]; -***** demo - ## Confusion chart in a uipanel - h = uipanel (); - Yt = {"Positive", "Positive", "Positive", "Negative", "Negative"}; - Yp = {"Positive", "Positive", "Negative", "Negative", "Negative"}; - cm = confusionchart (h, Yt, Yp); -***** demo - ## Sorting classes - Yt = [8 5 6 8 5 3 1 6 4 2 5 3 1 4]'; - Yp = [8 5 6 8 5 2 3 4 4 5 5 7 2 6]'; - cm = confusionchart (Yt, Yp, "Title", ... - "Classes are sorted in ascending order"); - cm = confusionchart (Yt, Yp, "Title", ... - "Classes are sorted according to clusters"); - sortClasses (cm, "cluster"); -***** shared visibility_setting - visibility_setting = get (0, "DefaultFigureVisible"); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ()", "Invalid call"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 1; 2 2; 3 3])", "invalid argument"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'xxx', 1)", "invalid property"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'XLabel', 1)", "XLabel .* string"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'YLabel', [1 0])", ... - ".* YLabel .* string"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'Title', .5)", ".* Title .* string"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'FontName', [])", ... - ".* FontName .* string"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'FontSize', 'b')", ... - ".* FontSize .* numeric"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'DiagonalColor', 'h')", ... - ".* DiagonalColor .* color"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'OffDiagonalColor', [])", ... - ".* OffDiagonalColor .* color"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'Normalization', '')", ... - ".* invalid .* Normalization"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'ColumnSummary', [])", ... - ".* invalid .* ColumnSummary"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'RowSummary', 1)", ... - ".* invalid .* RowSummary"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'GridVisible', .1)", ... - ".* invalid .* GridVisible"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'HandleVisibility', .1)", ... - ".* invalid .* HandleVisibility"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'OuterPosition', .1)", ... - ".* invalid .* OuterPosition"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'Position', .1)", ... - ".* invalid .* Position"); - set (0, "DefaultFigureVisible", visibility_setting); -***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'Units', .1)", ".* invalid .* Units"); - set (0, "DefaultFigureVisible", visibility_setting); -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/gscatter.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/gscatter.m -***** demo - load fisheriris; - X = meas(:,3:4); - cidcs = kmeans (X, 3, "Replicates", 5); - gscatter (X(:,1), X(:,2), cidcs, [.75 .75 0; 0 .75 .75; .75 0 .75], "os^"); - title ("Fisher's iris data"); -***** shared visibility_setting - visibility_setting = get (0, "DefaultFigureVisible"); -***** test - hf = figure ("visible", "off"); - unwind_protect - load fisheriris; - X = meas(:,3:4); - cidcs = kmeans (X, 3, "Replicates", 5); - gscatter (X(:,1), X(:,2), cidcs, [.75 .75 0; 0 .75 .75; .75 0 .75], "os^"); - title ("Fisher's iris data"); - unwind_protect_cleanup - close (hf); - end_unwind_protect -warning: legend: 'best' not yet implemented for location specifier, using 'northeast' instead -***** error gscatter (); -***** error gscatter ([1]); -***** error gscatter ([1], [2]); -***** error gscatter ('abc', [1 2 3], [1]); -***** error gscatter ([1 2 3], [1 2], [1]); -***** error gscatter ([1 2 3], 'abc', [1]); -***** error gscatter ([1 2], [1 2], [1]); -***** error gscatter ([1 2], [1 2], [1 2], 'rb', 'so', 12, 'xxx'); -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/qqplot.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/qqplot.m -***** test - hf = figure ("visible", "off"); - unwind_protect - qqplot ([2 3 3 4 4 5 6 5 6 7 8 9 8 7 8 9 0 8 7 6 5 4 6 13 8 15 9 9]); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** error qqplot () -***** error qqplot ({1}) -***** error qqplot (ones (2,2)) -***** error qqplot (1, "foobar") -***** error qqplot ([1 2 3], "foobar") -6 tests, 6 passed, 0 known failure, 0 skipped [inst/fitlm.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/fitlm.m ***** demo @@ -12233,2143 +10076,52 @@ assert (TAB{3,7}, 0.000893505495903642, 1e-09); assert (TAB{4,7}, 1.21291454302428e-05, 1e-09); assert (TAB{5,7}, 0.00237798044119407, 1e-09); - assert (TAB{6,7}, 0.453570536021938, 1e-09); - assert (TAB{7,7}, 0.705316781644046, 1e-09); - ## Test with string ids for categorical variables - brands = {'Gourmet', 'National', 'Generic'; ... - 'Gourmet', 'National', 'Generic'; ... - 'Gourmet', 'National', 'Generic'; ... - 'Gourmet', 'National', 'Generic'; ... - 'Gourmet', 'National', 'Generic'; ... - 'Gourmet', 'National', 'Generic'}; - popper = {'oil', 'oil', 'oil'; 'oil', 'oil', 'oil'; 'oil', 'oil', 'oil'; ... - 'air', 'air', 'air'; 'air', 'air', 'air'; 'air', 'air', 'air'}; - [TAB, STATS] = fitlm ({brands(:),popper(:)},popcorn(:),"interactions",... - "categoricalvars",[1,2],"display","off"); -***** test - load carsmall - X = [Weight,Horsepower,Acceleration]; - [TAB, STATS] = fitlm (X, MPG,"constant","display","off"); - [TAB, STATS] = fitlm (X, MPG,"linear","display","off"); - assert (TAB{2,2}, 47.9767628118615, 1e-09); - assert (TAB{3,2}, -0.00654155878851796, 1e-09); - assert (TAB{4,2}, -0.0429433065881864, 1e-09); - assert (TAB{5,2}, -0.0115826516894871, 1e-09); - assert (TAB{2,3}, 3.87851641748551, 1e-09); - assert (TAB{3,3}, 0.00112741016370336, 1e-09); - assert (TAB{4,3}, 0.0243130608813806, 1e-09); - assert (TAB{5,3}, 0.193325043113178, 1e-09); - assert (TAB{2,6}, 12.369874881944, 1e-09); - assert (TAB{3,6}, -5.80228828790225, 1e-09); - assert (TAB{4,6}, -1.76626492228599, 1e-09); - assert (TAB{5,6}, -0.0599128364487485, 1e-09); - assert (TAB{2,7}, 4.89570341688996e-21, 1e-09); - assert (TAB{3,7}, 9.87424814144e-08, 1e-09); - assert (TAB{4,7}, 0.0807803098213114, 1e-09); - assert (TAB{5,7}, 0.952359384151778, 1e-09); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/nanmax.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/nanmax.m -***** assert (nanmax ([2 4 NaN 7]), 7) -***** assert (nanmax ([2 4 NaN Inf]), Inf) -***** assert (nanmax ([1 NaN 3; NaN 5 6; 7 8 NaN]), [7, 8, 6]) -***** assert (nanmax ([1 NaN 3; NaN 5 6; 7 8 NaN]'), [3, 6, 8]) -***** assert (nanmax (single ([1 NaN 3; NaN 5 6; 7 8 NaN])), single ([7 8 6])) -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/ztest2.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ztest2.m -***** error ztest2 (); -***** error ztest2 (1); -***** error ztest2 (1, 2); -***** error ztest2 (1, 2, 3); -***** error ... - ztest2 (1, 2, 3, 4, "alpha") -***** error ... - ztest2 (1, 2, 3, 4, "alpha", 0); -***** error ... - ztest2 (1, 2, 3, 4, "alpha", 1.2); -***** error ... - ztest2 (1, 2, 3, 4, "alpha", "val"); -***** error ... - ztest2 (1, 2, 3, 4, "tail", "val"); -***** error ... - ztest2 (1, 2, 3, 4, "alpha", 0.01, "tail", "val"); -***** error ... - ztest2 (1, 2, 3, 4, "alpha", 0.01, "tail", "both", "badoption", 3); -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/knnsearch.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/knnsearch.m -***** demo - ## find 10 nearest neighbour of a point using different distance metrics - ## and compare the results by plotting - load fisheriris - X = meas(:,3:4); - Y = species; - point = [5, 1.45]; - - ## calculate 10 nearest-neighbours by minkowski distance - [id, d] = knnsearch (X, point, "K", 10); - - ## calculate 10 nearest-neighbours by minkowski distance - [idm, dm] = knnsearch (X, point, "K", 10, "distance", "minkowski", "p", 5); - - ## calculate 10 nearest-neighbours by chebychev distance - [idc, dc] = knnsearch (X, point, "K", 10, "distance", "chebychev"); - - ## plotting the results - gscatter (X(:,1), X(:,2), species, [.75 .75 0; 0 .75 .75; .75 0 .75], ".", 20); - title ("Fisher's Iris Data - Nearest Neighbors with different types of distance metrics"); - xlabel("Petal length (cm)"); - ylabel("Petal width (cm)"); - - line (point(1), point(2), "marker", "X", "color", "k", ... - "linewidth", 2, "displayname", "query point") - line (X(id,1), X(id,2), "color", [0.5 0.5 0.5], "marker", "o", ... - "linestyle", "none", "markersize", 10, "displayname", "eulcidean") - line (X(idm,1), X(idm,2), "color", [0.5 0.5 0.5], "marker", "d", ... - "linestyle", "none", "markersize", 10, "displayname", "Minkowski") - line (X(idc,1), X(idc,2), "color", [0.5 0.5 0.5], "marker", "p", ... - "linestyle", "none", "markersize", 10, "displayname", "chebychev") - xlim ([4.5 5.5]); - ylim ([1 2]); - axis square; -***** demo - ## knnsearch on iris dataset using kdtree method - load fisheriris - X = meas(:,3:4); - gscatter (X(:,1), X(:,2), species, [.75 .75 0; 0 .75 .75; .75 0 .75], ".", 20); - title ("Fisher's iris dataset : Nearest Neighbors with kdtree search"); - - ## new point to be predicted - point = [5 1.45]; - - line (point(1), point(2), "marker", "X", "color", "k", ... - "linewidth", 2, "displayname", "query point") - - ## knnsearch using kdtree method - [idx, d] = knnsearch (X, point, "K", 10, "NSMethod", "kdtree"); - - ## plotting predicted neighbours - line (X(idx,1), X(idx,2), "color", [0.5 0.5 0.5], "marker", "o", ... - "linestyle", "none", "markersize", 10, ... - "displayname", "nearest neighbour") - xlim ([4 6]) - ylim ([1 3]) - axis square - ## details of predicted labels - tabulate (species(idx)) - - ctr = point - d(end); - diameter = 2 * d(end); - ## Draw a circle around the 10 nearest neighbors. - h = rectangle ("position", [ctr, diameter, diameter], "curvature", [1 1]); - - ## here only 8 neighbours are plotted instead of 10 since the dataset - ## contains duplicate values -***** shared X, Y - X = [1, 2, 3, 4; 2, 3, 4, 5; 3, 4, 5, 6]; - Y = [1, 2, 2, 3; 2, 3, 3, 4]; -***** test - [idx, D] = knnsearch (X, Y, "Distance", "euclidean"); - assert (idx, [1; 1]); - assert (D, ones (2, 1) * sqrt (2)); -***** test - eucldist = @(v,m) sqrt(sumsq(repmat(v,rows(m),1)-m,2)); - [idx, D] = knnsearch (X, Y, "Distance", eucldist); - assert (idx, [1; 1]); - assert (D, ones (2, 1) * sqrt (2)); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "euclidean", "includeties", true); - assert (iscell (idx), true); - assert (iscell (D), true) - assert (idx {1}, [1]); - assert (idx {2}, [1, 2]); - assert (D{1}, ones (1, 1) * sqrt (2)); - assert (D{2}, ones (1, 2) * sqrt (2)); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "euclidean", "k", 2); - assert (idx, [1, 2; 1, 2]); - assert (D, [sqrt(2), 3.162277660168380; sqrt(2), sqrt(2)], 1e-14); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "seuclidean"); - assert (idx, [1; 1]); - assert (D, ones (2, 1) * sqrt (2)); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "seuclidean", "k", 2); - assert (idx, [1, 2; 1, 2]); - assert (D, [sqrt(2), 3.162277660168380; sqrt(2), sqrt(2)], 1e-14); -***** test - xx = [1, 2; 1, 3; 2, 4; 3, 6]; - yy = [2, 4; 2, 6]; - [idx, D] = knnsearch (xx, yy, "Distance", "mahalanobis"); - assert (idx, [3; 2]); - assert (D, [0; 3.162277660168377], 1e-14); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "minkowski"); - assert (idx, [1; 1]); - assert (D, ones (2, 1) * sqrt (2)); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "minkowski", "p", 3); - assert (idx, [1; 1]); - assert (D, ones (2, 1) * 1.259921049894873, 1e-14); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "cityblock"); - assert (idx, [1; 1]); - assert (D, [2; 2]); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "chebychev"); - assert (idx, [1; 1]); - assert (D, [1; 1]); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "cosine"); - assert (idx, [2; 3]); - assert (D, [0.005674536395645; 0.002911214328620], 1e-14); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "correlation"); - assert (idx, [1; 1]); - assert (D, ones (2, 1) * 0.051316701949486, 1e-14); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "spearman"); - assert (idx, [1; 1]); - assert (D, ones (2, 1) * 0.051316701949486, 1e-14); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "hamming"); - assert (idx, [1; 1]); - assert (D, [0.5; 0.5]); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "jaccard"); - assert (idx, [1; 1]); - assert (D, [0.5; 0.5]); -***** test - [idx, D] = knnsearch (X, Y, "Distance", "jaccard", "k", 2); - assert (idx, [1, 2; 1, 2]); - assert (D, [0.5, 1; 0.5, 0.5]); -***** test - a = [1, 5; 1, 2; 2, 2; 1.5, 1.5; 5, 1; 2 -1.34; 1, -3; 4, -4; -3, 1; 8, 9]; - b = [1, 1]; - [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "kdtree", "includeties", true); - assert (iscell (idx), true); - assert (iscell (D), true) - assert (cell2mat (idx), [4, 2, 3, 6, 1, 5, 7, 9]); - assert (cell2mat (D), [0.7071, 1.0000, 1.4142, 2.5447, 4.0000, 4.0000, 4.0000, 4.0000],1e-4); -***** test - a = [1, 5; 1, 2; 2, 2; 1.5, 1.5; 5, 1; 2 -1.34; 1, -3; 4, -4; -3, 1; 8, 9]; - b = [1, 1]; - [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "exhaustive", "includeties", true); - assert (iscell (idx), true); - assert (iscell (D), true) - assert (cell2mat (idx), [4, 2, 3, 6, 1, 5, 7, 9]); - assert (cell2mat (D), [0.7071, 1.0000, 1.4142, 2.5447, 4.0000, 4.0000, 4.0000, 4.0000],1e-4); -***** test - a = [1, 5; 1, 2; 2, 2; 1.5, 1.5; 5, 1; 2 -1.34; 1, -3; 4, -4; -3, 1; 8, 9]; - b = [1, 1]; - [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "kdtree", "includeties", false); - assert (iscell (idx), false); - assert (iscell (D), false) - assert (idx, [4, 2, 3, 6, 1]); - assert (D, [0.7071, 1.0000, 1.4142, 2.5447, 4.0000],1e-4); -***** test - a = [1, 5; 1, 2; 2, 2; 1.5, 1.5; 5, 1; 2 -1.34; 1, -3; 4, -4; -3, 1; 8, 9]; - b = [1, 1]; - [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "exhaustive", "includeties", false); - assert (iscell (idx), false); - assert (iscell (D), false) - assert (idx, [4, 2, 3, 6, 1]); - assert (D, [0.7071, 1.0000, 1.4142, 2.5447, 4.0000],1e-4); -***** test - load fisheriris - a = meas; - b = min(meas); - [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "kdtree"); - assert (idx, [42, 9, 14, 39, 13]); - assert (D, [0.5099, 0.9950, 1.0050, 1.0536, 1.1874],1e-4); -***** test - load fisheriris - a = meas; - b = mean(meas); - [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "kdtree"); - assert (idx, [65, 83, 89, 72, 100]); - assert (D, [0.3451, 0.3869, 0.4354, 0.4481, 0.4625],1e-4); -***** test - load fisheriris - a = meas; - b = max(meas); - [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "kdtree"); - assert (idx, [118, 132, 110, 106, 136]); - assert (D, [0.7280, 0.9274, 1.3304, 1.5166, 1.6371],1e-4); - -***** test - load fisheriris - a = meas; - b = max(meas); - [idx, D] = knnsearch (a, b, "K", 5, "includeties", true); - assert ( iscell (idx), true); - assert ( iscell (D), true); - assert (cell2mat (idx), [118, 132, 110, 106, 136]); - assert (cell2mat (D), [0.7280, 0.9274, 1.3304, 1.5166, 1.6371],1e-4); -***** error knnsearch (1) -***** error ... - knnsearch (ones (4, 5), ones (4)) -***** error ... - knnsearch (ones (4, 2), ones (3, 2), "Distance", "euclidean", "some", "some") -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "scale", ones (1, 5), "P", 3) -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "K", 0) -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "P",-2) -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "scale", ones(4,5), "distance", "euclidean") -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "cov", ["some" "some"]) -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "cov", ones(4,5), "distance", "euclidean") -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "bucketsize", -1) -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "cosine") -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "mahalanobis") -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "correlation") -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "seuclidean") -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "spearman") -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "hamming") -***** error ... - knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "jaccard") -42 tests, 42 passed, 0 known failure, 0 skipped -[inst/nansum.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/nansum.m -***** assert (nansum ([2 4 NaN 7]), 13) -***** assert (nansum ([2 4 NaN Inf]), Inf) -***** assert (nansum ([1 NaN 3; NaN 5 6; 7 8 NaN]), [8 13 9]) -***** assert (nansum ([1 NaN 3; NaN 5 6; 7 8 NaN], 2), [4; 11; 15]) -***** assert (nansum (single ([1 NaN 3; NaN 5 6; 7 8 NaN])), single ([8 13 9])) -***** assert (nansum (single ([1 NaN 3; NaN 5 6; 7 8 NaN]), "double"), [8 13 9]) -***** assert (nansum (uint8 ([2 4 1 7])), 14) -***** assert (nansum (uint8 ([2 4 1 7]), "native"), uint8 (14)) -***** assert (nansum (uint8 ([2 4 1 7])), 14) -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/datasample.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/datasample.m -***** error datasample(); -***** error datasample(1); -***** error datasample({1, 2, 3}, 1); -***** error datasample([1 2], -1); -***** error datasample([1 2], 1.5); -***** error datasample([1 2], [1 1]); -***** error datasample([1 2], 'g', [1 1]); -***** error datasample([1 2], 1, -1); -***** error datasample([1 2], 1, 1.5); -***** error datasample([1 2], 1, [1 1]); -***** error datasample([1 2], 1, 1, "Replace", -2); -***** error datasample([1 2], 1, 1, "Weights", "abc"); -***** error datasample([1 2], 1, 1, "Weights", [1 -2 3]); -***** error datasample([1 2], 1, 1, "Weights", ones (2)); -***** error datasample([1 2], 1, 1, "Weights", [1 2 3]); -***** test - dat = randn (10, 4); - assert (size (datasample (dat, 3, 1)), [3 4]); -***** test - dat = randn (10, 4); - assert (size (datasample (dat, 3, 2)), [10 3]); -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/grp2idx.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/grp2idx.m -***** test - in = [true false false true]; - out = {[1; 2; 2; 1] {"1"; "0"} [true; false]}; - assert (nthargout (1:3, @grp2idx, in), out) - assert (nthargout (1:3, @grp2idx, in), nthargout (1:3, @grp2idx, in')) -***** test - assert (nthargout (1:3, @grp2idx, [false, true]), - {[1; 2] {"0"; "1"} [false; true]}); - assert (nthargout (1:3, @grp2idx, [true, false]), - {[1; 2] {"1"; "0"} [true; false]}); -***** assert (nthargout (1:3, @grp2idx, ["oct"; "sci"; "oct"; "oct"; "sci"]), - {[1; 2; 1; 1; 2] {"oct"; "sci"} ["oct"; "sci"]}); -***** assert (nthargout (1:3, @grp2idx, {"oct"; "sci"; "oct"; "oct"; "sci"}), - {[1; 2; 1; 1; 2] {"oct"; "sci"} {"oct"; "sci"}}); -***** assert (nthargout (1:3, @grp2idx, [ 1 -3 -2 -3 -3 2 1 -1 3 -3]), - {[1; 2; 3; 2; 2; 4; 1; 5; 6; 2], {"1"; "-3"; "-2"; "2"; "-1"; "3"}, ... - [1; -3; -2; 2; -1; 3]}); -***** assert (nthargout (1:3, @grp2idx, [2 2 3 NaN 2 3]), - {[1; 1; 2; NaN; 1; 2] {"2"; "3"} [2; 3]}) -***** assert (nthargout (1:3, @grp2idx, {"et" "sa" "sa" "" "et"}), - {[1; 2; 2; NaN; 1] {"et"; "sa"} {"et"; "sa"}}) -***** test assert (nthargout (1:3, @grp2idx, ["sci"; "oct"; "sci"; "oct"; "oct"]), - {[1; 2; 1; 2; 2] {"sci"; "oct"} ["sci"; "oct"]}); -***** test assert (nthargout (1:3, @grp2idx, {"sci"; "oct"; "sci"; "oct"; "oct"}), - {[1; 2; 1; 2; 2] {"sci"; "oct"} {"sci"; "oct"}}); -***** test assert (nthargout (1:3, @grp2idx, {"sa" "et" "et" "" "sa"}), - {[1; 2; 2; NaN; 1] {"sa"; "et"} {"sa"; "et"}}) -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/kmeans.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/kmeans.m -***** demo - ## Generate a two-cluster problem - randn ("seed", 31) # for reproducibility - C1 = randn (100, 2) + 1; - randn ("seed", 32) # for reproducibility - C2 = randn (100, 2) - 1; - data = [C1; C2]; - - ## Perform clustering - rand ("seed", 1) # for reproducibility - [idx, centers] = kmeans (data, 2); - - ## Plot the result - figure; - plot (data (idx==1, 1), data (idx==1, 2), "ro"); - hold on; - plot (data (idx==2, 1), data (idx==2, 2), "bs"); - plot (centers (:, 1), centers (:, 2), "kv", "markersize", 10); - hold off; -***** demo - ## Cluster data using k-means clustering, then plot the cluster regions - ## Load Fisher's iris data set and use the petal lengths and widths as - ## predictors - - load fisheriris - X = meas(:,3:4); - - figure; - plot (X(:,1), X(:,2), "k*", "MarkerSize", 5); - title ("Fisher's Iris Data"); - xlabel ("Petal Lengths (cm)"); - ylabel ("Petal Widths (cm)"); - - ## Cluster the data. Specify k = 3 clusters - rand ("seed", 1) # for reproducibility - [idx, C] = kmeans (X, 3); - x1 = min (X(:,1)):0.01:max (X(:,1)); - x2 = min (X(:,2)):0.01:max (X(:,2)); - [x1G, x2G] = meshgrid (x1, x2); - XGrid = [x1G(:), x2G(:)]; - - idx2Region = kmeans (XGrid, 3, "MaxIter", 1, "Start", C); - figure; - gscatter (XGrid(:,1), XGrid(:,2), idx2Region, ... - [0, 0.75, 0.75; 0.75, 0, 0.75; 0.75, 0.75, 0], ".."); - hold on; - plot (X(:,1), X(:,2), "k*", "MarkerSize", 5); - title ("Fisher's Iris Data"); - xlabel ("Petal Lengths (cm)"); - ylabel ("Petal Widths (cm)"); - legend ("Region 1", "Region 2", "Region 3", "Data", "Location", "SouthEast"); - hold off -***** demo - ## Partition Data into Two Clusters - - randn ("seed", 1) # for reproducibility - r1 = randn (100, 2) * 0.75 + ones (100, 2); - randn ("seed", 2) # for reproducibility - r2 = randn (100, 2) * 0.5 - ones (100, 2); - X = [r1; r2]; - - figure; - plot (X(:,1), X(:,2), "."); - title ("Randomly Generated Data"); - rand ("seed", 1) # for reproducibility - [idx, C] = kmeans (X, 2, "Distance", "cityblock", ... - "Replicates", 5, "Display", "final"); - figure; - plot (X(idx==1,1), X(idx==1,2), "r.", "MarkerSize", 12); - hold on - plot(X(idx==2,1), X(idx==2,2), "b.", "MarkerSize", 12); - plot (C(:,1), C(:,2), "kx", "MarkerSize", 15, "LineWidth", 3); - legend ("Cluster 1", "Cluster 2", "Centroids", "Location", "NorthWest"); - title ("Cluster Assignments and Centroids"); - hold off -***** demo - ## Assign New Data to Existing Clusters - - ## Generate a training data set using three distributions - randn ("seed", 5) # for reproducibility - r1 = randn (100, 2) * 0.75 + ones (100, 2); - randn ("seed", 7) # for reproducibility - r2 = randn (100, 2) * 0.5 - ones (100, 2); - randn ("seed", 9) # for reproducibility - r3 = randn (100, 2) * 0.75; - X = [r1; r2; r3]; - - ## Partition the training data into three clusters by using kmeans - - rand ("seed", 1) # for reproducibility - [idx, C] = kmeans (X, 3); - - ## Plot the clusters and the cluster centroids - - figure - gscatter (X(:,1), X(:,2), idx, "bgm", "***"); - hold on - plot (C(:,1), C(:,2), "kx"); - legend ("Cluster 1", "Cluster 2", "Cluster 3", "Cluster Centroid") - - ## Generate a test data set - randn ("seed", 25) # for reproducibility - r1 = randn (100, 2) * 0.75 + ones (100, 2); - randn ("seed", 27) # for reproducibility - r2 = randn (100, 2) * 0.5 - ones (100, 2); - randn ("seed", 29) # for reproducibility - r3 = randn (100, 2) * 0.75; - Xtest = [r1; r2; r3]; - - ## Classify the test data set using the existing clusters - ## Find the nearest centroid from each test data point by using pdist2 - - D = pdist2 (C, Xtest, "euclidean"); - [group, ~] = find (D == min (D)); - - ## Plot the test data and label the test data using idx_test with gscatter - - gscatter (Xtest(:,1), Xtest(:,2), group, "bgm", "ooo"); - legend ("Cluster 1", "Cluster 2", "Cluster 3", "Cluster Centroid", ... - "Data classified to Cluster 1", "Data classified to Cluster 2", ... - "Data classified to Cluster 3", "Location", "NorthWest"); - title ("Assign New Data to Existing Clusters"); -***** test - samples = 4; - dims = 3; - k = 2; - [cls, c, d, z] = kmeans (rand (samples,dims), k, "start", rand (k,dims, 5), - "emptyAction", "singleton"); - assert (size (cls), [samples, 1]); - assert (size (c), [k, dims]); - assert (size (d), [k, 1]); - assert (size (z), [samples, k]); -***** test - samples = 4; - dims = 3; - k = 2; - [cls, c, d, z] = kmeans (rand (samples,dims), [], "start", rand (k,dims, 5), - "emptyAction", "singleton"); - assert (size (cls), [samples, 1]); - assert (size (c), [k, dims]); - assert (size (d), [k, 1]); - assert (size (z), [samples, k]); -***** test - [cls, c] = kmeans ([1 0; 2 0], 2, "start", [8,0;0,8], "emptyaction", "drop"); - assert (cls, [1; 1]); - assert (c, [1.5, 0; NA, NA]); -***** test - kmeans (rand (4,3), 2, "start", rand (2,3, 5), "replicates", 5, - "emptyAction", "singleton"); -***** test - kmeans (rand (3,4), 2, "start", "sample", "emptyAction", "singleton"); -***** test - kmeans (rand (3,4), 2, "start", "plus", "emptyAction", "singleton"); -***** test - kmeans (rand (3,4), 2, "start", "cluster", "emptyAction", "singleton"); -***** test - kmeans (rand (3,4), 2, "start", "uniform", "emptyAction", "singleton"); -***** test - kmeans (rand (4,3), 2, "distance", "sqeuclidean", "emptyAction", "singleton"); -***** test - kmeans (rand (4,3), 2, "distance", "cityblock", "emptyAction", "singleton"); -***** test - kmeans (rand (4,3), 2, "distance", "cosine", "emptyAction", "singleton"); -***** test - kmeans (rand (4,3), 2, "distance", "correlation", "emptyAction", "singleton"); -***** test - kmeans (rand (4,3), 2, "distance", "hamming", "emptyAction", "singleton"); -***** test - kmeans ([1 0; 1.1 0], 2, "start", eye(2), "emptyaction", "singleton"); -***** error kmeans (rand (3,2), 4); -***** error kmeans ([1 0; 1.1 0], 2, "start", eye(2), "emptyaction", "panic"); -***** error kmeans (rand (4,3), 2, "start", rand (2,3, 5), "replicates", 1); -***** error kmeans (rand (4,3), 2, "start", rand (2,2)); -***** error kmeans (rand (4,3), 2, "distance", "manhattan"); -***** error kmeans (rand (3,4), 2, "start", "normal"); -***** error kmeans (rand (4,3), 2, "replicates", i); -***** error kmeans (rand (4,3), 2, "replicates", -1); -***** error kmeans (rand (4,3), 2, "replicates", []); -***** error kmeans (rand (4,3), 2, "replicates", [1 2]); -***** error kmeans (rand (4,3), 2, "replicates", "one"); -***** error kmeans (rand (4,3), 2, "MAXITER", i); -***** error kmeans (rand (4,3), 2, "MaxIter", -1); -***** error kmeans (rand (4,3), 2, "maxiter", []); -***** error kmeans (rand (4,3), 2, "maxiter", [1 2]); -***** error kmeans (rand (4,3), 2, "maxiter", "one"); -***** error kmeans ([1 0; 1.1 0], 2, "start", eye(2), "emptyaction", "error"); -31 tests, 31 passed, 0 known failure, 0 skipped -[inst/hotelling_t2test2.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/hotelling_t2test2.m -***** error hotelling_t2test2 (); -***** error ... - hotelling_t2test2 ([2, 3, 4, 5, 6]); -***** error ... - hotelling_t2test2 (1, [2, 3, 4, 5, 6]); -***** error ... - hotelling_t2test2 (ones (2,2,2), [2, 3, 4, 5, 6]); -***** error ... - hotelling_t2test2 ([2, 3, 4, 5, 6], 2); -***** error ... - hotelling_t2test2 ([2, 3, 4, 5, 6], ones (2,2,2)); -***** error ... - hotelling_t2test2 (ones (20,2), ones (20,2), "alpha", 1); -***** error ... - hotelling_t2test2 (ones (20,2), ones (20,2), "alpha", -0.2); -***** error ... - hotelling_t2test2 (ones (20,2), ones (20,2), "alpha", "a"); -***** error ... - hotelling_t2test2 (ones (20,2), ones (20,2), "alpha", [0.01, 0.05]); -***** error ... - hotelling_t2test2 (ones (20,2), ones (20,2), "name", 0.01); -***** error ... - hotelling_t2test2 (ones (20,1), ones (20,2)); -***** error ... - hotelling_t2test2 (ones (20,2), ones (25,3)); -***** test - randn ("seed", 1); - x1 = randn (60000, 5); - randn ("seed", 5); - x2 = randn (30000, 5); - [h, pval, stats] = hotelling_t2test2 (x1, x2); - assert (h, 0); - assert (stats.df1, 5); - assert (stats.df2, 89994); -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/cholcov.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cholcov.m -***** demo - C1 = [2, 1, 1, 2; 1, 2, 1, 2; 1, 1, 2, 2; 2, 2, 2, 3] - T = cholcov (C1) - C2 = T'*T -***** test - C1 = [2, 1, 1, 2; 1, 2, 1, 2; 1, 1, 2, 2; 2, 2, 2, 3]; - T = cholcov (C1); - assert (C1, T'*T, 1e-15 * ones (size (C1))); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/linkage.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/linkage.m -***** shared x, t - x = reshape (mod (magic (6),5), [], 3); - t = 1e-6; -***** assert (cond (linkage (pdist (x))), 34.119045, t); -***** assert (cond (linkage (pdist (x), "complete")), 21.793345, t); -***** assert (cond (linkage (pdist (x), "average")), 27.045012, t); -***** assert (cond (linkage (pdist (x), "weighted")), 27.412889, t); - lastwarn(); # Clear last warning before the test -***** warning linkage (pdist (x), "centroid"); -***** test - warning off Octave:clustering - assert (cond (linkage (pdist (x), "centroid")), 27.457477, t); - warning on Octave:clustering -***** warning linkage (pdist (x), "median"); -***** test - warning off Octave:clustering - assert (cond (linkage (pdist (x), "median")), 27.683325, t); - warning on Octave:clustering -***** assert (cond (linkage (pdist (x), "ward")), 17.195198, t); -***** assert (cond (linkage (x, "ward", "euclidean")), 17.195198, t); -***** assert (cond (linkage (x, "ward", {"euclidean"})), 17.195198, t); -***** assert (cond (linkage (x, "ward", {"minkowski", 2})), 17.195198, t); -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/combnk.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/combnk.m -***** demo - c = combnk (1:5, 2); - disp ("All pairs of integers between 1 and 5:"); - disp (c); -***** test - c = combnk (1:3, 2); - assert (c, [1, 2; 1, 3; 2, 3]); -***** test - c = combnk (1:3, 6); - assert (isempty (c)); -***** test - c = combnk ({1, 2, 3}, 2); - assert (c, {1, 2; 1, 3; 2, 3}); -***** test - c = combnk ("hello", 2); - assert (c, ["lo"; "lo"; "ll"; "eo"; "el"; "el"; "ho"; "hl"; "hl"; "he"]); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/kstest2.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/kstest2.m -***** error kstest2 ([1,2,3,4,5,5]) -***** error kstest2 (ones(2,4), [1,2,3,4,5,5]) -***** error kstest2 ([2,3,5,7,3+3i], [1,2,3,4,5,5]) -***** error kstest2 ([2,3,4,5,6],[3;5;7;8;7;6;5],"tail") -***** error kstest2 ([2,3,4,5,6],[3;5;7;8;7;6;5],"tail", "whatever") -***** error kstest2 ([2,3,4,5,6],[3;5;7;8;7;6;5],"badoption", 0.51) -***** error kstest2 ([2,3,4,5,6],[3;5;7;8;7;6;5],"tail", 0) -***** error kstest2 ([2,3,4,5,6],[3;5;7;8;7;6;5],"alpha", 0) -***** error kstest2 ([2,3,4,5,6],[3;5;7;8;7;6;5],"alpha", NaN) -***** error kstest2 ([NaN,NaN,NaN,NaN,NaN],[3;5;7;8;7;6;5],"tail", "unequal") -***** test - load examgrades - [h, p] = kstest2 (grades(:,1), grades(:,2)); - assert (h, false); - assert (p, 0.1222791870137312, 1e-14); -***** test - load examgrades - [h, p] = kstest2 (grades(:,1), grades(:,2), "tail", "larger"); - assert (h, false); - assert (p, 0.1844421391011258, 1e-14); -***** test - load examgrades - [h, p] = kstest2 (grades(:,1), grades(:,2), "tail", "smaller"); - assert (h, false); - assert (p, 0.06115357930171663, 1e-14); -***** test - load examgrades - [h, p] = kstest2 (grades(:,1), grades(:,2), "tail", "smaller", "alpha", 0.1); - assert (h, true); - assert (p, 0.06115357930171663, 1e-14); -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/regress_gp.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/regress_gp.m -***** demo - ## Linear fitting of 1D Data - rand ("seed", 125); - X = 2 * rand (5, 1) - 1; - randn ("seed", 25); - Y = 2 * X - 1 + 0.3 * randn (5, 1); - - ## Points for interpolation/extrapolation - Xfit = linspace (-2, 2, 10)'; - - ## Fit regression model - [Yfit, Yint, m] = regress_gp (X, Y, Xfit); - - ## Plot fitted data - plot (X, Y, "xk", Xfit, Yfit, "r-", Xfit, Yint, "b-"); - title ("Gaussian process regression with linear kernel"); -***** demo - ## Linear fitting of 2D Data - rand ("seed", 135); - X = 2 * rand (4, 2) - 1; - randn ("seed", 35); - Y = 2 * X(:,1) - 3 * X(:,2) - 1 + 1 * randn (4, 1); - - ## Mesh for interpolation/extrapolation - [x1, x2] = meshgrid (linspace (-1, 1, 10)); - Xfit = [x1(:), x2(:)]; - - ## Fit regression model - [Ypred, Yint, Ysd] = regress_gp (X, Y, Xfit); - Ypred = reshape (Ypred, 10, 10); - YintU = reshape (Yint(:,1), 10, 10); - YintL = reshape (Yint(:,2), 10, 10); - - ## Plot fitted data - plot3 (X(:,1), X(:,2), Y, ".k", "markersize", 16); - hold on; - h = mesh (x1, x2, Ypred, zeros (10, 10)); - set (h, "facecolor", "none", "edgecolor", "yellow"); - h = mesh (x1, x2, YintU, ones (10, 10)); - set (h, "facecolor", "none", "edgecolor", "cyan"); - h = mesh (x1, x2, YintL, ones (10, 10)); - set (h, "facecolor", "none", "edgecolor", "cyan"); - hold off - axis tight - view (75, 25) - title ("Gaussian process regression with linear kernel"); -***** demo - ## Projection over basis function with linear kernel - pp = [2, 2, 0.3, 1]; - n = 10; - rand ("seed", 145); - X = 2 * rand (n, 1) - 1; - randn ("seed", 45); - Y = polyval (pp, X) + 0.3 * randn (n, 1); - - ## Powers - px = [sqrt(abs(X)), X, X.^2, X.^3]; - - ## Points for interpolation/extrapolation - Xfit = linspace (-1, 1, 100)'; - pxi = [sqrt(abs(Xfit)), Xfit, Xfit.^2, Xfit.^3]; - - ## Define a prior covariance assuming that the sqrt component is not present - Sp = 100 * eye (size (px, 2) + 1); - Sp(2,2) = 1; # We don't believe the sqrt(abs(X)) is present - - ## Fit regression model - [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi, Sp); - - ## Plot fitted data - plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... - Xfit, polyval (pp, Xfit), "g-;True;"); - axis tight - axis manual - hold on - plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); - hold off - title ("Linear kernel over basis function with prior covariance"); -***** demo - ## Projection over basis function with linear kernel - pp = [2, 2, 0.3, 1]; - n = 10; - rand ("seed", 145); - X = 2 * rand (n, 1) - 1; - randn ("seed", 45); - Y = polyval (pp, X) + 0.3 * randn (n, 1); - - ## Powers - px = [sqrt(abs(X)), X, X.^2, X.^3]; - - ## Points for interpolation/extrapolation - Xfit = linspace (-1, 1, 100)'; - pxi = [sqrt(abs(Xfit)), Xfit, Xfit.^2, Xfit.^3]; - - ## Fit regression model without any assumption on prior covariance - [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi); - - ## Plot fitted data - plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... - Xfit, polyval (pp, Xfit), "g-;True;"); - axis tight - axis manual - hold on - plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); - hold off - title ("Linear kernel over basis function without prior covariance"); -***** demo - ## Projection over basis function with rbf kernel - pp = [2, 2, 0.3, 1]; - n = 10; - rand ("seed", 145); - X = 2 * rand (n, 1) - 1; - randn ("seed", 45); - Y = polyval (pp, X) + 0.3 * randn (n, 1); - - ## Powers - px = [sqrt(abs(X)), X, X.^2, X.^3]; - - ## Points for interpolation/extrapolation - Xfit = linspace (-1, 1, 100)'; - pxi = [sqrt(abs(Xfit)), Xfit, Xfit.^2, Xfit.^3]; - - ## Fit regression model with RBF kernel (standard parameters) - [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi, "rbf"); - - ## Plot fitted data - plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... - Xfit, polyval (pp, Xfit), "g-;True;"); - axis tight - axis manual - hold on - plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); - hold off - title ("RBF kernel over basis function with standard parameters"); - text (-0.5, 4, "theta = 5\n g = 0.01"); -***** demo - ## Projection over basis function with rbf kernel - pp = [2, 2, 0.3, 1]; - n = 10; - rand ("seed", 145); - X = 2 * rand (n, 1) - 1; - randn ("seed", 45); - Y = polyval (pp, X) + 0.3 * randn (n, 1); - - ## Powers - px = [sqrt(abs(X)), X, X.^2, X.^3]; - - ## Points for interpolation/extrapolation - Xfit = linspace (-1, 1, 100)'; - pxi = [sqrt(abs(Xfit)), Xfit, Xfit.^2, Xfit.^3]; - - ## Fit regression model with RBF kernel with different parameters - [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi, "rbf", 10, 0.01); - - ## Plot fitted data - plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... - Xfit, polyval (pp, Xfit), "g-;True;"); - axis tight - axis manual - hold on - plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); - hold off - title ("GP regression with RBF kernel and non default parameters"); - text (-0.5, 4, "theta = 10\n g = 0.01"); - - ## Fit regression model with RBF kernel with different parameters - [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi, "rbf", 50, 0.01); - - ## Plot fitted data - figure - plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... - Xfit, polyval (pp, Xfit), "g-;True;"); - axis tight - axis manual - hold on - plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); - hold off - title ("GP regression with RBF kernel and non default parameters"); - text (-0.5, 4, "theta = 50\n g = 0.01"); - - ## Fit regression model with RBF kernel with different parameters - [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi, "rbf", 50, 0.001); - - ## Plot fitted data - figure - plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... - Xfit, polyval (pp, Xfit), "g-;True;"); - axis tight - axis manual - hold on - plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); - hold off - title ("GP regression with RBF kernel and non default parameters"); - text (-0.5, 4, "theta = 50\n g = 0.001"); - - ## Fit regression model with RBF kernel with different parameters - [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi, "rbf", 50, 0.05); - - ## Plot fitted data - figure - plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... - Xfit, polyval (pp, Xfit), "g-;True;"); - axis tight - axis manual - hold on - plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); - hold off - title ("GP regression with RBF kernel and non default parameters"); - text (-0.5, 4, "theta = 50\n g = 0.05"); -***** demo - ## RBF fitting on noiseless 1D Data - x = [0:2*pi/7:2*pi]'; - y = 5 * sin (x); - - ## Predictive grid of 500 equally spaced locations - xi = [-0.5:(2*pi+1)/499:2*pi+0.5]'; - - ## Fit regression model with RBF kernel - [Yfit, Yint, Ysd] = regress_gp (x, y, xi, "rbf"); - - ## Plot fitted data - r = mvnrnd (Yfit, diag (Ysd)', 50); - plot (xi, r', "c-"); - hold on - plot (xi, Yfit, "r-;Estimation;", xi, Yint, "b-;Confidence interval;"); - plot (x, y, ".k;Predictor points;", "markersize", 20) - plot (xi, 5 * sin (xi), "-y;True Function;"); - xlim ([-0.5,2*pi+0.5]); - ylim ([-10,10]); - hold off - title ("GP regression with RBF kernel on noiseless 1D data"); - text (0, -7, "theta = 5\n g = 0.01"); -***** demo - ## RBF fitting on noisy 1D Data - x = [0:2*pi/7:2*pi]'; - x = [x; x]; - y = 5 * sin (x) + randn (size (x)); - - ## Predictive grid of 500 equally spaced locations - xi = [-0.5:(2*pi+1)/499:2*pi+0.5]'; - - ## Fit regression model with RBF kernel - [Yfit, Yint, Ysd] = regress_gp (x, y, xi, "rbf"); - - ## Plot fitted data - r = mvnrnd (Yfit, diag (Ysd)', 50); - plot (xi, r', "c-"); - hold on - plot (xi, Yfit, "r-;Estimation;", xi, Yint, "b-;Confidence interval;"); - plot (x, y, ".k;Predictor points;", "markersize", 20) - plot (xi, 5 * sin (xi), "-y;True Function;"); - xlim ([-0.5,2*pi+0.5]); - ylim ([-10,10]); - hold off - title ("GP regression with RBF kernel on noisy 1D data"); - text (0, -7, "theta = 5\n g = 0.01"); -***** error regress_gp (ones (20, 2)) -***** error regress_gp (ones (20, 2), ones (20, 1)) -***** error ... - regress_gp (ones (20, 2, 3), ones (20, 1), ones (20, 2)) -***** error ... - regress_gp (ones (20, 2), ones (20, 2), ones (20, 2)) -***** error ... - regress_gp (ones (20, 2), ones (15, 1), ones (20, 2)) -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (20, 3)) -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), {[3]}) -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "kernel") -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", ones (4)) -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "linear", 1) -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", "value") -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", {5}) -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), ones (3), 5) -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "linear", 5) -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", 5, {5}) -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", 5, ones (2)) -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), 5, 0.01, [1, 1]) -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), 5, 0.01, "f") -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), 5, 0.01, "f") -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", 5, 0.01, "f") -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", 5, 0.01, [1, 1]) -***** error ... - regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "linear", 1) -22 tests, 22 passed, 0 known failure, 0 skipped -[inst/dendrogram.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dendrogram.m -***** demo - ## simple dendrogram - y = [4, 5; 2, 6; 3, 7; 8, 9; 1, 10]; - y(:,3) = 1:5; - dendrogram (y); - title ("simple dendrogram"); -***** demo - ## another simple dendrogram - v = 2 * rand (30, 1) - 1; - d = abs (bsxfun (@minus, v(:, 1), v(:, 1)')); - y = linkage (squareform (d, "tovector")); - dendrogram (y); - title ("another simple dendrogram"); -***** demo - ## collapsed tree, find all the leaves of node 5 - X = randn (60, 2); - D = pdist (X); - y = linkage (D, "average"); - subplot (2, 1, 1); - title ("original tree"); - dendrogram (y, 0); - subplot (2, 1, 2); - title ("collapsed tree"); - [~, t] = dendrogram (y, 20); - find(t == 5) -***** demo - ## optimal leaf order - X = randn (30, 2); - D = pdist (X); - y = linkage (D, "average"); - order = optimalleaforder (y, D); - subplot (2, 1, 1); - title ("original leaf order"); - dendrogram (y); - subplot (2, 1, 2); - title ("optimal leaf order"); - dendrogram (y, "Reorder", order); -***** demo - ## horizontal orientation and labels - X = randn (8, 2); - D = pdist (X); - L = ["Snow White"; "Doc"; "Grumpy"; "Happy"; "Sleepy"; "Bashful"; ... - "Sneezy"; "Dopey"]; - y = linkage (D, "average"); - dendrogram (y, "Orientation", "left", "Labels", L); - title ("horizontal orientation and labels"); -***** shared visibility_setting - visibility_setting = get (0, "DefaultFigureVisible"); -***** test - hf = figure ("visible", "off"); - unwind_protect - y = [4, 5; 2, 6; 3, 7; 8, 9; 1, 10]; - y(:,3) = 1:5; - dendrogram (y); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** test - hf = figure ("visible", "off"); - unwind_protect - y = [4, 5; 2, 6; 3, 7; 8, 9; 1, 10]; - y(:,3) = 1:5; - dendrogram (y); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** test - hf = figure ("visible", "off"); - unwind_protect - v = 2 * rand (30, 1) - 1; - d = abs (bsxfun (@minus, v(:, 1), v(:, 1)')); - y = linkage (squareform (d, "tovector")); - dendrogram (y); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** test - hf = figure ("visible", "off"); - unwind_protect - X = randn (30, 2); - D = pdist (X); - y = linkage (D, "average"); - order = optimalleaforder (y, D); - subplot (2, 1, 1); - title ("original leaf order"); - dendrogram (y); - subplot (2, 1, 2); - title ("optimal leaf order"); - dendrogram (y, "Reorder", order); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** error dendrogram (); -***** error dendrogram (ones (2, 2), 1); -***** error dendrogram ([1 2 1], 1, "xxx", "xxx"); -***** error dendrogram ([1 2 1], "Reorder", "xxx"); -***** error dendrogram ([1 2 1], "Reorder", [1 2 3 4]); - fail ('dendrogram ([1 2 1], "Orientation", "north")', "invalid orientation .*") -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/grpstats.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/grpstats.m -***** demo - load carsmall; - [m,p,g] = grpstats (Weight, Model_Year, {"mean", "predci", "gname"}) - n = length(m); - errorbar((1:n)',m,p(:,2)-m); - set (gca, "xtick", 1:n, "xticklabel", g); - title ("95% prediction intervals for mean weight by year"); -***** demo - load carsmall; - [m,p,g] = grpstats ([Acceleration,Weight/1000],Cylinders, ... - {"mean", "meanci", "gname"}, 0.05) - [c,r] = size (m); - errorbar((1:c)'.*ones(c,r),m,p(:,[(1:r)])-m); - set (gca, "xtick", 1:c, "xticklabel", g); - title ("95% prediction intervals for mean weight by year"); -***** test - load carsmall - means = grpstats (Acceleration, Origin); - assert (means, [14.4377; 18.0500; 15.8867; 16.3778; 16.6000; 15.5000], 0.001); -***** test - load carsmall - [grpMin,grpMax,grp] = grpstats (Acceleration, Origin, {"min","max","gname"}); - assert (grpMin, [8.0; 15.3; 13.9; 12.2; 15.7; 15.5]); - assert (grpMax, [22.2; 21.9; 18.2; 24.6; 17.5; 15.5]); -***** test - load carsmall - [grpMin,grpMax,grp] = grpstats (Acceleration, Origin, {"min","max","gname"}); - assert (grp', {"USA", "France", "Japan", "Germany", "Sweden", "Italy"}); -***** test - load carsmall - [m,p,g] = grpstats ([Acceleration,Weight/1000], Cylinders, ... - {"mean", "meanci", "gname"}, 0.05); - assert (p(:,1), [11.17621760075134, 16.13845847655224, 16.16222663683362]', ... - [1e-14, 2e-14, 1e-14]'); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/regression_ttest.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/regression_ttest.m -***** error regression_ttest (); -***** error regression_ttest (1); -***** error ... - regression_ttest ([1 2 NaN]', [2 3 4]'); -***** error ... - regression_ttest ([1 2 Inf]', [2 3 4]'); -***** error ... - regression_ttest ([1 2 3+i]', [2 3 4]'); -***** error ... - regression_ttest ([1 2 3]', [2 3 NaN]'); -***** error ... - regression_ttest ([1 2 3]', [2 3 Inf]'); -***** error ... - regression_ttest ([1 2 3]', [3 4 3+i]'); -***** error ... - regression_ttest ([1 2 3]', [3 4 4 5]'); -***** error ... - regression_ttest ([1 2 3]', [2 3 4]', "alpha", 0); -***** error ... - regression_ttest ([1 2 3]', [2 3 4]', "alpha", 1.2); -***** error ... - regression_ttest ([1 2 3]', [2 3 4]', "alpha", [.02 .1]); -***** error ... - regression_ttest ([1 2 3]', [2 3 4]', "alpha", "a"); -***** error ... - regression_ttest ([1 2 3]', [2 3 4]', "some", 0.05); -***** error ... - regression_ttest ([1 2 3]', [2 3 4]', "tail", "val"); -***** error ... - regression_ttest ([1 2 3]', [2 3 4]', "alpha", 0.01, "tail", "val"); -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_stat/hygestat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/hygestat.m -***** error hygestat () -***** error hygestat (1) -***** error hygestat (1, 2) -***** error hygestat ({}, 2, 3) -***** error hygestat (1, "", 3) -***** error hygestat (1, 2, "") -***** error hygestat (i, 2, 3) -***** error hygestat (1, i, 3) -***** error hygestat (1, 2, i) -***** error ... - hygestat (ones (3), ones (2), 3) -***** error ... - hygestat (ones (2), 2, ones (3)) -***** error ... - hygestat (1, ones (2), ones (3)) -***** test - m = 4:9; - k = 0:5; - n = 1:6; - [mn, v] = hygestat (m, k, n); - expected_mn = [0.0000, 0.4000, 1.0000, 1.7143, 2.5000, 3.3333]; - expected_v = [0.0000, 0.2400, 0.4000, 0.4898, 0.5357, 0.5556]; - assert (mn, expected_mn, 0.001); - assert (v, expected_v, 0.001); -***** test - m = 4:9; - k = 0:5; - [mn, v] = hygestat (m, k, 2); - expected_mn = [0.0000, 0.4000, 0.6667, 0.8571, 1.0000, 1.1111]; - expected_v = [0.0000, 0.2400, 0.3556, 0.4082, 0.4286, 0.4321]; - assert (mn, expected_mn, 0.001); - assert (v, expected_v, 0.001); -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/dist_stat/tristat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/tristat.m -***** error tristat () -***** error tristat (1) -***** error tristat (1, 2) -***** error tristat ("i", 2, 1) -***** error tristat (0, "d", 1) -***** error tristat (0, 3, {}) -***** error tristat (i, 2, 1) -***** error tristat (0, i, 1) -***** error tristat (0, 3, i) -***** test - a = 1:5; - b = 3:7; - c = 5:9; - [m, v] = tristat (a, b, c); - expected_m = [3, 4, 5, 6, 7]; - assert (m, expected_m); - assert (v, ones (1, 5) * (2/3)); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_stat/poisstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/poisstat.m -***** error poisstat () -***** error poisstat ({}) -***** error poisstat ("") -***** error poisstat (i) -***** test - lambda = 1 ./ (1:6); - [m, v] = poisstat (lambda); - assert (m, lambda); - assert (v, lambda); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/dist_stat/tlsstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/tlsstat.m -***** error tlsstat () -***** error tlsstat (1) -***** error tlsstat (1, 2) -***** error tlsstat ({}, 2, 3) -***** error tlsstat (1, "", 3) -***** error tlsstat (1, 2, ["d"]) -***** error tlsstat (i, 2, 3) -***** error tlsstat (1, i, 3) -***** error tlsstat (1, 2, i) -***** error ... - tlsstat (ones (3), ones (2), 1) -***** error ... - tlsstat (ones (2), 1, ones (3)) -***** error ... - tlsstat (1, ones (2), ones (3)) -***** test - [m, v] = tlsstat (0, 1, 0); - assert (m, NaN); - assert (v, NaN); -***** test - [m, v] = tlsstat (0, 1, 1); - assert (m, NaN); - assert (v, NaN); -***** test - [m, v] = tlsstat (2, 1, 1); - assert (m, NaN); - assert (v, NaN); -***** test - [m, v] = tlsstat (-2, 1, 1); - assert (m, NaN); - assert (v, NaN); -***** test - [m, v] = tlsstat (0, 1, 2); - assert (m, 0); - assert (v, NaN); -***** test - [m, v] = tlsstat (2, 1, 2); - assert (m, 2); - assert (v, NaN); -***** test - [m, v] = tlsstat (-2, 1, 2); - assert (m, -2); - assert (v, NaN); -***** test - [m, v] = tlsstat (0, 2, 2); - assert (m, 0); - assert (v, NaN); -***** test - [m, v] = tlsstat (2, 2, 2); - assert (m, 2); - assert (v, NaN); -***** test - [m, v] = tlsstat (-2, 2, 2); - assert (m, -2); - assert (v, NaN); -***** test - [m, v] = tlsstat (0, 1, 3); - assert (m, 0); - assert (v, 3); -***** test - [m, v] = tlsstat (0, 2, 3); - assert (m, 0); - assert (v, 6); -***** test - [m, v] = tlsstat (2, 1, 3); - assert (m, 2); - assert (v, 3); -***** test - [m, v] = tlsstat (2, 2, 3); - assert (m, 2); - assert (v, 6); -***** test - [m, v] = tlsstat (-2, 1, 3); - assert (m, -2); - assert (v, 3); -***** test - [m, v] = tlsstat (-2, 2, 3); - assert (m, -2); - assert (v, 6); -28 tests, 28 passed, 0 known failure, 0 skipped -[inst/dist_stat/hnstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/hnstat.m -***** error hnstat () -***** error hnstat (1) -***** error hnstat ({}, 2) -***** error hnstat (1, "") -***** error hnstat (i, 2) -***** error hnstat (1, i) -***** error ... - hnstat (ones (3), ones (2)) -***** error ... - hnstat (ones (2), ones (3)) -***** test - [m, v] = hnstat (0, 1); - assert (m, 0.7979, 1e-4); - assert (v, 0.3634, 1e-4); -***** test - [m, v] = hnstat (2, 1); - assert (m, 2.7979, 1e-4); - assert (v, 0.3634, 1e-4); -***** test - [m, v] = hnstat (2, 2); - assert (m, 3.5958, 1e-4); - assert (v, 1.4535, 1e-4); -***** test - [m, v] = hnstat (2, 2.5); - assert (m, 3.9947, 1e-4); - assert (v, 2.2711, 1e-4); -***** test - [m, v] = hnstat (1.5, 0.5); - assert (m, 1.8989, 1e-4); - assert (v, 0.0908, 1e-4); -***** test - [m, v] = hnstat (-1.5, 0.5); - assert (m, -1.1011, 1e-4); - assert (v, 0.0908, 1e-4); -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/dist_stat/geostat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/geostat.m -***** error geostat () -***** error geostat ({}) -***** error geostat ("") -***** error geostat (i) -***** test - ps = 1 ./ (1:6); - [m, v] = geostat (ps); - assert (m, [0, 1, 2, 3, 4, 5], 0.001); - assert (v, [0, 2, 6, 12, 20, 30], 0.001); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/dist_stat/chi2stat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/chi2stat.m -***** error chi2stat () -***** error chi2stat ({}) -***** error chi2stat ("") -***** error chi2stat (i) -***** test - df = 1:6; - [m, v] = chi2stat (df); - assert (m, df); - assert (v, [2, 4, 6, 8, 10, 12], 0.001); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/dist_stat/plstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/plstat.m -***** shared x, Fx - x = [0, 1, 3, 4, 7, 10]; - Fx = [0, 0.2, 0.5, 0.6, 0.7, 1]; -***** assert (plstat (x, Fx), 4.15) -***** test - [m, v] = plstat (x, Fx); - assert (v, 10.3775, 1e-14) -***** error plstat () -***** error plstat (1) -***** error ... - plstat ([0, 1, 2], [0, 1]) -***** error ... - plstat ([0], [1]) -***** error ... - plstat ([0, 1, 2], [0, 1, 1.5]) -***** error ... - plstat ([0, 1, 2], [0, i, 1]) -***** error ... - plstat ([0, i, 2], [0, 0.5, 1]) -***** error ... - plstat ([0, i, 2], [0, 0.5i, 1]) -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_stat/ricestat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/ricestat.m -***** error ricestat () -***** error ricestat (1) -***** error ricestat ({}, 2) -***** error ricestat (1, "") -***** error ricestat (i, 2) -***** error ricestat (1, i) -***** error ... - ricestat (ones (3), ones (2)) -***** error ... - ricestat (ones (2), ones (3)) -***** shared s, sigma - s = [2, 0, -1, 1, 4]; - sigma = [1, NaN, 3, -1, 2]; -***** assert (ricestat (s, sigma), [2.2724, NaN, NaN, NaN, 4.5448], 1e-4); -***** assert (ricestat ([s(1:2), s(4:5)], 1), [2.2724, 1.2533, 1.5486, 4.1272], 1e-4); -***** assert (ricestat ([s(1:2), s(4:5)], 3), [4.1665, 3.7599, 3.8637, 5.2695], 1e-4); -***** assert (ricestat ([s(1:2), s(4:5)], 2), [3.0971, 2.5066, 2.6609, 4.5448], 1e-4); -***** assert (ricestat (2, [sigma(1), sigma(3:5)]), [2.2724, 4.1665, NaN, 3.0971], 1e-4); -***** assert (ricestat (0, [sigma(1), sigma(3:5)]), [1.2533, 3.7599, NaN, 2.5066], 1e-4); -***** assert (ricestat (1, [sigma(1), sigma(3:5)]), [1.5486, 3.8637, NaN, 2.6609], 1e-4); -***** assert (ricestat (4, [sigma(1), sigma(3:5)]), [4.1272, 5.2695, NaN, 4.5448], 1e-4); -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_stat/ncx2stat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/ncx2stat.m -***** error ncx2stat () -***** error ncx2stat (1) -***** error ncx2stat ({}, 2) -***** error ncx2stat (1, "") -***** error ncx2stat (i, 2) -***** error ncx2stat (1, i) -***** error ... - ncx2stat (ones (3), ones (2)) -***** error ... - ncx2stat (ones (2), ones (3)) -***** shared df, d1 - df = [2, 0, -1, 1, 4]; - d1 = [1, NaN, 3, -1, 2]; -***** assert (ncx2stat (df, d1), [3, NaN, NaN, NaN, 6]); -***** assert (ncx2stat ([df(1:2), df(4:5)], 1), [3, NaN, 2, 5]); -***** assert (ncx2stat ([df(1:2), df(4:5)], 3), [5, NaN, 4, 7]); -***** assert (ncx2stat ([df(1:2), df(4:5)], 2), [4, NaN, 3, 6]); -***** assert (ncx2stat (2, [d1(1), d1(3:5)]), [3, 5, NaN, 4]); -***** assert (ncx2stat (0, [d1(1), d1(3:5)]), [NaN, NaN, NaN, NaN]); -***** assert (ncx2stat (1, [d1(1), d1(3:5)]), [2, 4, NaN, 3]); -***** assert (ncx2stat (4, [d1(1), d1(3:5)]), [5, 7, NaN, 6]); -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_stat/gpstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/gpstat.m -***** error gpstat () -***** error gpstat (1) -***** error gpstat (1, 2) -***** error gpstat ({}, 2, 3) -***** error gpstat (1, "", 3) -***** error gpstat (1, 2, "") -***** error gpstat (i, 2, 3) -***** error gpstat (1, i, 3) -***** error gpstat (1, 2, i) -***** error ... - gpstat (ones (3), ones (2), 3) -***** error ... - gpstat (ones (2), 2, ones (3)) -***** error ... - gpstat (1, ones (2), ones (3)) -***** shared x, y - x = [-Inf, -1, 0, 1/2, 1, Inf]; - y = [0, 0.5, 1, 2, Inf, Inf]; -***** assert (gpstat (x, ones (1,6), zeros (1,6)), y, eps) -***** assert (gpstat (single (x), 1, 0), single (y), eps("single")) -***** assert (gpstat (x, single (1), 0), single (y), eps("single")) -***** assert (gpstat (x, 1, single (0)), single (y), eps("single")) -***** assert (gpstat (single ([x, NaN]), 1, 0), single ([y, NaN]), eps("single")) -***** assert (gpstat ([x, NaN], single (1), 0), single ([y, NaN]), eps("single")) -***** assert (gpstat ([x, NaN], 1, single (0)), single ([y, NaN]), eps("single")) -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/dist_stat/betastat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/betastat.m -***** error betastat () -***** error betastat (1) -***** error betastat ({}, 2) -***** error betastat (1, "") -***** error betastat (i, 2) -***** error betastat (1, i) -***** error ... - betastat (ones (3), ones (2)) -***** error ... - betastat (ones (2), ones (3)) -***** test - a = -2:6; - b = 0.4:0.2:2; - [m, v] = betastat (a, b); - expected_m = [NaN NaN NaN 1/2 2/3.2 3/4.4 4/5.6 5/6.8 6/8]; - expected_v = [NaN NaN NaN 0.0833, 0.0558, 0.0402, 0.0309, 0.0250, 0.0208]; - assert (m, expected_m, eps*100); - assert (v, expected_v, 0.001); -***** test - a = -2:1:6; - [m, v] = betastat (a, 1.5); - expected_m = [NaN NaN NaN 1/2.5 2/3.5 3/4.5 4/5.5 5/6.5 6/7.5]; - expected_v = [NaN NaN NaN 0.0686, 0.0544, 0.0404, 0.0305, 0.0237, 0.0188]; - assert (m, expected_m); - assert (v, expected_v, 0.001); -***** test - a = [14 Inf 10 NaN 10]; - b = [12 9 NaN Inf 12]; - [m, v] = betastat (a, b); - expected_m = [14/26 NaN NaN NaN 10/22]; - expected_v = [168/18252 NaN NaN NaN 120/11132]; - assert (m, expected_m); - assert (v, expected_v); -***** assert (nthargout (1:2, @betastat, 5, []), {[], []}) -***** assert (nthargout (1:2, @betastat, [], 5), {[], []}) -***** assert (size (betastat (rand (10, 5, 4), rand (10, 5, 4))), [10 5 4]) -***** assert (size (betastat (rand (10, 5, 4), 7)), [10 5 4]) -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_stat/binostat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/binostat.m -***** error binostat () -***** error binostat (1) -***** error binostat ({}, 2) -***** error binostat (1, "") -***** error binostat (i, 2) -***** error binostat (1, i) -***** error ... - binostat (ones (3), ones (2)) -***** error ... - binostat (ones (2), ones (3)) -***** test - n = 1:6; - ps = 0:0.2:1; - [m, v] = binostat (n, ps); - expected_m = [0.00, 0.40, 1.20, 2.40, 4.00, 6.00]; - expected_v = [0.00, 0.32, 0.72, 0.96, 0.80, 0.00]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -***** test - n = 1:6; - [m, v] = binostat (n, 0.5); - expected_m = [0.50, 1.00, 1.50, 2.00, 2.50, 3.00]; - expected_v = [0.25, 0.50, 0.75, 1.00, 1.25, 1.50]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -***** test - n = [-Inf -3 5 0.5 3 NaN 100, Inf]; - [m, v] = binostat (n, 0.5); - assert (isnan (m), [true true false true false true false false]) - assert (isnan (v), [true true false true false true false false]) - assert (m(end), Inf); - assert (v(end), Inf); -***** assert (nthargout (1:2, @binostat, 5, []), {[], []}) -***** assert (nthargout (1:2, @binostat, [], 5), {[], []}) -***** assert (size (binostat (randi (100, 10, 5, 4), rand (10, 5, 4))), [10 5 4]) -***** assert (size (binostat (randi (100, 10, 5, 4), 7)), [10 5 4]) -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_stat/tstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/tstat.m -***** error tstat () -***** error tstat ({}) -***** error tstat ("") -***** error tstat (i) -***** test - df = 3:8; - [m, v] = tstat (df); - expected_m = [0, 0, 0, 0, 0, 0]; - expected_v = [3.0000, 2.0000, 1.6667, 1.5000, 1.4000, 1.3333]; - assert (m, expected_m); - assert (v, expected_v, 0.001); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/dist_stat/evstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/evstat.m -***** error evstat () -***** error evstat (1) -***** error evstat ({}, 2) -***** error evstat (1, "") -***** error evstat (i, 2) -***** error evstat (1, i) -***** error ... - evstat (ones (3), ones (2)) -***** error ... - evstat (ones (2), ones (3)) -***** shared x, y0, y1 - x = [-5, 0, 1, 2, 3]; - y0 = [NaN, NaN, 0.4228, 0.8456, 1.2684]; - y1 = [-5.5772, -3.4633, -3.0405, -2.6177, -2.1949]; -***** assert (evstat (x, x), y0, 1e-4) -***** assert (evstat (x, x+6), y1, 1e-4) -***** assert (evstat (x, x-6), NaN (1,5)) -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/dist_stat/loglstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/loglstat.m -***** error loglstat () -***** error loglstat (1) -***** error loglstat ({}, 2) -***** error loglstat (1, "") -***** error loglstat (i, 2) -***** error loglstat (1, i) -***** error ... - loglstat (ones (3), ones (2)) -***** error ... - loglstat (ones (2), ones (3)) -***** test - [m, v] = loglstat (0, 1); - assert (m, Inf, 0.001); - assert (v, Inf, 0.001); -***** test - [m, v] = loglstat (0, 0.8); - assert (m, 4.2758, 0.001); - assert (v, Inf, 0.001); -***** test - [m, v] = loglstat (0, 0.6); - assert (m, 1.9820, 0.001); - assert (v, Inf, 0.001); -***** test - [m, v] = loglstat (0, 0.4); - assert (m, 1.3213, 0.001); - assert (v, 2.5300, 0.001); -***** test - [m, v] = loglstat (0, 0.2); - assert (m, 1.0690, 0.001); - assert (v, 0.1786, 0.001); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_stat/fstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/fstat.m -***** error fstat () -***** error fstat (1) -***** error fstat ({}, 2) -***** error fstat (1, "") -***** error fstat (i, 2) -***** error fstat (1, i) -***** error ... - fstat (ones (3), ones (2)) -***** error ... - fstat (ones (2), ones (3)) -***** test - df1 = 1:6; - df2 = 5:10; - [m, v] = fstat (df1, df2); - expected_mn = [1.6667, 1.5000, 1.4000, 1.3333, 1.2857, 1.2500]; - expected_v = [22.2222, 6.7500, 3.4844, 2.2222, 1.5869, 1.2153]; - assert (m, expected_mn, 0.001); - assert (v, expected_v, 0.001); -***** test - df1 = 1:6; - [m, v] = fstat (df1, 5); - expected_mn = [1.6667, 1.6667, 1.6667, 1.6667, 1.6667, 1.6667]; - expected_v = [22.2222, 13.8889, 11.1111, 9.7222, 8.8889, 8.3333]; - assert (m, expected_mn, 0.001); - assert (v, expected_v, 0.001); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_stat/nbinstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/nbinstat.m -***** error nbinstat () -***** error nbinstat (1) -***** error nbinstat ({}, 2) -***** error nbinstat (1, "") -***** error nbinstat (i, 2) -***** error nbinstat (1, i) -***** error ... - nbinstat (ones (3), ones (2)) -***** error ... - nbinstat (ones (2), ones (3)) -***** test - r = 1:4; - ps = 0.2:0.2:0.8; - [m, v] = nbinstat (r, ps); - expected_m = [ 4.0000, 3.0000, 2.0000, 1.0000]; - expected_v = [20.0000, 7.5000, 3.3333, 1.2500]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -***** test - r = 1:4; - [m, v] = nbinstat (r, 0.5); - expected_m = [1, 2, 3, 4]; - expected_v = [2, 4, 6, 8]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_stat/bisastat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/bisastat.m -***** error bisastat () -***** error bisastat (1) -***** error bisastat ({}, 2) -***** error bisastat (1, "") -***** error bisastat (i, 2) -***** error bisastat (1, i) -***** error ... - bisastat (ones (3), ones (2)) -***** error ... - bisastat (ones (2), ones (3)) -***** test - beta = 1:6; - gamma = 1:0.2:2; - [m, v] = bisastat (beta, gamma); - expected_m = [1.50, 3.44, 5.94, 9.12, 13.10, 18]; - expected_v = [2.25, 16.128, 60.858, 172.032, 409.050, 864]; - assert (m, expected_m, 1e-2); - assert (v, expected_v, 1e-3); -***** test - beta = 1:6; - [m, v] = bisastat (beta, 1.5); - expected_m = [2.125, 4.25, 6.375, 8.5, 10.625, 12.75]; - expected_v = [8.5781, 34.3125, 77.2031, 137.2500, 214.4531, 308.8125]; - assert (m, expected_m, 1e-3); - assert (v, expected_v, 1e-4); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_stat/lognstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/lognstat.m -***** error lognstat () -***** error lognstat (1) -***** error lognstat ({}, 2) -***** error lognstat (1, "") -***** error lognstat (i, 2) -***** error lognstat (1, i) -***** error ... - lognstat (ones (3), ones (2)) -***** error ... - lognstat (ones (2), ones (3)) -***** test - mu = 0:0.2:1; - sigma = 0.2:0.2:1.2; - [m, v] = lognstat (mu, sigma); - expected_m = [1.0202, 1.3231, 1.7860, 2.5093, 3.6693, 5.5845]; - expected_v = [0.0425, 0.3038, 1.3823, 5.6447, 23.1345, 100.4437]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -***** test - sigma = 0.2:0.2:1.2; - [m, v] = lognstat (0, sigma); - expected_m = [1.0202, 1.0833, 1.1972, 1.3771, 1.6487, 2.0544]; - expected_v = [0.0425, 0.2036, 0.6211, 1.7002, 4.6708, 13.5936]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_stat/unifstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/unifstat.m -***** error unifstat () -***** error unifstat (1) -***** error unifstat ({}, 2) -***** error unifstat (1, "") -***** error unifstat (i, 2) -***** error unifstat (1, i) -***** error ... - unifstat (ones (3), ones (2)) -***** error ... - unifstat (ones (2), ones (3)) -***** test - a = 1:6; - b = 2:2:12; - [m, v] = unifstat (a, b); - expected_m = [1.5000, 3.0000, 4.5000, 6.0000, 7.5000, 9.0000]; - expected_v = [0.0833, 0.3333, 0.7500, 1.3333, 2.0833, 3.0000]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -***** test - a = 1:6; - [m, v] = unifstat (a, 10); - expected_m = [5.5000, 6.0000, 6.5000, 7.0000, 7.5000, 8.0000]; - expected_v = [6.7500, 5.3333, 4.0833, 3.0000, 2.0833, 1.3333]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_stat/logistat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/logistat.m -***** error logistat () -***** error logistat (1) -***** error logistat ({}, 2) -***** error logistat (1, "") -***** error logistat (i, 2) -***** error logistat (1, i) -***** error ... - logistat (ones (3), ones (2)) -***** error ... - logistat (ones (2), ones (3)) -***** test - [m, v] = logistat (0, 1); - assert (m, 0); - assert (v, 3.2899, 0.001); -***** test - [m, v] = logistat (0, 0.8); - assert (m, 0); - assert (v, 2.1055, 0.001); -***** test - [m, v] = logistat (1, 0.6); - assert (m, 1); - assert (v, 1.1844, 0.001); -***** test - [m, v] = logistat (0, 0.4); - assert (m, 0); - assert (v, 0.5264, 0.001); -***** test - [m, v] = logistat (-1, 0.2); - assert (m, -1); - assert (v, 0.1316, 0.001); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_stat/unidstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/unidstat.m -***** error unidstat () -***** error unidstat ({}) -***** error unidstat ("") -***** error unidstat (i) -***** test - N = 1:6; - [m, v] = unidstat (N); - expected_m = [1.0000, 1.5000, 2.0000, 2.5000, 3.0000, 3.5000]; - expected_v = [0.0000, 0.2500, 0.6667, 1.2500, 2.0000, 2.9167]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/dist_stat/expstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/expstat.m -***** error expstat () -***** error expstat ({}) -***** error expstat ("") -***** error expstat (i) -***** test - mu = 1:6; - [m, v] = expstat (mu); - assert (m, [1, 2, 3, 4, 5, 6], 0.001); - assert (v, [1, 4, 9, 16, 25, 36], 0.001); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/dist_stat/raylstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/raylstat.m -***** error raylstat () -***** error raylstat ({}) -***** error raylstat ("") -***** error raylstat (i) -***** test - sigma = 1:6; - [m, v] = raylstat (sigma); - expected_m = [1.2533, 2.5066, 3.7599, 5.0133, 6.2666, 7.5199]; - expected_v = [0.4292, 1.7168, 3.8628, 6.8673, 10.7301, 15.4513]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/dist_stat/gevstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/gevstat.m -***** error gevstat () -***** error gevstat (1) -***** error gevstat (1, 2) -***** error gevstat ({}, 2, 3) -***** error gevstat (1, "", 3) -***** error gevstat (1, 2, "") -***** error gevstat (i, 2, 3) -***** error gevstat (1, i, 3) -***** error gevstat (1, 2, i) -***** error ... - gevstat (ones (3), ones (2), 3) -***** error ... - gevstat (ones (2), 2, ones (3)) -***** error ... - gevstat (1, ones (2), ones (3)) -***** test - k = [-1, -0.5, 0, 0.2, 0.4, 0.5, 1]; - sigma = 2; - mu = 1; - [m, v] = gevstat (k, sigma, mu); - expected_m = [1, 1.4551, 2.1544, 2.6423, 3.4460, 4.0898, Inf]; - expected_v = [4, 3.4336, 6.5797, 13.3761, 59.3288, Inf, Inf]; - assert (m, expected_m, -0.001); - assert (v, expected_v, -0.001); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_stat/nakastat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/nakastat.m -***** error nakastat () -***** error nakastat (1) -***** error nakastat ({}, 2) -***** error nakastat (1, "") -***** error nakastat (i, 2) -***** error nakastat (1, i) -***** error ... - nakastat (ones (3), ones (2)) -***** error ... - nakastat (ones (2), ones (3)) -***** test - [m, v] = nakastat (1, 1); - assert (m, 0.8862269254, 1e-10); - assert (v, 0.2146018366, 1e-10); -***** test - [m, v] = nakastat (1, 2); - assert (m, 1.25331413731, 1e-10); - assert (v, 0.42920367321, 1e-10); -***** test - [m, v] = nakastat (2, 1); - assert (m, 0.93998560299, 1e-10); - assert (v, 0.11642706618, 1e-10); -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/dist_stat/gamstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/gamstat.m -***** error gamstat () -***** error gamstat (1) -***** error gamstat ({}, 2) -***** error gamstat (1, "") -***** error gamstat (i, 2) -***** error gamstat (1, i) -***** error ... - gamstat (ones (3), ones (2)) -***** error ... - gamstat (ones (2), ones (3)) -***** test - a = 1:6; - b = 1:0.2:2; - [m, v] = gamstat (a, b); - expected_m = [1.00, 2.40, 4.20, 6.40, 9.00, 12.00]; - expected_v = [1.00, 2.88, 5.88, 10.24, 16.20, 24.00]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -***** test - a = 1:6; - [m, v] = gamstat (a, 1.5); - expected_m = [1.50, 3.00, 4.50, 6.00, 7.50, 9.00]; - expected_v = [2.25, 4.50, 6.75, 9.00, 11.25, 13.50]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_stat/nctstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/nctstat.m -***** error nctstat () -***** error nctstat (1) -***** error nctstat ({}, 2) -***** error nctstat (1, "") -***** error nctstat (i, 2) -***** error nctstat (1, i) -***** error ... - nctstat (ones (3), ones (2)) -***** error ... - nctstat (ones (2), ones (3)) -***** shared df, mu - df = [2, 0, -1, 1, 4]; - mu = [1, NaN, 3, -1, 2]; -***** assert (nctstat (df, mu), [1.7725, NaN, NaN, NaN, 2.5066], 1e-4); -***** assert (nctstat ([df(1:2), df(4:5)], 1), [1.7725, NaN, NaN, 1.2533], 1e-4); -***** assert (nctstat ([df(1:2), df(4:5)], 3), [5.3174, NaN, NaN, 3.7599], 1e-4); -***** assert (nctstat ([df(1:2), df(4:5)], 2), [3.5449, NaN, NaN, 2.5066], 1e-4); -***** assert (nctstat (2, [mu(1), mu(3:5)]), [1.7725,5.3174,-1.7725,3.5449], 1e-4); -***** assert (nctstat (0, [mu(1), mu(3:5)]), [NaN, NaN, NaN, NaN]); -***** assert (nctstat (1, [mu(1), mu(3:5)]), [NaN, NaN, NaN, NaN]); -***** assert (nctstat (4, [mu(1), mu(3:5)]), [1.2533,3.7599,-1.2533,2.5066], 1e-4); -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_stat/invgstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/invgstat.m -***** error invgstat () -***** error invgstat (1) -***** error invgstat ({}, 2) -***** error invgstat (1, "") -***** error invgstat (i, 2) -***** error invgstat (1, i) -***** error ... - invgstat (ones (3), ones (2)) -***** error ... - invgstat (ones (2), ones (3)) -***** test - [m, v] = invgstat (1, 1); - assert (m, 1); - assert (v, 1); -***** test - [m, v] = invgstat (2, 1); - assert (m, 2); - assert (v, 8); -***** test - [m, v] = invgstat (2, 2); - assert (m, 2); - assert (v, 4); -***** test - [m, v] = invgstat (2, 2.5); - assert (m, 2); - assert (v, 3.2); -***** test - [m, v] = invgstat (1.5, 0.5); - assert (m, 1.5); - assert (v, 6.75); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_stat/burrstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/burrstat.m -***** error burrstat () -***** error burrstat (1) -***** error burrstat (1, 2) -***** error burrstat ({}, 2, 3) -***** error burrstat (1, "", 3) -***** error burrstat (1, 2, "") -***** error burrstat (i, 2, 3) -***** error burrstat (1, i, 3) -***** error burrstat (1, 2, i) -***** error ... - burrstat (ones (3), ones (2), 3) -***** error ... - burrstat (ones (2), 2, ones (3)) -***** error ... - burrstat (1, ones (2), ones (3)) -***** test - [m, v] = burrstat (1, 2, 5); - assert (m, 0.4295, 1e-4); - assert (v, 0.0655, 1e-4); -***** test - [m, v] = burrstat (1, 1, 1); - assert (m, Inf); - assert (v, Inf); -***** test - [m, v] = burrstat (2, 4, 1); - assert (m, 2.2214, 1e-4); - assert (v, 1.3484, 1e-4); -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_stat/wblstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/wblstat.m -***** error wblstat () -***** error wblstat (1) -***** error wblstat ({}, 2) -***** error wblstat (1, "") -***** error wblstat (i, 2) -***** error wblstat (1, i) -***** error ... - wblstat (ones (3), ones (2)) -***** error ... - wblstat (ones (2), ones (3)) -***** test - lambda = 3:8; - k = 1:6; - [m, v] = wblstat (lambda, k); - expected_m = [3.0000, 3.5449, 4.4649, 5.4384, 6.4272, 7.4218]; - expected_v = [9.0000, 3.4336, 2.6333, 2.3278, 2.1673, 2.0682]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -***** test - k = 1:6; - [m, v] = wblstat (6, k); - expected_m = [ 6.0000, 5.3174, 5.3579, 5.4384, 5.5090, 5.5663]; - expected_v = [36.0000, 7.7257, 3.7920, 2.3278, 1.5923, 1.1634]; - assert (m, expected_m, 0.001); - assert (v, expected_v, 0.001); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_stat/ncfstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/ncfstat.m -***** error ncfstat () -***** error ncfstat (1) -***** error ncfstat (1, 2) -***** error ncfstat ({}, 2, 3) -***** error ncfstat (1, "", 3) -***** error ncfstat (1, 2, "") -***** error ncfstat (i, 2, 3) -***** error ncfstat (1, i, 3) -***** error ncfstat (1, 2, i) -***** error ... - ncfstat (ones (3), ones (2), 3) -***** error ... - ncfstat (ones (2), 2, ones (3)) -***** error ... - ncfstat (1, ones (2), ones (3)) -***** shared df1, df2, lambda - df1 = [2, 0, -1, 1, 4, 5]; - df2 = [2, 4, -1, 5, 6, 7]; - lambda = [1, NaN, 3, 0, 2, -1]; -***** assert (ncfstat (df1, df2, lambda), [NaN, NaN, NaN, 1.6667, 2.25, 1.12], 1e-4); -***** assert (ncfstat (df1(4:6), df2(4:6), 1), [3.3333, 1.8750, 1.6800], 1e-4); -***** assert (ncfstat (df1(4:6), df2(4:6), 2), [5.0000, 2.2500, 1.9600], 1e-4); -***** assert (ncfstat (df1(4:6), df2(4:6), 3), [6.6667, 2.6250, 2.2400], 1e-4); -***** assert (ncfstat (2, [df2(1), df2(4:6)], 5), [NaN,5.8333,5.2500,4.9000], 1e-4); -***** assert (ncfstat (0, [df2(1), df2(4:6)], 5), [NaN, Inf, Inf, Inf]); -***** assert (ncfstat (1, [df2(1), df2(4:6)], 5), [NaN, 10, 9, 8.4], 1e-14); -***** assert (ncfstat (4, [df2(1), df2(4:6)], 5), [NaN, 3.75, 3.375, 3.15], 1e-14); -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/dist_stat/normstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_stat/normstat.m -***** error normstat () -***** error normstat (1) -***** error normstat ({}, 2) -***** error normstat (1, "") -***** error normstat (i, 2) -***** error normstat (1, i) -***** error ... - normstat (ones (3), ones (2)) -***** error ... - normstat (ones (2), ones (3)) -***** test - mu = 1:6; - sigma = 0.2:0.2:1.2; - [m, v] = normstat (mu, sigma); - expected_v = [0.0400, 0.1600, 0.3600, 0.6400, 1.0000, 1.4400]; - assert (m, mu); - assert (v, expected_v, 0.001); -***** test - sigma = 0.2:0.2:1.2; - [m, v] = normstat (0, sigma); - expected_mn = [0, 0, 0, 0, 0, 0]; - expected_v = [0.0400, 0.1600, 0.3600, 0.6400, 1.0000, 1.4400]; - assert (m, expected_mn, 0.001); - assert (v, expected_v, 0.001); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/sigma_pts.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/sigma_pts.m -***** demo - K = [1 0.5; 0.5 1]; # covaraince matrix - # calculate and build associated ellipse - [R,S,~] = svd (K); - theta = atan2 (R(2,1), R(1,1)); - v = sqrt (diag (S)); - v = v .* [cos(theta) sin(theta); -sin(theta) cos(theta)]; - t = linspace (0, 2*pi, 100).'; - xe = v(1,1) * cos (t) + v(2,1) * sin (t); - ye = v(1,2) * cos (t) + v(2,2) * sin (t); - - figure(1); clf; hold on - # Plot ellipse and axes - line ([0 0; v(:,1).'],[0 0; v(:,2).']) - plot (xe,ye,'-r'); - - col = 'rgb'; - l = [-1.8 -1 1.5]; - for li = 1:3 - p = sigma_pts (2, [], K, l(li)); - tmp = plot (p(2:end,1), p(2:end,2), ['x' col(li)], ... - p(1,1), p(1,2), ['o' col(li)]); - h(li) = tmp(1); - endfor - hold off - axis image - legend (h, arrayfun (@(x) sprintf ("l:%.2g", x), l, "unif", 0)); -***** test - p = sigma_pts (5); - assert (mean (p), zeros(1,5), sqrt(eps)); - assert (cov (p), eye(5), sqrt(eps)); + assert (TAB{6,7}, 0.453570536021938, 1e-09); + assert (TAB{7,7}, 0.705316781644046, 1e-09); + ## Test with string ids for categorical variables + brands = {'Gourmet', 'National', 'Generic'; ... + 'Gourmet', 'National', 'Generic'; ... + 'Gourmet', 'National', 'Generic'; ... + 'Gourmet', 'National', 'Generic'; ... + 'Gourmet', 'National', 'Generic'; ... + 'Gourmet', 'National', 'Generic'}; + popper = {'oil', 'oil', 'oil'; 'oil', 'oil', 'oil'; 'oil', 'oil', 'oil'; ... + 'air', 'air', 'air'; 'air', 'air', 'air'; 'air', 'air', 'air'}; + [TAB, STATS] = fitlm ({brands(:),popper(:)},popcorn(:),"interactions",... + "categoricalvars",[1,2],"display","off"); ***** test - m = randn(1, 5); - p = sigma_pts (5, m); - assert (mean (p), m, sqrt(eps)); - assert (cov (p), eye(5), sqrt(eps)); + load carsmall + X = [Weight,Horsepower,Acceleration]; + [TAB, STATS] = fitlm (X, MPG,"constant","display","off"); + [TAB, STATS] = fitlm (X, MPG,"linear","display","off"); + assert (TAB{2,2}, 47.9767628118615, 1e-09); + assert (TAB{3,2}, -0.00654155878851796, 1e-09); + assert (TAB{4,2}, -0.0429433065881864, 1e-09); + assert (TAB{5,2}, -0.0115826516894871, 1e-09); + assert (TAB{2,3}, 3.87851641748551, 1e-09); + assert (TAB{3,3}, 0.00112741016370336, 1e-09); + assert (TAB{4,3}, 0.0243130608813806, 1e-09); + assert (TAB{5,3}, 0.193325043113178, 1e-09); + assert (TAB{2,6}, 12.369874881944, 1e-09); + assert (TAB{3,6}, -5.80228828790225, 1e-09); + assert (TAB{4,6}, -1.76626492228599, 1e-09); + assert (TAB{5,6}, -0.0599128364487485, 1e-09); + assert (TAB{2,7}, 4.89570341688996e-21, 1e-09); + assert (TAB{3,7}, 9.87424814144e-08, 1e-09); + assert (TAB{4,7}, 0.0807803098213114, 1e-09); + assert (TAB{5,7}, 0.952359384151778, 1e-09); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/cholcov.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cholcov.m +***** demo + C1 = [2, 1, 1, 2; 1, 2, 1, 2; 1, 1, 2, 2; 2, 2, 2, 3] + T = cholcov (C1) + C2 = T'*T ***** test - x = linspace (0,1,5); - K = exp (- (x.' - x).^2/ 0.5); - p = sigma_pts (5, [], K); - assert (mean (p), zeros(1,5), sqrt(eps)); - assert (cov (p), K, sqrt(eps)); -***** error sigma_pts(2,1); -***** error sigma_pts(2,[],1); -***** error sigma_pts(2,1,1); -***** error sigma_pts(2,[0.5 0.5],[-1 0; 0 0]); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/cmdscale.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cmdscale.m -***** shared m, n, X, D - m = randi(100) + 1; n = randi(100) + 1; X = rand(m, n); D = pdist(X); -***** assert(norm(pdist(cmdscale(D))), norm(D), sqrt(eps)) -***** assert(norm(pdist(cmdscale(squareform(D)))), norm(D), sqrt(eps)) -2 tests, 2 passed, 0 known failure, 0 skipped + C1 = [2, 1, 1, 2; 1, 2, 1, 2; 1, 1, 2, 2; 2, 2, 2, 3]; + T = cholcov (C1); + assert (C1, T'*T, 1e-15 * ones (size (C1))); +1 test, 1 passed, 0 known failure, 0 skipped [inst/hmmgenerate.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/hmmgenerate.m ***** test @@ -14397,6375 +10149,2269 @@ strcmp (sequence, "C") == ones (1, len)); assert (strcmp (states, "One") + strcmp (states, "Two") == ones (1, len)); 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/logit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/logit.m -***** test - p = [0.01:0.01:0.99]; - assert (logit (p), log (p ./ (1-p)), 25*eps); -***** assert (logit ([-1, 0, 0.5, 1, 2]), [NaN, -Inf, 0, +Inf, NaN]) -***** error logit () -***** error logit (1, 2) -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/confusionmat.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/confusionmat.m -***** test - Yt = [8 5 6 8 5 3 1 6 4 2 5 3 1 4]'; - Yp = [8 5 6 8 5 2 3 4 4 5 5 7 2 6]'; - C = [0 1 1 0 0 0 0 0; 0 0 0 0 1 0 0 0; 0 1 0 0 0 0 1 0; 0 0 0 1 0 1 0 0; ... - 0 0 0 0 3 0 0 0; 0 0 0 1 0 1 0 0; 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 2]; - assert (confusionmat (Yt, Yp), C) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/hmmviterbi.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/hmmviterbi.m -***** test - sequence = [1, 2, 1, 1, 1, 2, 2, 1, 2, 3, 3, 3, ... - 3, 2, 3, 1, 1, 1, 1, 3, 3, 2, 3, 1, 3]; - transprob = [0.8, 0.2; 0.4, 0.6]; - outprob = [0.2, 0.4, 0.4; 0.7, 0.2, 0.1]; - vpath = hmmviterbi (sequence, transprob, outprob); - expected = [1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, ... - 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1]; - assert (vpath, expected); -***** test - sequence = {"A", "B", "A", "A", "A", "B", "B", "A", "B", "C", "C", "C", ... - "C", "B", "C", "A", "A", "A", "A", "C", "C", "B", "C", "A", "C"}; - transprob = [0.8, 0.2; 0.4, 0.6]; - outprob = [0.2, 0.4, 0.4; 0.7, 0.2, 0.1]; - symbols = {"A", "B", "C"}; - statenames = {"One", "Two"}; - vpath = hmmviterbi (sequence, transprob, outprob, "symbols", symbols, ... - "statenames", statenames); - expected = {"One", "One", "Two", "Two", "Two", "One", "One", "One", ... - "One", "One", "One", "One", "One", "One", "One", "Two", ... - "Two", "Two", "Two", "One", "One", "One", "One", "One", "One"}; - assert (vpath, expected); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/fitrgam.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/fitrgam.m +[inst/Classification/ConfusionMatrixChart.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/Classification/ConfusionMatrixChart.m ***** demo - # Train a RegressionGAM Model for synthetic values - - f1 = @(x) cos (3 *x); - f2 = @(x) x .^ 3; - - # generate x1 and x2 for f1 and f2 - x1 = 2 * rand (50, 1) - 1; - x2 = 2 * rand (50, 1) - 1; - - # calculate y - y = f1(x1) + f2(x2); - - # add noise - y = y + y .* 0.2 .* rand (50,1); - X = [x1, x2]; + ## Create a simple ConfusionMatrixChart Object - # create an object - a = fitrgam (X, y, "tol", 1e-3) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = [1; 2; 3; 4]; - a = fitrgam (x, y); - assert ({a.X, a.Y}, {x, y}) - assert ({a.BaseModel.Intercept}, {2.5000}) - assert ({a.Knots, a.Order, a.DoF}, {[5, 5, 5], [3, 3, 3], [8, 8, 8]}) - assert ({a.NumObservations, a.NumPredictors}, {4, 3}) - assert ({a.ResponseName, a.PredictorNames}, {"Y", {"x1", "x2", "x3"}}) - assert ({a.Formula}, {[]}) -***** test - x = [1, 2, 3, 4; 4, 5, 6, 7; 7, 8, 9, 1; 3, 2, 1, 2]; - y = [1; 2; 3; 4]; - pnames = {"A", "B", "C", "D"}; - formula = "Y ~ A + B + C + D + A:C"; - intMat = logical ([1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1;1,0,1,0]); - a = fitrgam (x, y, "predictors", pnames, "formula", formula); - assert ({a.IntMatrix}, {intMat}) - assert ({a.ResponseName, a.PredictorNames}, {"Y", pnames}) - assert ({a.Formula}, {formula}) -***** error fitrgam () -***** error fitrgam (ones(10,2)) -***** error - fitrgam (ones (4,2), ones (4, 1), "K") -***** error - fitrgam (ones (4,2), ones (3, 1)) -***** error - fitrgam (ones (4,2), ones (3, 1), "K", 2) -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/jackknife.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/jackknife.m -***** demo - for k = 1:1000 - rand ("seed", k); # for reproducibility - x = rand (10, 1); - s(k) = std (x); - jackstat = jackknife (@std, x); - j(k) = 10 * std (x) - 9 * mean (jackstat); - endfor - figure(); - hist ([s', j'], 0:sqrt(1/12)/10:2*sqrt(1/12)) -***** demo - for k = 1:1000 - randn ("seed", k); # for reproducibility - x = randn (1, 50); - rand ("seed", k); # for reproducibility - y = rand (1, 50); - jackstat = jackknife (@(x) std(x{1})/std(x{2}), y, x); - j(k) = 50 * std (y) / std (x) - 49 * mean (jackstat); - v(k) = sumsq ((50 * std (y) / std (x) - 49 * jackstat) - j(k)) / (50 * 49); - endfor - t = (j - sqrt (1 / 12)) ./ sqrt (v); - figure(); - plot (sort (tcdf (t, 49)), ... - "-;Almost linear mapping indicates good fit with t-distribution.;") -***** test - ##Example from Quenouille, Table 1 - d=[0.18 4.00 1.04 0.85 2.14 1.01 3.01 2.33 1.57 2.19]; - jackstat = jackknife ( @(x) 1/mean(x), d ); - assert ( 10 / mean(d) - 9 * mean(jackstat), 0.5240, 1e-5 ); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/regress.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/regress.m + cm = ConfusionMatrixChart (gca, [1 2; 1 2], {"A","B"}, {"XLabel","LABEL A"}) + NormalizedValues = cm.NormalizedValues + ClassLabels = cm.ClassLabels ***** test - % Longley data from the NIST Statistical Reference Dataset - Z = [ 60323 83.0 234289 2356 1590 107608 1947 - 61122 88.5 259426 2325 1456 108632 1948 - 60171 88.2 258054 3682 1616 109773 1949 - 61187 89.5 284599 3351 1650 110929 1950 - 63221 96.2 328975 2099 3099 112075 1951 - 63639 98.1 346999 1932 3594 113270 1952 - 64989 99.0 365385 1870 3547 115094 1953 - 63761 100.0 363112 3578 3350 116219 1954 - 66019 101.2 397469 2904 3048 117388 1955 - 67857 104.6 419180 2822 2857 118734 1956 - 68169 108.4 442769 2936 2798 120445 1957 - 66513 110.8 444546 4681 2637 121950 1958 - 68655 112.6 482704 3813 2552 123366 1959 - 69564 114.2 502601 3931 2514 125368 1960 - 69331 115.7 518173 4806 2572 127852 1961 - 70551 116.9 554894 4007 2827 130081 1962 ]; - % Results certified by NIST using 500 digit arithmetic - % b and standard error in b - V = [ -3482258.63459582 890420.383607373 - 15.0618722713733 84.9149257747669 - -0.358191792925910E-01 0.334910077722432E-01 - -2.02022980381683 0.488399681651699 - -1.03322686717359 0.214274163161675 - -0.511041056535807E-01 0.226073200069370 - 1829.15146461355 455.478499142212 ]; - Rsq = 0.995479004577296; - F = 330.285339234588; - y = Z(:,1); X = [ones(rows(Z),1), Z(:,2:end)]; - alpha = 0.05; - [b, bint, r, rint, stats] = regress (y, X, alpha); - assert(b,V(:,1),4e-6); - assert(stats(1),Rsq,1e-12); - assert(stats(2),F,3e-8); - assert(((bint(:,1)-bint(:,2))/2)/tinv(alpha/2,9),V(:,2),-1.e-5); -warning: matrix singular to machine precision, rcond = 3.50566e-20 -warning: called from - regress at line 131 column 7 - __test__ at line 33 column 28 - test at line 682 column 11 - /tmp/tmp.SsMo1UwVTS at line 1118 column 31 - + hf = figure ("visible", "off"); + unwind_protect + cm = ConfusionMatrixChart (gca, [1 2; 1 2], {"A","B"}, {"XLabel","LABEL A"}); + assert (isa (cm, "ConfusionMatrixChart"), true); + unwind_protect_cleanup + close (hf); + end_unwind_protect 1 test, 1 passed, 0 known failure, 0 skipped -[inst/Regression/RegressionGAM.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/Regression/RegressionGAM.m -***** demo - ## Train a RegressionGAM Model for synthetic values - f1 = @(x) cos (3 * x); - f2 = @(x) x .^ 3; - x1 = 2 * rand (50, 1) - 1; - x2 = 2 * rand (50, 1) - 1; - y = f1(x1) + f2(x2); - y = y + y .* 0.2 .* rand (50,1); - X = [x1, x2]; - a = fitrgam (X, y, "tol", 1e-3) +[inst/Classification/ClassificationKNN.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/Classification/ClassificationKNN.m ***** demo - ## Declare two different functions - f1 = @(x) cos (3 * x); - f2 = @(x) x .^ 3; - - ## Generate 80 samples for f1 and f2 - x = [-4*pi:0.1*pi:4*pi-0.1*pi]'; - X1 = f1 (x); - X2 = f2 (x); - - ## Create a synthetic response by adding noise - rand ("seed", 3); - Ytrue = X1 + X2; - Y = Ytrue + Ytrue .* 0.2 .* rand (80,1); - - ## Assemble predictor data - X = [X1, X2]; - - ## Train the GAM and test on the same data - a = fitrgam (X, Y, "order", [5, 5]); - [ypred, ySDsd, yInt] = predict (a, X); + ## Create a k-nearest neighbor classifier for Fisher's iris data with k = 5. + ## Evaluate some model predictions on new data. - ## Plot the results - figure - [sortedY, indY] = sort (Ytrue); - plot (sortedY, "r-"); - xlim ([0, 80]); - hold on - plot (ypred(indY), "g+") - plot (yInt(indY,1), "k:") - plot (yInt(indY,2), "k:") - xlabel ("Predictor samples"); - ylabel ("Response"); - title ("actual vs predicted values for function f1(x) = cos (3x) "); - legend ({"Theoretical Response", "Predicted Response", "Prediction Intervals"}); + load fisheriris + x = meas; + y = species; + xc = [min(x); mean(x); max(x)]; + obj = fitcknn (x, y, "NumNeighbors", 5, "Standardize", 1); + [label, score, cost] = predict (obj, xc) +***** demo + ## Train a k-nearest neighbor classifier for k = 10 + ## and plot the decision boundaries. - ## Use 30% Holdout partitioning for training and testing data - C = cvpartition (80, "HoldOut", 0.3); - [ypred, ySDsd, yInt] = predict (a, X(test(C),:)); + load fisheriris + idx = ! strcmp (species, "setosa"); + X = meas(idx,3:4); + Y = cast (strcmpi (species(idx), "virginica"), "double"); + obj = fitcknn (X, Y, "Standardize", 1, "NumNeighbors", 10, "NSMethod", "exhaustive") + x1 = [min(X(:,1)):0.03:max(X(:,1))]; + x2 = [min(X(:,2)):0.02:max(X(:,2))]; + [x1G, x2G] = meshgrid (x1, x2); + XGrid = [x1G(:), x2G(:)]; + pred = predict (obj, XGrid); + gidx = logical (str2num (cell2mat (pred))); - ## Plot the results figure - [sortedY, indY] = sort (Ytrue(test(C))); - plot (sortedY, 'r-'); - xlim ([0, sum(test(C))]); + scatter (XGrid(gidx,1), XGrid(gidx,2), "markerfacecolor", "magenta"); hold on - plot (ypred(indY), "g+") - plot (yInt(indY,1),'k:') - plot (yInt(indY,2),'k:') - xlabel ("Predictor samples"); - ylabel ("Response"); - title ("actual vs predicted values for function f1(x) = cos (3x) "); - legend ({"Theoretical Response", "Predicted Response", "Prediction Intervals"}); + scatter (XGrid(!gidx,1), XGrid(!gidx,2), "markerfacecolor", "red"); + plot (X(Y == 0, 1), X(Y == 0, 2), "ko", X(Y == 1, 1), X(Y == 1, 2), "kx"); + xlabel ("Petal length (cm)"); + ylabel ("Petal width (cm)"); + title ("5-Nearest Neighbor Classifier Decision Boundary"); + legend ({"Versicolor Region", "Virginica Region", ... + "Sampled Versicolor", "Sampled Virginica"}, ... + "location", "northwest") + axis tight + hold off ***** test x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = [1; 2; 3; 4]; - a = RegressionGAM (x, y); - assert ({a.X, a.Y}, {x, y}) - assert ({a.BaseModel.Intercept}, {2.5000}) - assert ({a.Knots, a.Order, a.DoF}, {[5, 5, 5], [3, 3, 3], [8, 8, 8]}) - assert ({a.NumObservations, a.NumPredictors}, {4, 3}) - assert ({a.ResponseName, a.PredictorNames}, {"Y", {"x1", "x2", "x3"}}) - assert ({a.Formula}, {[]}) + y = ["a"; "a"; "b"; "b"]; + a = ClassificationKNN (x, y); + assert (class (a), "ClassificationKNN"); + assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 1}) + assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) + assert ({a.BucketSize}, {50}) ***** test - x = [1, 2, 3, 4; 4, 5, 6, 7; 7, 8, 9, 1; 3, 2, 1, 2]; - y = [1; 2; 3; 4]; - pnames = {"A", "B", "C", "D"}; - formula = "Y ~ A + B + C + D + A:C"; - intMat = logical ([1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1;1,0,1,0]); - a = RegressionGAM (x, y, "predictors", pnames, "formula", formula); - assert ({a.IntMatrix}, {intMat}) - assert ({a.ResponseName, a.PredictorNames}, {"Y", pnames}) - assert ({a.Formula}, {formula}) -***** error RegressionGAM () -***** error RegressionGAM (ones(10,2)) -***** error ... - RegressionGAM (ones(10,2), ones (5,1)) -***** error ... - RegressionGAM ([1;2;3;"a";4], ones (5,1)) -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "some", "some") -***** error - RegressionGAM (ones(10,2), ones (10,1), "formula", {"y~x1+x2"}) -***** error - RegressionGAM (ones(10,2), ones (10,1), "formula", [0, 1, 0]) -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "formula", "something") -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "formula", "something~") -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "formula", "something~") -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "formula", "something~x1:") -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "interactions", "some") -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "interactions", -1) -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "interactions", [1 2 3 4]) -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "interactions", 3) -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "formula", "y ~ x1 + x2", "interactions", 1) -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "interactions", 1, "formula", "y ~ x1 + x2") -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "knots", "a") -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "order", 3, "dof", 2, "knots", 5) -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "dof", 'a') -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "knots", 5, "order", 3, "dof", 2) -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "order", 'a') -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "knots", 5, "dof", 2, "order", 2) -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "tol", -1) -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "responsename", -1) -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "predictors", -1) -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "predictors", ['a','b','c']) -***** error ... - RegressionGAM (ones(10,2), ones (10,1), "predictors", {'a','b','c'}) -***** error ... - predict (RegressionGAM (ones(10,1), ones(10,1))) -***** error ... - predict (RegressionGAM (ones(10,1), ones(10,1)), []) -***** error ... - predict (RegressionGAM(ones(10,2), ones(10,1)), 2) -***** error ... - predict (RegressionGAM(ones(10,2), ones(10,1)), ones (10,2), "some", "some") -***** error ... - predict (RegressionGAM(ones(10,2), ones(10,1)), ones (10,2), "includeinteractions", "some") -***** error ... - predict (RegressionGAM(ones(10,2), ones(10,1)), ones (10,2), "includeinteractions", 5) -***** error ... - predict (RegressionGAM(ones(10,2), ones(10,1)), ones (10,2), "alpha", 5) -***** error ... - predict (RegressionGAM(ones(10,2), ones(10,1)), ones (10,2), "alpha", -1) -***** error ... - predict (RegressionGAM(ones(10,2), ones(10,1)), ones (10,2), "alpha", 'a') -39 tests, 39 passed, 0 known failure, 0 skipped -[inst/chi2test.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/chi2test.m -***** error chi2test (); -***** error chi2test ([1, 2, 3, 4, 5]); -***** error chi2test ([1, 2; 2, 1+3i]); -***** error chi2test ([NaN, 6; 34, 12]); -***** error ... - p = chi2test (ones (3, 3), "mutual", []); -***** error ... - p = chi2test (ones (3, 3, 3), "testtype", 2); -***** error ... - p = chi2test (ones (3, 3, 3), "mutual"); -***** error ... - p = chi2test (ones (3, 3, 3), "joint", ["a"]); -***** error ... - p = chi2test (ones (3, 3, 3), "joint", [2, 3]); -***** error ... - p = chi2test (ones (3, 3, 3, 4), "mutual", []) -***** warning p = chi2test (ones (2)); -***** warning p = chi2test (ones (3, 2)); -***** warning p = chi2test (0.4 * ones (3)); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + a = ClassificationKNN (x, y, "NSMethod", "exhaustive"); + assert (class (a), "ClassificationKNN"); + assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 1}) + assert ({a.NSMethod, a.Distance}, {"exhaustive", "euclidean"}) + assert ({a.BucketSize}, {50}) ***** test - x = [11, 3, 8; 2, 9, 14; 12, 13, 28]; - p = chi2test (x); - assert (p, 0.017787, 1e-6); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + k = 10; + a = ClassificationKNN (x, y, "NumNeighbors" ,k); + assert (class (a), "ClassificationKNN"); + assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 10}) + assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) + assert ({a.BucketSize}, {50}) ***** test - x = [11, 3, 8; 2, 9, 14; 12, 13, 28]; - [p, chisq] = chi2test (x); - assert (chisq, 11.9421, 1e-4); + x = ones (4, 11); + y = ["a"; "a"; "b"; "b"]; + k = 10; + a = ClassificationKNN (x, y, "NumNeighbors" ,k); + assert (class (a), "ClassificationKNN"); + assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 10}) + assert ({a.NSMethod, a.Distance}, {"exhaustive", "euclidean"}) + assert ({a.BucketSize}, {50}) ***** test - x = [11, 3, 8; 2, 9, 14; 12, 13, 28]; - [p, chisq, df] = chi2test (x); - assert (df, 4); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + k = 10; + a = ClassificationKNN (x, y, "NumNeighbors" ,k, "NSMethod", "exhaustive"); + assert (class (a), "ClassificationKNN"); + assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 10}) + assert ({a.NSMethod, a.Distance}, {"exhaustive", "euclidean"}) + assert ({a.BucketSize}, {50}) ***** test -***** shared x - x(:,:,1) = [59, 32; 9,16]; - x(:,:,2) = [55, 24;12,33]; - x(:,:,3) = [107,80;17,56];%! -***** assert (chi2test (x), 2.282063427117009e-11, 1e-14); -***** assert (chi2test (x, "mutual", []), 2.282063427117009e-11, 1e-14); -***** assert (chi2test (x, "joint", 1), 1.164834895206468e-11, 1e-14); -***** assert (chi2test (x, "joint", 2), 7.771350230001417e-11, 1e-14); -***** assert (chi2test (x, "joint", 3), 0.07151361728026107, 1e-14); -***** assert (chi2test (x, "marginal", 1), 0, 1e-14); -***** assert (chi2test (x, "marginal", 2), 6.347555814301131e-11, 1e-14); -***** assert (chi2test (x, "marginal", 3), 0, 1e-14); -***** assert (chi2test (x, "conditional", 1), 0.2303114201312508, 1e-14); -***** assert (chi2test (x, "conditional", 2), 0.0958810684407079, 1e-14); -***** assert (chi2test (x, "conditional", 3), 2.648037344954446e-11, 1e-14); -***** assert (chi2test (x, "homogeneous", []), 0.4485579470993741, 1e-14); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + k = 10; + a = ClassificationKNN (x, y, "NumNeighbors" ,k, "Distance", "hamming"); + assert (class (a), "ClassificationKNN"); + assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 10}) + assert ({a.NSMethod, a.Distance}, {"exhaustive", "hamming"}) + assert ({a.BucketSize}, {50}) ***** test - [pval, chisq, df, E] = chi2test (x); - assert (chisq, 64.0982, 1e-4); - assert (df, 7); - assert (E(:,:,1), [42.903, 39.921; 17.185, 15.991], ones (2, 2) * 1e-3); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + weights = ones (4,1); + a = ClassificationKNN (x, y, "Standardize", 1); + assert (class (a), "ClassificationKNN"); + assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 1}) + assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) + assert ({a.Standardize}, {true}) + assert ({a.Sigma}, {std(x, [], 1)}) + assert ({a.Mu}, {[3.75, 4.25, 4.75]}) ***** test - [pval, chisq, df, E] = chi2test (x, "joint", 2); - assert (chisq, 56.0943, 1e-4); - assert (df, 5); - assert (E(:,:,2), [40.922, 23.310; 38.078, 21.690], ones (2, 2) * 1e-3); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + weights = ones (4,1); + a = ClassificationKNN (x, y, "Standardize", false); + assert (class (a), "ClassificationKNN"); + assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 1}) + assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) + assert ({a.Standardize}, {false}) + assert ({a.Sigma}, {[]}) + assert ({a.Mu}, {[]}) ***** test - [pval, chisq, df, E] = chi2test (x, "marginal", 3); - assert (chisq, 146.6058, 1e-4); - assert (df, 9); - assert (E(:,1,1), [61.642; 57.358], ones (2, 1) * 1e-3); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + s = ones (1, 3); + a = ClassificationKNN (x, y, "Scale" , s, "Distance", "seuclidean"); + assert (class (a), "ClassificationKNN"); + assert ({a.DistParameter}, {s}) + assert ({a.NSMethod, a.Distance}, {"exhaustive", "seuclidean"}) + assert ({a.BucketSize}, {50}) ***** test - [pval, chisq, df, E] = chi2test (x, "conditional", 3); - assert (chisq, 52.2509, 1e-4); - assert (df, 3); - assert (E(:,:,1), [53.345, 37.655; 14.655, 10.345], ones (2, 2) * 1e-3); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + a = ClassificationKNN (x, y, "Exponent" , 5, "Distance", "minkowski"); + assert (class (a), "ClassificationKNN"); + assert (a.DistParameter, 5) + assert ({a.NSMethod, a.Distance}, {"kdtree", "minkowski"}) ***** test - [pval, chisq, df, E] = chi2test (x, "homogeneous", []); - assert (chisq, 1.6034, 1e-4); - assert (df, 2); - assert (E(:,:,1), [60.827, 31.382; 7.173, 16.618], ones (2, 2) * 1e-3); -34 tests, 34 passed, 0 known failure, 0 skipped -[inst/pcacov.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/pcacov.m -***** demo - x = [ 7 26 6 60; - 1 29 15 52; - 11 56 8 20; - 11 31 8 47; - 7 52 6 33; - 11 55 9 22; - 3 71 17 6; - 1 31 22 44; - 2 54 18 22; - 21 47 4 26; - 1 40 23 34; - 11 66 9 12; - 10 68 8 12 - ]; - Kxx = cov (x); - [coeff, latent, explained] = pcacov (Kxx) + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + a = ClassificationKNN (x, y, "Exponent" , 5, "Distance", "minkowski", ... + "NSMethod", "exhaustive"); + assert (class (a), "ClassificationKNN"); + assert (a.DistParameter, 5) + assert ({a.NSMethod, a.Distance}, {"exhaustive", "minkowski"}) ***** test - load hald - Kxx = cov (ingredients); - [coeff,latent,explained] = pcacov(Kxx); - c_out = [-0.0678, -0.6460, 0.5673, 0.5062; ... - -0.6785, -0.0200, -0.5440, 0.4933; ... - 0.0290, 0.7553, 0.4036, 0.5156; ... - 0.7309, -0.1085, -0.4684, 0.4844]; - l_out = [517.7969; 67.4964; 12.4054; 0.2372]; - e_out = [ 86.5974; 11.2882; 2.0747; 0.0397]; - assert (coeff, c_out, 1e-4); - assert (latent, l_out, 1e-4); - assert (explained, e_out, 1e-4); -***** error pcacov (ones (2,3)) -***** error pcacov (ones (3,3,3)) -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/mhsample.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/mhsample.m -***** demo - ## Define function to sample - d = 2; - mu = [-1; 2]; - rand ("seed", 5) # for reproducibility - Sigma = rand (d); - Sigma = (Sigma + Sigma'); - Sigma += eye (d) * abs (eigs (Sigma, 1, "sa")) * 1.1; - pdf = @(x)(2*pi)^(-d/2)*det(Sigma)^-.5*exp(-.5*sum((x.'-mu).*(Sigma\(x.'-mu)),1)); - ## Inputs - start = ones (1, 2); - nsamples = 500; - sym = true; - K = 500; - m = 10; - rand ("seed", 8) # for reproducibility - proprnd = @(x) (rand (size (x)) - .5) * 3 + x; - [smpl, accept] = mhsample (start, nsamples, "pdf", pdf, "proprnd", proprnd, ... - "symmetric", sym, "burnin", K, "thin", m); - figure; - hold on; - plot (smpl(:, 1), smpl(:, 2), 'x'); - [x, y] = meshgrid (linspace (-6, 4), linspace(-3, 7)); - z = reshape (pdf ([x(:), y(:)]), size(x)); - mesh (x, y, z, "facecolor", "None"); - ## Using sample points to find the volume of half a sphere with radius of .5 - f = @(x) ((.25-(x(:,1)+1).^2-(x(:,2)-2).^2).^.5.*(((x(:,1)+1).^2+(x(:,2)-2).^2)<.25)).'; - int = mean (f (smpl) ./ pdf (smpl)); - errest = std (f (smpl) ./ pdf (smpl)) / nsamples ^ .5; - trueerr = abs (2 / 3 * pi * .25 ^ (3 / 2) - int); - printf ("Monte Carlo integral estimate int f(x) dx = %f\n", int); - printf ("Monte Carlo integral error estimate %f\n", errest); - printf ("The actual error %f\n", trueerr); - mesh (x, y, reshape (f([x(:), y(:)]), size(x)), "facecolor", "None"); -***** demo - ## Integrate truncated normal distribution to find normilization constant - pdf = @(x) exp (-.5*x.^2)/(pi^.5*2^.5); - nsamples = 1e3; - rand ("seed", 5) # for reproducibility - proprnd = @(x) (rand (size (x)) - .5) * 3 + x; - [smpl, accept] = mhsample (1, nsamples, "pdf", pdf, "proprnd", proprnd, ... - "symmetric", true, "thin", 4); - f = @(x) exp(-.5 * x .^ 2) .* (x >= -2 & x <= 2); - x = linspace (-3, 3, 1000); - area(x, f(x)); - xlabel ('x'); - ylabel ('f(x)'); - int = mean (f (smpl) ./ pdf (smpl)); - errest = std (f (smpl) ./ pdf (smpl)) / nsamples^ .5; - trueerr = abs (erf (2 ^ .5) * 2 ^ .5 * pi ^ .5 - int); - printf ("Monte Carlo integral estimate int f(x) dx = %f\n", int); - printf ("Monte Carlo integral error estimate %f\n", errest); - printf ("The actual error %f\n", trueerr); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + a = ClassificationKNN (x, y, "BucketSize" , 20, "distance", "mahalanobis"); + assert (class (a), "ClassificationKNN"); + assert ({a.NSMethod, a.Distance}, {"exhaustive", "mahalanobis"}) + assert ({a.BucketSize}, {20}) ***** test - nchain = 1e4; - start = rand (nchain, 1); - nsamples = 1e3; - pdf = @(x) exp (-.5*(x-1).^2)/(2*pi)^.5; - proppdf = @(x, y) 1/3; - proprnd = @(x) 3 * (rand (size (x)) - .5) + x; - [smpl, accept] = mhsample (start, nsamples, "pdf", pdf, "proppdf", proppdf, ... - "proprnd", proprnd, "thin", 2, "nchain", nchain, ... - "burnin", 0); - assert (mean (mean (smpl, 1), 3), 1, .01); - assert (mean (var (smpl, 1), 3), 1, .01) -***** error mhsample (); -***** error mhsample (1); -***** error mhsample (1, 1); -***** error mhsample (1, 1, "pdf", @(x)x); -***** error mhsample (1, 1, "pdf", @(x)x, "proprnd", @(x)x+rand(size(x))); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/dist_fit/gamfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gamfit.m -***** demo - ## Sample 3 populations from different Gamma distibutions - randg ("seed", 5); # for reproducibility - r1 = gamrnd (1, 2, 2000, 1); - randg ("seed", 2); # for reproducibility - r2 = gamrnd (2, 2, 2000, 1); - randg ("seed", 7); # for reproducibility - r3 = gamrnd (7.5, 1, 2000, 1); - r = [r1, r2, r3]; - - ## Plot them normalized and fix their colors - hist (r, 75, 4); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - ylim ([0, 0.62]); - xlim ([0, 12]); - hold on - - ## Estimate their α and β parameters - a_bA = gamfit (r(:,1)); - a_bB = gamfit (r(:,2)); - a_bC = gamfit (r(:,3)); - - ## Plot their estimated PDFs - x = [0.01,0.1:0.2:18]; - y = gampdf (x, a_bA(1), a_bA(2)); - plot (x, y, "-pr"); - y = gampdf (x, a_bB(1), a_bB(2)); - plot (x, y, "-sg"); - y = gampdf (x, a_bC(1), a_bC(2)); - plot (x, y, "-^c"); - hold off - legend ({"Normalized HIST of sample 1 with α=1 and β=2", ... - "Normalized HIST of sample 2 with α=2 and β=2", ... - "Normalized HIST of sample 3 with α=7.5 and β=1", ... - sprintf("PDF for sample 1 with estimated α=%0.2f and β=%0.2f", ... - a_bA(1), a_bA(2)), ... - sprintf("PDF for sample 2 with estimated α=%0.2f and β=%0.2f", ... - a_bB(1), a_bB(2)), ... - sprintf("PDF for sample 3 with estimated α=%0.2f and β=%0.2f", ... - a_bC(1), a_bC(2))}) - title ("Three population samples from different Gamma distibutions") - hold off -***** shared x - x = [1.2 1.6 1.7 1.8 1.9 2.0 2.2 2.6 3.0 3.5 4.0 4.8 5.6 6.6 7.6]; + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + a = ClassificationKNN (x, y, "IncludeTies", true); + assert (class (a), "ClassificationKNN"); + assert (a.IncludeTies, true); + assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) ***** test - [paramhat, paramci] = gamfit (x); - assert (paramhat, [3.4248, 0.9752], 1e-4); - assert (paramci, [1.7287, 0.4670; 6.7852, 2.0366], 1e-4); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + a = ClassificationKNN (x, y); + assert (class (a), "ClassificationKNN"); + assert (a.IncludeTies, false); + assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) ***** test - [paramhat, paramci] = gamfit (x, 0.01); - assert (paramhat, [3.4248, 0.9752], 1e-4); - assert (paramci, [1.3945, 0.3705; 8.4113, 2.5668], 1e-4); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + a = ClassificationKNN (x, y); + assert (class (a), "ClassificationKNN") + assert (a.Prior, [0.5; 0.5]) + assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) + assert ({a.BucketSize}, {50}) ***** test - freq = [1 1 1 1 2 1 1 1 1 2 1 1 1 1 2]; - [paramhat, paramci] = gamfit (x, [], [], freq); - assert (paramhat, [3.3025, 1.0615], 1e-4); - assert (paramci, [1.7710, 0.5415; 6.1584, 2.0806], 1e-4); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + prior = [0.5; 0.5]; + a = ClassificationKNN (x, y, "Prior", "empirical"); + assert (class (a), "ClassificationKNN") + assert (a.Prior, prior) + assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) + assert ({a.BucketSize}, {50}) ***** test - [paramhat, paramci] = gamfit (x, [], [], [1:15]); - assert (paramhat, [4.4484, 0.9689], 1e-4); - assert (paramci, [3.4848, 0.7482; 5.6785, 1.2546], 1e-4); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "a"; "b"]; + prior = [0.75; 0.25]; + a = ClassificationKNN (x, y, "Prior", "empirical"); + assert (class (a), "ClassificationKNN") + assert (a.Prior, prior) + assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) + assert ({a.BucketSize}, {50}) ***** test - [paramhat, paramci] = gamfit (x, 0.01, [], [1:15]); - assert (paramhat, [4.4484, 0.9689], 1e-4); - assert (paramci, [3.2275, 0.6899; 6.1312, 1.3608], 1e-4); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "a"; "b"]; + prior = [0.5; 0.5]; + a = ClassificationKNN (x, y, "Prior", "uniform"); + assert (class (a), "ClassificationKNN") + assert (a.Prior, prior) + assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) + assert ({a.BucketSize}, {50}) ***** test - cens = [0 0 0 0 1 0 0 0 0 0 0 0 0 0 0]; - [paramhat, paramci] = gamfit (x, [], cens, [1:15]); - assert (paramhat, [4.7537, 0.9308], 1e-4); - assert (paramci, [3.7123, 0.7162; 6.0872, 1.2097], 1e-4); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + cost = eye (2); + a = ClassificationKNN (x, y, "Cost", cost); + assert (class (a), "ClassificationKNN") + assert (a.Cost, [1, 0; 0, 1]) + assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) + assert ({a.BucketSize}, {50}) ***** test - cens = [0 0 0 0 1 0 0 0 0 0 0 0 0 0 0]; - freq = [1 1 1 1 2 1 1 1 1 2 1 1 1 1 2]; - [paramhat, paramci] = gamfit (x, [], cens, freq); - assert (paramhat, [3.4736, 1.0847], 1e-4); - assert (paramci, [1.8286, 0.5359; 6.5982, 2.1956], 1e-4); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + cost = eye (2); + a = ClassificationKNN (x, y, "Cost", cost, "Distance", "hamming" ); + assert (class (a), "ClassificationKNN") + assert (a.Cost, [1, 0; 0, 1]) + assert ({a.NSMethod, a.Distance}, {"exhaustive", "hamming"}) + assert ({a.BucketSize}, {50}) +***** error ClassificationKNN () +***** error ... + ClassificationKNN (ones(4, 1)) +***** error ... + ClassificationKNN (ones (4,2), ones (1,4)) +***** error ... + ClassificationKNN (ones (5,3), ones (5,1), "standardize", "a") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "scale", [1 1], "standardize", true) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "PredictorNames", ["A"]) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "PredictorNames", "A") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "PredictorNames", {"A", "B", "C"}) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "ResponseName", {"Y"}) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "ResponseName", 1) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "ClassNames", 1) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "ClassNames", ["1"]) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "ClassNames", {"1", "2"}) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "BreakTies", 1) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "BreakTies", {"1"}) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "BreakTies", "some") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Prior", {"1", "2"}) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Cost", [1, 2]) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Cost", "string") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Cost", {eye(2)}) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "NumNeighbors", 0) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "NumNeighbors", 15.2) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "NumNeighbors", "asd") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Distance", "somemetric") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Distance", ... + @(v,m)sqrt(repmat(v,rows(m),1)-m,2)) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Distance", ... + @(v,m)sqrt(sum(sumsq(repmat(v,rows(m),1)-m,2)))) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Distance", [1 2 3]) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Distance", {"mahalanobis"}) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Distance", logical (5)) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "DistanceWeight", @(x)sum(x)) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "DistanceWeight", "text") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "DistanceWeight", [1 2 3]) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Scale", "scale") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Scale", {[1 2 3]}) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "standardize", true, "scale", [1 1]) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Cov", ones (2), "Distance", "mahalanobis") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "scale", [1 1], "Cov", ones (2)) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Exponent", 12.5) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Exponent", -3) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Exponent", "three") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Exponent", {3}) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "NSMethod", {"kdtree"}) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "NSMethod", 3) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "NSMethod", "some") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "IncludeTies", "some") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "BucketSize", 42.5) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "BucketSize", -50) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "BucketSize", "some") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "BucketSize", {50}) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "some", "some") +***** error ... + ClassificationKNN ([1;2;3;'a';4], ones (5,1)) +***** error ... + ClassificationKNN ([1;2;3;Inf;4], ones (5,1)) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Prior", [1 2]) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Cost", [1 2; 1 3]) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Scale", [1 1]) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Scale", [1 1 1], "Distance", "seuclidean") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Scale", [1 -1], "Distance", "seuclidean") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Cov", eye (2)) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Cov", eye (3), "Distance", "mahalanobis") +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Exponent", 3) +***** error ... + ClassificationKNN (ones (5,2), ones (5,1), "Distance", "hamming", "NSMethod", "kdtree") +***** shared x, y + load fisheriris + x = meas; + y = species; ***** test - [paramhat, paramci] = gamfit ([1 1 1 1 1 1]); - assert (paramhat, [Inf, 0]); - assert (paramci, [Inf, 0; Inf, 0]); + xc = [min(x); mean(x); max(x)]; + obj = fitcknn (x, y, "NumNeighbors", 5); + [l, s, c] = predict (obj, xc); + assert (l, {"setosa"; "versicolor"; "virginica"}) + assert (s, [1, 0, 0; 0, 1, 0; 0, 0, 1]) + assert (c, [0, 1, 1; 1, 0, 1; 1, 1, 0]) ***** test - [paramhat, paramci] = gamfit ([1 1 1 1 1 1], [], [1 1 1 1 1 1]); - assert (paramhat, [NaN, NaN]); - assert (paramci, [NaN, NaN; NaN, NaN]); + xc = [min(x); mean(x); max(x)]; + obj = fitcknn (x, y, "NumNeighbors", 5, "Standardize", 1); + [l, s, c] = predict (obj, xc); + assert (l, {"versicolor"; "versicolor"; "virginica"}) + assert (s, [0.4, 0.6, 0; 0, 1, 0; 0, 0, 1]) + assert (c, [0.6, 0.4, 1; 1, 0, 1; 1, 1, 0]) ***** test - [paramhat, paramci] = gamfit ([1 1 1 1 1 1], [], [], [1 1 1 1 1 1]); - assert (paramhat, [Inf, 0]); - assert (paramci, [Inf, 0; Inf, 0]); -***** assert (class (gamfit (single (x))), "single") -***** error gamfit (ones (2)) -***** error gamfit (x, 1) -***** error gamfit (x, -1) -***** error gamfit (x, {0.05}) -***** error gamfit (x, "a") -***** error gamfit (x, i) -***** error gamfit (x, [0.01 0.02]) -***** error - gamfit ([1 2 3], 0.05, [], [1 5]) -***** error - gamfit ([1 2 3], 0.05, [], [1 5 -1]) -***** error ... - gamfit ([1:10], 0.05, [], [], 5) -***** error gamfit ([1 2 3 -4]) -***** error ... - gamfit ([1 2 0], [], [1 0 0]) -23 tests, 23 passed, 0 known failure, 0 skipped -[inst/dist_fit/bisafit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/bisafit.m -***** demo - ## Sample 3 populations from different Birnbaum-Saunders distibutions - rand ("seed", 5); # for reproducibility - r1 = bisarnd (1, 0.5, 2000, 1); - rand ("seed", 2); # for reproducibility - r2 = bisarnd (2, 0.3, 2000, 1); - rand ("seed", 7); # for reproducibility - r3 = bisarnd (4, 0.5, 2000, 1); - r = [r1, r2, r3]; - - ## Plot them normalized and fix their colors - hist (r, 80, 4.2); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - ylim ([0, 1.1]); - xlim ([0, 8]); - hold on - - ## Estimate their α and β parameters - beta_gammaA = bisafit (r(:,1)); - beta_gammaB = bisafit (r(:,2)); - beta_gammaC = bisafit (r(:,3)); - - ## Plot their estimated PDFs - x = [0:0.1:8]; - y = bisapdf (x, beta_gammaA(1), beta_gammaA(2)); - plot (x, y, "-pr"); - y = bisapdf (x, beta_gammaB(1), beta_gammaB(2)); - plot (x, y, "-sg"); - y = bisapdf (x, beta_gammaC(1), beta_gammaC(2)); - plot (x, y, "-^c"); - hold off - legend ({"Normalized HIST of sample 1 with β=1 and γ=0.5", ... - "Normalized HIST of sample 2 with β=2 and γ=0.3", ... - "Normalized HIST of sample 3 with β=4 and γ=0.5", ... - sprintf("PDF for sample 1 with estimated β=%0.2f and γ=%0.2f", ... - beta_gammaA(1), beta_gammaA(2)), ... - sprintf("PDF for sample 2 with estimated β=%0.2f and γ=%0.2f", ... - beta_gammaB(1), beta_gammaB(2)), ... - sprintf("PDF for sample 3 with estimated β=%0.2f and γ=%0.2f", ... - beta_gammaC(1), beta_gammaC(2))}) - title ("Three population samples from different Birnbaum-Saunders distibutions") - hold off + xc = [min(x); mean(x); max(x)]; + obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "mahalanobis"); + [l, s, c] = predict (obj, xc); + assert (s, [0.3, 0.7, 0; 0, 0.9, 0.1; 0.2, 0.2, 0.6], 1e-4) + assert (c, [0.7, 0.3, 1; 1, 0.1, 0.9; 0.8, 0.8, 0.4], 1e-4) ***** test - paramhat = bisafit ([1:50]); - paramhat_out = [16.2649, 1.0156]; - assert (paramhat, paramhat_out, 1e-4); + xc = [min(x); mean(x); max(x)]; + obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "cosine"); + [l, s, c] = predict (obj, xc); + assert (l, {"setosa"; "versicolor"; "virginica"}) + assert (s, [1, 0, 0; 0, 1, 0; 0, 0.3, 0.7], 1e-4) + assert (c, [0, 1, 1; 1, 0, 1; 1, 0.7, 0.3], 1e-4) ***** test - paramhat = bisafit ([1:5]); - paramhat_out = [2.5585, 0.5839]; - assert (paramhat, paramhat_out, 1e-4); -***** error bisafit (ones (2,5)); -***** error bisafit ([-1 2 3 4]); -***** error bisafit ([1, 2, 3, 4, 5], 1.2); -***** error bisafit ([1, 2, 3, 4, 5], 0); -***** error bisafit ([1, 2, 3, 4, 5], "alpha"); -***** error ... - bisafit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); -***** error ... - bisafit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); -***** error ... - bisafit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); -***** error ... - bisafit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); -***** error ... - bisafit ([1, 2, 3, 4, 5], 0.05, [], [], 2); -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/dist_fit/evlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/evlike.m + xc = [5.2, 4.1, 1.5, 0.1; 5.1, 3.8, 1.9, 0.4; ... + 5.1, 3.8, 1.5, 0.3; 4.9, 3.6, 1.4, 0.1]; + obj = fitcknn (x, y, "NumNeighbors", 5); + [l, s, c] = predict (obj, xc); + assert (l, {"setosa"; "setosa"; "setosa"; "setosa"}) + assert (s, [1, 0, 0; 1, 0, 0; 1, 0, 0; 1, 0, 0]) + assert (c, [0, 1, 1; 0, 1, 1; 0, 1, 1; 0, 1, 1]) ***** test - x = 1:50; - [nlogL, acov] = evlike ([2.3, 1.2], x); - avar_out = [-1.2778e-13, 3.1859e-15; 3.1859e-15, -7.9430e-17]; - assert (nlogL, 3.242264755689906e+17, 1e-14); - assert (acov, avar_out, 1e-3); + xc = [5, 3, 5, 1.45]; + obj = fitcknn (x, y, "NumNeighbors", 5); + [l, s, c] = predict (obj, xc); + assert (l, {"versicolor"}) + assert (s, [0, 0.6, 0.4], 1e-4) + assert (c, [1, 0.4, 0.6], 1e-4) ***** test - x = 1:50; - [nlogL, acov] = evlike ([2.3, 1.2], x * 0.5); - avar_out = [-7.6094e-05, 3.9819e-06; 3.9819e-06, -2.0836e-07]; - assert (nlogL, 481898704.0472211, 1e-6); - assert (acov, avar_out, 1e-3); + xc = [5, 3, 5, 1.45]; + obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "minkowski", "Exponent", 5); + [l, s, c] = predict (obj, xc); + assert (l, {"versicolor"}) + assert (s, [0, 0.5, 0.5], 1e-4) + assert (c, [1, 0.5, 0.5], 1e-4) ***** test - x = 1:50; - [nlogL, acov] = evlike ([21, 15], x); - avar_out = [11.73913876598908, -5.9546128523121216; ... - -5.954612852312121, 3.708060045170236]; - assert (nlogL, 223.7612479380652, 1e-13); - assert (acov, avar_out, 1e-14); -***** error evlike ([12, 15]) -***** error evlike ([12, 15, 3], [1:50]) -***** error evlike ([12, 3], ones (10, 2)) -***** error ... - evlike ([12, 15], [1:50], [1, 2, 3]) -***** error ... - evlike ([12, 15], [1:50], [], [1, 2, 3]) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fit/betafit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/betafit.m -***** demo - ## Sample 2 populations from different Beta distibutions - randg ("seed", 1); # for reproducibility - r1 = betarnd (2, 5, 500, 1); - randg ("seed", 2); # for reproducibility - r2 = betarnd (2, 2, 500, 1); - r = [r1, r2]; - - ## Plot them normalized and fix their colors - hist (r, 12, 15); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - hold on - - ## Estimate their shape parameters - a_b_A = betafit (r(:,1)); - a_b_B = betafit (r(:,2)); - - ## Plot their estimated PDFs - x = [min(r(:)):0.01:max(r(:))]; - y = betapdf (x, a_b_A(1), a_b_A(2)); - plot (x, y, "-pr"); - y = betapdf (x, a_b_B(1), a_b_B(2)); - plot (x, y, "-sg"); - ylim ([0, 4]) - legend ({"Normalized HIST of sample 1 with α=2 and β=5", ... - "Normalized HIST of sample 2 with α=2 and β=2", ... - sprintf("PDF for sample 1 with estimated α=%0.2f and β=%0.2f", ... - a_b_A(1), a_b_A(2)), ... - sprintf("PDF for sample 2 with estimated α=%0.2f and β=%0.2f", ... - a_b_B(1), a_b_B(2))}) - title ("Two population samples from different Beta distibutions") - hold off + xc = [5, 3, 5, 1.45]; + obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "jaccard"); + [l, s, c] = predict (obj, xc); + assert (l, {"setosa"}) + assert (s, [0.9, 0.1, 0], 1e-4) + assert (c, [0.1, 0.9, 1], 1e-4) ***** test - x = 0.01:0.02:0.99; - [paramhat, paramci] = betafit (x); - paramhat_out = [1.0199, 1.0199]; - paramci_out = [0.6947, 0.6947; 1.4974, 1.4974]; - assert (paramhat, paramhat_out, 1e-4); - assert (paramci, paramci_out, 1e-4); + xc = [5, 3, 5, 1.45]; + obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "mahalanobis"); + [l, s, c] = predict (obj, xc); + assert (l, {"versicolor"}) + assert (s, [0.1000, 0.5000, 0.4000], 1e-4) + assert (c, [0.9000, 0.5000, 0.6000], 1e-4) ***** test - x = 0.01:0.02:0.99; - [paramhat, paramci] = betafit (x, 0.01); - paramci_out = [0.6157, 0.6157; 1.6895, 1.6895]; - assert (paramci, paramci_out, 1e-4); + xc = [5, 3, 5, 1.45]; + obj = fitcknn (x, y, "NumNeighbors", 5, "distance", "jaccard"); + [l, s, c] = predict (obj, xc); + assert (l, {"setosa"}) + assert (s, [0.8, 0.2, 0], 1e-4) + assert (c, [0.2, 0.8, 1], 1e-4) ***** test - x = 0.00:0.02:1; - [paramhat, paramci] = betafit (x); - paramhat_out = [0.0875, 0.1913]; - paramci_out = [0.0822, 0.1490; 0.0931, 0.2455]; - assert (paramhat, paramhat_out, 1e-4); - assert (paramci, paramci_out, 1e-4); -***** error betafit ([0.2, 0.5+i]); -***** error betafit (ones (2,2) * 0.5); -***** error betafit ([0.5, 1.2]); -***** error betafit ([0.1, 0.1]); -***** error betafit ([0.01:0.1:0.99], 1.2); -***** error ... - betafit ([0.01:0.01:0.05], 0.05, [1, 2, 3, 2]); -***** error ... - betafit ([0.01:0.01:0.05], 0.05, [1, 2, 3, 2, -1]); -***** error ... - betafit ([0.01:0.01:0.05], 0.05, [1, 2, 3, 2, 1.5]); -***** error ... - betafit ([0.01:0.01:0.05], 0.05, struct ("option", 234)); -***** error ... - betafit ([0.01:0.01:0.05], 0.05, ones (1,5), struct ("option", 234)); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_fit/poisslike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/poisslike.m + xc = [5, 3, 5, 1.45]; + obj = fitcknn (x, y, "NumNeighbors", 5, "distance", "seuclidean"); + [l, s, c] = predict (obj, xc); + assert (l, {"versicolor"}) + assert (s, [0, 1, 0], 1e-4) + assert (c, [1, 0, 1], 1e-4) ***** test - x = [1 3 2 4 5 4 3 4]; - [nlogL, avar] = poisslike (3.25, x); - assert (nlogL, 13.9533, 1e-4) + xc = [5, 3, 5, 1.45]; + obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "chebychev"); + [l, s, c] = predict (obj, xc); + assert (l, {"versicolor"}) + assert (s, [0, 0.7, 0.3], 1e-4) + assert (c, [1, 0.3, 0.7], 1e-4) ***** test - x = [1 2 3 4 5]; - f = [1 1 2 3 1]; - [nlogL, avar] = poisslike (3.25, x, f); - assert (nlogL, 13.9533, 1e-4) -***** error poisslike (1) -***** error poisslike ([1 2 3], [1 2]) -***** error ... - poisslike (3.25, ones (10, 2)) -***** error ... - poisslike (3.25, [1 2 3 -4 5]) -***** error ... - poisslike (3.25, ones (10, 1), ones (8,1)) -***** error ... - poisslike (3.25, ones (1, 8), [1 1 1 1 1 1 1 -1]) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fit/gamlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gamlike.m + xc = [5, 3, 5, 1.45]; + obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "cityblock"); + [l, s, c] = predict (obj, xc); + assert (l, {"versicolor"}) + assert (s, [0, 0.6, 0.4], 1e-4) + assert (c, [1, 0.4, 0.6], 1e-4) ***** test - [nlogL, acov] = gamlike([2, 3], [2, 3, 4, 5, 6, 7, 8, 9]); - assert (nlogL, 19.4426, 1e-4); - assert (acov, [2.7819, -5.0073; -5.0073, 9.6882], 1e-4); + xc = [5, 3, 5, 1.45]; + obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "cosine"); + [l, s, c] = predict (obj, xc); + assert (l, {"virginica"}) + assert (s, [0, 0.1, 0.9], 1e-4) + assert (c, [1, 0.9, 0.1], 1e-4) ***** test - [nlogL, acov] = gamlike([2, 3], [5:45]); - assert (nlogL, 305.8070, 1e-4); - assert (acov, [0.0423, -0.0087; -0.0087, 0.0167], 1e-4); + xc = [5, 3, 5, 1.45]; + obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "correlation"); + [l, s, c] = predict (obj, xc); + assert (l, {"virginica"}) + assert (s, [0, 0.1, 0.9], 1e-4) + assert (c, [1, 0.9, 0.1], 1e-4) ***** test - [nlogL, acov] = gamlike([2, 13], [5:45]); - assert (nlogL, 163.2261, 1e-4); - assert (acov, [0.2362, -1.6631; -1.6631, 13.9440], 1e-4); -***** error ... - gamlike ([12, 15]) -***** error gamlike ([12, 15, 3], [1:50]) -***** error gamlike ([12, 3], ones (10, 2)) -***** error ... - gamlike ([12, 15], [1:50], [1, 2, 3]) -***** error ... - gamlike ([12, 15], [1:50], [], [1, 2, 3]) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fit/explike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/explike.m + xc = [5, 3, 5, 1.45]; + obj = fitcknn (x, y, "NumNeighbors", 30, "distance", "spearman"); + [l, s, c] = predict (obj, xc); + assert (l, {"versicolor"}) + assert (s, [0, 1, 0], 1e-4) + assert (c, [1, 0, 1], 1e-4) ***** test - x = 12; - beta = 5; - [L, V] = explike (beta, x); - expected_L = 4.0094; - expected_V = 6.5789; - assert (L, expected_L, 0.001); - assert (V, expected_V, 0.001); + xc = [5, 3, 5, 1.45]; + obj = fitcknn (x, y, "NumNeighbors", 30, "distance", "hamming"); + [l, s, c] = predict (obj, xc); + assert (l, {"setosa"}) + assert (s, [0.4333, 0.3333, 0.2333], 1e-4) + assert (c, [0.5667, 0.6667, 0.7667], 1e-4) ***** test - x = 1:5; - beta = 2; - [L, V] = explike (beta, x); - expected_L = 10.9657; - expected_V = 0.4; - assert (L, expected_L, 0.001); - assert (V, expected_V, 0.001); -***** error explike () -***** error explike (2) -***** error explike ([12, 3], [1:50]) -***** error explike (3, ones (10, 2)) -***** error ... - explike (3, [1:50], [1, 2, 3]) -***** error ... - explike (3, [1:50], [], [1, 2, 3]) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fit/unifit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/unifit.m -***** demo - ## Sample 2 populations from different continuous uniform distibutions - rand ("seed", 5); # for reproducibility - r1 = unifrnd (2, 5, 2000, 1); - rand ("seed", 6); # for reproducibility - r2 = unifrnd (3, 9, 2000, 1); - r = [r1, r2]; - - ## Plot them normalized and fix their colors - hist (r, 0:0.5:10, 2); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - hold on - - ## Estimate their probability of success - a_bA = unifit (r(:,1)); - a_bB = unifit (r(:,2)); - - ## Plot their estimated PDFs - x = [0:10]; - y = unifpdf (x, a_bA(1), a_bA(2)); - plot (x, y, "-pg"); - y = unifpdf (x, a_bB(1), a_bB(2)); - plot (x, y, "-sc"); - xlim ([1, 10]) - ylim ([0, 0.5]) - legend ({"Normalized HIST of sample 1 with a=2 and b=5", ... - "Normalized HIST of sample 2 with a=3 and b=9", ... - sprintf("PDF for sample 1 with estimated a=%0.2f and b=%0.2f", ... - a_bA(1), a_bA(2)), ... - sprintf("PDF for sample 2 with estimated a=%0.2f and b=%0.2f", ... - a_bB(1), a_bB(2))}) - title ("Two population samples from different continuous uniform distibutions") - hold off + xc = [5, 3, 5, 1.45]; + obj = fitcknn (x, y, "NumNeighbors", 5, "distance", "hamming"); + [l, s, c] = predict (obj, xc); + assert (l, {"setosa"}) + assert (s, [0.8, 0.2, 0], 1e-4) + assert (c, [0.2, 0.8, 1], 1e-4) ***** test - x = 0:5; - [paramhat, paramci] = unifit (x); - assert (paramhat, [0, 5]); - assert (paramci, [-3.2377, 8.2377; 0, 5], 1e-4); + xc = [min(x); mean(x); max(x)]; + obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "correlation"); + [l, s, c] = predict (obj, xc); + assert (l, {"setosa"; "versicolor"; "virginica"}) + assert (s, [1, 0, 0; 0, 1, 0; 0, 0.4, 0.6], 1e-4) + assert (c, [0, 1, 1; 1, 0, 1; 1, 0.6, 0.4], 1e-4) ***** test - x = 0:5; - [paramhat, paramci] = unifit (x, [], [1 1 1 1 1 1]); - assert (paramhat, [0, 5]); - assert (paramci, [-3.2377, 8.2377; 0, 5], 1e-4); -***** assert (unifit ([1 1 2 3]), unifit ([1 2 3], [] ,[2 1 1])) -***** error unifit () -***** error unifit (-1, [1 2 3 3]) -***** error unifit (1, 0) -***** error unifit (1, 1.2) -***** error unifit (1, [0.02 0.05]) -***** error ... - unifit ([1.5, 0.2], [], [0, 0, 0, 0, 0]) -***** error ... - unifit ([1.5, 0.2], [], [1, -1]) -***** error ... - unifit ([1.5, 0.2], [], [1, 1, 1]) -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/dist_fit/burrlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/burrlike.m -***** error burrlike (3.25) -***** error burrlike ([1, 2, 3], ones (2)) -***** error burrlike ([1, 2, 3], [-1, 3]) -***** error ... - burrlike ([1, 2], [1, 3, 5, 7]) -***** error ... - burrlike ([1, 2, 3, 4], [1, 3, 5, 7]) -***** error ... - burrlike ([1, 2, 3], [1:5], [0, 0, 0]) -***** error ... - burrlike ([1, 2, 3], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) -***** error ... - burrlike ([1, 2, 3], [1:5], [], [1, 1, 1]) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fit/expfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/expfit.m -***** demo - ## Sample 3 populations from 3 different exponential distibutions - rande ("seed", 1); # for reproducibility - r1 = exprnd (2, 4000, 1); - rande ("seed", 2); # for reproducibility - r2 = exprnd (5, 4000, 1); - rande ("seed", 3); # for reproducibility - r3 = exprnd (12, 4000, 1); - r = [r1, r2, r3]; - - ## Plot them normalized and fix their colors - hist (r, 48, 0.52); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - hold on - - ## Estimate their mu parameter - muhat = expfit (r); - - ## Plot their estimated PDFs - x = [0:max(r(:))]; - y = exppdf (x, muhat(1)); - plot (x, y, "-pr"); - y = exppdf (x, muhat(2)); - plot (x, y, "-sg"); - y = exppdf (x, muhat(3)); - plot (x, y, "-^c"); - ylim ([0, 0.6]) - xlim ([0, 40]) - legend ({"Normalized HIST of sample 1 with μ=2", ... - "Normalized HIST of sample 2 with μ=5", ... - "Normalized HIST of sample 3 with μ=12", ... - sprintf("PDF for sample 1 with estimated μ=%0.2f", muhat(1)), ... - sprintf("PDF for sample 2 with estimated μ=%0.2f", muhat(2)), ... - sprintf("PDF for sample 3 with estimated μ=%0.2f", muhat(3))}) - title ("Three population samples from different exponential distibutions") - hold off -***** assert (expfit (1), 1) -***** assert (expfit (1:3), 2) -***** assert (expfit ([1:3]'), 2) -***** assert (expfit (1:3, []), 2) -***** assert (expfit (1:3, [], [], []), 2) -***** assert (expfit (magic (3)), [5 5 5]) -***** assert (expfit (cat (3, magic (3), 2*magic (3))), cat (3,[5 5 5], [10 10 10])) -***** assert (expfit (1:3, 0.1, [0 0 0], [1 1 1]), 2) -***** assert (expfit ([1:3]', 0.1, [0 0 0]', [1 1 1]'), 2) -***** assert (expfit (1:3, 0.1, [0 0 0]', [1 1 1]'), 2) -***** assert (expfit (1:3, 0.1, [1 0 0], [1 1 1]), 3) -***** assert (expfit (1:3, 0.1, [0 0 0], [4 1 1]), 1.5) -***** assert (expfit (1:3, 0.1, [1 0 0], [4 1 1]), 4.5) -***** assert (expfit (1:3, 0.1, [1 0 1], [4 1 1]), 9) -***** assert (expfit (1:3, 0.1, [], [-1 1 1]), 4) -***** assert (expfit (1:3, 0.1, [], [0.5 1 1]), 2.2) -***** assert (expfit (1:3, 0.1, [1 1 1]), NaN) -***** assert (expfit (1:3, 0.1, [], [0 0 0]), NaN) -***** assert (expfit (reshape (1:9, [3 3])), [2 5 8]) -***** assert (expfit (reshape (1:9, [3 3]), [], eye(3)), [3 7.5 12]) -***** assert (expfit (reshape (1:9, [3 3]), [], 2*eye(3)), [3 7.5 12]) -***** assert (expfit (reshape (1:9, [3 3]), [], [], [2 2 2; 1 1 1; 1 1 1]), ... - [1.75 4.75 7.75]) -***** assert (expfit (reshape (1:9, [3 3]), [], [], [2 2 2; 1 1 1; 1 1 1]), ... - [1.75 4.75 7.75]) -***** assert (expfit (reshape (1:9, [3 3]), [], eye(3), [2 2 2; 1 1 1; 1 1 1]), ... - [3.5 19/3 31/3]) -***** assert ([~,muci] = expfit (1:3, 0), [0; Inf]) -***** assert ([~,muci] = expfit (1:3, 2), [Inf; 0]) -***** assert ([~,muci] = expfit (1:3, 0.1, [1 1 1]), [NaN; NaN]) -***** assert ([~,muci] = expfit (1:3, 0.1, [], [0 0 0]), [NaN; NaN]) -***** assert ([~,muci] = expfit (1:3, -1), [NaN; NaN]) -***** assert ([~,muci] = expfit (1:3, 5), [NaN; NaN]) -***** assert ([~,muci] = expfit (1:3), [0.830485728373393; 9.698190330474096], ... - 1000*eps) -***** assert ([~,muci] = expfit (1:3, 0.1), ... - [0.953017262058213; 7.337731146400207], 1000*eps) -***** assert ([~,muci] = expfit ([1:3;2:4]), ... - [0.538440777613095, 0.897401296021825, 1.256361814430554; ... - 12.385982973214016, 20.643304955356694, 28.900626937499371], ... - 1000*eps) -***** assert ([~,muci] = expfit ([1:3;2:4], [], [1 1 1; 0 0 0]), ... - 100*[0.008132550920455, 0.013554251534091, 0.018975952147727; ... - 1.184936706156216, 1.974894510260360, 2.764852314364504], ... - 1000*eps) -***** assert ([~,muci] = expfit ([1:3;2:4], [], [], [3 3 3; 1 1 1]), ... - [0.570302756652583, 1.026544961974649, 1.482787167296715; ... - 4.587722594914109, 8.257900670845396, 11.928078746776684], ... - 1000*eps) -***** assert ([~,muci] = expfit ([1:3;2:4], [], [0 0 0; 1 1 1], [3 3 3; 1 1 1]), ... - [0.692071440311161, 1.245728592560089, 1.799385744809018; ... - 8.081825275395081, 14.547285495711145, 21.012745716027212], ... - 1000*eps) + xc = [min(x); mean(x); max(x)]; + obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "hamming"); + [l, s, c] = predict (obj, xc); + assert (l, {"setosa";"setosa";"setosa"}) + assert (s, [0.9, 0.1, 0; 1, 0, 0; 0.5, 0, 0.5], 1e-4) + assert (c, [0.1, 0.9, 1; 0, 1, 1; 0.5, 1, 0.5], 1e-4) +***** error ... + predict (ClassificationKNN (ones (4,2), ones (4,1))) +***** error ... + predict (ClassificationKNN (ones (4,2), ones (4,1)), []) +***** error ... + predict (ClassificationKNN (ones (4,2), ones (4,1)), 1) +104 tests, 104 passed, 0 known failure, 0 skipped +[inst/datasample.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/datasample.m +***** error datasample(); +***** error datasample(1); +***** error datasample({1, 2, 3}, 1); +***** error datasample([1 2], -1); +***** error datasample([1 2], 1.5); +***** error datasample([1 2], [1 1]); +***** error datasample([1 2], 'g', [1 1]); +***** error datasample([1 2], 1, -1); +***** error datasample([1 2], 1, 1.5); +***** error datasample([1 2], 1, [1 1]); +***** error datasample([1 2], 1, 1, "Replace", -2); +***** error datasample([1 2], 1, 1, "Weights", "abc"); +***** error datasample([1 2], 1, 1, "Weights", [1 -2 3]); +***** error datasample([1 2], 1, 1, "Weights", ones (2)); +***** error datasample([1 2], 1, 1, "Weights", [1 2 3]); ***** test - x = reshape (1:8, [4 2]); - x(4) = NaN; - [muhat,muci] = expfit (x); - assert ({muhat, muci}, {[NaN, 6.5], ... - [NaN, 2.965574334593430;NaN, 23.856157493553368]}, 1000*eps); + dat = randn (10, 4); + assert (size (datasample (dat, 3, 1)), [3 4]); ***** test - x = magic (3); - censor = [0 1 0; 0 1 0; 0 1 0]; - freq = [1 1 0; 1 1 0; 1 1 0]; - [muhat,muci] = expfit (x, [], censor, freq); - assert ({muhat, muci}, {[5 NaN NaN], ... - [[2.076214320933482; 24.245475826185242],NaN(2)]}, 1000*eps); -***** error expfit () -***** error expfit (1,2,3,4,5) -***** error [a b censor] = expfit (1) -***** error expfit (1, [1 2]) -***** error expfit ([-1 2 3 4 5]) -***** error expfit ([1:5], [], "test") -***** error expfit ([1:5], [], [], "test") -***** error expfit ([1:5], [], [0 0 0 0]) -***** error expfit ([1:5], [], [], [1 1 1 1]) -47 tests, 47 passed, 0 known failure, 0 skipped -[inst/dist_fit/gumbelfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gumbelfit.m + dat = randn (10, 4); + assert (size (datasample (dat, 3, 2)), [10 3]); +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/violin.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/violin.m ***** demo - ## Sample 3 populations from different Gumbel distibutions - rand ("seed", 1); # for reproducibility - r1 = gumbelrnd (2, 5, 400, 1); - rand ("seed", 11); # for reproducibility - r2 = gumbelrnd (-5, 3, 400, 1); - rand ("seed", 16); # for reproducibility - r3 = gumbelrnd (14, 8, 400, 1); - r = [r1, r2, r3]; - - ## Plot them normalized and fix their colors - hist (r, 25, 0.32); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - ylim ([0, 0.28]) - xlim ([-11, 50]); - hold on - - ## Estimate their MU and BETA parameters - mu_betaA = gumbelfit (r(:,1)); - mu_betaB = gumbelfit (r(:,2)); - mu_betaC = gumbelfit (r(:,3)); + clf + x = zeros (9e2, 10); + for i=1:10 + x(:,i) = (0.1 * randn (3e2, 3) * (randn (3,1) + 1) + 2 * randn (1,3))(:); + endfor + h = violin (x, "color", "c"); + axis tight + set (h.violin, "linewidth", 2); + set (gca, "xgrid", "on"); + xlabel ("Variables") + ylabel ("Values") +***** demo + clf + data = {randn(100,1)*5+140, randn(130,1)*8+135}; + subplot (1,2,1) + title ("Grade 3 heights - vertical"); + set (gca, "xtick", 1:2, "xticklabel", {"girls"; "boys"}); + violin (data, "Nbins", 10); + axis tight - ## Plot their estimated PDFs - x = [min(r(:)):max(r(:))]; - y = gumbelpdf (x, mu_betaA(1), mu_betaA(2)); - plot (x, y, "-pr"); - y = gumbelpdf (x, mu_betaB(1), mu_betaB(2)); - plot (x, y, "-sg"); - y = gumbelpdf (x, mu_betaC(1), mu_betaC(2)); - plot (x, y, "-^c"); - legend ({"Normalized HIST of sample 1 with μ=2 and β=5", ... - "Normalized HIST of sample 2 with μ=-5 and β=3", ... - "Normalized HIST of sample 3 with μ=14 and β=8", ... - sprintf("PDF for sample 1 with estimated μ=%0.2f and β=%0.2f", ... - mu_betaA(1), mu_betaA(2)), ... - sprintf("PDF for sample 2 with estimated μ=%0.2f and β=%0.2f", ... - mu_betaB(1), mu_betaB(2)), ... - sprintf("PDF for sample 3 with estimated μ=%0.2f and β=%0.2f", ... - mu_betaC(1), mu_betaC(2))}) - title ("Three population samples from different Gumbel distibutions") - hold off -***** test - x = 1:50; - [paramhat, paramci] = gumbelfit (x); - paramhat_out = [18.3188, 13.0509]; - paramci_out = [14.4882, 10.5294; 22.1495, 16.1763]; - assert (paramhat, paramhat_out, 1e-4); - assert (paramci, paramci_out, 1e-4); -***** test - x = 1:50; - [paramhat, paramci] = gumbelfit (x, 0.01); - paramci_out = [13.2845, 9.8426; 23.3532, 17.3051]; - assert (paramci, paramci_out, 1e-4); -***** error gumbelfit (ones (2,5)); -***** error ... - gumbelfit (single (ones (1,5))); -***** error ... - gumbelfit ([1, 2, 3, 4, NaN]); -***** error gumbelfit ([1, 2, 3, 4, 5], 1.2); -***** error ... - gumbelfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); -***** error ... - gumbelfit ([1, 2, 3, 4, 5], 0.05, [], [1 1 0]); -***** error - gamfit ([1, 2, 3], 0.05, [], [1 5 -1]) -***** error ... - gumbelfit ([1, 2, 3, 4, 5], 0.05, [], [], 2); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_fit/normlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/normlike.m -***** error normlike ([12, 15]); -***** error normlike ([12, 15], ones (2)); -***** error ... - normlike ([12, 15, 3], [1:50]); -***** error ... - normlike ([12, 15], [1:50], [1, 2, 3]); -***** error ... - normlike ([12, 15], [1:50], [], [1, 2, 3]); -***** error ... - normlike ([12, 15], [1:5], [], [1, 2, 3, 2, -1]); + subplot(1,2,2) + title ("Grade 3 heights - horizontal"); + set (gca, "ytick", 1:2, "yticklabel", {"girls"; "boys"}); + violin (data, "horizontal", "Nbins", 10); + axis tight +***** demo + clf + data = exprnd (0.1, 500,4); + violin (data, "nbins", {5,10,50,100}); + axis ([0 5 0 max(data(:))]) +***** demo + clf + data = exprnd (0.1, 500,4); + violin (data, "color", jet(4)); + axis ([0 5 0 max(data(:))]) +***** demo + clf + data = repmat(exprnd (0.1, 500,1), 1, 4); + violin (data, "width", linspace (0.1,0.5,4)); + axis ([0 5 0 max(data(:))]) +***** demo + clf + data = repmat(exprnd (0.1, 500,1), 1, 4); + violin (data, "nbins", [5,10,50,100], "smoothfactor", [4 4 8 10]); + axis ([0 5 0 max(data(:))]) ***** test - x = 1:50; - [nlogL, avar] = normlike ([2.3, 1.2], x); - avar_out = [7.5767e-01, -1.8850e-02; -1.8850e-02, 4.8750e-04]; - assert (nlogL, 13014.95883783327, 1e-10); - assert (avar, avar_out, 1e-4); + hf = figure ("visible", "off"); + unwind_protect + data = exprnd (0.1, 500,4); + violin (data, "color", jet(4)); + axis ([0 5 0 max(data(:))]) + unwind_protect_cleanup + close (hf); + end_unwind_protect ***** test - x = 1:50; - [nlogL, avar] = normlike ([2.3, 1.2], x * 0.5); - avar_out = [3.0501e-01, -1.5859e-02; -1.5859e-02, 9.1057e-04]; - assert (nlogL, 2854.802587833265, 1e-10); - assert (avar, avar_out, 1e-4); + hf = figure ("visible", "off"); + unwind_protect + data = {randn(100,1)*5+140, randn(130,1)*8+135}; + subplot (1,2,1) + title ("Grade 3 heights - vertical"); + set (gca, "xtick", 1:2, "xticklabel", {"girls"; "boys"}); + violin (data, "Nbins", 10); + axis tight + unwind_protect_cleanup + close (hf); + end_unwind_protect ***** test - x = 1:50; - [nlogL, avar] = normlike ([21, 15], x); - avar_out = [5.460474308300396, -1.600790513833993; ... - -1.600790513833993, 2.667984189723321]; - assert (nlogL, 206.738325604233, 1e-12); - assert (avar, avar_out, 1e-14); + hf = figure ("visible", "off"); + unwind_protect + data = {randn(100,1)*5+140, randn(130,1)*8+135}; + subplot (1,2,1) + title ("Grade 3 heights - vertical"); + set (gca, "xtick", 1:2, "xticklabel", {"girls"; "boys"}); + violin (data, "Nbins", 10); + axis tight + subplot(1,2,2) + title ("Grade 3 heights - horizontal"); + set (gca, "ytick", 1:2, "yticklabel", {"girls"; "boys"}); + violin (data, "horizontal", "Nbins", 10); + axis tight + unwind_protect_cleanup + close (hf); + end_unwind_protect ***** test - x = 1:50; - censor = ones (1, 50); - censor([2, 4, 6, 8, 12, 14]) = 0; - [nlogL, avar] = normlike ([2.3, 1.2], x, censor); - avar_out = [3.0501e-01, -1.5859e-02; -1.5859e-02, 9.1057e-04]; - assert (nlogL, Inf); - assert (avar, [NaN, NaN; NaN, NaN]); + hf = figure ("visible", "off"); + unwind_protect + data = repmat(exprnd (0.1, 500,1), 1, 4); + violin (data, "nbins", [5,10,50,100], "smoothfactor", [4 4 8 10]); + axis ([0 5 0 max(data(:))]) + unwind_protect_cleanup + close (hf); + end_unwind_protect ***** test - x = 1:50; - censor = ones (1, 50); - censor([2, 4, 6, 8, 12, 14]) = 0; - [nlogL, avar] = normlike ([21, 15], x, censor); - avar_out = [24.4824488866131, -10.6649544179636; ... - -10.6649544179636, 6.22827849965737]; - assert (nlogL, 86.9254371829733, 1e-12); - assert (avar, avar_out, 8e-14); -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/dist_fit/tlsfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/tlsfit.m -***** demo - ## Sample 3 populations from 3 different location-scale T distibutions - randn ("seed", 1); # for reproducibility - randg ("seed", 2); # for reproducibility - r1 = tlsrnd (-4, 3, 1, 2000, 1); - randn ("seed", 3); # for reproducibility - randg ("seed", 4); # for reproducibility - r2 = tlsrnd (0, 3, 1, 2000, 1); - randn ("seed", 5); # for reproducibility - randg ("seed", 6); # for reproducibility - r3 = tlsrnd (5, 5, 4, 2000, 1); - r = [r1, r2, r3]; - - ## Plot them normalized and fix their colors - hist (r, [-21:21], [1, 1, 1]); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - ylim ([0, 0.25]); - xlim ([-20, 20]); - hold on - - ## Estimate their lambda parameter - mu_sigma_nuA = tlsfit (r(:,1)); - mu_sigma_nuB = tlsfit (r(:,2)); - mu_sigma_nuC = tlsfit (r(:,3)); - - ## Plot their estimated PDFs - x = [-20:0.1:20]; - y = tlspdf (x, mu_sigma_nuA(1), mu_sigma_nuA(2), mu_sigma_nuA(3)); - plot (x, y, "-pr"); - y = tlspdf (x, mu_sigma_nuB(1), mu_sigma_nuB(2), mu_sigma_nuB(3)); - plot (x, y, "-sg"); - y = tlspdf (x, mu_sigma_nuC(1), mu_sigma_nuC(2), mu_sigma_nuC(3)); - plot (x, y, "-^c"); - hold off - legend ({"Normalized HIST of sample 1 with μ=0, σ=2 and nu=1", ... - "Normalized HIST of sample 2 with μ=5, σ=2 and nu=1", ... - "Normalized HIST of sample 3 with μ=3, σ=4 and nu=3", ... - sprintf("PDF for sample 1 with estimated μ=%0.2f, σ=%0.2f, and ν=%0.2f", ... - mu_sigma_nuA(1), mu_sigma_nuA(2), mu_sigma_nuA(3)), ... - sprintf("PDF for sample 2 with estimated μ=%0.2f, σ=%0.2f, and ν=%0.2f", ... - mu_sigma_nuB(1), mu_sigma_nuB(2), mu_sigma_nuB(3)), ... - sprintf("PDF for sample 3 with estimated μ=%0.2f, σ=%0.2f, and ν=%0.2f", ... - mu_sigma_nuC(1), mu_sigma_nuC(2), mu_sigma_nuC(3))}) - title ("Three population samples from different location-scale T distibutions") - hold off + hf = figure ("visible", "off"); + unwind_protect + data = repmat(exprnd (0.1, 500,1), 1, 4); + violin (data, "width", linspace (0.1,0.5,4)); + axis ([0 5 0 max(data(:))]) + unwind_protect_cleanup + close (hf); + end_unwind_protect +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/randsample.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/randsample.m ***** test - x = [-1.2352, -0.2741, 0.1726, 7.4356, 1.0392, 16.4165]; - [paramhat, paramci] = tlsfit (x); - paramhat_out = [0.035893, 0.862711, 0.649261]; - paramci_out = [-0.949034, 0.154655, 0.181080; 1.02082, 4.812444, 2.327914]; - assert (paramhat, paramhat_out, 1e-6); - assert (paramci, paramci_out, 1e-5); + n = 20; + k = 5; + x = randsample(n, k); + assert (size(x), [1 k]); + x = randsample(n, k, true); + assert (size(x), [1 k]); + x = randsample(n, k, false); + assert (size(x), [1 k]); + x = randsample(n, k, true, ones(n, 1)); + assert (size(x), [1 k]); + x = randsample(1:n, k); + assert (size(x), [1 k]); + x = randsample(1:n, k, true); + assert (size(x), [1 k]); + x = randsample(1:n, k, false); + assert (size(x), [1 k]); + x = randsample(1:n, k, true, ones(n, 1)); + assert (size(x), [1 k]); + x = randsample((1:n)', k); + assert (size(x), [k 1]); + x = randsample((1:n)', k, true); + assert (size(x), [k 1]); + x = randsample((1:n)', k, false); + assert (size(x), [k 1]); + x = randsample((1:n)', k, true, ones(n, 1)); + assert (size(x), [k 1]); + n = 10; + k = 100; + x = randsample(n, k, true, 1:n); + assert (size(x), [1 k]); + x = randsample((1:n)', k, true); + assert (size(x), [k 1]); + x = randsample(k, k, false, 1:k); + assert (size(x), [1 k]); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/crosstab.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/crosstab.m +***** error crosstab () +***** error crosstab (1) +***** error crosstab (ones (2), [1 1]) +***** error crosstab ([1 1], ones (2)) +***** error crosstab ([1], [1 2]) +***** error crosstab ([1 2], [1]) ***** test - x = [-1.2352, -0.2741, 0.1726, 7.4356, 1.0392, 16.4165]; - [paramhat, paramci] = tlsfit (x, 0.01); - paramci_out = [-1.2585, 0.0901, 0.1212; 1.3303, 8.2591, 3.4771]; - assert (paramci, paramci_out, 1e-4); -***** error tlsfit (ones (2,5)); -***** error tlsfit ([1, 2, 3, 4, 5], 1.2); -***** error tlsfit ([1, 2, 3, 4, 5], 0); -***** error tlsfit ([1, 2, 3, 4, 5], "alpha"); -***** error ... - tlsfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); -***** error ... - tlsfit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); -***** error ... - tlsfit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); -***** error ... - tlsfit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); -***** error ... - tlsfit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 -1]); -***** error ... - tlsfit ([1, 2, 3, 4, 5], 0.05, [], [], 2); -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/dist_fit/wbllike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/wbllike.m + load carbig + [table, chisq, p, labels] = crosstab (cyl4, when, org); + assert (table(2,3,1), 38); + assert (labels{3,3}, "Japan"); ***** test - x = 1:50; - [nlogL, acov] = wbllike ([2.3, 1.2], x); - avar_out = [0.0250, 0.0062; 0.0062, 0.0017]; - assert (nlogL, 945.9589180651594, 1e-12); - assert (acov, avar_out, 1e-4); + load carbig + [table, chisq, p, labels] = crosstab (cyl4, when, org); + assert (table(2,3,2), 17); + assert (labels{1,3}, "USA"); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/linkage.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/linkage.m +***** shared x, t + x = reshape (mod (magic (6),5), [], 3); + t = 1e-6; +***** assert (cond (linkage (pdist (x))), 34.119045, t); +***** assert (cond (linkage (pdist (x), "complete")), 21.793345, t); +***** assert (cond (linkage (pdist (x), "average")), 27.045012, t); +***** assert (cond (linkage (pdist (x), "weighted")), 27.412889, t); + lastwarn(); # Clear last warning before the test +***** warning linkage (pdist (x), "centroid"); ***** test - x = 1:50; - [nlogL, acov] = wbllike ([2.3, 1.2], x * 0.5); - avar_out = [-0.3238, -0.1112; -0.1112, -0.0376]; - assert (nlogL, 424.9879809704742, 6e-14); - assert (acov, avar_out, 1e-4); + warning off Octave:clustering + assert (cond (linkage (pdist (x), "centroid")), 27.457477, t); + warning on Octave:clustering +***** warning linkage (pdist (x), "median"); ***** test - x = 1:50; - [nlogL, acov] = wbllike ([21, 15], x); - avar_out = [-0.00001236, -0.00001166; -0.00001166, -0.00001009]; - assert (nlogL, 1635190.328991511, 1e-8); - assert (acov, avar_out, 1e-8); -***** error wbllike ([12, 15]); -***** error wbllike ([12, 15, 3], [1:50]); -***** error wbllike ([12, 3], ones (10, 2)); -***** error wbllike ([12, 15], [1:50], [1, 2, 3]); -***** error wbllike ([12, 15], [1:50], [], [1, 2, 3]); -***** error ... - wbllike ([12, 15], [1:5], [], [1, 2, 3, -1, 0]); -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/dist_fit/binofit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/binofit.m -***** demo - ## Sample 2 populations from different binomial distibutions - rand ("seed", 1); # for reproducibility - r1 = binornd (50, 0.15, 1000, 1); - rand ("seed", 2); # for reproducibility - r2 = binornd (100, 0.5, 1000, 1); - r = [r1, r2]; - - ## Plot them normalized and fix their colors - hist (r, 23, 0.35); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - hold on - - ## Estimate their probability of success - pshatA = binofit (r(:,1), 50); - pshatB = binofit (r(:,2), 100); - - ## Plot their estimated PDFs - x = [min(r(:,1)):max(r(:,1))]; - y = binopdf (x, 50, mean (pshatA)); - plot (x, y, "-pg"); - x = [min(r(:,2)):max(r(:,2))]; - y = binopdf (x, 100, mean (pshatB)); - plot (x, y, "-sc"); - ylim ([0, 0.2]) - legend ({"Normalized HIST of sample 1 with ps=0.15", ... - "Normalized HIST of sample 2 with ps=0.50", ... - sprintf("PDF for sample 1 with estimated ps=%0.2f", ... - mean (pshatA)), ... - sprintf("PDF for sample 2 with estimated ps=%0.2f", ... - mean (pshatB))}) - title ("Two population samples from different binomial distibutions") - hold off + warning off Octave:clustering + assert (cond (linkage (pdist (x), "median")), 27.683325, t); + warning on Octave:clustering +***** assert (cond (linkage (pdist (x), "ward")), 17.195198, t); +***** assert (cond (linkage (x, "ward", "euclidean")), 17.195198, t); +***** assert (cond (linkage (x, "ward", {"euclidean"})), 17.195198, t); +***** assert (cond (linkage (x, "ward", {"minkowski", 2})), 17.195198, t); +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/rmmissing.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/rmmissing.m +***** assert (rmmissing ([1,NaN,3]), [1,3]) +***** assert (rmmissing ('abcd f'), 'abcdf') +***** assert (rmmissing ({'xxx','','xyz'}), {'xxx','xyz'}) +***** assert (rmmissing ({'xxx','';'xyz','yyy'}), {'xyz','yyy'}) +***** assert (rmmissing ({'xxx','';'xyz','yyy'}, 2), {'xxx';'xyz'}) +***** assert (rmmissing ([1,2;NaN,2]), [1,2]) +***** assert (rmmissing ([1,2;NaN,2], 2), [2,2]') +***** assert (rmmissing ([1,2;NaN,4;NaN,NaN],"MinNumMissing", 2), [1,2;NaN,4]) ***** test - x = 0:3; - [pshat, psci] = binofit (x, 3); - assert (pshat, [0, 0.3333, 0.6667, 1], 1e-4); - assert (psci(1,:), [0, 0.7076], 1e-4); - assert (psci(2,:), [0.0084, 0.9057], 1e-4); - assert (psci(3,:), [0.0943, 0.9916], 1e-4); - assert (psci(4,:), [0.2924, 1.0000], 1e-4); -***** error ... - binofit ([1 2 3 4]) -***** error ... - binofit ([-1, 4, 3, 2], [1, 2, 3, 3]) -***** error binofit (ones(2), [1, 2, 3, 3]) -***** error ... - binofit ([1, 4, 3, 2], [1, 2, -1, 3]) -***** error ... - binofit ([1, 4, 3, 2], [5, 5, 5]) -***** error ... - binofit ([1, 4, 3, 2], [5, 3, 5, 5]) -***** error binofit ([1, 2, 1], 3, 1.2); -***** error binofit ([1, 2, 1], 3, 0); -***** error binofit ([1, 2, 1], 3, "alpha"); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_fit/wblfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/wblfit.m + x = [1:6]; + x([2,4]) = NaN; + [~, idx] = rmmissing (x); + assert (idx, logical ([0, 1, 0, 1, 0, 0])); + assert (class(idx), 'logical'); + x = reshape (x, [2, 3]); + [~, idx] = rmmissing (x); + assert (idx, logical ([0; 1])); + assert (class(idx), 'logical'); + [~, idx] = rmmissing (x, 2); + assert (idx, logical ([1, 1, 0])); + assert (class(idx), 'logical'); + [~, idx] = rmmissing (x, 1, "MinNumMissing", 2); + assert (idx, logical ([0; 1])); + assert (class(idx), 'logical'); + [~, idx] = rmmissing (x, 2, "MinNumMissing", 2); + assert (idx, logical ([0, 0, 0])); + assert (class(idx), 'logical'); +***** assert (rmmissing (single ([1 2 NaN; 3 4 5])), single ([3 4 5])) +***** assert (rmmissing (logical (ones (3))), logical (ones (3))) +***** assert (rmmissing (int32 (ones (3))), int32 (ones (3))) +***** assert (rmmissing (uint32 (ones (3))), uint32 (ones (3))) +***** assert (rmmissing ({1, 2, 3}), {1, 2, 3}) +***** assert (rmmissing ([struct, struct, struct]), [struct, struct, struct]) +***** assert (rmmissing ([]), []) +***** assert (rmmissing (ones (1,0)), ones (1,0)) +***** assert (rmmissing (ones (1,0), 1), ones (1,0)) +***** assert (rmmissing (ones (1,0), 2), ones (1,0)) +***** assert (rmmissing (ones (0,1)), ones (0,1)) +***** assert (rmmissing (ones (0,1), 1), ones (0,1)) +***** assert (rmmissing (ones (0,1), 2), ones (0,1)) +***** error rmmissing (ones (0,1,2)) +***** error rmmissing () +***** error rmmissing (ones(2,2,2)) +***** error rmmissing ([1 2; 3 4], 5) +***** error rmmissing ([1 2; 3 4], "XXX", 1) +***** error <'MinNumMissing'> rmmissing ([1 2; 3 4], 2, "MinNumMissing", -2) +***** error <'MinNumMissing'> rmmissing ([1 2; 3 4], "MinNumMissing", 3.8) +***** error <'MinNumMissing'> rmmissing ([1 2; 3 4], "MinNumMissing", [1 2 3]) +***** error <'MinNumMissing'> rmmissing ([1 2; 3 4], "MinNumMissing", 'xxx') +31 tests, 31 passed, 0 known failure, 0 skipped +[inst/fitrgam.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/fitrgam.m ***** demo - ## Sample 3 populations from 3 different Weibull distibutions - rande ("seed", 1); # for reproducibility - r1 = wblrnd(2, 4, 2000, 1); - rande ("seed", 2); # for reproducibility - r2 = wblrnd(5, 2, 2000, 1); - rande ("seed", 5); # for reproducibility - r3 = wblrnd(1, 5, 2000, 1); - r = [r1, r2, r3]; - - ## Plot them normalized and fix their colors - hist (r, 30, [2.5 2.1 3.2]); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - ylim ([0, 2]); - xlim ([0, 10]); - hold on + # Train a RegressionGAM Model for synthetic values - ## Estimate their lambda parameter - lambda_kA = wblfit (r(:,1)); - lambda_kB = wblfit (r(:,2)); - lambda_kC = wblfit (r(:,3)); + f1 = @(x) cos (3 *x); + f2 = @(x) x .^ 3; - ## Plot their estimated PDFs - x = [0:0.1:15]; - y = wblpdf (x, lambda_kA(1), lambda_kA(2)); - plot (x, y, "-pr"); - y = wblpdf (x, lambda_kB(1), lambda_kB(2)); - plot (x, y, "-sg"); - y = wblpdf (x, lambda_kC(1), lambda_kC(2)); - plot (x, y, "-^c"); - hold off - legend ({"Normalized HIST of sample 1 with λ=2 and k=4", ... - "Normalized HIST of sample 2 with λ=5 and k=2", ... - "Normalized HIST of sample 3 with λ=1 and k=5", ... - sprintf("PDF for sample 1 with estimated λ=%0.2f and k=%0.2f", ... - lambda_kA(1), lambda_kA(2)), ... - sprintf("PDF for sample 2 with estimated λ=%0.2f and k=%0.2f", ... - lambda_kB(1), lambda_kB(2)), ... - sprintf("PDF for sample 3 with estimated λ=%0.2f and k=%0.2f", ... - lambda_kC(1), lambda_kC(2))}) - title ("Three population samples from different Weibull distibutions") - hold off -***** test - x = 1:50; - [paramhat, paramci] = wblfit (x); - paramhat_out = [28.3636, 1.7130]; - paramci_out = [23.9531, 1.3551; 33.5861, 2.1655]; - assert (paramhat, paramhat_out, 1e-4); - assert (paramci, paramci_out, 1e-4); -***** test - x = 1:50; - [paramhat, paramci] = wblfit (x, 0.01); - paramci_out = [22.7143, 1.2589; 35.4179, 2.3310]; - assert (paramci, paramci_out, 1e-4); -***** error wblfit (ones (2,5)); -***** error wblfit ([-1 2 3 4]); -***** error wblfit ([1, 2, 3, 4, 5], 1.2); -***** error wblfit ([1, 2, 3, 4, 5], 0); -***** error wblfit ([1, 2, 3, 4, 5], "alpha"); -***** error ... - wblfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); -***** error ... - wblfit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); -***** error ... - wblfit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); -***** error ... - wblfit ([1, 2, 3, 4, 5], [], [], [1 1 0 -1 1]); -***** error ... - wblfit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); -***** error ... - wblfit ([1, 2, 3, 4, 5], 0.05, [], [], 2); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_fit/nakafit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/nakafit.m -***** demo - ## Sample 3 populations from different Nakagami distibutions - randg ("seed", 5) # for reproducibility - r1 = nakarnd (0.5, 1, 2000, 1); - randg ("seed", 2) # for reproducibility - r2 = nakarnd (5, 1, 2000, 1); - randg ("seed", 7) # for reproducibility - r3 = nakarnd (2, 2, 2000, 1); - r = [r1, r2, r3]; + # generate x1 and x2 for f1 and f2 + x1 = 2 * rand (50, 1) - 1; + x2 = 2 * rand (50, 1) - 1; - ## Plot them normalized and fix their colors - hist (r, [0.05:0.1:3.5], 10); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - ylim ([0, 2.5]); - xlim ([0, 3.0]); - hold on + # calculate y + y = f1(x1) + f2(x2); - ## Estimate their MU and LAMBDA parameters - mu_omegaA = nakafit (r(:,1)); - mu_omegaB = nakafit (r(:,2)); - mu_omegaC = nakafit (r(:,3)); + # add noise + y = y + y .* 0.2 .* rand (50,1); + X = [x1, x2]; - ## Plot their estimated PDFs - x = [0.01:0.1:3.01]; - y = nakapdf (x, mu_omegaA(1), mu_omegaA(2)); - plot (x, y, "-pr"); - y = nakapdf (x, mu_omegaB(1), mu_omegaB(2)); - plot (x, y, "-sg"); - y = nakapdf (x, mu_omegaC(1), mu_omegaC(2)); - plot (x, y, "-^c"); - legend ({"Normalized HIST of sample 1 with μ=0.5 and ω=1", ... - "Normalized HIST of sample 2 with μ=5 and ω=1", ... - "Normalized HIST of sample 3 with μ=2 and ω=2", ... - sprintf("PDF for sample 1 with estimated μ=%0.2f and ω=%0.2f", ... - mu_omegaA(1), mu_omegaA(2)), ... - sprintf("PDF for sample 2 with estimated μ=%0.2f and ω=%0.2f", ... - mu_omegaB(1), mu_omegaB(2)), ... - sprintf("PDF for sample 3 with estimated μ=%0.2f and ω=%0.2f", ... - mu_omegaC(1), mu_omegaC(2))}) - title ("Three population samples from different Nakagami distibutions") - hold off -***** test - paramhat = nakafit ([1:50]); - paramhat_out = [0.7355, 858.5]; - assert (paramhat, paramhat_out, 1e-4); -***** test - paramhat = nakafit ([1:5]); - paramhat_out = [1.1740, 11]; - assert (paramhat, paramhat_out, 1e-4); -***** test - paramhat = nakafit ([1:6], [], [], [1 1 1 1 1 0]); - paramhat_out = [1.1740, 11]; - assert (paramhat, paramhat_out, 1e-4); -***** test - paramhat = nakafit ([1:5], [], [], [1 1 1 1 2]); - paramhat_out = nakafit ([1:5, 5]); - assert (paramhat, paramhat_out, 1e-4); -***** error nakafit (ones (2,5)); -***** error nakafit ([1, 2, 3, 4, 5], 1.2); -***** error nakafit ([1, 2, 3, 4, 5], 0); -***** error nakafit ([1, 2, 3, 4, 5], "alpha"); -***** error ... - nakafit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); -***** error ... - nakafit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); -***** error ... - nakafit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); -***** error ... - nakafit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); -***** error ... - nakafit ([1, 2, 3, 4, 5], [], [], [1 1 -1 1 1]); -***** error ... - nakafit ([1, 2, 3, 4, 5], [], [], [1 1 1.5 1 1]); -***** error ... - nakafit ([1, 2, 3, 4, 5], 0.05, [], [], 2); -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fit/gumbellike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gumbellike.m + # create an object + a = fitrgam (X, y, "tol", 1e-3) ***** test - x = 1:50; - [nlogL, avar] = gumbellike ([2.3, 1.2], x); - avar_out = [-1.2778e-13, 3.1859e-15; 3.1859e-15, -7.9430e-17]; - assert (nlogL, 3.242264755689906e+17, 1e-14); - assert (avar, avar_out, 1e-3); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = [1; 2; 3; 4]; + a = fitrgam (x, y); + assert ({a.X, a.Y}, {x, y}) + assert ({a.BaseModel.Intercept}, {2.5000}) + assert ({a.Knots, a.Order, a.DoF}, {[5, 5, 5], [3, 3, 3], [8, 8, 8]}) + assert ({a.NumObservations, a.NumPredictors}, {4, 3}) + assert ({a.ResponseName, a.PredictorNames}, {"Y", {"x1", "x2", "x3"}}) + assert ({a.Formula}, {[]}) ***** test - x = 1:50; - [nlogL, avar] = gumbellike ([2.3, 1.2], x * 0.5); - avar_out = [-7.6094e-05, 3.9819e-06; 3.9819e-06, -2.0836e-07]; - assert (nlogL, 481898704.0472211, 1e-6); - assert (avar, avar_out, 1e-3); + x = [1, 2, 3, 4; 4, 5, 6, 7; 7, 8, 9, 1; 3, 2, 1, 2]; + y = [1; 2; 3; 4]; + pnames = {"A", "B", "C", "D"}; + formula = "Y ~ A + B + C + D + A:C"; + intMat = logical ([1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1;1,0,1,0]); + a = fitrgam (x, y, "predictors", pnames, "formula", formula); + assert ({a.IntMatrix}, {intMat}) + assert ({a.ResponseName, a.PredictorNames}, {"Y", pnames}) + assert ({a.Formula}, {formula}) +***** error fitrgam () +***** error fitrgam (ones(10,2)) +***** error + fitrgam (ones (4,2), ones (4, 1), "K") +***** error + fitrgam (ones (4,2), ones (3, 1)) +***** error + fitrgam (ones (4,2), ones (3, 1), "K", 2) +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/crossval.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/crossval.m ***** test - x = 1:50; - [nlogL, avar] = gumbellike ([21, 15], x); - avar_out = [11.73913876598908, -5.9546128523121216; ... - -5.954612852312121, 3.708060045170236]; - assert (nlogL, 223.7612479380652, 1e-13); - assert (avar, avar_out, 1e-14); -***** error gumbellike ([12, 15]); -***** error gumbellike ([12, 15, 3], [1:50]); -***** error gumbellike ([12, 3], ones (10, 2)); -***** error gumbellike ([12, 15], [1:50], [1, 2, 3]); -***** error gumbellike ([12, 15], [1:50], [], [1, 2, 3]); -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fit/nbinfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/nbinfit.m -***** demo - ## Sample 2 populations from different negative binomial distibutions - randp ("seed", 5); randg ("seed", 5); # for reproducibility - r1 = nbinrnd (2, 0.15, 5000, 1); - randp ("seed", 8); randg ("seed", 8); # for reproducibility - r2 = nbinrnd (5, 0.2, 5000, 1); - r = [r1, r2]; - - ## Plot them normalized and fix their colors - hist (r, [0:51], 1); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - hold on + load fisheriris + y = meas(:, 1); + X = [ones(size(y)) meas(:, 2:4)]; + f = @(X1, y1, X2, y2) meansq (y2 - X2*regress(y1, X1)); + results0 = crossval (f, X, y); + results1 = crossval (f, X, y, 'KFold', 10); + folds = 5; + results2 = crossval (f, X, y, 'KFold', folds); + results3 = crossval (f, X, y, 'Partition', cvpartition (numel (y), 'KFold', folds)); + results4 = crossval (f, X, y, 'LeaveOut', 1); + mcreps = 2; n_holdout = 20; + results5 = crossval (f, X, y, 'HoldOut', n_holdout, 'mcreps', mcreps); - ## Estimate their probability of success - r_psA = nbinfit (r(:,1)); - r_psB = nbinfit (r(:,2)); + ## ensure equal representation of iris species in the training set -- tends + ## to slightly reduce cross-validation mean square error + results6 = crossval (f, X, y, 'KFold', 5, 'stratify', grp2idx(species)); - ## Plot their estimated PDFs - x = [0:40]; - y = nbinpdf (x, r_psA(1), r_psA(2)); - plot (x, y, "-pg"); - x = [min(r(:,2)):max(r(:,2))]; - y = nbinpdf (x, r_psB(1), r_psB(2)); - plot (x, y, "-sc"); - ylim ([0, 0.1]) - xlim ([0, 50]) - legend ({"Normalized HIST of sample 1 with r=2 and ps=0.15", ... - "Normalized HIST of sample 2 with r=5 and ps=0.2", ... - sprintf("PDF for sample 1 with estimated r=%0.2f and ps=%0.2f", ... - r_psA(1), r_psA(2)), ... - sprintf("PDF for sample 2 with estimated r=%0.2f and ps=%0.2f", ... - r_psB(1), r_psB(2))}) - title ("Two population samples from negative different binomial distibutions") - hold off -***** test - [paramhat, paramci] = nbinfit ([1:50]); - assert (paramhat, [2.420857, 0.086704], 1e-6); - assert (paramci(:,1), [1.382702; 3.459012], 1e-6); - assert (paramci(:,2), [0.049676; 0.123732], 1e-6); -***** test - [paramhat, paramci] = nbinfit ([1:20]); - assert (paramhat, [3.588233, 0.254697], 1e-6); - assert (paramci(:,1), [0.451693; 6.724774], 1e-6); - assert (paramci(:,2), [0.081143; 0.428251], 1e-6); -***** test - [paramhat, paramci] = nbinfit ([1:10]); - assert (paramhat, [8.8067, 0.6156], 1e-4); - assert (paramci(:,1), [0; 30.7068], 1e-4); - assert (paramci(:,2), [0.0217; 1], 1e-4); -***** test - [paramhat, paramci] = nbinfit ([1:10], 0.05, ones (1, 10)); - assert (paramhat, [8.8067, 0.6156], 1e-4); - assert (paramci(:,1), [0; 30.7068], 1e-4); - assert (paramci(:,2), [0.0217; 1], 1e-4); -***** test - [paramhat, paramci] = nbinfit ([1:11], 0.05, [ones(1, 10), 0]); - assert (paramhat, [8.8067, 0.6156], 1e-4); - assert (paramci(:,1), [0; 30.7068], 1e-4); - assert (paramci(:,2), [0.0217; 1], 1e-4); -***** error nbinfit ([-1 2 3 3]) -***** error nbinfit (ones (2)) -***** error nbinfit ([1 2 1.2 3]) -***** error nbinfit ([1 2 3], 0) -***** error nbinfit ([1 2 3], 1.2) -***** error nbinfit ([1 2 3], [0.02 0.05]) -***** error ... - nbinfit ([1, 2, 3, 4, 5], 0.05, [1, 2, 3, 2]); -***** error ... - nbinfit ([1, 2, 3, 4, 5], 0.05, [1, 2, 3, 2, -1]); -***** error ... - nbinfit ([1, 2, 3, 4, 5], 0.05, [1, 2, 3, 2, 1.5]); -***** error ... - nbinfit ([1, 2, 3, 4, 5], 0.05, struct ("option", 234)); -***** error ... - nbinfit ([1, 2, 3, 4, 5], 0.05, ones (1,5), struct ("option", 234)); -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fit/raylfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/raylfit.m + assert (results0, results1, 2e-15); + assert (results2, results3, 5e-17); + assert (size(results4), [1 numel(y)]); + assert (mean(results4), 0.1018, 1e-4); + assert (size(results5), [mcreps 1]); +warning: strmatch is obsolete; use strncmp or strcmp instead +1 test, 1 passed, 0 known failure, 0 skipped +[inst/regress_gp.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/regress_gp.m ***** demo - ## Sample 3 populations from 3 different Rayleigh distibutions - rand ("seed", 2); # for reproducibility - r1 = raylrnd (1, 1000, 1); - rand ("seed", 2); # for reproducibility - r2 = raylrnd (2, 1000, 1); - rand ("seed", 3); # for reproducibility - r3 = raylrnd (4, 1000, 1); - r = [r1, r2, r3]; + ## Linear fitting of 1D Data + rand ("seed", 125); + X = 2 * rand (5, 1) - 1; + randn ("seed", 25); + Y = 2 * X - 1 + 0.3 * randn (5, 1); - ## Plot them normalized and fix their colors - hist (r, [0.5:0.5:10.5], 2); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - hold on + ## Points for interpolation/extrapolation + Xfit = linspace (-2, 2, 10)'; - ## Estimate their lambda parameter - sigmaA = raylfit (r(:,1)); - sigmaB = raylfit (r(:,2)); - sigmaC = raylfit (r(:,3)); + ## Fit regression model + [Yfit, Yint, m] = regress_gp (X, Y, Xfit); - ## Plot their estimated PDFs - x = [0:0.1:10]; - y = raylpdf (x, sigmaA); - plot (x, y, "-pr"); - y = raylpdf (x, sigmaB); - plot (x, y, "-sg"); - y = raylpdf (x, sigmaC); - plot (x, y, "-^c"); - xlim ([0, 10]) - ylim ([0, 0.7]) - legend ({"Normalized HIST of sample 1 with σ=1", ... - "Normalized HIST of sample 2 with σ=2", ... - "Normalized HIST of sample 3 with σ=4", ... - sprintf("PDF for sample 1 with estimated σ=%0.2f", ... - sigmaA), ... - sprintf("PDF for sample 2 with estimated σ=%0.2f", ... - sigmaB), ... - sprintf("PDF for sample 3 with estimated σ=%0.2f", ... - sigmaC)}) - title ("Three population samples from different Rayleigh distibutions") - hold off -***** test - x = [1 3 2 4 5 4 3 4]; - [shat, sci] = raylfit (x); - assert (shat, 2.4495, 1e-4) - assert (sci, [1.8243; 3.7279], 1e-4) -***** test - x = [1 3 2 4 5 4 3 4]; - [shat, sci] = raylfit (x, 0.01); - assert (shat, 2.4495, 1e-4) - assert (sci, [1.6738; 4.3208], 1e-4) -***** test - x = [1 2 3 4 5]; - f = [1 1 2 3 1]; - [shat, sci] = raylfit (x, [], [], f); - assert (shat, 2.4495, 1e-4) - assert (sci, [1.8243; 3.7279], 1e-4) -***** test - x = [1 2 3 4 5]; - f = [1 1 2 3 1]; - [shat, sci] = raylfit (x, 0.01, [], f); - assert (shat, 2.4495, 1e-4) - assert (sci, [1.6738; 4.3208], 1e-4) -***** test - x = [1 2 3 4 5 6]; - c = [0 0 0 0 0 1]; - f = [1 1 2 3 1 1]; - [shat, sci] = raylfit (x, 0.01, c, f); - assert (shat, 2.4495, 1e-4) - assert (sci, [1.6738; 4.3208], 1e-4) -***** error raylfit (ones (2,5)); -***** error raylfit ([1 2 -1 3]) -***** error raylfit ([1 2 3], 0) -***** error raylfit ([1 2 3], 1.2) -***** error raylfit ([1 2 3], [0.02 0.05]) -***** error ... - raylfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); -***** error ... - raylfit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); -***** error ... - raylfit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); -***** error ... - raylfit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); -***** error - raylfit ([1 2 3], [], [], [1 5]) -***** error - raylfit ([1 2 3], [], [], [1 5 -1]) -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fit/invgfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/invgfit.m + ## Plot fitted data + plot (X, Y, "xk", Xfit, Yfit, "r-", Xfit, Yint, "b-"); + title ("Gaussian process regression with linear kernel"); ***** demo - ## Sample 3 populations from different inverse Gaussian distibutions - rand ("seed", 5); randn ("seed", 5); # for reproducibility - r1 = invgrnd (1, 0.2, 2000, 1); - rand ("seed", 2); randn ("seed", 2); # for reproducibility - r2 = invgrnd (1, 3, 2000, 1); - rand ("seed", 7); randn ("seed", 7); # for reproducibility - r3 = invgrnd (3, 1, 2000, 1); - r = [r1, r2, r3]; + ## Linear fitting of 2D Data + rand ("seed", 135); + X = 2 * rand (4, 2) - 1; + randn ("seed", 35); + Y = 2 * X(:,1) - 3 * X(:,2) - 1 + 1 * randn (4, 1); - ## Plot them normalized and fix their colors - hist (r, [0.1:0.1:3.2], 9); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - ylim ([0, 3]); - xlim ([0, 3]); - hold on + ## Mesh for interpolation/extrapolation + [x1, x2] = meshgrid (linspace (-1, 1, 10)); + Xfit = [x1(:), x2(:)]; - ## Estimate their MU and LAMBDA parameters - mu_lambdaA = invgfit (r(:,1)); - mu_lambdaB = invgfit (r(:,2)); - mu_lambdaC = invgfit (r(:,3)); + ## Fit regression model + [Ypred, Yint, Ysd] = regress_gp (X, Y, Xfit); + Ypred = reshape (Ypred, 10, 10); + YintU = reshape (Yint(:,1), 10, 10); + YintL = reshape (Yint(:,2), 10, 10); - ## Plot their estimated PDFs - x = [0:0.1:3]; - y = invgpdf (x, mu_lambdaA(1), mu_lambdaA(2)); - plot (x, y, "-pr"); - y = invgpdf (x, mu_lambdaB(1), mu_lambdaB(2)); - plot (x, y, "-sg"); - y = invgpdf (x, mu_lambdaC(1), mu_lambdaC(2)); - plot (x, y, "-^c"); - hold off - legend ({"Normalized HIST of sample 1 with μ=1 and λ=0.5", ... - "Normalized HIST of sample 2 with μ=2 and λ=0.3", ... - "Normalized HIST of sample 3 with μ=4 and λ=0.5", ... - sprintf("PDF for sample 1 with estimated μ=%0.2f and λ=%0.2f", ... - mu_lambdaA(1), mu_lambdaA(2)), ... - sprintf("PDF for sample 2 with estimated μ=%0.2f and λ=%0.2f", ... - mu_lambdaB(1), mu_lambdaB(2)), ... - sprintf("PDF for sample 3 with estimated μ=%0.2f and λ=%0.2f", ... - mu_lambdaC(1), mu_lambdaC(2))}) - title ("Three population samples from different inverse Gaussian distibutions") + ## Plot fitted data + plot3 (X(:,1), X(:,2), Y, ".k", "markersize", 16); + hold on; + h = mesh (x1, x2, Ypred, zeros (10, 10)); + set (h, "facecolor", "none", "edgecolor", "yellow"); + h = mesh (x1, x2, YintU, ones (10, 10)); + set (h, "facecolor", "none", "edgecolor", "cyan"); + h = mesh (x1, x2, YintL, ones (10, 10)); + set (h, "facecolor", "none", "edgecolor", "cyan"); hold off -***** test - paramhat = invgfit ([1:50]); - paramhat_out = [25.5, 19.6973]; - assert (paramhat, paramhat_out, 1e-4); -***** test - paramhat = invgfit ([1:5]); - paramhat_out = [3, 8.1081]; - assert (paramhat, paramhat_out, 1e-4); -***** error invgfit (ones (2,5)); -***** error invgfit ([-1 2 3 4]); -***** error invgfit ([1, 2, 3, 4, 5], 1.2); -***** error invgfit ([1, 2, 3, 4, 5], 0); -***** error invgfit ([1, 2, 3, 4, 5], "alpha"); -***** error ... - invgfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); -***** error ... - invgfit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); -***** error ... - invgfit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); -***** error ... - invgfit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); -***** error ... - invgfit ([1, 2, 3, 4, 5], 0.05, [], [], 2); -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/dist_fit/hnfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/hnfit.m + axis tight + view (75, 25) + title ("Gaussian process regression with linear kernel"); ***** demo - ## Sample 2 populations from different half-normal distibutions - rand ("seed", 1); # for reproducibility - r1 = hnrnd (0, 5, 5000, 1); - rand ("seed", 2); # for reproducibility - r2 = hnrnd (0, 2, 5000, 1); - r = [r1, r2]; - - ## Plot them normalized and fix their colors - hist (r, [0.5:20], 1); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - hold on + ## Projection over basis function with linear kernel + pp = [2, 2, 0.3, 1]; + n = 10; + rand ("seed", 145); + X = 2 * rand (n, 1) - 1; + randn ("seed", 45); + Y = polyval (pp, X) + 0.3 * randn (n, 1); - ## Estimate their shape parameters - mu_sigmaA = hnfit (r(:,1), 0); - mu_sigmaB = hnfit (r(:,2), 0); + ## Powers + px = [sqrt(abs(X)), X, X.^2, X.^3]; - ## Plot their estimated PDFs - x = [0:0.2:10]; - y = hnpdf (x, mu_sigmaA(1), mu_sigmaA(2)); - plot (x, y, "-pr"); - y = hnpdf (x, mu_sigmaB(1), mu_sigmaB(2)); - plot (x, y, "-sg"); - xlim ([0, 10]) - ylim ([0, 0.5]) - legend ({"Normalized HIST of sample 1 with μ=0 and σ=5", ... - "Normalized HIST of sample 2 with μ=0 and σ=2", ... - sprintf("PDF for sample 1 with estimated μ=%0.2f and σ=%0.2f", ... - mu_sigmaA(1), mu_sigmaA(2)), ... - sprintf("PDF for sample 2 with estimated μ=%0.2f and σ=%0.2f", ... - mu_sigmaB(1), mu_sigmaB(2))}) - title ("Two population samples from different half-normal distibutions") - hold off -***** test - x = 1:20; - [paramhat, paramci] = hnfit (x, 0); - assert (paramhat, [0, 11.9791], 1e-4); - assert (paramci, [0, 9.1648; 0, 17.2987], 1e-4); -***** test - x = 1:20; - [paramhat, paramci] = hnfit (x, 0, 0.01); - assert (paramci, [0, 8.4709; 0, 19.6487], 1e-4); -***** error hnfit () -***** error hnfit (1) -***** error hnfit ([0.2, 0.5+i], 0); -***** error hnfit (ones (2,2) * 0.5, 0); -***** error ... - hnfit ([0.5, 1.2], [0, 1]); -***** error ... - hnfit ([0.5, 1.2], 5+i); -***** error ... - hnfit ([1:5], 2); -***** error hnfit ([0.01:0.1:0.99], 0, 1.2); -***** error hnfit ([0.01:0.1:0.99], 0, i); -***** error hnfit ([0.01:0.1:0.99], 0, -1); -***** error hnfit ([0.01:0.1:0.99], 0, [0.05, 0.01]); -***** error - hnfit ([1 2 3], 0, [], [1 5]) -***** error - hnfit ([1 2 3], 0, [], [1 5 -1]) -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fit/logilike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/logilike.m -***** test - nlogL = logilike ([25.5, 8.7725], [1:50]); - assert (nlogL, 206.6769, 1e-4); -***** test - nlogL = logilike ([3, 0.8645], [1:5]); - assert (nlogL, 9.0699, 1e-4); -***** error logilike (3.25) -***** error logilike ([5, 0.2], ones (2)) -***** error ... - logilike ([1, 0.2, 3], [1, 3, 5, 7]) -***** error ... - logilike ([1.5, 0.2], [1:5], [0, 0, 0]) -***** error ... - logilike ([1.5, 0.2], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) -***** error ... - logilike ([1.5, 0.2], [1:5], [], [1, 1, 1]) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fit/nakalike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/nakalike.m -***** test - nlogL = nakalike ([0.735504, 858.5], [1:50]); - assert (nlogL, 202.8689, 1e-4); -***** test - nlogL = nakalike ([1.17404, 11], [1:5]); - assert (nlogL, 8.6976, 1e-4); -***** test - nlogL = nakalike ([1.17404, 11], [1:5], [], [1, 1, 1, 1, 1]); - assert (nlogL, 8.6976, 1e-4); -***** test - nlogL = nakalike ([1.17404, 11], [1:6], [], [1, 1, 1, 1, 1, 0]); - assert (nlogL, 8.6976, 1e-4); -***** error nakalike (3.25) -***** error nakalike ([5, 0.2], ones (2)) -***** error ... - nakalike ([1, 0.2, 3], [1, 3, 5, 7]) -***** error ... - nakalike ([1.5, 0.2], [1:5], [0, 0, 0]) -***** error ... - nakalike ([1.5, 0.2], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) -***** error ... - nakalike ([1.5, 0.2], [1:5], [], [1, 1, 1]) -***** error ... - nakalike ([1.5, 0.2], [1:5], [], [1, 1, 1, 1, -1]) -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/dist_fit/gevfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gevfit.m -***** demo - ## Sample 2 populations from 2 different exponential distibutions - rand ("seed", 1); # for reproducibility - r1 = gevrnd (-0.5, 1, 2, 5000, 1); - rand ("seed", 2); # for reproducibility - r2 = gevrnd (0, 1, -4, 5000, 1); - r = [r1, r2]; + ## Points for interpolation/extrapolation + Xfit = linspace (-1, 1, 100)'; + pxi = [sqrt(abs(Xfit)), Xfit, Xfit.^2, Xfit.^3]; - ## Plot them normalized and fix their colors - hist (r, 50, 5); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - hold on + ## Define a prior covariance assuming that the sqrt component is not present + Sp = 100 * eye (size (px, 2) + 1); + Sp(2,2) = 1; # We don't believe the sqrt(abs(X)) is present - ## Estimate their k, sigma, and mu parameters - k_sigma_muA = gevfit (r(:,1)); - k_sigma_muB = gevfit (r(:,2)); + ## Fit regression model + [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi, Sp); - ## Plot their estimated PDFs - x = [-10:0.5:20]; - y = gevpdf (x, k_sigma_muA(1), k_sigma_muA(2), k_sigma_muA(3)); - plot (x, y, "-pr"); - y = gevpdf (x, k_sigma_muB(1), k_sigma_muB(2), k_sigma_muB(3)); - plot (x, y, "-sg"); - ylim ([0, 0.7]) - xlim ([-7, 5]) - legend ({"Normalized HIST of sample 1 with k=-0.5, σ=1, μ=2", ... - "Normalized HIST of sample 2 with k=0, σ=1, μ=-4", - sprintf("PDF for sample 1 with estimated k=%0.2f, σ=%0.2f, μ=%0.2f", ... - k_sigma_muA(1), k_sigma_muA(2), k_sigma_muA(3)), ... - sprintf("PDF for sample 3 with estimated k=%0.2f, σ=%0.2f, μ=%0.2f", ... - k_sigma_muB(1), k_sigma_muB(2), k_sigma_muB(3))}) - title ("Two population samples from different exponential distibutions") + ## Plot fitted data + plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... + Xfit, polyval (pp, Xfit), "g-;True;"); + axis tight + axis manual + hold on + plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); hold off -***** test - x = 1:50; - [pfit, pci] = gevfit (x); - pfit_out = [-0.4407, 15.1923, 21.5309]; - pci_out = [-0.7532, 11.5878, 16.5686; -0.1282, 19.9183, 26.4926]; - assert (pfit, pfit_out, 1e-3); - assert (pci, pci_out, 1e-3); -***** test - x = 1:2:50; - [pfit, pci] = gevfit (x); - pfit_out = [-0.4434, 15.2024, 21.0532]; - pci_out = [-0.8904, 10.3439, 14.0168; 0.0035, 22.3429, 28.0896]; - assert (pfit, pfit_out, 1e-3); - assert (pci, pci_out, 1e-3); -***** error gevfit (ones (2,5)); -***** error gevfit ([1, 2, 3, 4, 5], 1.2); -***** error gevfit ([1, 2, 3, 4, 5], 0); -***** error gevfit ([1, 2, 3, 4, 5], "alpha"); -***** error ... - gevfit ([1, 2, 3, 4, 5], 0.05, [1, 2, 3, 2]); -***** error ... - gevfit ([1, 2, 3, 4, 5], 0.05, [1, 2, 3, 2, -1]); -***** error ... - gevfit ([1, 2, 3, 4, 5], 0.05, [1, 2, 3, 2, 1.5]); -***** error ... - gevfit ([1, 2, 3, 4, 5], 0.05, struct ("option", 234)); -***** error ... - gevfit ([1, 2, 3, 4, 5], 0.05, ones (1,5), struct ("option", 234)); -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/dist_fit/invglike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/invglike.m -***** test - nlogL = invglike ([25.5, 19.6973], [1:50]); - assert (nlogL, 219.1516, 1e-4); -***** test - nlogL = invglike ([3, 8.1081], [1:5]); - assert (nlogL, 9.0438, 1e-4); -***** error invglike (3.25) -***** error invglike ([5, 0.2], ones (2)) -***** error invglike ([5, 0.2], [-1, 3]) -***** error ... - invglike ([1, 0.2, 3], [1, 3, 5, 7]) -***** error ... - invglike ([1.5, 0.2], [1:5], [0, 0, 0]) -***** error ... - invglike ([1.5, 0.2], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) -***** error ... - invglike ([1.5, 0.2], [1:5], [], [1, 1, 1]) -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/dist_fit/binolike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/binolike.m -***** assert (binolike ([3, 0.333], [0:3]), 6.8302, 1e-4) -***** assert (binolike ([3, 0.333], 0), 1.2149, 1e-4) -***** assert (binolike ([3, 0.333], 1), 0.8109, 1e-4) -***** assert (binolike ([3, 0.333], 2), 1.5056, 1e-4) -***** assert (binolike ([3, 0.333], 3), 3.2988, 1e-4) -***** test - [nlogL, acov] = binolike ([3, 0.333], 3); - assert (acov(4), 0.0740, 1e-4) -***** error binolike (3.25) -***** error binolike ([5, 0.2], ones (2)) -***** error ... - binolike ([1, 0.2, 3], [1, 3, 5, 7]) -***** error binolike ([1.5, 0.2], 1) -***** error binolike ([-1, 0.2], 1) -***** error binolike ([Inf, 0.2], 1) -***** error binolike ([5, 1.2], [3, 5]) -***** error binolike ([5, -0.2], [3, 5]) -***** error ... - binolike ([5, 0.5], ones (10, 1), ones (8,1)) -***** error ... - binolike ([5, 0.5], ones (1, 8), [1 1 1 1 1 1 1 -1]) -***** error binolike ([5, 0.2], [-1, 3]) -***** error binolike ([5, 0.2], [3, 5, 7]) -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/dist_fit/normfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/normfit.m + title ("Linear kernel over basis function with prior covariance"); ***** demo - ## Sample 3 populations from 3 different normal distibutions - randn ("seed", 1); # for reproducibility - r1 = normrnd (2, 5, 5000, 1); - randn ("seed", 2); # for reproducibility - r2 = normrnd (5, 2, 5000, 1); - randn ("seed", 3); # for reproducibility - r3 = normrnd (9, 4, 5000, 1); - r = [r1, r2, r3]; + ## Projection over basis function with linear kernel + pp = [2, 2, 0.3, 1]; + n = 10; + rand ("seed", 145); + X = 2 * rand (n, 1) - 1; + randn ("seed", 45); + Y = polyval (pp, X) + 0.3 * randn (n, 1); - ## Plot them normalized and fix their colors - hist (r, 15, 0.4); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - hold on + ## Powers + px = [sqrt(abs(X)), X, X.^2, X.^3]; - ## Estimate their mu and sigma parameters - [muhat, sigmahat] = normfit (r); + ## Points for interpolation/extrapolation + Xfit = linspace (-1, 1, 100)'; + pxi = [sqrt(abs(Xfit)), Xfit, Xfit.^2, Xfit.^3]; - ## Plot their estimated PDFs - x = [min(r(:)):max(r(:))]; - y = normpdf (x, muhat(1), sigmahat(1)); - plot (x, y, "-pr"); - y = normpdf (x, muhat(2), sigmahat(2)); - plot (x, y, "-sg"); - y = normpdf (x, muhat(3), sigmahat(3)); - plot (x, y, "-^c"); - ylim ([0, 0.5]) - xlim ([-20, 20]) - hold off - legend ({"Normalized HIST of sample 1 with mu=2, σ=5", ... - "Normalized HIST of sample 2 with mu=5, σ=2", ... - "Normalized HIST of sample 3 with mu=9, σ=4", ... - sprintf("PDF for sample 1 with estimated mu=%0.2f and σ=%0.2f", ... - muhat(1), sigmahat(1)), ... - sprintf("PDF for sample 2 with estimated mu=%0.2f and σ=%0.2f", ... - muhat(2), sigmahat(2)), ... - sprintf("PDF for sample 3 with estimated mu=%0.2f and σ=%0.2f", ... - muhat(3), sigmahat(3))}, "location", "northwest") - title ("Three population samples from different normal distibutions") - hold off -***** test - load lightbulb - idx = find (lightbulb(:,2) == 0); - censoring = lightbulb(idx,3) == 1; - [muHat, sigmaHat] = normfit (lightbulb(idx,1), [], censoring); - assert (muHat, 9496.59586737857, 1e-11); - assert (sigmaHat, 3064.021012796456, 2e-12); -***** test - randn ("seed", 234); - x = normrnd (3, 5, [1000, 1]); - [muHat, sigmaHat, muCI, sigmaCI] = normfit (x, 0.01); - assert (muCI(1) < 3); - assert (muCI(2) > 3); - assert (sigmaCI(1) < 5); - assert (sigmaCI(2) > 5); -***** error ... - normfit (ones (3,3,3)) -***** error ... - normfit (ones (20,3), [], zeros (20,1)) -***** error normfit (ones (20,1), 0) -***** error normfit (ones (20,1), -0.3) -***** error normfit (ones (20,1), 1.2) -***** error normfit (ones (20,1), [0.05 0.1]) -***** error normfit (ones (20,1), 0.02+i) -***** error ... - normfit (ones (20,1), [], zeros(15,1)) -***** error ... - normfit (ones (20,1), [], zeros(20,1), ones(25,1)) -***** error ... - normfit (ones (5,1), [], zeros(5,1), [1, 2, 1, 2, -1]') -***** error normfit (ones (20,1), [], zeros(20,1), ones(20,1), "options") -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_fit/logllike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/logllike.m -***** test - [nlogL, acov] = logllike ([3.09717, 0.468525], [1:50]); - assert (nlogL, 211.2965, 1e-4); - assert (acov, [0.0131, -0.0007; -0.0007, 0.0031], 1e-4); -***** test - [nlogL, acov] = logllike ([1.01124, 0.336449], [1:5]); - assert (nlogL, 9.2206, 1e-4); - assert (acov, [0.0712, -0.0032; -0.0032, 0.0153], 1e-4); -***** error logllike (3.25) -***** error logllike ([5, 0.2], ones (2)) -***** error ... - logllike ([1, 0.2, 3], [1, 3, 5, 7]) -***** error ... - logllike ([1.5, 0.2], [1:5], [0, 0, 0]) -***** error ... - logllike ([1.5, 0.2], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) -***** error ... - logllike ([1.5, 0.2], [1:5], [], [1, 1, 1]) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fit/logifit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/logifit.m -***** demo - ## Sample 3 populations from different logistic distibutions - rand ("seed", 5) # for reproducibility - r1 = logirnd (2, 1, 2000, 1); - rand ("seed", 2) # for reproducibility - r2 = logirnd (5, 2, 2000, 1); - rand ("seed", 7) # for reproducibility - r3 = logirnd (9, 4, 2000, 1); - r = [r1, r2, r3]; + ## Fit regression model without any assumption on prior covariance + [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi); - ## Plot them normalized and fix their colors - hist (r, [-6:20], 1); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - ylim ([0, 0.3]); - xlim ([-5, 20]); + ## Plot fitted data + plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... + Xfit, polyval (pp, Xfit), "g-;True;"); + axis tight + axis manual hold on - - ## Estimate their MU and LAMBDA parameters - mu_sA = logifit (r(:,1)); - mu_sB = logifit (r(:,2)); - mu_sC = logifit (r(:,3)); - - ## Plot their estimated PDFs - x = [-5:0.5:20]; - y = logipdf (x, mu_sA(1), mu_sA(2)); - plot (x, y, "-pr"); - y = logipdf (x, mu_sB(1), mu_sB(2)); - plot (x, y, "-sg"); - y = logipdf (x, mu_sC(1), mu_sC(2)); - plot (x, y, "-^c"); - hold off - legend ({"Normalized HIST of sample 1 with μ=1 and s=0.5", ... - "Normalized HIST of sample 2 with μ=2 and s=0.3", ... - "Normalized HIST of sample 3 with μ=4 and s=0.5", ... - sprintf("PDF for sample 1 with estimated μ=%0.2f and s=%0.2f", ... - mu_sA(1), mu_sA(2)), ... - sprintf("PDF for sample 2 with estimated μ=%0.2f and s=%0.2f", ... - mu_sB(1), mu_sB(2)), ... - sprintf("PDF for sample 3 with estimated μ=%0.2f and s=%0.2f", ... - mu_sC(1), mu_sC(2))}) - title ("Three population samples from different logistic distibutions") + plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); hold off -***** test - paramhat = logifit ([1:50]); - paramhat_out = [25.5, 8.7724]; - assert (paramhat, paramhat_out, 1e-4); -***** test - paramhat = logifit ([1:5]); - paramhat_out = [3, 0.8645]; - assert (paramhat, paramhat_out, 1e-4); -***** test - paramhat = logifit ([1:6], [], [], [1 1 1 1 1 0]); - paramhat_out = [3, 0.8645]; - assert (paramhat, paramhat_out, 1e-4); -***** test - paramhat = logifit ([1:5], [], [], [1 1 1 1 2]); - paramhat_out = logifit ([1:5, 5]); - assert (paramhat, paramhat_out, 1e-4); -***** error logifit (ones (2,5)); -***** error logifit ([1, 2, 3, 4, 5], 1.2); -***** error logifit ([1, 2, 3, 4, 5], 0); -***** error logifit ([1, 2, 3, 4, 5], "alpha"); -***** error ... - logifit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); -***** error ... - logifit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); -***** error ... - logifit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); -***** error ... - logifit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); -***** error ... - logifit ([1, 2, 3, 4, 5], 0.05, [], [], 2); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_fit/evfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/evfit.m + title ("Linear kernel over basis function without prior covariance"); ***** demo - ## Sample 3 populations from different extreme value distibutions - rand ("seed", 1); # for reproducibility - r1 = evrnd (2, 5, 400, 1); - rand ("seed", 12); # for reproducibility - r2 = evrnd (-5, 3, 400, 1); - rand ("seed", 13); # for reproducibility - r3 = evrnd (14, 8, 400, 1); - r = [r1, r2, r3]; + ## Projection over basis function with rbf kernel + pp = [2, 2, 0.3, 1]; + n = 10; + rand ("seed", 145); + X = 2 * rand (n, 1) - 1; + randn ("seed", 45); + Y = polyval (pp, X) + 0.3 * randn (n, 1); - ## Plot them normalized and fix their colors - hist (r, 25, 0.4); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - ylim ([0, 0.28]) - xlim ([-30, 30]); - hold on + ## Powers + px = [sqrt(abs(X)), X, X.^2, X.^3]; - ## Estimate their MU and SIGMA parameters - mu_sigmaA = evfit (r(:,1)); - mu_sigmaB = evfit (r(:,2)); - mu_sigmaC = evfit (r(:,3)); + ## Points for interpolation/extrapolation + Xfit = linspace (-1, 1, 100)'; + pxi = [sqrt(abs(Xfit)), Xfit, Xfit.^2, Xfit.^3]; - ## Plot their estimated PDFs - x = [min(r(:)):max(r(:))]; - y = evpdf (x, mu_sigmaA(1), mu_sigmaA(2)); - plot (x, y, "-pr"); - y = evpdf (x, mu_sigmaB(1), mu_sigmaB(2)); - plot (x, y, "-sg"); - y = evpdf (x, mu_sigmaC(1), mu_sigmaC(2)); - plot (x, y, "-^c"); - legend ({"Normalized HIST of sample 1 with μ=2 and σ=5", ... - "Normalized HIST of sample 2 with μ=-5 and σ=3", ... - "Normalized HIST of sample 3 with μ=14 and σ=8", ... - sprintf("PDF for sample 1 with estimated μ=%0.2f and σ=%0.2f", ... - mu_sigmaA(1), mu_sigmaA(2)), ... - sprintf("PDF for sample 2 with estimated μ=%0.2f and σ=%0.2f", ... - mu_sigmaB(1), mu_sigmaB(2)), ... - sprintf("PDF for sample 3 with estimated μ=%0.2f and σ=%0.2f", ... - mu_sigmaC(1), mu_sigmaC(2))}) - title ("Three population samples from different extreme value distibutions") - hold off -***** test - x = 1:50; - [paramhat, paramci] = evfit (x); - paramhat_out = [32.6811, 13.0509]; - paramci_out = [28.8504, 10.5294; 36.5118, 16.1763]; - assert (paramhat, paramhat_out, 1e-4); - assert (paramci, paramci_out, 1e-4); -***** test - x = 1:50; - [paramhat, paramci] = evfit (x, 0.01); - paramci_out = [27.6468, 9.8426; 37.7155, 17.3051]; - assert (paramci, paramci_out, 1e-4); -***** error evfit (ones (2,5)); -***** error evfit (single (ones (1,5))); -***** error evfit ([1, 2, 3, 4, NaN]); -***** error evfit ([1, 2, 3, 4, 5], 1.2); -***** error - evfit ([1 2 3], 0.05, [], [1 5]) -***** error - evfit ([1 2 3], 0.05, [], [1 5 -1]) -***** error ... - evfit ([1:10], 0.05, [], [], 5) -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/dist_fit/rayllike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/rayllike.m -***** test - x = [1 3 2 4 5 4 3 4]; - [nlogL, acov] = rayllike (3.25, x); - assert (nlogL, 14.7442, 1e-4) -***** test - x = [1 2 3 4 5]; - f = [1 1 2 3 1]; - [nlogL, acov] = rayllike (3.25, x, [], f); - assert (nlogL, 14.7442, 1e-4) -***** test - x = [1 2 3 4 5 6]; - f = [1 1 2 3 1 0]; - [nlogL, acov] = rayllike (3.25, x, [], f); - assert (nlogL, 14.7442, 1e-4) -***** test - x = [1 2 3 4 5 6]; - c = [0 0 0 0 0 1]; - f = [1 1 2 3 1 0]; - [nlogL, acov] = rayllike (3.25, x, c, f); - assert (nlogL, 14.7442, 1e-4) -***** error rayllike (1) -***** error rayllike ([1 2 3], [1 2]) -***** error ... - rayllike (3.25, ones (10, 2)) -***** error ... - rayllike (3.25, [1 2 3 -4 5]) -***** error ... - rayllike (3.25, [1, 2, 3, 4, 5], [1 1 0]); -***** error ... - rayllike (3.25, [1, 2, 3, 4, 5], [1 1 0 1 1]'); -***** error ... - rayllike (3.25, [1, 2, 3, 4, 5], zeros (1,5), [1 1 0]); -***** error ... - rayllike (3.25, [1, 2, 3, 4, 5], [], [1 1 0 1 1]'); -***** error ... - rayllike (3.25, ones (1, 8), [], [1 1 1 1 1 1 1 -1]) -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_fit/geofit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/geofit.m -***** demo - ## Sample 2 populations from different geometric distibutions - rande ("seed", 1); # for reproducibility - r1 = geornd (0.15, 1000, 1); - rande ("seed", 2); # for reproducibility - r2 = geornd (0.5, 1000, 1); - r = [r1, r2]; + ## Fit regression model with RBF kernel (standard parameters) + [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi, "rbf"); - ## Plot them normalized and fix their colors - hist (r, 0:0.5:20.5, 1); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); + ## Plot fitted data + plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... + Xfit, polyval (pp, Xfit), "g-;True;"); + axis tight + axis manual hold on - - ## Estimate their probability of success - pshatA = geofit (r(:,1)); - pshatB = geofit (r(:,2)); - - ## Plot their estimated PDFs - x = [0:15]; - y = geopdf (x, pshatA); - plot (x, y, "-pg"); - y = geopdf (x, pshatB); - plot (x, y, "-sc"); - xlim ([0, 15]) - ylim ([0, 0.6]) - legend ({"Normalized HIST of sample 1 with ps=0.15", ... - "Normalized HIST of sample 2 with ps=0.50", ... - sprintf("PDF for sample 1 with estimated ps=%0.2f", ... - mean (pshatA)), ... - sprintf("PDF for sample 2 with estimated ps=%0.2f", ... - mean (pshatB))}) - title ("Two population samples from different geometric distibutions") + plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); hold off -***** test - x = 0:5; - [pshat, psci] = geofit (x); - assert (pshat, 0.2857, 1e-4); - assert (psci, [0.092499; 0.478929], 1e-5); -***** test - x = 0:5; - [pshat, psci] = geofit (x, [], [1 1 1 1 1 1]); - assert (pshat, 0.2857, 1e-4); - assert (psci, [0.092499; 0.478929], 1e-5); -***** assert (geofit ([1 1 2 3]), geofit ([1 2 3], [] ,[2 1 1])) -***** error geofit () -***** error geofit (-1, [1 2 3 3]) -***** error geofit (1, 0) -***** error geofit (1, 1.2) -***** error geofit (1, [0.02 0.05]) -***** error ... - geofit ([1.5, 0.2], [], [0, 0, 0, 0, 0]) -***** error ... - geofit ([1.5, 0.2], [], [1, 1, 1]) -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_fit/burrfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/burrfit.m + title ("RBF kernel over basis function with standard parameters"); + text (-0.5, 4, "theta = 5\n g = 0.01"); ***** demo - ## Sample 3 populations from different Burr type XII distibutions - rand ("seed", 4); # for reproducibility - r1 = burrrnd (3.5, 2, 2.5, 10000, 1); - rand ("seed", 2); # for reproducibility - r2 = burrrnd (1, 3, 1, 10000, 1); - rand ("seed", 9); # for reproducibility - r3 = burrrnd (0.5, 2, 3, 10000, 1); - r = [r1, r2, r3]; + ## Projection over basis function with rbf kernel + pp = [2, 2, 0.3, 1]; + n = 10; + rand ("seed", 145); + X = 2 * rand (n, 1) - 1; + randn ("seed", 45); + Y = polyval (pp, X) + 0.3 * randn (n, 1); - ## Plot them normalized and fix their colors - hist (r, [0.1:0.2:20], [18, 5, 3]); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - ylim ([0, 3]); - xlim ([0, 5]); - hold on + ## Powers + px = [sqrt(abs(X)), X, X.^2, X.^3]; - ## Estimate their α and β parameters - lambda_c_kA = burrfit (r(:,1)); - lambda_c_kB = burrfit (r(:,2)); - lambda_c_kC = burrfit (r(:,3)); + ## Points for interpolation/extrapolation + Xfit = linspace (-1, 1, 100)'; + pxi = [sqrt(abs(Xfit)), Xfit, Xfit.^2, Xfit.^3]; - ## Plot their estimated PDFs - x = [0.01:0.15:15]; - y = burrpdf (x, lambda_c_kA(1), lambda_c_kA(2), lambda_c_kA(3)); - plot (x, y, "-pr"); - y = burrpdf (x, lambda_c_kB(1), lambda_c_kB(2), lambda_c_kB(3)); - plot (x, y, "-sg"); - y = burrpdf (x, lambda_c_kC(1), lambda_c_kC(2), lambda_c_kC(3)); - plot (x, y, "-^c"); - hold off - legend ({"Normalized HIST of sample 1 with λ=3.5, c=2, and k=2.5", ... - "Normalized HIST of sample 2 with λ=1, c=3, and k=1", ... - "Normalized HIST of sample 3 with λ=0.5, c=2, and k=3", ... - sprintf("PDF for sample 1 with estimated λ=%0.2f, c=%0.2f, and k=%0.2f", ... - lambda_c_kA(1), lambda_c_kA(2), lambda_c_kA(3)), ... - sprintf("PDF for sample 2 with estimated λ=%0.2f, c=%0.2f, and k=%0.2f", ... - lambda_c_kB(1), lambda_c_kB(2), lambda_c_kB(3)), ... - sprintf("PDF for sample 3 with estimated λ=%0.2f, c=%0.2f, and k=%0.2f", ... - lambda_c_kC(1), lambda_c_kC(2), lambda_c_kC(3))}) - title ("Three population samples from different Burr type XII distibutions") - hold off -***** test - l = 1; c = 2; k = 3; - r = burrrnd (l, c, k, 100000, 1); - lambda_c_kA = burrfit (r); - assert (lambda_c_kA(1), l, 0.2); - assert (lambda_c_kA(2), c, 0.2); - assert (lambda_c_kA(3), k, 0.3); -***** test - l = 0.5; c = 1; k = 3; - r = burrrnd (l, c, k, 100000, 1); - lambda_c_kA = burrfit (r); - assert (lambda_c_kA(1), l, 0.2); - assert (lambda_c_kA(2), c, 0.2); - assert (lambda_c_kA(3), k, 0.3); -***** test - l = 1; c = 3; k = 1; - r = burrrnd (l, c, k, 100000, 1); - lambda_c_kA = burrfit (r); - assert (lambda_c_kA(1), l, 0.2); - assert (lambda_c_kA(2), c, 0.2); - assert (lambda_c_kA(3), k, 0.3); -***** test - l = 3; c = 2; k = 1; - r = burrrnd (l, c, k, 100000, 1); - lambda_c_kA = burrfit (r); - assert (lambda_c_kA(1), l, 0.2); - assert (lambda_c_kA(2), c, 0.2); - assert (lambda_c_kA(3), k, 0.3); -***** test - l = 4; c = 2; k = 4; - r = burrrnd (l, c, k, 100000, 1); - lambda_c_kA = burrfit (r); - assert (lambda_c_kA(1), l, 0.2); - assert (lambda_c_kA(2), c, 0.2); - assert (lambda_c_kA(3), k, 0.3); -***** error burrfit (ones (2,5)); -***** error burrfit ([-1 2 3 4]); -***** error burrfit ([1, 2, 3, 4, 5], 1.2); -***** error burrfit ([1, 2, 3, 4, 5], 0); -***** error burrfit ([1, 2, 3, 4, 5], "alpha"); -***** error ... - burrfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); -***** error ... - burrfit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); -***** error - burrfit ([1, 2, 3, 4, 5], 0.05, [], [1, 1, 5]) -***** error - burrfit ([1, 2, 3, 4, 5], 0.05, [], [1, 5, 1, 1, -1]) -***** error ... - burrfit ([1:10], 0.05, [], [], 5) -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fit/gevlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gevlike.m -***** test - x = 1; - k = 0.2; - sigma = 0.3; - mu = 0.5; - [L, C] = gevlike ([k sigma mu], x); - expected_L = 0.75942; - expected_C = [-0.12547 1.77884 1.06731; 1.77884 16.40761 8.48877; 1.06731 8.48877 0.27979]; - assert (L, expected_L, 0.001); - assert (C, inv (expected_C), 0.001); -***** test - x = 1; - k = 0; - sigma = 0.3; - mu = 0.5; - [L, C] = gevlike ([k sigma mu], x); - expected_L = 0.65157; - expected_C = [0.090036 3.41229 2.047337; 3.412229 24.760027 12.510190; 2.047337 12.510190 2.098618]; - assert (L, expected_L, 0.001); - assert (C, inv (expected_C), 0.001); -***** test - x = -5:-1; - k = -0.2; - sigma = 0.3; - mu = 0.5; - [L, C] = gevlike ([k sigma mu], x); - expected_L = 3786.4; - expected_C = [1.6802e-07, 4.6110e-06, 8.7297e-05; ... - 4.6110e-06, 7.5693e-06, 1.2034e-05; ... - 8.7297e-05, 1.2034e-05, -0.0019125]; - assert (L, expected_L, -0.001); - assert (C, expected_C, -0.001); -***** test - x = -5:0; - k = -0.2; - sigma = 0.3; - mu = 0.5; - [L, C] = gevlike ([k sigma mu], x, [1, 1, 1, 1, 1, 0]); - expected_L = 3786.4; - expected_C = [1.6802e-07, 4.6110e-06, 8.7297e-05; ... - 4.6110e-06, 7.5693e-06, 1.2034e-05; ... - 8.7297e-05, 1.2034e-05, -0.0019125]; - assert (L, expected_L, -0.001); - assert (C, expected_C, -0.001); -***** error gevlike (3.25) -***** error gevlike ([1, 2, 3], ones (2)) -***** error ... - gevlike ([1, 2], [1, 3, 5, 7]) -***** error ... - gevlike ([1, 2, 3, 4], [1, 3, 5, 7]) -***** error ... - gevlike ([5, 0.2, 1], ones (10, 1), ones (8,1)) -***** error ... - gevlike ([5, 0.2, 1], ones (1, 8), [1 1 1 1 1 1 1 -1]) -***** error ... - gevlike ([5, 0.2, 1], ones (1, 8), [1 1 1 1 1 1 1 1.5]) -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/dist_fit/bisalike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/bisalike.m -***** test - nlogL = bisalike ([16.2649, 1.0156], [1:50]); - assert (nlogL, 215.5905, 1e-4); -***** test - nlogL = bisalike ([2.5585, 0.5839], [1:5]); - assert (nlogL, 8.9950, 1e-4); -***** error bisalike (3.25) -***** error bisalike ([5, 0.2], ones (2)) -***** error bisalike ([5, 0.2], [-1, 3]) -***** error ... - bisalike ([1, 0.2, 3], [1, 3, 5, 7]) -***** error ... - bisalike ([1.5, 0.2], [1:5], [0, 0, 0]) -***** error ... - bisalike ([1.5, 0.2], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) -***** error ... - bisalike ([1.5, 0.2], [1:5], [], [1, 1, 1]) -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/dist_fit/nbinlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/nbinlike.m -***** assert (nbinlike ([2.42086, 0.0867043], [1:50]), 205.5942, 1e-4) -***** assert (nbinlike ([3.58823, 0.254697], [1:20]), 63.6435, 1e-4) -***** assert (nbinlike ([8.80671, 0.615565], [1:10]), 24.7410, 1e-4) -***** assert (nbinlike ([22.1756, 0.831306], [1:8]), 17.9528, 1e-4) -***** assert (nbinlike ([22.1756, 0.831306], [1:9], [ones(1,8), 0]), 17.9528, 1e-4) -***** error nbinlike (3.25) -***** error nbinlike ([5, 0.2], ones (2)) -***** error nbinlike ([5, 0.2], [-1, 3]) -***** error ... - nbinlike ([1, 0.2, 3], [1, 3, 5, 7]) -***** error nbinlike ([-5, 0.2], [1:15]) -***** error nbinlike ([0, 0.2], [1:15]) -***** error nbinlike ([5, 1.2], [3, 5]) -***** error nbinlike ([5, -0.2], [3, 5]) -***** error ... - nbinlike ([5, 0.2], ones (10, 1), ones (8,1)) -***** error ... - nbinlike ([5, 0.2], ones (1, 8), [1 1 1 1 1 1 1 -1]) -***** error ... - nbinlike ([5, 0.2], ones (1, 8), [1 1 1 1 1 1 1 1.5]) -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fit/tlslike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/tlslike.m -***** test - x = [-1.2352, -0.2741, 0.1726, 7.4356, 1.0392, 16.4165]; - [nlogL, acov] = tlslike ([0.035893, 0.862711, 0.649261], x); - acov_out = [0.2525, 0.0670, 0.0288; ... - 0.0670, 0.5724, 0.1786; ... - 0.0288, 0.1786, 0.1789]; - assert (nlogL, 17.9979636579, 1e-10); - assert (acov, acov_out, 1e-4); -***** error tlslike ([12, 15, 1]); -***** error tlslike ([12, 15], [1:50]); -***** error tlslike ([12, 3, 1], ones (10, 2)); -***** error tlslike ([12, 15, 1], [1:50], [1, 2, 3]); -***** error tlslike ([12, 15, 1], [1:50], [], [1, 2, 3]); -***** error tlslike ([12, 15, 1], [1:3], [], [1, 2, -3]); -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/dist_fit/ricefit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/ricefit.m -***** demo - ## Sample 3 populations from different Gamma distibutions - randg ("seed", 5); # for reproducibility - randp ("seed", 6); - r1 = ricernd (1, 2, 3000, 1); - randg ("seed", 2); # for reproducibility - randp ("seed", 8); - r2 = ricernd (2, 4, 3000, 1); - randg ("seed", 7); # for reproducibility - randp ("seed", 9); - r3 = ricernd (7.5, 1, 3000, 1); - r = [r1, r2, r3]; + ## Fit regression model with RBF kernel with different parameters + [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi, "rbf", 10, 0.01); - ## Plot them normalized and fix their colors - hist (r, 75, 4); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - ylim ([0, 0.7]); - xlim ([0, 12]); + ## Plot fitted data + plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... + Xfit, polyval (pp, Xfit), "g-;True;"); + axis tight + axis manual hold on + plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); + hold off + title ("GP regression with RBF kernel and non default parameters"); + text (-0.5, 4, "theta = 10\n g = 0.01"); - ## Estimate their α and β parameters - s_sigmaA = ricefit (r(:,1)); - s_sigmaB = ricefit (r(:,2)); - s_sigmaC = ricefit (r(:,3)); + ## Fit regression model with RBF kernel with different parameters + [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi, "rbf", 50, 0.01); - ## Plot their estimated PDFs - x = [0.01,0.1:0.2:18]; - y = ricepdf (x, s_sigmaA(1), s_sigmaA(2)); - plot (x, y, "-pr"); - y = ricepdf (x, s_sigmaB(1), s_sigmaB(2)); - plot (x, y, "-sg"); - y = ricepdf (x, s_sigmaC(1), s_sigmaC(2)); - plot (x, y, "-^c"); - hold off - legend ({"Normalized HIST of sample 1 with s=1 and σ=2", ... - "Normalized HIST of sample 2 with s=2 and σ=4", ... - "Normalized HIST of sample 3 with s=7.5 and σ=1", ... - sprintf("PDF for sample 1 with estimated s=%0.2f and σ=%0.2f", ... - s_sigmaA(1), s_sigmaA(2)), ... - sprintf("PDF for sample 2 with estimated s=%0.2f and σ=%0.2f", ... - s_sigmaB(1), s_sigmaB(2)), ... - sprintf("PDF for sample 3 with estimated s=%0.2f and σ=%0.2f", ... - s_sigmaC(1), s_sigmaC(2))}) - title ("Three population samples from different Rician distibutions") + ## Plot fitted data + figure + plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... + Xfit, polyval (pp, Xfit), "g-;True;"); + axis tight + axis manual + hold on + plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); hold off -***** test - [paramhat, paramci] = ricefit ([1:50]); - assert (paramhat, [15.3057, 17.6668], 1e-4); - assert (paramci, [9.5468, 11.7802; 24.5383, 26.4952], 1e-4); -***** test - [paramhat, paramci] = ricefit ([1:50], 0.01); - assert (paramhat, [15.3057, 17.6668], 1e-4); - assert (paramci, [8.2309, 10.3717; 28.4615, 30.0934], 1e-4); -***** test - [paramhat, paramci] = ricefit ([1:5]); - assert (paramhat, [2.3123, 1.6812], 1e-4); - assert (paramci, [1.0819, 0.6376; 4.9424, 4.4331], 1e-4); -***** test - [paramhat, paramci] = ricefit ([1:5], 0.01); - assert (paramhat, [2.3123, 1.6812], 1e-4); - assert (paramci, [0.8521, 0.4702; 6.2747, 6.0120], 1e-4); -***** test - freq = [1 1 1 1 5]; - [paramhat, paramci] = ricefit ([1:5], [], [], freq); - assert (paramhat, [3.5181, 1.5565], 1e-4); - assert (paramci, [2.5893, 0.9049; 4.7801, 2.6772], 1e-4); -***** test - censor = [1 0 0 0 0]; - [paramhat, paramci] = ricefit ([1:5], [], censor); - assert (paramhat, [3.2978, 1.1527], 1e-4); - assert (paramci, [2.3192, 0.5476; 4.6895, 2.4261], 1e-4); -***** assert (class (ricefit (single ([1:50]))), "single") -***** error ricefit (ones (2)) -***** error ricefit ([1:50], 1) -***** error ricefit ([1:50], -1) -***** error ricefit ([1:50], {0.05}) -***** error ricefit ([1:50], "k") -***** error ricefit ([1:50], i) -***** error ricefit ([1:50], [0.01 0.02]) -***** error ricefit ([1:50], [], [1 1]) -***** error ricefit ([1:50], [], [], [1 1]) -***** error ... - ricefit ([1:5], [], [], [1, 1, 2, 1, -1]) -***** error ricefit ([1 2 3 -4]) -***** error ricefit ([1 2 0], [], [1 0 0]) -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/dist_fit/hnlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/hnlike.m -***** test - x = 1:20; - paramhat = hnfit (x, 0); - [nlogL, acov] = hnlike (paramhat, x); - assert (nlogL, 64.179177404891300, 1e-14); -***** test - x = 1:20; - paramhat = hnfit (x, 0); - [nlogL, acov] = hnlike (paramhat, x, ones (1, 20)); - assert (nlogL, 64.179177404891300, 1e-14); -***** error ... - hnlike ([12, 15]); -***** error hnlike ([12, 15, 3], [1:50]); -***** error hnlike ([3], [1:50]); -***** error ... - hnlike ([0, 3], ones (2)); -***** error ... - hnlike ([0, 3], [1, 2, 3, 4, 5+i]); -***** error ... - hnlike ([1, 2], ones (10, 1), ones (8,1)) -***** error ... - hnlike ([1, 2], ones (1, 8), [1 1 1 1 1 1 1 -1]) -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/dist_fit/lognfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/lognfit.m -***** demo - ## Sample 3 populations from 3 different log-normal distibutions - randn ("seed", 1); # for reproducibility - r1 = lognrnd (0, 0.25, 1000, 1); - randn ("seed", 2); # for reproducibility - r2 = lognrnd (0, 0.5, 1000, 1); - randn ("seed", 3); # for reproducibility - r3 = lognrnd (0, 1, 1000, 1); - r = [r1, r2, r3]; + title ("GP regression with RBF kernel and non default parameters"); + text (-0.5, 4, "theta = 50\n g = 0.01"); - ## Plot them normalized and fix their colors - hist (r, 30, 2); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); + ## Fit regression model with RBF kernel with different parameters + [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi, "rbf", 50, 0.001); + + ## Plot fitted data + figure + plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... + Xfit, polyval (pp, Xfit), "g-;True;"); + axis tight + axis manual hold on + plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); + hold off + title ("GP regression with RBF kernel and non default parameters"); + text (-0.5, 4, "theta = 50\n g = 0.001"); - ## Estimate their mu and sigma parameters - mu_sigmaA = lognfit (r(:,1)); - mu_sigmaB = lognfit (r(:,2)); - mu_sigmaC = lognfit (r(:,3)); + ## Fit regression model with RBF kernel with different parameters + [Yfit, Yint, Ysd] = regress_gp (px, Y, pxi, "rbf", 50, 0.05); - ## Plot their estimated PDFs - x = [0:0.1:6]; - y = lognpdf (x, mu_sigmaA(1), mu_sigmaA(2)); - plot (x, y, "-pr"); - y = lognpdf (x, mu_sigmaB(1), mu_sigmaB(2)); - plot (x, y, "-sg"); - y = lognpdf (x, mu_sigmaC(1), mu_sigmaC(2)); - plot (x, y, "-^c"); - ylim ([0, 2]) - xlim ([0, 6]) - hold off - legend ({"Normalized HIST of sample 1 with mu=0, σ=0.25", ... - "Normalized HIST of sample 2 with mu=0, σ=0.5", ... - "Normalized HIST of sample 3 with mu=0, σ=1", ... - sprintf("PDF for sample 1 with estimated mu=%0.2f and σ=%0.2f", ... - mu_sigmaA(1), mu_sigmaA(2)), ... - sprintf("PDF for sample 2 with estimated mu=%0.2f and σ=%0.2f", ... - mu_sigmaB(1), mu_sigmaB(2)), ... - sprintf("PDF for sample 3 with estimated mu=%0.2f and σ=%0.2f", ... - mu_sigmaC(1), mu_sigmaC(2))}, "location", "northeast") - title ("Three population samples from different log-normal distibutions") + ## Plot fitted data + figure + plot (X, Y, "xk;Data;", Xfit, Yfit, "r-;Estimation;", ... + Xfit, polyval (pp, Xfit), "g-;True;"); + axis tight + axis manual + hold on + plot (Xfit, Yint(:,1), "m-;Upper bound;", Xfit, Yint(:,2), "b-;Lower bound;"); hold off -***** test - randn ("seed", 1); - x = lognrnd (3, 5, [1000, 1]); - [paramhat, paramci] = lognfit (x, 0.01); - assert (paramci(1,1) < 3); - assert (paramci(1,2) > 3); - assert (paramci(2,1) < 5); - assert (paramci(2,2) > 5); -***** error ... - lognfit (ones (20,3)) -***** error ... - lognfit ({1, 2, 3, 4, 5}) -***** error ... - lognfit ([-1, 2, 3, 4, 5]) -***** error lognfit (ones (20,1), 0) -***** error lognfit (ones (20,1), -0.3) -***** error lognfit (ones (20,1), 1.2) -***** error lognfit (ones (20,1), [0.05, 0.1]) -***** error lognfit (ones (20,1), 0.02+i) -***** error ... - lognfit (ones (20,1), [], zeros(15,1)) -***** error ... - lognfit (ones (20,1), [], zeros(20,1), ones(25,1)) -***** error lognfit (ones (20,1), [], zeros(20,1), ones(20,1), "options") -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/dist_fit/gevfit_lmom.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gevfit_lmom.m -***** xtest <31070> - data = 1:50; - [pfit, pci] = gevfit_lmom (data); - expected_p = [-0.28 15.01 20.22]'; - assert (pfit, expected_p, 0.1); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/dist_fit/betalike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/betalike.m -***** test - x = 0.01:0.02:0.99; - [nlogL, avar] = betalike ([2.3, 1.2], x); - avar_out = [0.03691678, 0.02803056; 0.02803056, 0.03965629]; - assert (nlogL, 17.873477715879040, 3e-14); - assert (avar, avar_out, 1e-7); -***** test - x = 0.01:0.02:0.99; - [nlogL, avar] = betalike ([1, 4], x); - avar_out = [0.02793282, 0.02717274; 0.02717274, 0.03993361]; - assert (nlogL, 79.648061114839550, 1e-13); - assert (avar, avar_out, 1e-7); -***** test - x = 0.00:0.02:1; - [nlogL, avar] = betalike ([1, 4], x); - avar_out = [0.00000801564765, 0.00000131397245; ... - 0.00000131397245, 0.00070827639442]; - assert (nlogL, 573.2008434477486, 1e-10); - assert (avar, avar_out, 1e-14); -***** error ... - betalike ([12, 15]); -***** error betalike ([12, 15, 3], [1:50]); -***** error ... - betalike ([12, 15], ones (10, 1), ones (8,1)) -***** error ... - betalike ([12, 15], ones (1, 8), [1 1 1 1 1 1 1 -1]) -***** error ... - betalike ([12, 15], ones (1, 8), [1 1 1 1 1 1 1 1.5]) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fit/unidfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/unidfit.m + title ("GP regression with RBF kernel and non default parameters"); + text (-0.5, 4, "theta = 50\n g = 0.05"); ***** demo - ## Sample 2 populations from different discrete uniform distibutions - rand ("seed", 1); # for reproducibility - r1 = unidrnd (5, 1000, 1); - rand ("seed", 2); # for reproducibility - r2 = unidrnd (9, 1000, 1); - r = [r1, r2]; + ## RBF fitting on noiseless 1D Data + x = [0:2*pi/7:2*pi]'; + y = 5 * sin (x); - ## Plot them normalized and fix their colors - hist (r, 0:0.5:20.5, 1); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - hold on + ## Predictive grid of 500 equally spaced locations + xi = [-0.5:(2*pi+1)/499:2*pi+0.5]'; - ## Estimate their probability of success - NhatA = unidfit (r(:,1)); - NhatB = unidfit (r(:,2)); + ## Fit regression model with RBF kernel + [Yfit, Yint, Ysd] = regress_gp (x, y, xi, "rbf"); - ## Plot their estimated PDFs - x = [0:10]; - y = unidpdf (x, NhatA); - plot (x, y, "-pg"); - y = unidpdf (x, NhatB); - plot (x, y, "-sc"); - xlim ([0, 10]) - ylim ([0, 0.4]) - legend ({"Normalized HIST of sample 1 with N=5", ... - "Normalized HIST of sample 2 with N=9", ... - sprintf("PDF for sample 1 with estimated N=%0.2f", NhatA), ... - sprintf("PDF for sample 2 with estimated N=%0.2f", NhatB)}) - title ("Two population samples from different discrete uniform distibutions") + ## Plot fitted data + r = mvnrnd (Yfit, diag (Ysd)', 50); + plot (xi, r', "c-"); + hold on + plot (xi, Yfit, "r-;Estimation;", xi, Yint, "b-;Confidence interval;"); + plot (x, y, ".k;Predictor points;", "markersize", 20) + plot (xi, 5 * sin (xi), "-y;True Function;"); + xlim ([-0.5,2*pi+0.5]); + ylim ([-10,10]); hold off -***** test - x = 0:5; - [Nhat, Nci] = unidfit (x); - assert (Nhat, 5); - assert (Nci, [5; 9]); -***** test - x = 0:5; - [Nhat, Nci] = unidfit (x, [], [1 1 1 1 1 1]); - assert (Nhat, 5); - assert (Nci, [5; 9]); -***** assert (unidfit ([1 1 2 3]), unidfit ([1 2 3], [] ,[2 1 1])) -***** error unidfit () -***** error unidfit (-1, [1 2 3 3]) -***** error unidfit (1, 0) -***** error unidfit (1, 1.2) -***** error unidfit (1, [0.02 0.05]) -***** error ... - unidfit ([1.5, 0.2], [], [0, 0, 0, 0, 0]) -***** error ... - unidfit ([1.5, 0.2], [], [1, 1, 1]) -***** error ... - unidfit ([1.5, 0.2], [], [1, -1]) -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/dist_fit/poissfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/poissfit.m + title ("GP regression with RBF kernel on noiseless 1D data"); + text (0, -7, "theta = 5\n g = 0.01"); ***** demo - ## Sample 3 populations from 3 different Poisson distibutions - randp ("seed", 2); # for reproducibility - r1 = poissrnd (1, 1000, 1); - randp ("seed", 2); # for reproducibility - r2 = poissrnd (4, 1000, 1); - randp ("seed", 3); # for reproducibility - r3 = poissrnd (10, 1000, 1); - r = [r1, r2, r3]; + ## RBF fitting on noisy 1D Data + x = [0:2*pi/7:2*pi]'; + x = [x; x]; + y = 5 * sin (x) + randn (size (x)); - ## Plot them normalized and fix their colors - hist (r, [0:20], 1); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - hold on + ## Predictive grid of 500 equally spaced locations + xi = [-0.5:(2*pi+1)/499:2*pi+0.5]'; - ## Estimate their lambda parameter - lambdahat = poissfit (r); + ## Fit regression model with RBF kernel + [Yfit, Yint, Ysd] = regress_gp (x, y, xi, "rbf"); - ## Plot their estimated PDFs - x = [0:20]; - y = poisspdf (x, lambdahat(1)); - plot (x, y, "-pr"); - y = poisspdf (x, lambdahat(2)); - plot (x, y, "-sg"); - y = poisspdf (x, lambdahat(3)); - plot (x, y, "-^c"); - xlim ([0, 20]) - ylim ([0, 0.4]) - legend ({"Normalized HIST of sample 1 with λ=1", ... - "Normalized HIST of sample 2 with λ=4", ... - "Normalized HIST of sample 3 with λ=10", ... - sprintf("PDF for sample 1 with estimated λ=%0.2f", ... - lambdahat(1)), ... - sprintf("PDF for sample 2 with estimated λ=%0.2f", ... - lambdahat(2)), ... - sprintf("PDF for sample 3 with estimated λ=%0.2f", ... - lambdahat(3))}) - title ("Three population samples from different Poisson distibutions") + ## Plot fitted data + r = mvnrnd (Yfit, diag (Ysd)', 50); + plot (xi, r', "c-"); + hold on + plot (xi, Yfit, "r-;Estimation;", xi, Yint, "b-;Confidence interval;"); + plot (x, y, ".k;Predictor points;", "markersize", 20) + plot (xi, 5 * sin (xi), "-y;True Function;"); + xlim ([-0.5,2*pi+0.5]); + ylim ([-10,10]); hold off -***** test - x = [1 3 2 4 5 4 3 4]; - [lhat, lci] = poissfit (x); - assert (lhat, 3.25) - assert (lci, [2.123007901949543; 4.762003010390628], 1e-14) -***** test - x = [1 3 2 4 5 4 3 4]; - [lhat, lci] = poissfit (x, 0.01); - assert (lhat, 3.25) - assert (lci, [1.842572740234582; 5.281369033298528], 1e-14) -***** test - x = [1 2 3 4 5]; - f = [1 1 2 3 1]; - [lhat, lci] = poissfit (x, [], f); - assert (lhat, 3.25) - assert (lci, [2.123007901949543; 4.762003010390628], 1e-14) -***** test - x = [1 2 3 4 5]; - f = [1 1 2 3 1]; - [lhat, lci] = poissfit (x, 0.01, f); - assert (lhat, 3.25) - assert (lci, [1.842572740234582; 5.281369033298528], 1e-14) -***** error poissfit ([1 2 -1 3]) -***** error poissfit ([1 2 3], 0) -***** error poissfit ([1 2 3], 1.2) -***** error poissfit ([1 2 3], [0.02 0.05]) -***** error - poissfit ([1 2 3], [], [1 5]) -***** error - poissfit ([1 2 3], [], [1 5 -1]) -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_fit/loglfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/loglfit.m + title ("GP regression with RBF kernel on noisy 1D data"); + text (0, -7, "theta = 5\n g = 0.01"); +***** error regress_gp (ones (20, 2)) +***** error regress_gp (ones (20, 2), ones (20, 1)) +***** error ... + regress_gp (ones (20, 2, 3), ones (20, 1), ones (20, 2)) +***** error ... + regress_gp (ones (20, 2), ones (20, 2), ones (20, 2)) +***** error ... + regress_gp (ones (20, 2), ones (15, 1), ones (20, 2)) +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (20, 3)) +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), {[3]}) +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "kernel") +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", ones (4)) +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "linear", 1) +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", "value") +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", {5}) +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), ones (3), 5) +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "linear", 5) +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", 5, {5}) +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", 5, ones (2)) +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), 5, 0.01, [1, 1]) +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), 5, 0.01, "f") +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), 5, 0.01, "f") +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", 5, 0.01, "f") +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "rbf", 5, 0.01, [1, 1]) +***** error ... + regress_gp (ones (20, 2), ones (20, 1), ones (10, 2), "linear", 1) +22 tests, 22 passed, 0 known failure, 0 skipped +[inst/sampsizepwr.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/sampsizepwr.m ***** demo - ## Sample 3 populations from different log-logistic distibutions - rand ("seed", 5) # for reproducibility - r1 = loglrnd (0, 1, 2000, 1); - rand ("seed", 2) # for reproducibility - r2 = loglrnd (0, 0.5, 2000, 1); - rand ("seed", 7) # for reproducibility - r3 = loglrnd (0, 0.125, 2000, 1); - r = [r1, r2, r3]; - - ## Plot them normalized and fix their colors - hist (r, [0.05:0.1:2.5], 10); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "c"); - set (h(2), "facecolor", "g"); - set (h(3), "facecolor", "r"); - ylim ([0, 3.5]); - xlim ([0, 2.0]); - hold on + ## Compute the mean closest to 100 that can be determined to be + ## significantly different from 100 using a t-test with a sample size + ## of 60 and a power of 0.8. + mu1 = sampsizepwr ("t", [100, 10], [], 0.8, 60); + disp (mu1); +***** demo + ## Compute the sample sizes required to distinguish mu0 = 100 from + ## mu1 = 110 by a two-sample t-test with a ratio of the larger and the + ## smaller sample sizes of 1.5 and a power of 0.6. + [N1,N2] = sampsizepwr ("t2", [100, 10], 110, 0.6, [], "ratio", 1.5) +***** demo + ## Compute the sample size N required to distinguish p=.26 from p=.2 + ## with a binomial test. The result is approximate, so make a plot to + ## see if any smaller N values also have the required power of 0.6. + Napprox = sampsizepwr ("p", 0.2, 0.26, 0.6); + nn = 1:250; + pwr = sampsizepwr ("p", 0.2, 0.26, [], nn); + Nexact = min (nn(pwr >= 0.6)); + plot(nn,pwr,'b-', [Napprox Nexact],pwr([Napprox Nexact]),'ro'); + grid on +***** demo + ## The company must test 52 bottles to detect the difference between a mean + ## volume of 100 mL and 102 mL with a power of 0.80. Generate a power curve + ## to visualize how the sample size affects the power of the test. - ## Estimate their MU and LAMBDA parameters - a_bA = loglfit (r(:,1)); - a_bB = loglfit (r(:,2)); - a_bC = loglfit (r(:,3)); + nout = sampsizepwr('t',[100 5],102,0.80); + nn = 1:100; + pwrout = sampsizepwr('t',[100 5],102,[],nn); - ## Plot their estimated PDFs - x = [0.01:0.1:2.01]; - y = loglpdf (x, a_bA(1), a_bA(2)); - plot (x, y, "-pr"); - y = loglpdf (x, a_bB(1), a_bB(2)); - plot (x, y, "-sg"); - y = loglpdf (x, a_bC(1), a_bC(2)); - plot (x, y, "-^c"); - legend ({"Normalized HIST of sample 1 with α=1 and β=1", ... - "Normalized HIST of sample 2 with α=1 and β=2", ... - "Normalized HIST of sample 3 with α=1 and β=8", ... - sprintf("PDF for sample 1 with estimated α=%0.2f and β=%0.2f", ... - a_bA(1), a_bA(2)), ... - sprintf("PDF for sample 2 with estimated α=%0.2f and β=%0.2f", ... - a_bB(1), a_bB(2)), ... - sprintf("PDF for sample 3 with estimated α=%0.2f and β=%0.2f", ... - a_bC(1), a_bC(2))}) - title ("Three population samples from different log-logistic distibutions") - hold off -***** test - [paramhat, paramci] = loglfit ([1:50]); - paramhat_out = [3.09717, 0.468525]; - paramci_out = [2.87261, 0.370616; 3.32174, 0.5923]; - assert (paramhat, paramhat_out, 1e-5); - assert (paramci, paramci_out, 1e-5); -***** test - paramhat = loglfit ([1:5]); - paramhat_out = [1.01124, 0.336449]; - assert (paramhat, paramhat_out, 1e-5); -***** test - paramhat = loglfit ([1:6], [], [], [1 1 1 1 1 0]); - paramhat_out = [1.01124, 0.336449]; - assert (paramhat, paramhat_out, 1e-4); + figure; + plot (nn, pwrout, "b-", nout, 0.8, "ro") + title ("Power versus Sample Size") + xlabel ("Sample Size") + ylabel ("Power") +***** error ... + out = sampsizepwr ([], [100, 10], [], 0.8, 60); +***** error ... + out = sampsizepwr (3, [100, 10], [], 0.8, 60); +***** error ... + out = sampsizepwr ({"t", "t2"}, [100, 10], [], 0.8, 60); +***** error ... + out = sampsizepwr ("reg", [100, 10], [], 0.8, 60); +***** error ... + out = sampsizepwr ("t", ["a", "e"], [], 0.8, 60); +***** error ... + out = sampsizepwr ("z", 100, [], 0.8, 60); +***** error ... + out = sampsizepwr ("t", 100, [], 0.8, 60); +***** error ... + out = sampsizepwr ("t2", 60, [], 0.8, 60); +***** error ... + out = sampsizepwr ("var", [100, 10], [], 0.8, 60); +***** error ... + out = sampsizepwr ("p", [100, 10], [], 0.8, 60); +***** error ... + out = sampsizepwr ("r", [100, 10], [], 0.8, 60); +***** error ... + [out, N1] = sampsizepwr ("z", [100, 10], [], 0.8, 60); +***** error ... + [out, N1] = sampsizepwr ("t", [100, 10], [], 0.8, 60); +***** error ... + [out, N1] = sampsizepwr ("var", 2, [], 0.8, 60); +***** error ... + [out, N1] = sampsizepwr ("p", 0.1, [], 0.8, 60); +***** error ... + [out, N1] = sampsizepwr ("r", 0.5, [], 0.8, 60); +***** error ... + out = sampsizepwr ("z", [100, 0], [], 0.8, 60); +***** error ... + out = sampsizepwr ("z", [100, -5], [], 0.8, 60); +***** error ... + out = sampsizepwr ("t", [100, 0], [], 0.8, 60); +***** error ... + out = sampsizepwr ("t", [100, -5], [], 0.8, 60); +***** error ... + [out, N1] = sampsizepwr ("t2", [100, 0], [], 0.8, 60); +***** error ... + [out, N1] = sampsizepwr ("t2", [100, -5], [], 0.8, 60); +***** error ... + out = sampsizepwr ("var", 0, [], 0.8, 60); +***** error ... + out = sampsizepwr ("var", -5, [], 0.8, 60); +***** error ... + out = sampsizepwr ("p", 0, [], 0.8, 60); +***** error ... + out = sampsizepwr ("p", 1.2, [], 0.8, 60); +***** error ... + out = sampsizepwr ("r", -1.5, [], 0.8, 60); +***** error ... + out = sampsizepwr ("r", -1, [], 0.8, 60); +***** error ... + out = sampsizepwr ("r", 1.2, [], 0.8, 60); +***** error ... + out = sampsizepwr ("r", 0, [], 0.8, 60); +***** error ... + out = sampsizepwr ("r", 0.2, [], 0.8, 60, "alpha", -0.2); +***** error ... + out = sampsizepwr ("r", 0.2, [], 0.8, 60, "alpha", 0); +***** error ... + out = sampsizepwr ("r", 0.2, [], 0.8, 60, "alpha", 1.5); +***** error ... + out = sampsizepwr ("r", 0.2, [], 0.8, 60, "alpha", "zero"); +***** error ... + out = sampsizepwr ("r", 0.2, [], 0.8, 60, "tail", 1.5); +***** error ... + out = sampsizepwr ("r", 0.2, [], 0.8, 60, "tail", {"both", "left"}); +***** error ... + out = sampsizepwr ("r", 0.2, [], 0.8, 60, "tail", "other"); +***** error ... + out = sampsizepwr ("r", 0.2, [], 0.8, 60, "ratio", "some"); +***** error ... + out = sampsizepwr ("r", 0.2, [], 0.8, 60, "ratio", 0.5); +***** error ... + out = sampsizepwr ("r", 0.2, [], 0.8, 60, "ratio", [2, 1.3, 0.3]); +***** error ... + out = sampsizepwr ("z", [100, 5], [], [], 60); +***** error ... + out = sampsizepwr ("z", [100, 5], 110, [], []); +***** error ... + out = sampsizepwr ("z", [100, 5], [], 0.8, []); +***** error ... + out = sampsizepwr ("z", [100, 5], 110, 0.8, 60); +***** error ... + out = sampsizepwr ("z", [100, 5], "mu", [], 60); +***** error ... + out = sampsizepwr ("var", 5, -1, [], 60); +***** error ... + out = sampsizepwr ("p", 0.8, 1.2, [], 60, "tail", "right"); +***** error ... + out = sampsizepwr ("r", 0.8, 1.2, [], 60); +***** error ... + out = sampsizepwr ("r", 0.8, -1.2, [], 60); +***** error ... + out = sampsizepwr ("z", [100, 5], 110, 1.2); +***** error ... + out = sampsizepwr ("z", [100, 5], 110, 0); +***** error ... + out = sampsizepwr ("z", [100, 5], 110, 0.05, [], "alpha", 0.1); +***** error ... + out = sampsizepwr ("z", [100, 5], [], [0.8, 0.7], [60, 80, 100]); +***** error ... + out = sampsizepwr ("t", [100, 5], 100, 0.8, []); +***** error ... + out = sampsizepwr ("t", [100, 5], 110, 0.8, [], "tail", "left"); +***** error ... + out = sampsizepwr ("t", [100, 5], 90, 0.8, [], "tail", "right"); +***** warning ... + Napprox = sampsizepwr ("p", 0.2, 0.26, 0.6); +***** warning ... + Napprox = sampsizepwr ("p", 0.30, 0.36, 0.8); ***** test - paramhat = loglfit ([1:5], [], [], [1 1 1 1 2]); - paramhat_out = loglfit ([1:5, 5]); - assert (paramhat, paramhat_out, 1e-4); -***** error loglfit (ones (2,5)); -***** error loglfit ([1, 2, 3, 4, 5], 1.2); -***** error loglfit ([1, 2, 3, 4, 5], 0); -***** error loglfit ([1, 2, 3, 4, 5], "alpha"); -***** error ... - loglfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); -***** error ... - loglfit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); -***** error ... - loglfit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); -***** error ... - loglfit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); -***** error ... - loglfit ([1, 2, 3, 4, 5], 0.05, [], [], 2); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_fit/ricelike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/ricelike.m + mu1 = sampsizepwr ("t", [100, 10], [], 0.8, 60); + assert (mu1, 103.67704316, 1e-8); ***** test - nlogL = ricelike ([15.3057344, 17.6668458], [1:50]); - assert (nlogL, 204.5230311010569, 1e-12); + [N1,N2] = sampsizepwr ("t2", [100, 10], 110, 0.6, [], "ratio", 1.5); + assert (N1, 9); + assert (N2, 14); ***** test - nlogL = ricelike ([2.312346885, 1.681228265], [1:5]); - assert (nlogL, 8.65562164930058, 1e-12); -***** error ricelike (3.25) -***** error ricelike ([5, 0.2], ones (2)) -***** error ... - ricelike ([1, 0.2, 3], [1, 3, 5, 7]) -***** error ... - ricelike ([1.5, 0.2], [1:5], [0, 0, 0]) -***** error ... - ricelike ([1.5, 0.2], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) -***** error ... - ricelike ([1.5, 0.2], [1:5], [], [1, 1, 1]) -***** error ... - ricelike ([1.5, 0.2], [1:5], [], [1, 1, 1, 0, -1]) -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/dist_fit/gplike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gplike.m + nn = 1:250; + pwr = sampsizepwr ("p", 0.2, 0.26, [], nn); + pwr_out = [0, 0.0676, 0.0176, 0.0566, 0.0181, 0.0431, 0.0802, 0.0322]; + assert (pwr([1:8]), pwr_out, 1e-4 * ones (1,8)); + pwr_out = [0.59275, 0.6073, 0.62166, 0.6358, 0.6497, 0.6087, 0.6229, 0.6369]; + assert (pwr([243:end]), pwr_out, 1e-4 * ones (1,8)); ***** test - k = 0.8937; sigma = 1.3230; theta = 1; - x = [2.2196, 11.9301, 4.3673, 1.0949, 6.5626, ... - 1.2109, 1.8576, 1.0039, 12.7917, 2.2590]; - [nlogL, acov] = gplike ([k, sigma, theta], x); - assert (nlogL, 21.736, 1e-3); - assert (acov, [0.7249, -0.7351, 0; -0.7351, 1.3040, 0; 0, 0, 0], 1e-4); -***** assert (gplike ([2, 3, 0], 4), 3.047536764863501, 1e-14) -***** assert (gplike ([2, 3, 4], 8), 3.047536764863501, 1e-14) -***** assert (gplike ([1, 2, 0], 4), 2.890371757896165, 1e-14) -***** assert (gplike ([1, 2, 4], 8), 2.890371757896165, 1e-14) -***** assert (gplike ([2, 3, 0], [1:10]), 32.57864322725392, 1e-14) -***** assert (gplike ([2, 3, 2], [1:10] + 2), 32.57864322725392, 1e-14) -***** assert (gplike ([2, 3, 0], [1:10], ones (1,10)), 32.57864322725392, 1e-14) -***** assert (gplike ([1, 2, 0], [1:10]), 31.65666282460443, 1e-14) -***** assert (gplike ([1, 2, 3], [1:10] + 3), 31.65666282460443, 1e-14) -***** assert (gplike ([1, 2, 0], [1:10], ones (1,10)), 31.65666282460443, 1e-14) -***** assert (gplike ([1, NaN, 0], [1:10]), NaN) -***** error gplike () -***** error gplike (1) -***** error gplike ([1, 2, 0], []) -***** error gplike ([1, 2, 0], ones (2)) -***** error gplike (2, [1:10]) -***** error gplike ([2, 3], [1:10]) -***** error ... - gplike ([1, 2, 0], ones (10, 1), ones (8,1)) -***** error ... - gplike ([1, 2, 0], ones (1, 8), [1 1 1 1 1 1 1 -1]) -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/dist_fit/gpfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gpfit.m -***** demo - ## Sample 2 populations from different generalized Pareto distibutions - ## Assume location parameter θ is known - theta = 0; - rand ("seed", 5); # for reproducibility - r1 = gprnd (1, 2, theta, 20000, 1); - rand ("seed", 2); # for reproducibility - r2 = gprnd (3, 1, theta, 20000, 1); - r = [r1, r2]; - - ## Plot them normalized and fix their colors - hist (r, [0.1:0.2:100], 5); - h = findobj (gca, "Type", "patch"); - set (h(1), "facecolor", "r"); - set (h(2), "facecolor", "c"); - ylim ([0, 1]); - xlim ([0, 5]); - hold on - - ## Estimate their α and β parameters - k_sigmaA = gpfit (r(:,1), theta); - k_sigmaB = gpfit (r(:,2), theta); - - ## Plot their estimated PDFs - x = [0.01, 0.1:0.2:18]; - y = gppdf (x, k_sigmaA(1), k_sigmaA(2), theta); - plot (x, y, "-pc"); - y = gppdf (x, k_sigmaB(1), k_sigmaB(2), theta); - plot (x, y, "-sr"); - hold off - legend ({"Normalized HIST of sample 1 with k=1 and σ=2", ... - "Normalized HIST of sample 2 with k=2 and σ=2", ... - sprintf("PDF for sample 1 with estimated k=%0.2f and σ=%0.2f", ... - k_sigmaA(1), k_sigmaA(2)), ... - sprintf("PDF for sample 3 with estimated k=%0.2f and σ=%0.2f", ... - k_sigmaB(1), k_sigmaB(2))}) - title ("Three population samples from different generalized Pareto distibutions") - text (2, 0.7, "Known location parameter θ = 0") - hold off + nout = sampsizepwr ("t", [100, 5], 102, 0.80); + assert (nout, 52); ***** test - k = 0.8937; sigma = 1.3230; theta = 1; - x = [2.2196, 11.9301, 4.3673, 1.0949, 6.5626, ... - 1.2109, 1.8576, 1.0039, 12.7917, 2.2590]; - [hat, ci] = gpfit (x, theta); - assert (hat, [k, sigma, theta], 1e-4); - assert (ci, [-0.7750, 0.2437, 1; 2.5624, 7.1820, 1], 1e-4); -***** error gpfit () -***** error gpfit (1) -***** error gpfit ([0.2, 0.5+i], 0); -***** error gpfit (ones (2,2) * 0.5, 0); -***** error ... - gpfit ([0.5, 1.2], [0, 1]); -***** error ... - gpfit ([0.5, 1.2], 5+i); -***** error ... - gpfit ([1:5], 2); -***** error gpfit ([0.01:0.1:0.99], 0, 1.2); -***** error gpfit ([0.01:0.1:0.99], 0, i); -***** error gpfit ([0.01:0.1:0.99], 0, -1); -***** error gpfit ([0.01:0.1:0.99], 0, [0.05, 0.01]); -***** error - gpfit ([1 2 3], 0, [], [1 5]) -***** error - gpfit ([1 2 3], 0, [], [1 5 -1]) -***** error ... - gpfit ([1:10], 1, 0.05, [], 5) -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fit/lognlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/lognlike.m + power = sampsizepwr ("t", [20, 5], 25, [], 5, "Tail", "right"); + assert (power, 0.5797373588621888, 1e-14); ***** test - x = 1:50; - [nlogL, avar] = lognlike ([0, 0.25], x); - avar_out = [-5.4749e-03, 2.8308e-04; 2.8308e-04, -1.1916e-05]; - assert (nlogL, 3962.330333301793, 1e-10); - assert (avar, avar_out, 1e-7); + nout = sampsizepwr ("t", [20, 5], 25, 0.99, [], "Tail", "right"); + assert (nout, 18); ***** test - x = 1:50; - [nlogL, avar] = lognlike ([0, 0.25], x * 0.5); - avar_out = [-7.6229e-03, 4.8722e-04; 4.8722e-04, -2.6754e-05]; - assert (nlogL, 2473.183051225747, 1e-10); - assert (avar, avar_out, 1e-7); + p1out = sampsizepwr ("t", [20, 5], [], 0.95, 10, "Tail", "right"); + assert (p1out, 25.65317979360237, 1e-14); ***** test - x = 1:50; - [nlogL, avar] = lognlike ([0, 0.5], x); - avar_out = [-2.1152e-02, 2.2017e-03; 2.2017e-03, -1.8535e-04]; - assert (nlogL, 1119.072424020455, 1e-12); - assert (avar, avar_out, 1e-6); + pwr = sampsizepwr ("t2", [1.4, 0.2], 1.7, [], 5, "Ratio", 2); + assert (pwr, 0.716504004686586, 1e-14); ***** test - x = 1:50; - censor = ones (1, 50); - censor([2, 4, 6, 8, 12, 14]) = 0; - [nlogL, avar] = lognlike ([0, 0.5], x, censor); - avar_out = [-1.9823e-02, 2.0370e-03; 2.0370e-03, -1.6618e-04]; - assert (nlogL, 1091.746371145497, 1e-12); - assert (avar, avar_out, 1e-6); + n = sampsizepwr ("t2", [1.4, 0.2], 1.7, 0.9, []); + assert (n, 11); ***** test - x = 1:50; - censor = ones (1, 50); - censor([2, 4, 6, 8, 12, 14]) = 0; - [nlogL, avar] = lognlike ([0, 1], x, censor); - avar_out = [-6.8634e-02, 1.3968e-02; 1.3968e-02, -2.1664e-03]; - assert (nlogL, 349.3969104144271, 1e-12); - assert (avar, avar_out, 1e-6); -***** error ... - lognlike ([12, 15]); -***** error lognlike ([12, 15], ones (2)); -***** error ... - lognlike ([12, 15, 3], [1:50]); -***** error ... - lognlike ([12, 15], [1:50], [1, 2, 3]); -***** error ... - lognlike ([12, 15], [1:50], [], [1, 2, 3]); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_fun/ncfcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncfcdf.m + [n1, n2] = sampsizepwr ("t2", [1.4, 0.2], 1.7, 0.9, [], "Ratio", 2); + assert ([n1, n2], [8, 16]); +68 tests, 68 passed, 0 known failure, 0 skipped +[inst/isoutlier.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/isoutlier.m ***** demo - ## Plot various CDFs from the noncentral F distribution - x = 0:0.01:5; - p1 = ncfcdf (x, 2, 5, 1); - p2 = ncfcdf (x, 2, 5, 2); - p3 = ncfcdf (x, 5, 10, 1); - p4 = ncfcdf (x, 10, 20, 10); - plot (x, p1, "-r", x, p2, "-g", x, p3, "-k", x, p4, "-m") - grid on - xlim ([0, 5]) - legend ({"df1 = 2, df2 = 5, λ = 1", "df1 = 2, df2 = 5, λ = 2", ... - "df1 = 5, df2 = 10, λ = 1", "df1 = 10, df2 = 20, λ = 10"}, ... - "location", "southeast") - title ("Noncentral F CDF") - xlabel ("values in x") - ylabel ("probability") + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + TF = isoutlier (A, "mean") ***** demo - ## Compare the noncentral F CDF with LAMBDA = 10 to the F CDF with the - ## same number of numerator and denominator degrees of freedom (5, 20) + ## Use a moving detection method to detect local outliers in a sine wave - x = 0.01:0.1:10.01; - p1 = ncfcdf (x, 5, 20, 10); - p2 = fcdf (x, 5, 20); - plot (x, p1, "-", x, p2, "-"); - grid on - xlim ([0, 10]) - legend ({"Noncentral F(5,20,10)", "F(5,20)"}, "location", "southeast") - title ("Noncentral F vs F CDFs") - xlabel ("values in x") - ylabel ("probability") + x = -2*pi:0.1:2*pi; + A = sin(x); + A(47) = 0; + time = datenum (2023,1,1,0,0,0) + (1/24)*[0:length(x)-1] - 730485; + TF = isoutlier (A, "movmedian", 5*(1/24), "SamplePoints", time); + plot (time, A) + hold on + plot (time(TF), A(TF), "x") + datetick ('x', 20, 'keepticks') + legend ("Original Data", "Outlier Data") +***** demo + ## Locate an outlier in a vector of data and visualize the outlier + + x = 1:10; + A = [60 59 49 49 58 100 61 57 48 58]; + [TF, L, U, C] = isoutlier (A); + plot (x, A); + hold on + plot (x(TF), A(TF), "x"); + xlim ([1,10]); + line ([1,10], [L, L], "Linestyle", ":"); + text (1.1, L-2, "Lower Threshold"); + line ([1,10], [U, U], "Linestyle", ":"); + text (1.1, U-2, "Upper Threshold"); + line ([1,10], [C, C], "Linestyle", ":"); + text (1.1, C-3, "Center Value"); + legend ("Original Data", "Outlier Data"); ***** test - x = -2:0.1:2; - p = ncfcdf (x, 10, 1, 3); - assert (p([1:21]), zeros (1, 21), 1e-76); - assert (p(22), 0.004530737275319753, 1e-14); - assert (p(30), 0.255842099135669, 1e-14); - assert (p(41), 0.4379890998457305, 1e-14); + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + assert (isoutlier (A, "mean"), logical([zeros(1,8) 1 zeros(1,6)])) + assert (isoutlier (A, "median"), ... + logical([zeros(1,3) 1 zeros(1,4) 1 zeros(1,6)])) ***** test - p = ncfcdf (12, 10, 3, 2); - assert (p, 0.9582287900447416, 1e-14); + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + [TF, L, U, C] = isoutlier (A, "mean"); + assert (L, -109.2459044922864, 1e-12) + assert (U, 264.9792378256198, 1e-12) + assert (C, 77.8666666666666, 1e-12) ***** test - p = ncfcdf (2, 3, 2, 1); - assert (p, 0.5731985522994989, 1e-14); + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + [TF, L, U, C] = isoutlier (A, "median"); + assert (L, 50.104386688966386, 1e-12) + assert (U, 67.895613311033610, 1e-12) + assert (C, 59) ***** test - p = ncfcdf (2, 3, 2, 1, "upper"); - assert (p, 0.4268014477004823, 1e-14); + A = magic(5) + diag(200*ones(1,5)); + T = logical (eye (5)); + assert (isoutlier (A, 2), T) ***** test - p = ncfcdf ([3, 6], 3, 2, 5, "upper"); - assert (p, [0.530248523596927, 0.3350482341323044], 1e-14); -***** error ncfcdf () -***** error ncfcdf (1) -***** error ncfcdf (1, 2) -***** error ncfcdf (1, 2, 3) -***** error ncfcdf (1, 2, 3, 4, "tail") -***** error ncfcdf (1, 2, 3, 4, 5) -***** error ... - ncfcdf (ones (3), ones (2), ones (2), ones (2)) -***** error ... - ncfcdf (ones (2), ones (3), ones (2), ones (2)) -***** error ... - ncfcdf (ones (2), ones (2), ones (3), ones (2)) -***** error ... - ncfcdf (ones (2), ones (2), ones (2), ones (3)) -***** error ncfcdf (i, 2, 2, 2) -***** error ncfcdf (2, i, 2, 2) -***** error ncfcdf (2, 2, i, 2) -***** error ncfcdf (2, 2, 2, i) -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/dist_fun/ricepdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ricepdf.m -***** demo - ## Plot various PDFs from the Rician distribution - x = 0:0.01:8; - y1 = ricepdf (x, 0, 1); - y2 = ricepdf (x, 0.5, 1); - y3 = ricepdf (x, 1, 1); - y4 = ricepdf (x, 2, 1); - y5 = ricepdf (x, 4, 1); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-m", x, y5, "-k") - grid on - ylim ([0, 0.65]) - xlim ([0, 8]) - legend ({"s = 0, σ = 1", "s = 0.5, σ = 1", "s = 1, σ = 1", ... - "s = 2, σ = 1", "s = 4, σ = 1"}, "location", "northeast") - title ("Rician PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-1 0 0.5 1 2]; - y = [0 0 0.1073 0.1978 0.2846]; -***** assert (ricepdf (x, ones (1, 5), 2 * ones (1, 5)), y, 1e-4) -***** assert (ricepdf (x, 1, 2 * ones (1, 5)), y, 1e-4) -***** assert (ricepdf (x, ones (1, 5), 2), y, 1e-4) -***** assert (ricepdf (x, [0 NaN 1 1 1], 2), [0 NaN y(3:5)], 1e-4) -***** assert (ricepdf (x, 1, 2 * [0 NaN 1 1 1]), [0 NaN y(3:5)], 1e-4) -***** assert (ricepdf ([x, NaN], 1, 2), [y, NaN], 1e-4) -***** assert (ricepdf (single ([x, NaN]), 1, 2), single ([y, NaN]), 1e-4) -***** assert (ricepdf ([x, NaN], single (1), 2), single ([y, NaN]), 1e-4) -***** assert (ricepdf ([x, NaN], 1, single (2)), single ([y, NaN]), 1e-4) -***** error ricepdf () -***** error ricepdf (1) -***** error ricepdf (1,2) -***** error ricepdf (1,2,3,4) -***** error ... - ricepdf (ones (3), ones (2), ones (2)) -***** error ... - ricepdf (ones (2), ones (3), ones (2)) -***** error ... - ricepdf (ones (2), ones (2), ones (3)) -***** error ricepdf (i, 2, 2) -***** error ricepdf (2, i, 2) -***** error ricepdf (2, 2, i) -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/dist_fun/raylcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/raylcdf.m -***** demo - ## Plot various CDFs from the Rayleigh distribution - x = 0:0.01:10; - p1 = raylcdf (x, 0.5); - p2 = raylcdf (x, 1); - p3 = raylcdf (x, 2); - p4 = raylcdf (x, 3); - p5 = raylcdf (x, 4); - plot (x, p1, "-b", x, p2, "g", x, p3, "-r", x, p4, "-m", x, p5, "-k") - grid on - ylim ([0, 1]) - legend ({"σ = 0.5", "σ = 1", "σ = 2", ... - "σ = 3", "σ = 4"}, "location", "southeast") - title ("Rayleigh CDF") - xlabel ("values in x") - ylabel ("probability") + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + [TF, L, U, C] = isoutlier (A, "movmedian", 5); + l = [54.5522, 52.8283, 54.5522, 54.5522, 54.5522, 53.5522, 53.5522, ... + 53.5522, 47.6566, 56.5522, 57.5522, 56.5522, 51.1044, 52.3283, 53.5522]; + u = [63.4478, 66.1717, 63.4478, 63.4478, 63.4478, 62.4478, 62.4478, ... + 62.4478, 74.3434, 65.4478, 66.4478, 65.4478, 68.8956, 65.6717, 62.4478]; + c = [59, 59.5, 59, 59, 59, 58, 58, 58, 61, 61, 62, 61, 60, 59, 58]; + assert (L, l, 1e-4) + assert (U, u, 1e-4) + assert (C, c) ***** test - x = 0:0.5:2.5; - sigma = 1:6; - p = raylcdf (x, sigma); - expected_p = [0.0000, 0.0308, 0.0540, 0.0679, 0.0769, 0.0831]; - assert (p, expected_p, 0.001); + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + [TF, L, U, C] = isoutlier (A, "movmedian", 5, "SamplePoints", [1:15]); + l = [54.5522, 52.8283, 54.5522, 54.5522, 54.5522, 53.5522, 53.5522, ... + 53.5522, 47.6566, 56.5522, 57.5522, 56.5522, 51.1044, 52.3283, 53.5522]; + u = [63.4478, 66.1717, 63.4478, 63.4478, 63.4478, 62.4478, 62.4478, ... + 62.4478, 74.3434, 65.4478, 66.4478, 65.4478, 68.8956, 65.6717, 62.4478]; + c = [59, 59.5, 59, 59, 59, 58, 58, 58, 61, 61, 62, 61, 60, 59, 58]; + assert (L, l, 1e-4) + assert (U, u, 1e-4) + assert (C, c) ***** test - x = 0:0.5:2.5; - p = raylcdf (x, 0.5); - expected_p = [0.0000, 0.3935, 0.8647, 0.9889, 0.9997, 1.0000]; - assert (p, expected_p, 0.001); -***** shared x, p - x = [-1, 0, 1, 2, Inf]; - p = [0, 0, 0.39346934028737, 0.86466471676338, 1]; -***** assert (raylcdf (x, 1), p, 1e-14) -***** assert (raylcdf (x, 1, "upper"), 1 - p, 1e-14) -***** error raylcdf () -***** error raylcdf (1) -***** error raylcdf (1, 2, "uper") -***** error raylcdf (1, 2, 3) -***** error ... - raylcdf (ones (3), ones (2)) -***** error ... - raylcdf (ones (2), ones (3)) -***** error raylcdf (i, 2) -***** error raylcdf (2, i) -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/dist_fun/laplaceinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/laplaceinv.m -***** demo - ## Plot various iCDFs from the Laplace distribution - p = 0.001:0.001:0.999; - x1 = cauchyinv (p, 0, 1); - x2 = cauchyinv (p, 0, 2); - x3 = cauchyinv (p, 0, 4); - x4 = cauchyinv (p, -5, 4); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") - grid on - ylim ([-10, 10]) - legend ({"μ = 0, β = 1", "μ = 0, β = 2", ... - "μ = 0, β = 4", "μ = -5, β = 4"}, "location", "northwest") - title ("Laplace iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p, x - p = [-1 0 0.5 1 2]; - x = [NaN, -Inf, 0, Inf, NaN]; -***** assert (laplaceinv (p, 0, 1), x) -***** assert (laplaceinv (p, 0, [-2, -1, 0, 1, 2]), [nan(1, 3), Inf, NaN]) -***** assert (laplaceinv ([p, NaN], 0, 1), [x, NaN]) -***** assert (laplaceinv (single ([p, NaN]), 0, 1), single ([x, NaN])) -***** assert (laplaceinv ([p, NaN], single (0), 1), single ([x, NaN])) -***** assert (laplaceinv ([p, NaN], 0, single (1)), single ([x, NaN])) -***** error laplaceinv () -***** error laplaceinv (1) -***** error ... - laplaceinv (1, 2) -***** error laplaceinv (1, 2, 3, 4) -***** error ... - laplaceinv (1, ones (2), ones (3)) -***** error ... - laplaceinv (ones (2), 1, ones (3)) -***** error ... - laplaceinv (ones (2), ones (3), 1) -***** error laplaceinv (i, 2, 3) -***** error laplaceinv (1, i, 3) -***** error laplaceinv (1, 2, i) -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fun/burrpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/burrpdf.m -***** demo - ## Plot various PDFs from the Burr type XII distribution - x = 0.001:0.001:3; - y1 = burrpdf (x, 1, 1, 1); - y2 = burrpdf (x, 1, 1, 2); - y3 = burrpdf (x, 1, 1, 3); - y4 = burrpdf (x, 1, 2, 1); - y5 = burrpdf (x, 1, 3, 1); - y6 = burrpdf (x, 1, 0.5, 2); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", ... - x, y4, "-c", x, y5, "-m", x, y6, "-k") - grid on - ylim ([0, 2]) - legend ({"λ = 1, c = 1, k = 1", "λ = 1, c = 1, k = 2", ... - "λ = 1, c = 1, k = 3", "λ = 1, c = 2, k = 1", ... - "λ = 1, c = 3, k = 1", "λ = 1, c = 0.5, k = 2"}, ... - "location", "northeast") - title ("Burr type XII PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-1, 0, 1, 2, Inf]; - y = [0, 1, 1/4, 1/9, 0]; -***** assert (burrpdf (x, ones(1,5), ones (1,5), ones (1,5)), y) -***** assert (burrpdf (x, 1, 1, 1), y) -***** assert (burrpdf (x, [1, 1, NaN, 1, 1], 1, 1), [y(1:2), NaN, y(4:5)]) -***** assert (burrpdf (x, 1, [1, 1, NaN, 1, 1], 1), [y(1:2), NaN, y(4:5)]) -***** assert (burrpdf (x, 1, 1, [1, 1, NaN, 1, 1]), [y(1:2), NaN, y(4:5)]) -***** assert (burrpdf ([x, NaN], 1, 1, 1), [y, NaN]) -***** assert (burrpdf (single ([x, NaN]), 1, 1, 1), single ([y, NaN])) -***** assert (burrpdf ([x, NaN], single (1), 1, 1), single ([y, NaN])) -***** assert (burrpdf ([x, NaN], 1, single (1), 1), single ([y, NaN])) -***** assert (burrpdf ([x, NaN], 1, 1, single (1)), single ([y, NaN])) -***** error burrpdf () -***** error burrpdf (1) -***** error burrpdf (1, 2) -***** error burrpdf (1, 2, 3) -***** error ... - burrpdf (1, 2, 3, 4, 5) -***** error ... - burrpdf (ones (3), ones (2), ones(2), ones(2)) -***** error ... - burrpdf (ones (2), ones (3), ones(2), ones(2)) -***** error ... - burrpdf (ones (2), ones (2), ones(3), ones(2)) -***** error ... - burrpdf (ones (2), ones (2), ones(2), ones(3)) -***** error burrpdf (i, 2, 3, 4) -***** error burrpdf (1, i, 3, 4) -***** error burrpdf (1, 2, i, 4) -***** error burrpdf (1, 2, 3, i) -23 tests, 23 passed, 0 known failure, 0 skipped -[inst/dist_fun/ricernd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ricernd.m -***** assert (size (ricernd (2, 1/2)), [1, 1]) -***** assert (size (ricernd (2 * ones (2, 1), 1/2)), [2, 1]) -***** assert (size (ricernd (2 * ones (2, 2), 1/2)), [2, 2]) -***** assert (size (ricernd (2, 1/2 * ones (2, 1))), [2, 1]) -***** assert (size (ricernd (1, 1/2 * ones (2, 2))), [2, 2]) -***** assert (size (ricernd (ones (2, 1), 1)), [2, 1]) -***** assert (size (ricernd (ones (2, 2), 1)), [2, 2]) -***** assert (size (ricernd (2, 1/2, 3)), [3, 3]) -***** assert (size (ricernd (1, 1, [4, 1])), [4, 1]) -***** assert (size (ricernd (1, 1, 4, 1)), [4, 1]) -***** assert (size (ricernd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (ricernd (1, 1, 0, 1)), [0, 1]) -***** assert (size (ricernd (1, 1, 1, 0)), [1, 0]) -***** assert (size (ricernd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (ricernd (1, 1)), "double") -***** assert (class (ricernd (1, single (0))), "single") -***** assert (class (ricernd (1, single ([0, 0]))), "single") -***** assert (class (ricernd (1, single (1), 2)), "single") -***** assert (class (ricernd (1, single ([1, 1]), 1, 2)), "single") -***** assert (class (ricernd (single (1), 1, 2)), "single") -***** assert (class (ricernd (single ([1, 1]), 1, 1, 2)), "single") -***** error ricernd () -***** error ricernd (1) -***** error ... - ricernd (ones (3), ones (2)) -***** error ... - ricernd (ones (2), ones (3)) -***** error ricernd (i, 2) -***** error ricernd (1, i) -***** error ... - ricernd (1, 1/2, -1) -***** error ... - ricernd (1, 1/2, 1.2) -***** error ... - ricernd (1, 1/2, ones (2)) -***** error ... - ricernd (1, 1/2, [2 -1 2]) -***** error ... - ricernd (1, 1/2, [2 0 2.5]) -***** error ... - ricernd (1, 1/2, 2, -1, 5) -***** error ... - ricernd (1, 1/2, 2, 1.5, 5) -***** error ... - ricernd (2, 1/2 * ones (2), 3) -***** error ... - ricernd (2, 1/2 * ones (2), [3, 2]) -***** error ... - ricernd (2, 1/2 * ones (2), 3, 2) -***** error ... - ricernd (2 * ones (2), 1/2, 3) -***** error ... - ricernd (2 * ones (2), 1/2, [3, 2]) -***** error ... - ricernd (2 * ones (2), 1/2, 3, 2) -40 tests, 40 passed, 0 known failure, 0 skipped -[inst/dist_fun/binoinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/binoinv.m -***** demo - ## Plot various iCDFs from the binomial distribution - p = 0.001:0.001:0.999; - x1 = binoinv (p, 20, 0.5); - x2 = binoinv (p, 20, 0.7); - x3 = binoinv (p, 40, 0.5); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r") - grid on - legend ({"n = 20, ps = 0.5", "n = 20, ps = 0.7", ... - "n = 40, ps = 0.5"}, "location", "southeast") - title ("Binomial iCDF") - xlabel ("probability") - ylabel ("values in x (number of successes)") -***** shared p - p = [-1 0 0.5 1 2]; -***** assert (binoinv (p, 2*ones (1,5), 0.5*ones (1,5)), [NaN 0 1 2 NaN]) -***** assert (binoinv (p, 2, 0.5*ones (1,5)), [NaN 0 1 2 NaN]) -***** assert (binoinv (p, 2*ones (1,5), 0.5), [NaN 0 1 2 NaN]) -***** assert (binoinv (p, 2*[0 -1 NaN 1.1 1], 0.5), [NaN NaN NaN NaN NaN]) -***** assert (binoinv (p, 2, 0.5*[0 -1 NaN 3 1]), [NaN NaN NaN NaN NaN]) -***** assert (binoinv ([p(1:2) NaN p(4:5)], 2, 0.5), [NaN 0 NaN 2 NaN]) -***** assert (binoinv ([p, NaN], 2, 0.5), [NaN 0 1 2 NaN NaN]) -***** assert (binoinv (single ([p, NaN]), 2, 0.5), single ([NaN 0 1 2 NaN NaN])) -***** assert (binoinv ([p, NaN], single (2), 0.5), single ([NaN 0 1 2 NaN NaN])) -***** assert (binoinv ([p, NaN], 2, single (0.5)), single ([NaN 0 1 2 NaN NaN])) -***** shared x, tol - x = magic (3) + 1; - tol = 1; -***** assert (binoinv (binocdf (1:10, 11, 0.1), 11, 0.1), 1:10, tol) -***** assert (binoinv (binocdf (1:10, 2*(1:10), 0.1), 2*(1:10), 0.1), 1:10, tol) -***** assert (binoinv (binocdf (x, 2*x, 1./x), 2*x, 1./x), x, tol) -***** error binoinv () -***** error binoinv (1) -***** error binoinv (1,2) -***** error binoinv (1,2,3,4) -***** error ... - binoinv (ones (3), ones (2), ones (2)) -***** error ... - binoinv (ones (2), ones (3), ones (2)) -***** error ... - binoinv (ones (2), ones (2), ones (3)) -***** error binoinv (i, 2, 2) -***** error binoinv (2, i, 2) -***** error binoinv (2, 2, i) -23 tests, 23 passed, 0 known failure, 0 skipped -[inst/dist_fun/loglcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/loglcdf.m -***** demo - ## Plot various CDFs from the log-logistic distribution - x = 0:0.001:2; - p1 = loglcdf (x, log (1), 1/0.5); - p2 = loglcdf (x, log (1), 1); - p3 = loglcdf (x, log (1), 1/2); - p4 = loglcdf (x, log (1), 1/4); - p5 = loglcdf (x, log (1), 1/8); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-m") - legend ({"σ = 2 (β = 0.5)", "σ = 1 (β = 1)", "σ = 0.5 (β = 2)", ... - "σ = 0.25 (β = 4)", "σ = 0.125 (β = 8)"}, "location", "northwest") - grid on - title ("Log-logistic CDF") - xlabel ("values in x") - ylabel ("probability") - text (0.05, 0.64, "μ = 0 (α = 1), values of σ (β) as shown in legend") -***** shared out1, out2 - out1 = [0, 0.5, 0.66666667, 0.75, 0.8, 0.83333333]; - out2 = [0, 0.4174, 0.4745, 0.5082, 0.5321, 0.5506]; -***** assert (loglcdf ([0:5], 0, 1), out1, 1e-8) -***** assert (loglcdf ([0:5], 0, 1, "upper"), 1 - out1, 1e-8) -***** assert (loglcdf ([0:5], 0, 1), out1, 1e-8) -***** assert (loglcdf ([0:5], 0, 1, "upper"), 1 - out1, 1e-8) -***** assert (loglcdf ([0:5], 1, 3), out2, 1e-4) -***** assert (loglcdf ([0:5], 1, 3, "upper"), 1 - out2, 1e-4) -***** assert (class (loglcdf (single (1), 2, 3)), "single") -***** assert (class (loglcdf (1, single (2), 3)), "single") -***** assert (class (loglcdf (1, 2, single (3))), "single") -***** error loglcdf (1) -***** error loglcdf (1, 2) -***** error ... - loglcdf (1, 2, 3, 4) -***** error ... - loglcdf (1, 2, 3, "uper") -***** error ... - loglcdf (1, ones (2), ones (3)) -***** error ... - loglcdf (1, ones (2), ones (3), "upper") -***** error ... - loglcdf (ones (2), 1, ones (3)) -***** error ... - loglcdf (ones (2), 1, ones (3), "upper") -***** error ... - loglcdf (ones (2), ones (3), 1) -***** error ... - loglcdf (ones (2), ones (3), 1, "upper") -***** error loglcdf (i, 2, 3) -***** error loglcdf (i, 2, 3, "upper") -***** error loglcdf (1, i, 3) -***** error loglcdf (1, i, 3, "upper") -***** error loglcdf (1, 2, i) -***** error loglcdf (1, 2, i, "upper") -25 tests, 25 passed, 0 known failure, 0 skipped -[inst/dist_fun/bvtcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/bvtcdf.m + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + [TF, L, U, C] = isoutlier (A, "movmean", 5); + l = [54.0841, 6.8872, 11.5608, 12.1518, 11.0210, 10.0112, -218.2840, ... + -217.2375, -215.1239, -213.4890, -211.3264, 55.5800, 52.9589, ... + 52.5979, 51.0627]; + u = [63.2492, 131.1128, 122.4392, 122.2482, 122.5790, 122.7888, 431.0840, ... + 430.8375, 430.3239, 429.8890, 429.3264, 65.6200, 66.6411, 65.9021, ... + 66.9373]; + c = [58.6667, 69, 67, 67.2, 66.8, 66.4, 106.4, 106.8, 107.6, 108.2, 109, ... + 60.6, 59.8, 59.25, 59]; + assert (L, l, 1e-4) + assert (U, u, 1e-4) + assert (C, c, 1e-4) ***** test - x = [1, 2]; - rho = [1, 0.5; 0.5, 1]; - df = 4; - assert (bvtcdf(x, rho(2), df), mvtcdf(x, rho, df), 1e-14); + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + [TF, L, U, C] = isoutlier (A, "movmean", 5, "SamplePoints", [1:15]); + l = [54.0841, 6.8872, 11.5608, 12.1518, 11.0210, 10.0112, -218.2840, ... + -217.2375, -215.1239, -213.4890, -211.3264, 55.5800, 52.9589, ... + 52.5979, 51.0627]; + u = [63.2492, 131.1128, 122.4392, 122.2482, 122.5790, 122.7888, 431.0840, ... + 430.8375, 430.3239, 429.8890, 429.3264, 65.6200, 66.6411, 65.9021, ... + 66.9373]; + c = [58.6667, 69, 67, 67.2, 66.8, 66.4, 106.4, 106.8, 107.6, 108.2, 109, ... + 60.6, 59.8, 59.25, 59]; + assert (L, l, 1e-4) + assert (U, u, 1e-4) + assert (C, c, 1e-4) ***** test - x = [3, 2;2, 4;1, 5]; - rho = [1, 0.5; 0.5, 1]; - df = 4; - assert (bvtcdf(x, rho(2), df), mvtcdf(x, rho, df), 1e-14); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/dist_fun/exprnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/exprnd.m -***** assert (size (exprnd (2)), [1, 1]) -***** assert (size (exprnd (ones (2,1))), [2, 1]) -***** assert (size (exprnd (ones (2,2))), [2, 2]) -***** assert (size (exprnd (1, 3)), [3, 3]) -***** assert (size (exprnd (1, [4 1])), [4, 1]) -***** assert (size (exprnd (1, 4, 1)), [4, 1]) -***** assert (size (exprnd (1, 4, 1)), [4, 1]) -***** assert (size (exprnd (1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (exprnd (1, 0, 1)), [0, 1]) -***** assert (size (exprnd (1, 1, 0)), [1, 0]) -***** assert (size (exprnd (1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (exprnd (2)), "double") -***** assert (class (exprnd (single (2))), "single") -***** assert (class (exprnd (single ([2 2]))), "single") -***** error exprnd () -***** error exprnd (i) -***** error ... - exprnd (1, -1) -***** error ... - exprnd (1, 1.2) -***** error ... - exprnd (1, ones (2)) -***** error ... - exprnd (1, [2 -1 2]) -***** error ... - exprnd (1, [2 0 2.5]) -***** error ... - exprnd (ones (2), ones (2)) -***** error ... - exprnd (1, 2, -1, 5) -***** error ... - exprnd (1, 2, 1.5, 5) -***** error exprnd (ones (2,2), 3) -***** error exprnd (ones (2,2), [3, 2]) -***** error exprnd (ones (2,2), 2, 3) -27 tests, 27 passed, 0 known failure, 0 skipped -[inst/dist_fun/nctpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nctpdf.m -***** demo - ## Plot various PDFs from the noncentral T distribution - x = -5:0.01:10; - y1 = nctpdf (x, 1, 0); - y2 = nctpdf (x, 4, 0); - y3 = nctpdf (x, 1, 2); - y4 = nctpdf (x, 4, 2); - plot (x, y1, "-r", x, y2, "-g", x, y3, "-k", x, y4, "-m") - grid on - xlim ([-5, 10]) - ylim ([0, 0.4]) - legend ({"df = 1, μ = 0", "df = 4, μ = 0", ... - "df = 1, μ = 2", "df = 4, μ = 2"}, "location", "northeast") - title ("Noncentral T PDF") - xlabel ("values in x") - ylabel ("density") -***** demo - ## Compare the noncentral T PDF with MU = 1 to the T PDF - ## with the same number of degrees of freedom (10). - - x = -5:0.1:5; - y1 = nctpdf (x, 10, 1); - y2 = tpdf (x, 10); - plot (x, y1, "-", x, y2, "-"); - grid on - xlim ([-5, 5]) - ylim ([0, 0.4]) - legend ({"Noncentral χ^2(4,2)", "χ^2(4)"}, "location", "northwest") - title ("Noncentral T vs T PDFs") - xlabel ("values in x") - ylabel ("density") -***** shared x1, df, mu - x1 = [-Inf, 2, NaN, 4, Inf]; - df = [2, 0, -1, 1, 4]; - mu = [1, NaN, 3, -1, 2]; -***** assert (nctpdf (x1, df, mu), [0, NaN, NaN, 0.00401787561306999, 0], 1e-14); -***** assert (nctpdf (x1, df, 1), [0, NaN, NaN, 0.0482312135423008, 0], 1e-14); -***** assert (nctpdf (x1, df, 3), [0, NaN, NaN, 0.1048493126401585, 0], 1e-14); -***** assert (nctpdf (x1, df, 2), [0, NaN, NaN, 0.08137377919890307, 0], 1e-14); -***** assert (nctpdf (x1, 3, mu), [0, NaN, NaN, 0.001185305171654381, 0], 1e-14); -***** assert (nctpdf (2, df, mu), [0.1791097459405861, NaN, NaN, ... - 0.0146500727180389, 0.3082302682110299], 1e-14); -***** assert (nctpdf (4, df, mu), [0.04467929612254971, NaN, NaN, ... - 0.00401787561306999, 0.0972086534042828], 1e-14); -***** error nctpdf () -***** error nctpdf (1) -***** error nctpdf (1, 2) -***** error ... - nctpdf (ones (3), ones (2), ones (2)) -***** error ... - nctpdf (ones (2), ones (3), ones (2)) -***** error ... - nctpdf (ones (2), ones (2), ones (3)) -***** error nctpdf (i, 2, 2) -***** error nctpdf (2, i, 2) -***** error nctpdf (2, 2, i) -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fun/tripdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tripdf.m -***** demo - ## Plot various CDFs from the triangular distribution - x = 0.001:0.001:10; - y1 = tripdf (x, 3, 4, 6); - y2 = tripdf (x, 1, 2, 5); - y3 = tripdf (x, 2, 3, 9); - y4 = tripdf (x, 2, 5, 9); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") - grid on - xlim ([0, 10]) - legend ({"a = 3, b = 4, c = 6", "a = 1, b = 2, c = 5", ... - "a = 2, b = 3, c = 9", "a = 2, b = 5, c = 9"}, ... - "location", "northeast") - title ("Triangular CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y, deps - x = [-1, 0, 0.1, 0.5, 0.9, 1, 2] + 1; - y = [0, 0, 0.4, 2, 0.4, 0, 0]; - deps = 2*eps; -***** assert (tripdf (x, ones (1,7), 1.5*ones (1,7), 2*ones (1,7)), y, deps) -***** assert (tripdf (x, 1*ones (1,7), 1.5, 2), y, deps) -***** assert (tripdf (x, 1, 1.5, 2*ones (1,7)), y, deps) -***** assert (tripdf (x, 1, 1.5*ones (1,7), 2), y, deps) -***** assert (tripdf (x, 1, 1.5, 2), y, deps) -***** assert (tripdf (x, [1, 1, NaN, 1, 1, 1, 1], 1.5, 2), [y(1:2), NaN, y(4:7)], deps) -***** assert (tripdf (x, 1, 1.5, 2*[1, 1, NaN, 1, 1, 1, 1]), [y(1:2), NaN, y(4:7)], deps) -***** assert (tripdf (x, 1, 1.5*[1, 1, NaN, 1, 1, 1, 1], 2), [y(1:2), NaN, y(4:7)], deps) -***** assert (tripdf ([x, NaN], 1, 1.5, 2), [y, NaN], deps) -***** assert (tripdf (single ([x, NaN]), 1, 1.5, 2), single ([y, NaN]), eps("single")) -***** assert (tripdf ([x, NaN], single (1), 1.5, 2), single ([y, NaN]), eps("single")) -***** assert (tripdf ([x, NaN], 1, 1.5, single (2)), single ([y, NaN]), eps("single")) -***** assert (tripdf ([x, NaN], 1, single (1.5), 2), single ([y, NaN]), eps("single")) -***** error tripdf () -***** error tripdf (1) -***** error tripdf (1, 2) -***** error tripdf (1, 2, 3) -***** error ... - tripdf (1, 2, 3, 4, 5) -***** error ... - tripdf (ones (3), ones (2), ones(2), ones(2)) -***** error ... - tripdf (ones (2), ones (3), ones(2), ones(2)) -***** error ... - tripdf (ones (2), ones (2), ones(3), ones(2)) -***** error ... - tripdf (ones (2), ones (2), ones(2), ones(3)) -***** error tripdf (i, 2, 3, 4) -***** error tripdf (1, i, 3, 4) -***** error tripdf (1, 2, i, 4) -***** error tripdf (1, 2, 3, i) -26 tests, 26 passed, 0 known failure, 0 skipped -[inst/dist_fun/ncfinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncfinv.m -***** demo - ## Plot various iCDFs from the noncentral F distribution - p = 0.001:0.001:0.999; - x1 = ncfinv (p, 2, 5, 1); - x2 = ncfinv (p, 2, 5, 2); - x3 = ncfinv (p, 5, 10, 1); - x4 = ncfinv (p, 10, 20, 10); - plot (p, x1, "-r", p, x2, "-g", p, x3, "-k", p, x4, "-m") - grid on - ylim ([0, 5]) - legend ({"df1 = 2, df2 = 5, λ = 1", "df1 = 2, df2 = 5, λ = 2", ... - "df1 = 5, df2 = 10, λ = 1", "df1 = 10, df2 = 20, λ = 10"}, ... - "location", "northwest") - title ("Noncentral F iCDF") - xlabel ("probability") - ylabel ("values in x") -***** demo - ## Compare the noncentral F iCDF with LAMBDA = 10 to the F iCDF with the - ## same number of numerator and denominator degrees of freedom (5, 20) - - p = 0.001:0.001:0.999; - x1 = ncfinv (p, 5, 20, 10); - x2 = finv (p, 5, 20); - plot (p, x1, "-", p, x2, "-"); - grid on - ylim ([0, 10]) - legend ({"Noncentral F(5,20,10)", "F(5,20)"}, "location", "northwest") - title ("Noncentral F vs F quantile functions") - xlabel ("probability") - ylabel ("values in x") + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + [TF, L, U, C] = isoutlier (A, "gesd"); + assert (TF, logical ([0 0 0 1 0 0 0 0 1 0 0 0 0 0 0])) + assert (L, 34.235977035439944, 1e-12) + assert (U, 89.764022964560060, 1e-12) + assert (C, 62) ***** test - x = [0,0.1775,0.3864,0.6395,0.9564,1.3712,1.9471,2.8215,4.3679,8.1865,Inf]; - assert (ncfinv ([0:0.1:1], 2, 3, 1), x, 1e-4); + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + [TF, L, U, C] = isoutlier (A, "gesd", "ThresholdFactor", 0.01); + assert (TF, logical ([0 0 0 1 0 0 0 0 1 0 0 0 0 0 0])) + assert (L, 31.489256770616173, 1e-12) + assert (U, 92.510743229383820, 1e-12) + assert (C, 62) ***** test - x = [0,0.7492,1.3539,2.0025,2.7658,3.7278,5.0324,6.9826,10.3955,18.7665,Inf]; - assert (ncfinv ([0:0.1:1], 2, 3, 5), x, 1e-4); + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + [TF, L, U, C] = isoutlier (A, "gesd", "ThresholdFactor", 5e-10); + assert (TF, logical ([0 0 0 0 0 0 0 0 1 0 0 0 0 0 0])) + assert (L, 23.976664158788935, 1e-12) + assert (U, 100.02333584121110, 1e-12) + assert (C, 62) ***** test - x = [0,0.2890,0.8632,1.5653,2.4088,3.4594,4.8442,6.8286,10.0983,17.3736,Inf]; - assert (ncfinv ([0:0.1:1], 1, 4, 3), x, 1e-4); + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + [TF, L, U, C] = isoutlier (A, "grubbs"); + assert (TF, logical ([0 0 0 1 0 0 0 0 1 0 0 0 0 0 0])) + assert (L, 54.642809574646606, 1e-12) + assert (U, 63.511036579199555, 1e-12) + assert (C, 59.076923076923080, 1e-12) ***** test - x = [0.078410, 0.212716, 0.288618, 0.335752, 0.367963, 0.391460]; - assert (ncfinv (0.05, [1, 2, 3, 4, 5, 6], 10, 3), x, 1e-6); + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + [TF, L, U, C] = isoutlier (A, "grubbs", "ThresholdFactor", 0.01); + assert (TF, logical ([0 0 0 1 0 0 0 0 1 0 0 0 0 0 0])) + assert (L, 54.216083184201850, 1e-12) + assert (U, 63.937762969644310, 1e-12) + assert (C, 59.076923076923080, 1e-12) ***** test - x = [0.2574, 0.2966, 0.3188, 0.3331, 0.3432, 0.3507]; - assert (ncfinv (0.05, 5, [1, 2, 3, 4, 5, 6], 3), x, 1e-4); + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + [TF, L, U, C] = isoutlier (A, "percentiles", [10 90]); + assert (TF, logical ([0 0 0 0 0 0 0 0 1 0 0 0 0 0 0])) + assert (L, 57) + assert (U, 100) + assert (C, 78.5) ***** test - x = [1.6090, 1.8113, 1.9215, 1.9911, NaN, 2.0742]; - assert (ncfinv (0.05, 1, [1, 2, 3, 4, -1, 6], 10), x, 1e-4); + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + [TF, L, U, C] = isoutlier (A, "percentiles", [20 80]); + assert (TF, logical ([1 0 0 1 0 0 1 0 1 0 0 0 0 0 1])) + assert (L, 57.5) + assert (U, 62) + assert (C, 59.75) +***** shared A + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; +***** error ... + isoutlier (A, "movmedian", 0); +***** error ... + isoutlier (A, "movmedian", []); +***** error ... + isoutlier (A, "movmedian", [2 3 4]); +***** error ... + isoutlier (A, "movmedian", 1.4); +***** error ... + isoutlier (A, "movmedian", [0 1]); +***** error ... + isoutlier (A, "movmedian", [2 -1]); +***** error ... + isoutlier (A, "movmedian", {2 3}); +***** error ... + isoutlier (A, "movmedian", "char"); + +***** error ... + isoutlier (A, "movmean", 0); +***** error ... + isoutlier (A, "movmean", []); +***** error ... + isoutlier (A, "movmean", [2 3 4]); +***** error ... + isoutlier (A, "movmean", 1.4); +***** error ... + isoutlier (A, "movmean", [0 1]); +***** error ... + isoutlier (A, "movmean", [2 -1]); +***** error ... + isoutlier (A, "movmean", {2 3}); +***** error ... + isoutlier (A, "movmean", "char"); + +***** error ... + isoutlier (A, "percentiles", [-1 90]); +***** error ... + isoutlier (A, "percentiles", [10 -90]); +***** error ... + isoutlier (A, "percentiles", [90]); +***** error ... + isoutlier (A, "percentiles", [90 20]); +***** error ... + isoutlier (A, "percentiles", [90 20]); +***** error ... + isoutlier (A, "percentiles", [10 20 90]); +***** error ... + isoutlier (A, "percentiles", {10 90}); +***** error ... + isoutlier (A, "percentiles", "char"); + +***** error ... + isoutlier (A, "movmean", 5, "SamplePoints", ones(3,15)); +***** error ... + isoutlier (A, "movmean", 5, "SamplePoints", 15); +***** error ... + isoutlier (A, "movmean", 5, "SamplePoints", [1,1:14]); +***** error ... + isoutlier (A, "movmean", 5, "SamplePoints", [2,1,3:15]); +***** error ... + isoutlier (A, "movmean", 5, "SamplePoints", [1:14]); + +***** error ... + isoutlier (A, "movmean", 5, "ThresholdFactor", [1:14]); +***** error ... + isoutlier (A, "movmean", 5, "ThresholdFactor", -1); +***** error ... + isoutlier (A, "gesd", "ThresholdFactor", 3); +***** error ... + isoutlier (A, "grubbs", "ThresholdFactor", 3); + +***** error ... + isoutlier (A, "movmean", 5, "MaxNumOutliers", [1:14]); +***** error ... + isoutlier (A, "movmean", 5, "MaxNumOutliers", -1); +***** error ... + isoutlier (A, "movmean", 5, "MaxNumOutliers", 0); +***** error ... + isoutlier (A, "movmean", 5, "MaxNumOutliers", 1.5); + +***** error ... + isoutlier (A, {"movmean"}, 5, "SamplePoints", [1:15]); +***** error isoutlier (A, {1}); +***** error isoutlier (A, true); +***** error isoutlier (A, false); +***** error isoutlier (A, 0); +***** error isoutlier (A, [1 2]); +***** error isoutlier (A, -2); +59 tests, 59 passed, 0 known failure, 0 skipped +[inst/vartest2.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/vartest2.m +***** error vartest2 (); +***** error vartest2 (ones (20,1)); +***** error ... + vartest2 (rand (20,1), 5); +***** error ... + vartest2 (rand (20,1), rand (25,1)*2, "alpha", 0); +***** error ... + vartest2 (rand (20,1), rand (25,1)*2, "alpha", 1.2); +***** error ... + vartest2 (rand (20,1), rand (25,1)*2, "alpha", "some"); +***** error ... + vartest2 (rand (20,1), rand (25,1)*2, "alpha", [0.05, 0.001]); +***** error ... + vartest2 (rand (20,1), rand (25,1)*2, "tail", [0.05, 0.001]); +***** error ... + vartest2 (rand (20,1), rand (25,1)*2, "tail", "some"); +***** error ... + vartest2 (rand (20,1), rand (25,1)*2, "dim", 3); +***** error ... + vartest2 (rand (20,1), rand (25,1)*2, "alpha", 0.001, "dim", 3); +***** error ... + vartest2 (rand (20,1), rand (25,1)*2, "some", 3); +***** error ... + vartest2 (rand (20,1), rand (25,1)*2, "some"); ***** test - assert (ncfinv (0.996, 3, 5, 8), 58.0912074080671, 2e-13); -***** error ncfinv () -***** error ncfinv (1) -***** error ncfinv (1, 2) -***** error ncfinv (1, 2, 3) -***** error ... - ncfinv (ones (3), ones (2), ones (2), ones (2)) -***** error ... - ncfinv (ones (2), ones (3), ones (2), ones (2)) -***** error ... - ncfinv (ones (2), ones (2), ones (3), ones (2)) -***** error ... - ncfinv (ones (2), ones (2), ones (2), ones (3)) -***** error ncfinv (i, 2, 2, 2) -***** error ncfinv (2, i, 2, 2) -***** error ncfinv (2, 2, i, 2) -***** error ncfinv (2, 2, 2, i) -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/dist_fun/vmpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/vmpdf.m -***** demo - ## Plot various PDFs from the von Mises distribution - x1 = [-pi:0.1:pi]; - y1 = vmpdf (x1, 0, 0.5); - y2 = vmpdf (x1, 0, 1); - y3 = vmpdf (x1, 0, 2); - y4 = vmpdf (x1, 0, 4); - plot (x1, y1, "-r", x1, y2, "-g", x1, y3, "-b", x1, y4, "-c") - grid on - xlim ([-pi, pi]) - ylim ([0, 0.8]) - legend ({"μ = 0, k = 0.5", "μ = 0, k = 1", ... - "μ = 0, k = 2", "μ = 0, k = 4"}, "location", "northwest") - title ("Von Mises PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y0, y1 - x = [-pi:pi/2:pi]; - y0 = [0.046245, 0.125708, 0.341710, 0.125708, 0.046245]; - y1 = [0.046245, 0.069817, 0.654958, 0.014082, 0.000039]; -***** assert (vmpdf (x, 0, 1), y0, 1e-5) -***** assert (vmpdf (x, zeros (1,5), ones (1,5)), y0, 1e-6) -***** assert (vmpdf (x, 0, [1 2 3 4 5]), y1, 1e-6) -***** assert (isa (vmpdf (single (pi), 0, 1), "single"), true) -***** assert (isa (vmpdf (pi, single (0), 1), "single"), true) -***** assert (isa (vmpdf (pi, 0, single (1)), "single"), true) -***** error vmpdf () -***** error vmpdf (1) -***** error vmpdf (1, 2) -***** error ... - vmpdf (ones (3), ones (2), ones (2)) -***** error ... - vmpdf (ones (2), ones (3), ones (2)) -***** error ... - vmpdf (ones (2), ones (2), ones (3)) -***** error vmpdf (i, 2, 2) -***** error vmpdf (2, i, 2) -***** error vmpdf (2, 2, i) -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fun/tlsinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tlsinv.m -***** demo - ## Plot various iCDFs from the location-scale Student's T distribution - p = 0.001:0.001:0.999; - x1 = tlsinv (p, 0, 1, 1); - x2 = tlsinv (p, 0, 2, 2); - x3 = tlsinv (p, 3, 2, 5); - x4 = tlsinv (p, -1, 3, Inf); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-m") - grid on - xlim ([0, 1]) - ylim ([-8, 8]) - legend ({"mu = 0, sigma = 1, nu = 1", "mu = 0, sigma = 2, nu = 2", ... - "mu = 3, sigma = 2, nu = 5", 'mu = -1, sigma = 3, nu = \infty'}, ... - "location", "southeast") - title ("Location-scale Student's T iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p - p = [-1 0 0.5 1 2]; -***** assert (tlsinv (p, 0, 1, ones (1,5)), [NaN -Inf 0 Inf NaN]) -***** assert (tlsinv (p, 0, 1, 1), [NaN -Inf 0 Inf NaN], eps) -***** assert (tlsinv (p, 0, 1, [1 0 NaN 1 1]), [NaN NaN NaN Inf NaN], eps) -***** assert (tlsinv ([p(1:2) NaN p(4:5)], 0, 1, 1), [NaN -Inf NaN Inf NaN]) -***** assert (class (tlsinv ([p, NaN], 0, 1, 1)), "double") -***** assert (class (tlsinv (single ([p, NaN]), 0, 1, 1)), "single") -***** assert (class (tlsinv ([p, NaN], single (0), 1, 1)), "single") -***** assert (class (tlsinv ([p, NaN], 0, single (1), 1)), "single") -***** assert (class (tlsinv ([p, NaN], 0, 1, single (1))), "single") -***** error tlsinv () -***** error tlsinv (1) -***** error tlsinv (1, 2) -***** error tlsinv (1, 2, 3) -***** error ... - tlsinv (ones (3), ones (2), 1, 1) -***** error ... - tlsinv (ones (2), 1, ones (3), 1) -***** error ... - tlsinv (ones (2), 1, 1, ones (3)) -***** error tlsinv (i, 2, 3, 4) -***** error tlsinv (2, i, 3, 4) -***** error tlsinv (2, 2, i, 4) -***** error tlsinv (2, 2, 3, i) -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/dist_fun/gumbelpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gumbelpdf.m + load carsmall + [h, pval, ci, stat] = vartest2 (MPG(Model_Year==82), MPG(Model_Year==76)); + assert (h, 0); + assert (pval, 0.6288022362718455, 1e-13); + assert (ci, [0.4139; 1.7193], 1e-4); + assert (stat.fstat, 0.8384, 1e-4); + assert (stat.df1, 30); + assert (stat.df2, 33); +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/clusterdata.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/clusterdata.m ***** demo - ## Plot various PDFs from the Extreme value distribution - x = -5:0.001:20; - y1 = gumbelpdf (x, 0.5, 2); - y2 = gumbelpdf (x, 1.0, 2); - y3 = gumbelpdf (x, 1.5, 3); - y4 = gumbelpdf (x, 3.0, 4); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") - grid on - ylim ([0, 0.2]) - legend ({"μ = 0.5, β = 2", "μ = 1.0, β = 2", ... - "μ = 1.5, β = 3", "μ = 3.0, β = 4"}, "location", "northeast") - title ("Extreme value PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y0, y1 - x = [-5, 0, 1, 2, 3]; - y0 = [0, 0.3679, 0.2547, 0.1182, 0.0474]; - y1 = [0, 0.1794, 0.3679, 0.2547, 0.1182]; -***** assert (gumbelpdf (x), y0, 1e-4) -***** assert (gumbelpdf (x, zeros (1,5), ones (1,5)), y0, 1e-4) -***** assert (gumbelpdf (x, ones (1,5), ones (1,5)), y1, 1e-4) -***** error gumbelpdf () -***** error ... - gumbelpdf (ones (3), ones (2), ones (2)) -***** error gumbelpdf (i, 2, 2) -***** error gumbelpdf (2, i, 2) -***** error gumbelpdf (2, 2, i) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fun/nakarnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nakarnd.m -***** assert (size (nakarnd (1, 1)), [1 1]) -***** assert (size (nakarnd (1, ones (2,1))), [2, 1]) -***** assert (size (nakarnd (1, ones (2,2))), [2, 2]) -***** assert (size (nakarnd (ones (2,1), 1)), [2, 1]) -***** assert (size (nakarnd (ones (2,2), 1)), [2, 2]) -***** assert (size (nakarnd (1, 1, 3)), [3, 3]) -***** assert (size (nakarnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (nakarnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (nakarnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (nakarnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (nakarnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (nakarnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (nakarnd (1, 1)), "double") -***** assert (class (nakarnd (1, single (1))), "single") -***** assert (class (nakarnd (1, single ([1, 1]))), "single") -***** assert (class (nakarnd (single (1), 1)), "single") -***** assert (class (nakarnd (single ([1, 1]), 1)), "single") -***** error nakarnd () -***** error nakarnd (1) -***** error ... - nakarnd (ones (3), ones (2)) -***** error ... - nakarnd (ones (2), ones (3)) -***** error nakarnd (i, 2, 3) -***** error nakarnd (1, i, 3) -***** error ... - nakarnd (1, 2, -1) -***** error ... - nakarnd (1, 2, 1.2) -***** error ... - nakarnd (1, 2, ones (2)) -***** error ... - nakarnd (1, 2, [2 -1 2]) -***** error ... - nakarnd (1, 2, [2 0 2.5]) -***** error ... - nakarnd (1, 2, 2, -1, 5) -***** error ... - nakarnd (1, 2, 2, 1.5, 5) -***** error ... - nakarnd (2, ones (2), 3) -***** error ... - nakarnd (2, ones (2), [3, 2]) -***** error ... - nakarnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/mnpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mnpdf.m + randn ("seed", 1) # for reproducibility + r1 = randn (10, 2) * 0.25 + 1; + randn ("seed", 5) # for reproducibility + r2 = randn (20, 2) * 0.5 - 1; + X = [r1; r2]; + + wnl = warning ("off", "Octave:linkage_savemem", "local"); + T = clusterdata (X, "linkage", "ward", "MaxClust", 2); + scatter (X(:,1), X(:,2), 36, T, "filled"); +***** error ... + clusterdata () +***** error ... + clusterdata (1) +***** error clusterdata ([1 1], "Bogus", 1) +***** error clusterdata ([1 1], "Depth", 1) +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/barttest.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/barttest.m +***** error barttest () +***** error barttest ([2,NaN;3,4]) +***** error barttest (ones (30, 4), "alpha") +***** error barttest (ones (30, 4), 0) +***** error barttest (ones (30, 4), 1.2) +***** error barttest (ones (30, 4), [0.2, 0.05]) +***** error barttest (ones (30, 1)) +***** error barttest (ones (30, 1), 0.05) ***** test - x = [1, 4, 2]; - pk = [0.2, 0.5, 0.3]; - y = mnpdf (x, pk); - assert (y, 0.11812, 0.001); + x = [2, 3, 4, 5, 6, 7, 8, 9; 1, 2, 3, 4, 5, 6, 7, 8]'; + [ndim, pval, chisq] = barttest (x); + assert (ndim, 2); + assert (pval, 0); + ## assert (chisq, 512.0558, 1e-4); Result differs between octave 6 and 7 ? ***** test - x = [1, 4, 2; 1, 0, 9]; - pk = [0.2, 0.5, 0.3; 0.1, 0.1, 0.8]; - y = mnpdf (x, pk); - assert (y, [0.11812; 0.13422], 0.001); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/dist_fun/mvncdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvncdf.m + x = [0.53767, 0.62702, -0.10224, -0.25485, 1.4193, 1.5237 ; ... + 1.8339, 1.6452, -0.24145, -0.23444, 0.29158, 0.1634 ; ... + -2.2588, -2.1351, 0.31286, 0.39396, 0.19781, 0.20995 ; ... + 0.86217, 1.0835, 0.31286, 0.46499, 1.5877, 1.495 ; ... + 0.31877, 0.38454, -0.86488, -0.63839, -0.80447, -0.7536 ; ... + -1.3077, -1.1487, -0.030051, -0.017629, 0.69662, 0.60497 ; ... + -0.43359, -0.32672, -0.16488, -0.37364, 0.83509, 0.89586 ; ... + 0.34262, 0.29639, 0.62771, 0.51672, -0.24372, -0.13698 ; ... + 3.5784, 3.5841, 1.0933, 0.93258, 0.21567, 0.455 ; ... + 2.7694, 2.6307, 1.1093, 1.4298, -1.1658, -1.1816 ; ... + -1.3499, -1.2111, -0.86365, -0.94186, -1.148, -1.4381 ; ... + 3.0349, 2.8428, 0.077359, 0.18211, 0.10487, -0.014613; ... + 0.7254, 0.56737, -1.2141, -1.2291, 0.72225, 0.90612 ; ... + -0.063055,-0.17662, -1.1135, -0.97701, 2.5855, 2.4084 ; ... + 0.71474, 0.29225, -0.0068493, -0.11468, -0.66689, -0.52466 ; ... + -0.20497, -7.8874e-06, 1.5326, 1.3195, 0.18733, 0.20296 ; ... + -0.12414, -0.077029, -0.76967, -0.96262, -0.082494, 0.121 ; ... + 1.4897, 1.3683, 0.37138, 0.43653, -1.933, -2.1903 ; ... + 1.409, 1.5882, -0.22558, -0.24835, -0.43897, -0.46247 ; ... + 1.4172, 1.1616, 1.1174, 1.0785, -1.7947, -1.9471 ]; + [ndim, pval, chisq] = barttest (x); + assert (ndim, 3); + assert (pval, [0; 0; 0; 0.52063; 0.34314], 1e-5); + chisq_out = [251.6802; 210.2670; 153.1773; 4.2026; 2.1392]; + assert (chisq, chisq_out, 1e-4); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/friedman.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/friedman.m ***** demo - mu = [1, -1]; - Sigma = [0.9, 0.4; 0.4, 0.3]; - [X1, X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); - X = [X1(:), X2(:)]; - p = mvncdf (X, mu, Sigma); - Z = reshape (p, 25, 25); - surf (X1, X2, Z); - title ("Bivariate Normal Distribution"); - ylabel "X1" - xlabel "X2" + load popcorn; + friedman (popcorn, 3); ***** demo - mu = [0, 0]; - Sigma = [0.25, 0.3; 0.3, 1]; - p = mvncdf ([0 0], [1 1], mu, Sigma); - x1 = -3:.2:3; - x2 = -3:.2:3; - [X1, X2] = meshgrid (x1, x2); - X = [X1(:), X2(:)]; - p = mvnpdf (X, mu, Sigma); - p = reshape (p, length (x2), length (x1)); - contour (x1, x2, p, [0.0001, 0.001, 0.01, 0.05, 0.15, 0.25, 0.35]); - xlabel ("x"); - ylabel ("p"); - title ("Probability over Rectangular Region"); - line ([0, 0, 1, 1, 0], [1, 0, 0, 1, 1], "Linestyle", "--", "Color", "k"); + load popcorn; + [p, atab] = friedman (popcorn, 3, "off"); + disp (p); ***** test - fD = (-2:2)'; - X = repmat (fD, 1, 4); - p = mvncdf (X); - assert (p, [0; 0.0006; 0.0625; 0.5011; 0.9121], ones (5, 1) * 1e-4); + popcorn = [5.5, 4.5, 3.5; 5.5, 4.5, 4.0; 6.0, 4.0, 3.0; ... + 6.5, 5.0, 4.0; 7.0, 5.5, 5.0; 7.0, 5.0, 4.5]; + [p, atab] = friedman (popcorn, 3, "off"); + assert (p, 0.001028853354594794, 1e-14); + assert (atab{2,2}, 99.75, 1e-14); + assert (atab{2,3}, 2, 0); + assert (atab{2,4}, 49.875, 1e-14); + assert (atab{2,5}, 13.75862068965517, 1e-14); + assert (atab{2,6}, 0.001028853354594794, 1e-14); + assert (atab{3,2}, 0.08333333333333215, 1e-14); + assert (atab{3,4}, 0.04166666666666607, 1e-14); + assert (atab{4,3}, 12, 0); ***** test - mu = [1, -1]; - Sigma = [0.9, 0.4; 0.4, 0.3]; - [X1,X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); - X = [X1(:), X2(:)]; - p = mvncdf (X, mu, Sigma); - p_out = [0.00011878988774500, 0.00034404112322371, ... - 0.00087682502191813, 0.00195221905058185, ... - 0.00378235566873474, 0.00638175749734415, ... - 0.00943764224329656, 0.01239164888125426, ... - 0.01472750274376648, 0.01623228313374828]'; - assert (p([1:10]), p_out, 1e-16); + popcorn = [5.5, 4.5, 3.5; 5.5, 4.5, 4.0; 6.0, 4.0, 3.0; ... + 6.5, 5.0, 4.0; 7.0, 5.5, 5.0; 7.0, 5.0, 4.5]; + [p, atab, stats] = friedman (popcorn, 3, "off"); + assert (atab{5,2}, 116, 0); + assert (atab{5,3}, 17, 0); + assert (stats.source, "friedman"); + assert (stats.n, 2); + assert (stats.meanranks, [8, 4.75, 2.25], 0); + assert (stats.sigma, 2.692582403567252, 1e-14); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/pca.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/pca.m +***** shared COEFF,SCORE,latent,tsquare,m,x,R,V,lambda,i,S,F ***** test - mu = [1, -1]; - Sigma = [0.9, 0.4; 0.4, 0.3]; - [X1,X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); - X = [X1(:), X2(:)]; - p = mvncdf (X, mu, Sigma); - p_out = [0.8180695783608276, 0.8854485749482751, ... - 0.9308108777385832, 0.9579855743025508, ... - 0.9722897881414742, 0.9788150170059926, ... - 0.9813597788804785, 0.9821977956568989, ... - 0.9824283794464095, 0.9824809345614861]'; - assert (p([616:625]), p_out, 2e-16); + x=[7 4 3 + 4 1 8 + 6 3 5 + 8 6 1 + 8 5 7 + 7 2 9 + 5 3 3 + 9 5 8 + 7 4 5 + 8 2 2]; + R = corrcoef (x); + [V, lambda] = eig (R); + [~, i] = sort(diag(lambda), "descend"); #arrange largest PC first + S = V(:, i) * diag(sqrt(diag(lambda)(i))); +***** assert(diag(S(:, 1:2)*S(:, 1:2)'), [0.8662; 0.8420; 0.9876], 1E-4); #contribution of first 2 PCs to each original variable + B = V(:, i) * diag( 1./ sqrt(diag(lambda)(i))); + F = zscore(x)*B; + [COEFF,SCORE,latent,tsquare] = pca(zscore(x, 1)); +***** assert(tsquare,sumsq(F, 2),1E4*eps); ***** test - mu = [0, 0]; - Sigma = [0.25, 0.3; 0.3, 1]; - [p, err] = mvncdf ([0 0], [1 1], mu, Sigma); - assert (p, 0.2097424404755626, 1e-16); - assert (err, 1e-08); + x=[1,2,3;2,1,3]'; + [COEFF,SCORE,latent,tsquare] = pca(x, "Economy", false); + m=[sqrt(2),sqrt(2);sqrt(2),-sqrt(2);-2*sqrt(2),0]/2; + m(:,1) = m(:,1)*sign(COEFF(1,1)); + m(:,2) = m(:,2)*sign(COEFF(1,2)); +***** assert(COEFF,m(1:2,:),10*eps); +***** assert(SCORE,-m,10*eps); +***** assert(latent,[1.5;.5],10*eps); +***** assert(tsquare,[4;4;4]/3,10*eps); + [COEFF,SCORE,latent,tsquare] = pca(x, "Economy", false, "weights", [1 2 1], "variableweights", "variance"); +***** assert(COEFF, [0.632455532033676 -0.632455532033676; 0.741619848709566 0.741619848709566], 10*eps); +***** assert(SCORE, [-0.622019449426284 0.959119380657905; -0.505649896847432 -0.505649896847431; 1.633319243121148 0.052180413036957], 10*eps); +***** assert(latent, [1.783001790889027; 0.716998209110974], 10*eps); +***** xtest assert(tsquare, [1.5; 0.5; 1.5], 10*eps); #currently, [4; 2; 4]/3 is actually returned; see comments above +!!!!! known failure +ASSERT errors for: assert (tsquare,[1.5; 0.5; 1.5],10 * eps) + + Location | Observed | Expected | Reason + (1) 1.3333 1.5 Abs err 0.16667 exceeds tol 2.2204e-15 by 0.2 + (2) 0.66667 0.5 Abs err 0.16667 exceeds tol 2.2204e-15 by 0.2 + (3) 1.3333 1.5 Abs err 0.16667 exceeds tol 2.2204e-15 by 0.2 ***** test - x = [1 2]; - mu = [0.5 1.5]; - sigma = [1.0 0.5; 0.5 1.0]; - p = mvncdf (x, mu, sigma); - assert (p, 0.546244443857090, 1e-15); + x=x'; + [COEFF,SCORE,latent,tsquare] = pca(x, "Economy", false); + m=[sqrt(2),sqrt(2),0;-sqrt(2),sqrt(2),0;0,0,2]/2; + m(:,1) = m(:,1)*sign(COEFF(1,1)); + m(:,2) = m(:,2)*sign(COEFF(1,2)); + m(:,3) = m(:,3)*sign(COEFF(3,3)); +***** assert(COEFF,m,10*eps); +***** assert(SCORE(:,1),-m(1:2,1),10*eps); +***** assert(SCORE(:,2:3),zeros(2),10*eps); +***** assert(latent,[1;0;0],10*eps); +***** assert(tsquare,[0.5;0.5],10*eps) ***** test - x = [1 2]; - mu = [0.5 1.5]; - sigma = [1.0 0.5; 0.5 1.0]; - a = [-inf 0]; - p = mvncdf (a, x, mu, sigma); - assert (p, 0.482672935215631, 1e-15); -***** error p = mvncdf (randn (25,26), [], eye (26)); -***** error p = mvncdf (randn (25,8), [], eye (9)); -***** error p = mvncdf (randn (25,4), randn (25,5), [], eye (4)); -***** error p = mvncdf (randn (25,4), randn (25,4), [2, 3; 2, 3], eye (4)); -***** error p = mvncdf (randn (25,4), randn (25,4), ones (1, 5), eye (4)); -***** error p = mvncdf ([-inf 0], [1, 2], [0.5 1.5], [1.0 0.5; 0.5 1.0], option); -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/dist_fun/tinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tinv.m -***** demo - ## Plot various iCDFs from the Student's T distribution - p = 0.001:0.001:0.999; - x1 = tinv (p, 1); - x2 = tinv (p, 2); - x3 = tinv (p, 5); - x4 = tinv (p, Inf); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-m") - grid on - xlim ([0, 1]) - ylim ([-5, 5]) - legend ({"df = 1", "df = 2", ... - "df = 5", 'df = \infty'}, "location", "northwest") - title ("Student's T iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p - p = [-1 0 0.5 1 2]; -***** assert (tinv (p, ones (1,5)), [NaN -Inf 0 Inf NaN]) -***** assert (tinv (p, 1), [NaN -Inf 0 Inf NaN], eps) -***** assert (tinv (p, [1 0 NaN 1 1]), [NaN NaN NaN Inf NaN], eps) -***** assert (tinv ([p(1:2) NaN p(4:5)], 1), [NaN -Inf NaN Inf NaN]) -***** assert (tinv ([p, NaN], 1), [NaN -Inf 0 Inf NaN NaN], eps) -***** assert (tinv (single ([p, NaN]), 1), single ([NaN -Inf 0 Inf NaN NaN]), eps ("single")) -***** assert (tinv ([p, NaN], single (1)), single ([NaN -Inf 0 Inf NaN NaN]), eps ("single")) -***** error tinv () -***** error tinv (1) -***** error ... - tinv (ones (3), ones (2)) -***** error ... - tinv (ones (2), ones (3)) -***** error tinv (i, 2) -***** error tinv (2, i) -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_fun/expinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/expinv.m + [COEFF,SCORE,latent,tsquare] = pca(x); +***** assert(COEFF,m(:, 1),10*eps); +***** assert(SCORE,-m(1:2,1),10*eps); +***** assert(latent,[1],10*eps); +***** assert(tsquare,[0.5;0.5],10*eps) +***** error pca([1 2; 3 4], "Algorithm", "xxx") +***** error <'centered' requires a boolean value> pca([1 2; 3 4], "Centered", "xxx") +***** error pca([1 2; 3 4], "NumComponents", -4) +***** error pca([1 2; 3 4], "Rows", 1) +***** error pca([1 2; 3 4], "Weights", [1 2 3]) +***** error pca([1 2; 3 4], "Weights", [-1 2]) +***** error pca([1 2; 3 4], "VariableWeights", [-1 2]) +***** error pca([1 2; 3 4], "VariableWeights", "xxx") +***** error pca([1 2; 3 4], "XXX", 1) +32 tests, 31 passed, 1 known failure, 0 skipped +[inst/stepwisefit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/stepwisefit.m +***** test + % Sample data from Draper and Smith (n = 13, k = 4) + X = [7 1 11 11 7 11 3 1 2 21 1 11 10; ... + 26 29 56 31 52 55 71 31 54 47 40 66 68; ... + 6 15 8 8 6 9 17 22 18 4 23 9 8; ... + 60 52 20 47 33 22 6 44 22 26 34 12 12]'; + y = [78.5 74.3 104.3 87.6 95.9 109.2 102.7 72.5 93.1 115.9 83.8 113.3 109.4]'; + [X_use, b, bint, r, rint, stats] = stepwisefit(y, X); + assert(X_use, [4 1]) + assert(b, regress(y, [ones(size(y)) X(:, X_use)], 0.05)) + [X_use, b, bint, r, rint, stats] = stepwisefit(y, X, 0.05, 0.1, "corr"); + assert(X_use, [4 1]) + assert(b, regress(y, [ones(size(y)) X(:, X_use)], 0.05)) + [X_use, b, bint, r, rint, stats] = stepwisefit(y, X, [], [], "p"); + assert(X_use, [4 1]) + assert(b, regress(y, [ones(size(y)) X(:, X_use)], 0.05)) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/confusionchart.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/confusionchart.m ***** demo - ## Plot various iCDFs from the exponential distribution - p = 0.001:0.001:0.999; - x1 = expinv (p, 2/3); - x2 = expinv (p, 1.0); - x3 = expinv (p, 2.0); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r") - grid on - ylim ([0, 5]) - legend ({"μ = 2/3", "μ = 1", "μ = 2"}, "location", "northwest") - title ("Exponential iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p - p = [-1 0 0.3934693402873666 1 2]; -***** assert (expinv (p, 2*ones (1,5)), [NaN 0 1 Inf NaN], eps) -***** assert (expinv (p, 2), [NaN 0 1 Inf NaN], eps) -***** assert (expinv (p, 2*[1 0 NaN 1 1]), [NaN NaN NaN Inf NaN], eps) -***** assert (expinv ([p(1:2) NaN p(4:5)], 2), [NaN 0 NaN Inf NaN], eps) -***** assert (expinv ([p, NaN], 2), [NaN 0 1 Inf NaN NaN], eps) -***** assert (expinv (single ([p, NaN]), 2), single ([NaN 0 1 Inf NaN NaN]), eps) -***** assert (expinv ([p, NaN], single (2)), single ([NaN 0 1 Inf NaN NaN]), eps) -***** error expinv () -***** error expinv (1, 2 ,3 ,4 ,5) -***** error ... - expinv (ones (3), ones (2)) -***** error ... - expinv (2, 3, [1, 2]) -***** error ... - [x, xlo, xup] = expinv (1, 2) -***** error [x, xlo, xup] = ... - expinv (1, 2, 3, 0) -***** error [x, xlo, xup] = ... - expinv (1, 2, 3, 1.22) -***** error [x, xlo, xup] = ... - expinv (1, 2, 3, [0.05, 0.1]) -***** error expinv (i, 2) -***** error expinv (2, i) -***** error ... - [x, xlo, xup] = expinv (1, 2, -1, 0.04) -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/dist_fun/fcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/fcdf.m + ## Setting the chart properties + Yt = [8 5 6 8 5 3 1 6 4 2 5 3 1 4]'; + Yp = [8 5 6 8 5 2 3 4 4 5 5 7 2 6]'; + confusionchart (Yt, Yp, "Title", ... + "Demonstration with summaries","Normalization",... + "absolute","ColumnSummary", "column-normalized","RowSummary",... + "row-normalized") ***** demo - ## Plot various CDFs from the F distribution - x = 0.01:0.01:4; - p1 = fcdf (x, 1, 2); - p2 = fcdf (x, 2, 1); - p3 = fcdf (x, 5, 2); - p4 = fcdf (x, 10, 1); - p5 = fcdf (x, 100, 100); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-m") - grid on - legend ({"df1 = 1, df2 = 2", "df1 = 2, df2 = 1", ... - "df1 = 5, df2 = 2", "df1 = 10, df2 = 1", ... - "df1 = 100, df2 = 100"}, "location", "southeast") - title ("F CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y - x = [-1, 0, 0.5, 1, 2, Inf]; - y = [0, 0, 1/3, 1/2, 2/3, 1]; -***** assert (fcdf (x, 2*ones (1,6), 2*ones (1,6)), y, eps) -***** assert (fcdf (x, 2, 2*ones (1,6)), y, eps) -***** assert (fcdf (x, 2*ones (1,6), 2), y, eps) -***** assert (fcdf (x, [0 NaN Inf 2 2 2], 2), [NaN NaN 0.1353352832366127 y(4:6)], eps) -***** assert (fcdf (x, 2, [0 NaN Inf 2 2 2]), [NaN NaN 0.3934693402873666 y(4:6)], eps) -***** assert (fcdf ([x(1:2) NaN x(4:6)], 2, 2), [y(1:2) NaN y(4:6)], eps) -***** assert (fcdf ([x, NaN], 2, 2), [y, NaN], eps) -***** assert (fcdf (single ([x, NaN]), 2, 2), single ([y, NaN]), eps ("single")) -***** assert (fcdf ([x, NaN], single (2), 2), single ([y, NaN]), eps ("single")) -***** assert (fcdf ([x, NaN], 2, single (2)), single ([y, NaN]), eps ("single")) -***** error fcdf () -***** error fcdf (1) -***** error fcdf (1, 2) -***** error fcdf (1, 2, 3, 4) -***** error fcdf (1, 2, 3, "tail") -***** error ... - fcdf (ones (3), ones (2), ones (2)) -***** error ... - fcdf (ones (2), ones (3), ones (2)) -***** error ... - fcdf (ones (2), ones (2), ones (3)) -***** error fcdf (i, 2, 2) -***** error fcdf (2, i, 2) -***** error fcdf (2, 2, i) -21 tests, 21 passed, 0 known failure, 0 skipped -[inst/dist_fun/gampdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gampdf.m + ## Cellstr as inputs + Yt = {"Positive", "Positive", "Positive", "Negative", "Negative"}; + Yp = {"Positive", "Positive", "Negative", "Negative", "Negative"}; + m = confusionmat (Yt, Yp); + confusionchart (m, {"Positive", "Negative"}); ***** demo - ## Plot various PDFs from the Gamma distribution - x = 0:0.01:20; - y1 = gampdf (x, 1, 2); - y2 = gampdf (x, 2, 2); - y3 = gampdf (x, 3, 2); - y4 = gampdf (x, 5, 1); - y5 = gampdf (x, 9, 0.5); - y6 = gampdf (x, 7.5, 1); - y7 = gampdf (x, 0.5, 1); - plot (x, y1, "-r", x, y2, "-g", x, y3, "-y", x, y4, "-m", ... - x, y5, "-k", x, y6, "-b", x, y7, "-c") - grid on - ylim ([0,0.5]) - legend ({"α = 1, β = 2", "α = 2, β = 2", "α = 3, β = 2", ... - "α = 5, β = 1", "α = 9, β = 0.5", "α = 7.5, β = 1", ... - "α = 0.5, β = 1"}, "location", "northeast") - title ("Gamma PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-1 0 0.5 1 Inf]; - y = [0 exp(-x(2:end))]; -***** assert (gampdf (x, ones (1,5), ones (1,5)), y) -***** assert (gampdf (x, 1, ones (1,5)), y) -***** assert (gampdf (x, ones (1,5), 1), y) -***** assert (gampdf (x, [0 -Inf NaN Inf 1], 1), [NaN NaN NaN NaN y(5)]) -***** assert (gampdf (x, 1, [0 -Inf NaN Inf 1]), [NaN NaN NaN 0 y(5)]) -***** assert (gampdf ([x, NaN], 1, 1), [y, NaN]) -***** assert (gampdf (single ([x, NaN]), 1, 1), single ([y, NaN])) -***** assert (gampdf ([x, NaN], single (1), 1), single ([y, NaN])) -***** assert (gampdf ([x, NaN], 1, single (1)), single ([y, NaN])) -***** error gampdf () -***** error gampdf (1) -***** error gampdf (1,2) -***** error ... - gampdf (ones (3), ones (2), ones (2)) -***** error ... - gampdf (ones (2), ones (3), ones (2)) -***** error ... - gampdf (ones (2), ones (2), ones (3)) -***** error gampdf (i, 2, 2) -***** error gampdf (2, i, 2) -***** error gampdf (2, 2, i) -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/dist_fun/nctcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nctcdf.m + ## Editing the object properties + Yt = {"Positive", "Positive", "Positive", "Negative", "Negative"}; + Yp = {"Positive", "Positive", "Negative", "Negative", "Negative"}; + cm = confusionchart (Yt, Yp); + cm.Title = "This is an example with a green diagonal"; + cm.DiagonalColor = [0.4660, 0.6740, 0.1880]; ***** demo - ## Plot various CDFs from the noncentral Τ distribution - x = -5:0.01:5; - p1 = nctcdf (x, 1, 0); - p2 = nctcdf (x, 4, 0); - p3 = nctcdf (x, 1, 2); - p4 = nctcdf (x, 4, 2); - plot (x, p1, "-r", x, p2, "-g", x, p3, "-k", x, p4, "-m") - grid on - xlim ([-5, 5]) - legend ({"df = 1, μ = 0", "df = 4, μ = 0", ... - "df = 1, μ = 2", "df = 4, μ = 2"}, "location", "southeast") - title ("Noncentral Τ CDF") - xlabel ("values in x") - ylabel ("probability") + ## Confusion chart in a uipanel + h = uipanel (); + Yt = {"Positive", "Positive", "Positive", "Negative", "Negative"}; + Yp = {"Positive", "Positive", "Negative", "Negative", "Negative"}; + cm = confusionchart (h, Yt, Yp); ***** demo - ## Compare the noncentral T CDF with MU = 1 to the T CDF - ## with the same number of degrees of freedom (10). - - x = -5:0.1:5; - p1 = nctcdf (x, 10, 1); - p2 = tcdf (x, 10); - plot (x, p1, "-", x, p2, "-") - grid on - xlim ([-5, 5]) - legend ({"Noncentral T(10,1)", "T(10)"}, "location", "southeast") - title ("Noncentral T vs T CDFs") - xlabel ("values in x") - ylabel ("probability") + ## Sorting classes + Yt = [8 5 6 8 5 3 1 6 4 2 5 3 1 4]'; + Yp = [8 5 6 8 5 2 3 4 4 5 5 7 2 6]'; + cm = confusionchart (Yt, Yp, "Title", ... + "Classes are sorted in ascending order"); + cm = confusionchart (Yt, Yp, "Title", ... + "Classes are sorted according to clusters"); + sortClasses (cm, "cluster"); +***** shared visibility_setting + visibility_setting = get (0, "DefaultFigureVisible"); ***** test - x = -2:0.1:2; - p = nctcdf (x, 10, 1); - assert (p(1), 0.003302485766631558, 1e-14); - assert (p(2), 0.004084668193532631, 1e-14); - assert (p(3), 0.005052800319478737, 1e-14); - assert (p(41), 0.8076115625303751, 1e-14); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ()", "Invalid call"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - p = nctcdf (12, 10, 3); - assert (p, 0.9997719343243797, 1e-14); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 1; 2 2; 3 3])", "invalid argument"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - p = nctcdf (2, 3, 2); - assert (p, 0.4430757822176028, 1e-14); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'xxx', 1)", "invalid property"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - p = nctcdf (2, 3, 2, "upper"); - assert (p, 0.5569242177823971, 1e-14); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'XLabel', 1)", "XLabel .* string"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - p = nctcdf ([3, 6], 3, 2, "upper"); - assert (p, [0.3199728259444777, 0.07064855592441913], 1e-14); -***** error nctcdf () -***** error nctcdf (1) -***** error nctcdf (1, 2) -***** error nctcdf (1, 2, 3, "tail") -***** error nctcdf (1, 2, 3, 4) -***** error ... - nctcdf (ones (3), ones (2), ones (2)) -***** error ... - nctcdf (ones (2), ones (3), ones (2)) -***** error ... - nctcdf (ones (2), ones (2), ones (3)) -***** error nctcdf (i, 2, 2) -***** error nctcdf (2, i, 2) -***** error nctcdf (2, 2, i) -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fun/betapdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/betapdf.m -***** demo - ## Plot various PDFs from the Beta distribution - x = 0.001:0.001:0.999; - y1 = betapdf (x, 0.5, 0.5); - y2 = betapdf (x, 5, 1); - y3 = betapdf (x, 1, 3); - y4 = betapdf (x, 2, 2); - y5 = betapdf (x, 2, 5); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c", x, y5, "-m") - grid on - ylim ([0, 2.5]) - legend ({"α = β = 0.5", "α = 5, β = 1", "α = 1, β = 3", ... - "α = 2, β = 2", "α = 2, β = 5"}, "location", "north") - title ("Beta PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-1 0 0.5 1 2]; - y = [0 2 1 0 0]; -***** assert (betapdf (x, ones (1, 5), 2 * ones (1, 5)), y) -***** assert (betapdf (x, 1, 2 * ones (1, 5)), y) -***** assert (betapdf (x, ones (1, 5), 2), y) -***** assert (betapdf (x, [0 NaN 1 1 1], 2), [NaN NaN y(3:5)]) -***** assert (betapdf (x, 1, 2 * [0 NaN 1 1 1]), [NaN NaN y(3:5)]) -***** assert (betapdf ([x, NaN], 1, 2), [y, NaN]) -***** assert (betapdf (single ([x, NaN]), 1, 2), single ([y, NaN])) -***** assert (betapdf ([x, NaN], single (1), 2), single ([y, NaN])) -***** assert (betapdf ([x, NaN], 1, single (2)), single ([y, NaN])) + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'YLabel', [1 0])", ... + ".* YLabel .* string"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - x = rand (10,1); - y = 1 ./ (pi * sqrt (x .* (1 - x))); - assert (betapdf (x, 1/2, 1/2), y, 1e-12); -***** assert (betapdf (0.5, 1000, 1000), 35.678, 1e-3) -***** error betapdf () -***** error betapdf (1) -***** error betapdf (1,2) -***** error betapdf (1,2,3,4) -***** error ... - betapdf (ones (3), ones (2), ones (2)) -***** error ... - betapdf (ones (2), ones (3), ones (2)) -***** error ... - betapdf (ones (2), ones (2), ones (3)) -***** error betapdf (i, 2, 2) -***** error betapdf (2, i, 2) -***** error betapdf (2, 2, i) -21 tests, 21 passed, 0 known failure, 0 skipped -[inst/dist_fun/jsucdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/jsucdf.m -***** error jsucdf () -***** error jsucdf (1, 2, 3, 4) -***** error ... - jsucdf (1, ones (2), ones (3)) -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/dist_fun/normcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/normcdf.m -***** demo - ## Plot various CDFs from the normal distribution - x = -5:0.01:5; - p1 = normcdf (x, 0, 0.5); - p2 = normcdf (x, 0, 1); - p3 = normcdf (x, 0, 2); - p4 = normcdf (x, -2, 0.8); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") - grid on - xlim ([-5, 5]) - legend ({"μ = 0, σ = 0.5", "μ = 0, σ = 1", ... - "μ = 0, σ = 2", "μ = -2, σ = 0.8"}, "location", "southeast") - title ("Normal CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y - x = [-Inf 1 2 Inf]; - y = [0, 0.5, 1/2*(1+erf(1/sqrt(2))), 1]; -***** assert (normcdf (x, ones (1,4), ones (1,4)), y) -***** assert (normcdf (x, 1, ones (1,4)), y) -***** assert (normcdf (x, ones (1,4), 1), y) -***** assert (normcdf (x, [0, -Inf, NaN, Inf], 1), [0, 1, NaN, NaN]) -***** assert (normcdf (x, 1, [Inf, NaN, -1, 0]), [NaN, NaN, NaN, 1]) -***** assert (normcdf ([x(1:2), NaN, x(4)], 1, 1), [y(1:2), NaN, y(4)]) -***** assert (normcdf (x, "upper"), [1, 0.1587, 0.0228, 0], 1e-4) -***** assert (normcdf ([x, NaN], 1, 1), [y, NaN]) -***** assert (normcdf (single ([x, NaN]), 1, 1), single ([y, NaN]), eps ("single")) -***** assert (normcdf ([x, NaN], single (1), 1), single ([y, NaN]), eps ("single")) -***** assert (normcdf ([x, NaN], 1, single (1)), single ([y, NaN]), eps ("single")) -***** error normcdf () -***** error normcdf (1,2,3,4,5,6,7) -***** error normcdf (1, 2, 3, 4, "uper") -***** error ... - normcdf (ones (3), ones (2), ones (2)) -***** error normcdf (2, 3, 4, [1, 2]) -***** error ... - [p, plo, pup] = normcdf (1, 2, 3) -***** error [p, plo, pup] = ... - normcdf (1, 2, 3, [1, 0; 0, 1], 0) -***** error [p, plo, pup] = ... - normcdf (1, 2, 3, [1, 0; 0, 1], 1.22) -***** error [p, plo, pup] = ... - normcdf (1, 2, 3, [1, 0; 0, 1], "alpha", "upper") -***** error normcdf (i, 2, 2) -***** error normcdf (2, i, 2) -***** error normcdf (2, 2, i) -***** error ... - [p, plo, pup] =normcdf (1, 2, 3, [1, 0; 0, -inf], 0.04) -24 tests, 24 passed, 0 known failure, 0 skipped -[inst/dist_fun/chi2cdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/chi2cdf.m -***** demo - ## Plot various CDFs from the chi-squared distribution - x = 0:0.01:8; - p1 = chi2cdf (x, 1); - p2 = chi2cdf (x, 2); - p3 = chi2cdf (x, 3); - p4 = chi2cdf (x, 4); - p5 = chi2cdf (x, 6); - p6 = chi2cdf (x, 9); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", ... - x, p4, "-c", x, p5, "-m", x, p6, "-y") - grid on - xlim ([0, 8]) - legend ({"df = 1", "df = 2", "df = 3", ... - "df = 4", "df = 6", "df = 9"}, "location", "southeast") - title ("Chi-squared CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, p, u - x = [-1, 0, 0.5, 1, 2]; - p = [0, (1 - exp (-x(2:end) / 2))]; - u = [1, 0, NaN, 0.3934693402873666, 0.6321205588285577]; -***** assert (chi2cdf (x, 2 * ones (1,5)), p, eps) -***** assert (chi2cdf (x, 2), p, eps) -***** assert (chi2cdf (x, 2 * [1, 0, NaN, 1, 1]), [p(1), 1, NaN, p(4:5)], eps) -***** assert (chi2cdf (x, 2 * [1, 0, NaN, 1, 1], "upper"), ... - [p(1), 1, NaN, u(4:5)], eps) -***** assert (chi2cdf ([x(1:2), NaN, x(4:5)], 2), [p(1:2), NaN, p(4:5)], eps) -***** assert (chi2cdf ([x, NaN], 2), [p, NaN], eps) -***** assert (chi2cdf (single ([x, NaN]), 2), single ([p, NaN]), eps ("single")) -***** assert (chi2cdf ([x, NaN], single (2)), single ([p, NaN]), eps ("single")) -***** error chi2cdf () -***** error chi2cdf (1) -***** error chi2cdf (1, 2, 3, 4) -***** error chi2cdf (1, 2, 3) -***** error chi2cdf (1, 2, "uper") -***** error ... - chi2cdf (ones (3), ones (2)) -***** error ... - chi2cdf (ones (2), ones (3)) -***** error chi2cdf (i, 2) -***** error chi2cdf (2, i) -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/dist_fun/loglinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/loglinv.m -***** demo - ## Plot various iCDFs from the log-logistic distribution - p = 0.001:0.001:0.999; - x1 = loglinv (p, log (1), 1/0.5); - x2 = loglinv (p, log (1), 1); - x3 = loglinv (p, log (1), 1/2); - x4 = loglinv (p, log (1), 1/4); - x5 = loglinv (p, log (1), 1/8); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-m") - ylim ([0, 20]) - grid on - legend ({"σ = 2 (β = 0.5)", "σ = 1 (β = 1)", "σ = 0.5 (β = 2)", ... - "σ = 0.25 (β = 4)", "σ = 0.125 (β = 8)"}, "location", "northwest") - title ("Log-logistic iCDF") - xlabel ("probability") - ylabel ("x") - text (0.03, 12.5, "μ = 0 (α = 1), values of σ (β) as shown in legend") -***** shared p, out1, out2 - p = [-1, 0, 0.2, 0.5, 0.8, 0.95, 1, 2]; - out1 = [NaN, 0, 0.25, 1, 4, 19, Inf, NaN]; - out2 = [NaN, 0, 0.0424732, 2.718282, 173.970037, 18644.695061, Inf, NaN]; -***** assert (loglinv (p, 0, 1), out1, 1e-8) -***** assert (loglinv (p, 0, 1), out1, 1e-8) -***** assert (loglinv (p, 1, 3), out2, 1e-6) -***** assert (class (loglinv (single (1), 2, 3)), "single") -***** assert (class (loglinv (1, single (2), 3)), "single") -***** assert (class (loglinv (1, 2, single (3))), "single") -***** error loglinv (1) -***** error loglinv (1, 2) -***** error ... - loglinv (1, ones (2), ones (3)) -***** error ... - loglinv (ones (2), 1, ones (3)) -***** error ... - loglinv (ones (2), ones (3), 1) -***** error loglinv (i, 2, 3) -***** error loglinv (1, i, 3) -***** error loglinv (1, 2, i) -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/dist_fun/hninv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hninv.m -***** demo - ## Plot various iCDFs from the half-normal distribution - p = 0.001:0.001:0.999; - x1 = hninv (p, 0, 1); - x2 = hninv (p, 0, 2); - x3 = hninv (p, 0, 3); - x4 = hninv (p, 0, 5); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") - grid on - ylim ([0, 10]) - legend ({"μ = 0, σ = 1", "μ = 0, σ = 2", ... - "μ = 0, σ = 3", "μ = 0, σ = 5"}, "location", "northwest") - title ("Half-normal iCDF") - xlabel ("probability") - ylabel ("x") -***** shared p, x - p = [0, 0.3829, 0.6827, 1]; - x = [0, 1/2, 1, Inf]; -***** assert (hninv (p, 0, 1), x, 1e-4); -***** assert (hninv (p, 5, 1), x + 5, 1e-4); -***** assert (hninv (p, 0, ones (1,4)), x, 1e-4); -***** assert (hninv (p, 0, [-1, 0, 1, 1]), [NaN, NaN, x(3:4)], 1e-4) -***** assert (class (hninv (single ([p, NaN]), 0, 1)), "single") -***** assert (class (hninv ([p, NaN], single (0), 1)), "single") -***** assert (class (hninv ([p, NaN], 0, single (1))), "single") -***** error hninv (1) -***** error hninv (1, 2) -***** error ... - hninv (1, ones (2), ones (3)) -***** error ... - hninv (ones (2), 1, ones (3)) -***** error ... - hninv (ones (2), ones (3), 1) -***** error hninv (i, 2, 3) -***** error hninv (1, i, 3) -***** error hninv (1, 2, i) -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fun/trnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/trnd.m -***** assert (size (trnd (2)), [1, 1]) -***** assert (size (trnd (ones (2,1))), [2, 1]) -***** assert (size (trnd (ones (2,2))), [2, 2]) -***** assert (size (trnd (1, 3)), [3, 3]) -***** assert (size (trnd (1, [4 1])), [4, 1]) -***** assert (size (trnd (1, 4, 1)), [4, 1]) -***** assert (size (trnd (1, 4, 1)), [4, 1]) -***** assert (size (trnd (1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (trnd (1, 0, 1)), [0, 1]) -***** assert (size (trnd (1, 1, 0)), [1, 0]) -***** assert (size (trnd (1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (trnd (0, 1, 1), NaN) -***** assert (trnd ([0, 0, 0], [1, 3]), [NaN, NaN, NaN]) -***** assert (class (trnd (2)), "double") -***** assert (class (trnd (single (2))), "single") -***** assert (class (trnd (single ([2 2]))), "single") -***** error trnd () -***** error trnd (i) -***** error ... - trnd (1, -1) -***** error ... - trnd (1, 1.2) -***** error ... - trnd (1, ones (2)) -***** error ... - trnd (1, [2 -1 2]) -***** error ... - trnd (1, [2 0 2.5]) -***** error ... - trnd (ones (2), ones (2)) -***** error ... - trnd (1, 2, -1, 5) -***** error ... - trnd (1, 2, 1.5, 5) -***** error trnd (ones (2,2), 3) -***** error trnd (ones (2,2), [3, 2]) -***** error trnd (ones (2,2), 2, 3) -29 tests, 29 passed, 0 known failure, 0 skipped -[inst/dist_fun/vminv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/vminv.m -***** demo - ## Plot various iCDFs from the von Mises distribution - p1 = [0,0.005,0.01:0.01:0.1,0.15,0.2:0.1:0.8,0.85,0.9:0.01:0.99,0.995,1]; - x1 = vminv (p1, 0, 0.5); - x2 = vminv (p1, 0, 1); - x3 = vminv (p1, 0, 2); - x4 = vminv (p1, 0, 4); - plot (p1, x1, "-r", p1, x2, "-g", p1, x3, "-b", p1, x4, "-c") - grid on - ylim ([-pi, pi]) - legend ({"μ = 0, k = 0.5", "μ = 0, k = 1", ... - "μ = 0, k = 2", "μ = 0, k = 4"}, "location", "northwest") - title ("Von Mises iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared x, p0, p1 - x = [-pi:pi/2:pi]; - p0 = [0, 0.10975, 0.5, 0.89025, 1]; - p1 = [0, 0.03752, 0.5, 0.99622, 1]; -***** assert (vminv (p0, 0, 1), x, 5e-5) -***** assert (vminv (p0, zeros (1,5), ones (1,5)), x, 5e-5) -***** assert (vminv (p1, 0, [1 2 3 4 5]), x, [5e-5, 5e-4, 5e-5, 5e-4, 5e-5]) -***** error vminv () -***** error vminv (1) -***** error vminv (1, 2) -***** error ... - vminv (ones (3), ones (2), ones (2)) -***** error ... - vminv (ones (2), ones (3), ones (2)) -***** error ... - vminv (ones (2), ones (2), ones (3)) -***** error vminv (i, 2, 2) -***** error vminv (2, i, 2) -***** error vminv (2, 2, i) -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/dist_fun/nbinpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nbinpdf.m -***** demo - ## Plot various PDFs from the negative binomial distribution - x = 0:40; - y1 = nbinpdf (x, 2, 0.15); - y2 = nbinpdf (x, 5, 0.2); - y3 = nbinpdf (x, 4, 0.4); - y4 = nbinpdf (x, 10, 0.3); - plot (x, y1, "*r", x, y2, "*g", x, y3, "*k", x, y4, "*m") - grid on - xlim ([0, 40]) - ylim ([0, 0.12]) - legend ({"r = 2, ps = 0.15", "r = 5, ps = 0.2", "r = 4, p = 0.4", ... - "r = 10, ps = 0.3"}, "location", "northeast") - title ("Negative binomial PDF") - xlabel ("values in x (number of failures)") - ylabel ("density") -***** shared x, y - x = [-1 0 1 2 Inf]; - y = [0 1/2 1/4 1/8 NaN]; -***** assert (nbinpdf (x, ones (1,5), 0.5*ones (1,5)), y) -***** assert (nbinpdf (x, 1, 0.5*ones (1,5)), y) -***** assert (nbinpdf (x, ones (1,5), 0.5), y) -***** assert (nbinpdf (x, [0 1 NaN 1.5 Inf], 0.5), [NaN 1/2 NaN 1.875*0.5^1.5/4 NaN], eps) -***** assert (nbinpdf (x, 1, 0.5*[-1 NaN 4 1 1]), [NaN NaN NaN y(4:5)]) -***** assert (nbinpdf ([x, NaN], 1, 0.5), [y, NaN]) -***** assert (nbinpdf (single ([x, NaN]), 1, 0.5), single ([y, NaN])) -***** assert (nbinpdf ([x, NaN], single (1), 0.5), single ([y, NaN])) -***** assert (nbinpdf ([x, NaN], 1, single (0.5)), single ([y, NaN])) -***** error nbinpdf () -***** error nbinpdf (1) -***** error nbinpdf (1, 2) -***** error ... - nbinpdf (ones (3), ones (2), ones (2)) -***** error ... - nbinpdf (ones (2), ones (3), ones (2)) -***** error ... - nbinpdf (ones (2), ones (2), ones (3)) -***** error nbinpdf (i, 2, 2) -***** error nbinpdf (2, i, 2) -***** error nbinpdf (2, 2, i) -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/dist_fun/ncx2inv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncx2inv.m -***** demo - ## Plot various iCDFs from the noncentral chi-squared distribution - p = 0.001:0.001:0.999; - x1 = ncx2inv (p, 2, 1); - x2 = ncx2inv (p, 2, 2); - x3 = ncx2inv (p, 2, 3); - x4 = ncx2inv (p, 4, 1); - x5 = ncx2inv (p, 4, 2); - x6 = ncx2inv (p, 4, 3); - plot (p, x1, "-r", p, x2, "-g", p, x3, "-k", ... - p, x4, "-m", p, x5, "-c", p, x6, "-y") - grid on - ylim ([0, 10]) - legend ({"df = 2, λ = 1", "df = 2, λ = 2", ... - "df = 2, λ = 3", "df = 4, λ = 1", ... - "df = 4, λ = 2", "df = 4, λ = 3"}, "location", "northwest") - title ("Noncentral chi-squared iCDF") - xlabel ("probability") - ylabel ("values in x") -***** demo - ## Compare the noncentral chi-squared CDF with LAMBDA = 2 to the - ## chi-squared CDF with the same number of degrees of freedom (4). - - p = 0.001:0.001:0.999; - x1 = ncx2inv (p, 4, 2); - x2 = chi2inv (p, 4); - plot (p, x1, "-", p, x2, "-"); - grid on - ylim ([0, 10]) - legend ({"Noncentral χ^2(4,2)", "χ^2(4)"}, "location", "northwest") - title ("Noncentral chi-squared vs chi-squared quantile functions") - xlabel ("probability") - ylabel ("values in x") + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'Title', .5)", ".* Title .* string"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - x = [0,0.3443,0.7226,1.1440,1.6220,2.1770,2.8436,3.6854,4.8447,6.7701,Inf]; - assert (ncx2inv ([0:0.1:1], 2, 1), x, 1e-4); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'FontName', [])", ... + ".* FontName .* string"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - x = [0,0.8295,1.6001,2.3708,3.1785,4.0598,5.0644,6.2765,7.8763,10.4199,Inf]; - assert (ncx2inv ([0:0.1:1], 2, 3), x, 1e-4); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'FontSize', 'b')", ... + ".* FontSize .* numeric"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - x = [0,0.5417,1.3483,2.1796,3.0516,4.0003,5.0777,6.3726,8.0748,10.7686,Inf]; - assert (ncx2inv ([0:0.1:1], 1, 4), x, 1e-4); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'DiagonalColor', 'h')", ... + ".* DiagonalColor .* color"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - x = [0.1808, 0.6456, 1.1842, 1.7650, 2.3760, 3.0105]; - assert (ncx2inv (0.05, [1, 2, 3, 4, 5, 6], 4), x, 1e-4); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'OffDiagonalColor', [])", ... + ".* OffDiagonalColor .* color"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - x = [0.4887, 0.6699, 0.9012, 1.1842, 1.5164, 1.8927]; - assert (ncx2inv (0.05, 3, [1, 2, 3, 4, 5, 6]), x, 1e-4); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'Normalization', '')", ... + ".* invalid .* Normalization"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - x = [1.3941, 1.6824, 2.0103, 2.3760, NaN, 3.2087]; - assert (ncx2inv (0.05, 5, [1, 2, 3, 4, -1, 6]), x, 1e-4); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'ColumnSummary', [])", ... + ".* invalid .* ColumnSummary"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - assert (ncx2inv (0.996, 5, 8), 35.51298862765576, 2e-13); -***** error ncx2inv () -***** error ncx2inv (1) -***** error ncx2inv (1, 2) -***** error ... - ncx2inv (ones (3), ones (2), ones (2)) -***** error ... - ncx2inv (ones (2), ones (3), ones (2)) -***** error ... - ncx2inv (ones (2), ones (2), ones (3)) -***** error ncx2inv (i, 2, 2) -***** error ncx2inv (2, i, 2) -***** error ncx2inv (2, 2, i) -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fun/evpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/evpdf.m -***** demo - ## Plot various PDFs from the Extreme value distribution - x = -10:0.001:10; - y1 = evpdf (x, 0.5, 2); - y2 = evpdf (x, 1.0, 2); - y3 = evpdf (x, 1.5, 3); - y4 = evpdf (x, 3.0, 4); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") - grid on - ylim ([0, 0.2]) - legend ({"μ = 0.5, σ = 2", "μ = 1.0, σ = 2", ... - "μ = 1.5, σ = 3", "μ = 3.0, σ = 4"}, "location", "northeast") - title ("Extreme value PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y0, y1 - x = [-5, 0, 1, 2, 3]; - y0 = [0.0067, 0.3679, 0.1794, 0.0046, 0]; - y1 = [0.0025, 0.2546, 0.3679, 0.1794, 0.0046]; -***** assert (evpdf (x), y0, 1e-4) -***** assert (evpdf (x, zeros (1,5), ones (1,5)), y0, 1e-4) -***** assert (evpdf (x, ones (1,5), ones (1,5)), y1, 1e-4) -***** error evpdf () -***** error ... - evpdf (ones (3), ones (2), ones (2)) -***** error evpdf (i, 2, 2) -***** error evpdf (2, i, 2) -***** error evpdf (2, 2, i) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fun/evinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/evinv.m -***** demo - ## Plot various iCDFs from the extreme value distribution - p = 0.001:0.001:0.999; - x1 = evinv (p, 0.5, 2); - x2 = evinv (p, 1.0, 2); - x3 = evinv (p, 1.5, 3); - x4 = evinv (p, 3.0, 4); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") - grid on - ylim ([-10, 10]) - legend ({"μ = 0.5, σ = 2", "μ = 1.0, σ = 2", ... - "μ = 1.5, σ = 3", "μ = 3.0, σ = 4"}, "location", "northwest") - title ("Extreme value iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p, x - p = [0, 0.05, 0.5 0.95]; - x = [-Inf, -2.9702, -0.3665, 1.0972]; -***** assert (evinv (p), x, 1e-4) -***** assert (evinv (p, zeros (1,4), ones (1,4)), x, 1e-4) -***** assert (evinv (p, 0, ones (1,4)), x, 1e-4) -***** assert (evinv (p, zeros (1,4), 1), x, 1e-4) -***** assert (evinv (p, [0, -Inf, NaN, Inf], 1), [-Inf, -Inf, NaN, Inf], 1e-4) -***** assert (evinv (p, 0, [Inf, NaN, -1, 0]), [-Inf, NaN, NaN, NaN], 1e-4) -***** assert (evinv ([p(1:2), NaN, p(4)], 0, 1), [x(1:2), NaN, x(4)], 1e-4) -***** assert (evinv ([p, NaN], 0, 1), [x, NaN], 1e-4) -***** assert (evinv (single ([p, NaN]), 0, 1), single ([x, NaN]), 1e-4) -***** assert (evinv ([p, NaN], single (0), 1), single ([x, NaN]), 1e-4) -***** assert (evinv ([p, NaN], 0, single (1)), single ([x, NaN]), 1e-4) -***** error evinv () -***** error evinv (1,2,3,4,5,6) -***** error ... - evinv (ones (3), ones (2), ones (2)) -***** error ... - [p, plo, pup] = evinv (2, 3, 4, [1, 2]) -***** error ... - [p, plo, pup] = evinv (1, 2, 3) -***** error [p, plo, pup] = ... - evinv (1, 2, 3, [1, 0; 0, 1], 0) -***** error [p, plo, pup] = ... - evinv (1, 2, 3, [1, 0; 0, 1], 1.22) -***** error evinv (i, 2, 2) -***** error evinv (2, i, 2) -***** error evinv (2, 2, i) -***** error ... - [p, plo, pup] = evinv (1, 2, 3, [-1, -10; -Inf, -Inf], 0.04) -22 tests, 22 passed, 0 known failure, 0 skipped -[inst/dist_fun/unifcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unifcdf.m -***** demo - ## Plot various CDFs from the continuous uniform distribution - x = 0:0.1:10; - p1 = unifcdf (x, 2, 5); - p2 = unifcdf (x, 3, 9); - plot (x, p1, "-b", x, p2, "-g") - grid on - xlim ([0, 10]) - ylim ([0, 1]) - legend ({"a = 2, b = 5", "a = 3, b = 9"}, "location", "southeast") - title ("Continuous uniform CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y - x = [-1 0 0.5 1 2] + 1; - y = [0 0 0.5 1 1]; -***** assert (unifcdf (x, ones (1,5), 2*ones (1,5)), y) -***** assert (unifcdf (x, ones (1,5), 2*ones (1,5), "upper"), 1 - y) -***** assert (unifcdf (x, 1, 2*ones (1,5)), y) -***** assert (unifcdf (x, 1, 2*ones (1,5), "upper"), 1 - y) -***** assert (unifcdf (x, ones (1,5), 2), y) -***** assert (unifcdf (x, ones (1,5), 2, "upper"), 1 - y) -***** assert (unifcdf (x, [2 1 NaN 1 1], 2), [NaN 0 NaN 1 1]) -***** assert (unifcdf (x, [2 1 NaN 1 1], 2, "upper"), 1 - [NaN 0 NaN 1 1]) -***** assert (unifcdf (x, 1, 2*[0 1 NaN 1 1]), [NaN 0 NaN 1 1]) -***** assert (unifcdf (x, 1, 2*[0 1 NaN 1 1], "upper"), 1 - [NaN 0 NaN 1 1]) -***** assert (unifcdf ([x(1:2) NaN x(4:5)], 1, 2), [y(1:2) NaN y(4:5)]) -***** assert (unifcdf ([x(1:2) NaN x(4:5)], 1, 2, "upper"), 1 - [y(1:2) NaN y(4:5)]) -***** assert (unifcdf ([x, NaN], 1, 2), [y, NaN]) -***** assert (unifcdf (single ([x, NaN]), 1, 2), single ([y, NaN])) -***** assert (unifcdf ([x, NaN], single (1), 2), single ([y, NaN])) -***** assert (unifcdf ([x, NaN], 1, single (2)), single ([y, NaN])) -***** error unifcdf () -***** error unifcdf (1) -***** error unifcdf (1, 2) -***** error unifcdf (1, 2, 3, 4) -***** error unifcdf (1, 2, 3, "tail") -***** error ... - unifcdf (ones (3), ones (2), ones (2)) -***** error ... - unifcdf (ones (2), ones (3), ones (2)) -***** error ... - unifcdf (ones (2), ones (2), ones (3)) -***** error unifcdf (i, 2, 2) -***** error unifcdf (2, i, 2) -***** error unifcdf (2, 2, i) -27 tests, 27 passed, 0 known failure, 0 skipped -[inst/dist_fun/chi2inv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/chi2inv.m -***** demo - ## Plot various iCDFs from the chi-squared distribution - p = 0.001:0.001:0.999; - x1 = chi2inv (p, 1); - x2 = chi2inv (p, 2); - x3 = chi2inv (p, 3); - x4 = chi2inv (p, 4); - x5 = chi2inv (p, 6); - x6 = chi2inv (p, 9); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", ... - p, x4, "-c", p, x5, "-m", p, x6, "-y") - grid on - ylim ([0, 8]) - legend ({"df = 1", "df = 2", "df = 3", ... - "df = 4", "df = 6", "df = 9"}, "location", "northwest") - title ("Chi-squared iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p - p = [-1 0 0.3934693402873666 1 2]; -***** assert (chi2inv (p, 2*ones (1,5)), [NaN 0 1 Inf NaN], 5*eps) -***** assert (chi2inv (p, 2), [NaN 0 1 Inf NaN], 5*eps) -***** assert (chi2inv (p, 2*[0 1 NaN 1 1]), [NaN 0 NaN Inf NaN], 5*eps) -***** assert (chi2inv ([p(1:2) NaN p(4:5)], 2), [NaN 0 NaN Inf NaN], 5*eps) -***** assert (chi2inv ([p, NaN], 2), [NaN 0 1 Inf NaN NaN], 5*eps) -***** assert (chi2inv (single ([p, NaN]), 2), single ([NaN 0 1 Inf NaN NaN]), 5*eps ("single")) -***** assert (chi2inv ([p, NaN], single (2)), single ([NaN 0 1 Inf NaN NaN]), 5*eps ("single")) -***** error chi2inv () -***** error chi2inv (1) -***** error chi2inv (1,2,3) -***** error ... - chi2inv (ones (3), ones (2)) -***** error ... - chi2inv (ones (2), ones (3)) -***** error chi2inv (i, 2) -***** error chi2inv (2, i) -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/dist_fun/tlsrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tlsrnd.m -***** assert (size (tlsrnd (1, 2, 3)), [1, 1]) -***** assert (size (tlsrnd (ones (2,1), 2, 3)), [2, 1]) -***** assert (size (tlsrnd (ones (2,2), 2, 3)), [2, 2]) -***** assert (size (tlsrnd (1, 2, 3, 3)), [3, 3]) -***** assert (size (tlsrnd (1, 2, 3, [4 1])), [4, 1]) -***** assert (size (tlsrnd (1, 2, 3, 4, 1)), [4, 1]) -***** assert (size (tlsrnd (1, 2, 3, 4, 1)), [4, 1]) -***** assert (size (tlsrnd (1, 2, 3, 4, 1, 5)), [4, 1, 5]) -***** assert (size (tlsrnd (1, 2, 3, 0, 1)), [0, 1]) -***** assert (size (tlsrnd (1, 2, 3, 1, 0)), [1, 0]) -***** assert (size (tlsrnd (1, 2, 3, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (tlsrnd (1, 2, 0, 1, 1), NaN) -***** assert (tlsrnd (1, 2, [0, 0, 0], [1, 3]), [NaN, NaN, NaN]) -***** assert (class (tlsrnd (1, 2, 3)), "double") -***** assert (class (tlsrnd (single (1), 2, 3)), "single") -***** assert (class (tlsrnd (single ([1, 1]), 2, 3)), "single") -***** assert (class (tlsrnd (1, single (2), 3)), "single") -***** assert (class (tlsrnd (1, single ([2, 2]), 3)), "single") -***** assert (class (tlsrnd (1, 2, single (3))), "single") -***** assert (class (tlsrnd (1, 2, single ([3, 3]))), "single") -***** error tlsrnd () -***** error tlsrnd (1) -***** error tlsrnd (1, 2) -***** error ... - tlsrnd (ones (3), ones (2), 1) -***** error ... - tlsrnd (ones (2), 1, ones (3)) -***** error ... - tlsrnd (1, ones (2), ones (3)) -***** error tlsrnd (i, 2, 3) -***** error tlsrnd (1, i, 3) -***** error tlsrnd (1, 2, i) -***** error ... - tlsrnd (1, 2, 3, -1) -***** error ... - tlsrnd (1, 2, 3, 1.2) -***** error ... - tlsrnd (1, 2, 3, ones (2)) -***** error ... - tlsrnd (1, 2, 3, [2 -1 2]) -***** error ... - tlsrnd (1, 2, 3, [2 0 2.5]) -***** error ... - tlsrnd (ones (2), 2, 3, ones (2)) -***** error ... - tlsrnd (1, 2, 3, 2, -1, 5) -***** error ... - tlsrnd (1, 2, 3, 2, 1.5, 5) -***** error ... - tlsrnd (ones (2,2), 2, 3, 3) -***** error ... - tlsrnd (1, ones (2,2), 3, 3) -***** error ... - tlsrnd (1, 2, ones (2,2), 3) -***** error ... - tlsrnd (1, 2, ones (2,2), [3, 3]) -***** error ... - tlsrnd (1, 2, ones (2,2), 2, 3) -42 tests, 42 passed, 0 known failure, 0 skipped -[inst/dist_fun/gppdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gppdf.m -***** demo - ## Plot various PDFs from the generalized Pareto distribution - x = 0:0.001:5; - y1 = gppdf (x, 1, 1, 0); - y2 = gppdf (x, 5, 1, 0); - y3 = gppdf (x, 20, 1, 0); - y4 = gppdf (x, 1, 2, 0); - y5 = gppdf (x, 5, 2, 0); - y6 = gppdf (x, 20, 2, 0); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", ... - x, y4, "-c", x, y5, "-m", x, y6, "-k") - grid on - xlim ([0, 5]) - ylim ([0, 1]) - legend ({"k = 1, σ = 1, θ = 0", "k = 5, σ = 1, θ = 0", ... - "k = 20, σ = 1, θ = 0", "k = 1, σ = 2, θ = 0", ... - "k = 5, σ = 2, θ = 0", "k = 20, σ = 2, θ = 0"}, ... - "location", "northeast") - title ("Generalized Pareto PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y1, y2, y3 - x = [-Inf, -1, 0, 1/2, 1, Inf]; - y1 = [0, 0, 1, 0.6065306597126334, 0.36787944117144233, 0]; - y2 = [0, 0, 1, 4/9, 1/4, 0]; - y3 = [0, 0, 1, 1, 1, 0]; -***** assert (gppdf (x, zeros (1,6), ones (1,6), zeros (1,6)), y1, eps) -***** assert (gppdf (x, 0, 1, zeros (1,6)), y1, eps) -***** assert (gppdf (x, 0, ones (1,6), 0), y1, eps) -***** assert (gppdf (x, zeros (1,6), 1, 0), y1, eps) -***** assert (gppdf (x, 0, 1, 0), y1, eps) -***** assert (gppdf (x, 0, 1, [0, 0, 0, NaN, 0, 0]), [y1(1:3), NaN, y1(5:6)]) -***** assert (gppdf (x, 0, [1, 1, 1, NaN, 1, 1], 0), [y1(1:3), NaN, y1(5:6)]) -***** assert (gppdf (x, [0, 0, 0, NaN, 0, 0], 1, 0), [y1(1:3), NaN, y1(5:6)]) -***** assert (gppdf ([x(1:3), NaN, x(5:6)], 0, 1, 0), [y1(1:3), NaN, y1(5:6)]) -***** assert (gppdf (x, ones (1,6), ones (1,6), zeros (1,6)), y2, eps) -***** assert (gppdf (x, 1, 1, zeros (1,6)), y2, eps) -***** assert (gppdf (x, 1, ones (1,6), 0), y2, eps) -***** assert (gppdf (x, ones (1,6), 1, 0), y2, eps) -***** assert (gppdf (x, 1, 1, 0), y2, eps) -***** assert (gppdf (x, 1, 1, [0, 0, 0, NaN, 0, 0]), [y2(1:3), NaN, y2(5:6)]) -***** assert (gppdf (x, 1, [1, 1, 1, NaN, 1, 1], 0), [y2(1:3), NaN, y2(5:6)]) -***** assert (gppdf (x, [1, 1, 1, NaN, 1, 1], 1, 0), [y2(1:3), NaN, y2(5:6)]) -***** assert (gppdf ([x(1:3), NaN, x(5:6)], 1, 1, 0), [y2(1:3), NaN, y2(5:6)]) -***** assert (gppdf (x, -ones (1,6), ones (1,6), zeros (1,6)), y3, eps) -***** assert (gppdf (x, -1, 1, zeros (1,6)), y3, eps) -***** assert (gppdf (x, -1, ones (1,6), 0), y3, eps) -***** assert (gppdf (x, -ones (1,6), 1, 0), y3, eps) -***** assert (gppdf (x, -1, 1, 0), y3, eps) -***** assert (gppdf (x, -1, 1, [0, 0, 0, NaN, 0, 0]), [y3(1:3), NaN, y3(5:6)]) -***** assert (gppdf (x, -1, [1, 1, 1, NaN, 1, 1], 0), [y3(1:3), NaN, y3(5:6)]) -***** assert (gppdf (x, [-1, -1, -1, NaN, -1, -1], 1, 0), [y3(1:3), NaN, y3(5:6)]) -***** assert (gppdf ([x(1:3), NaN, x(5:6)], -1, 1, 0), [y3(1:3), NaN, y3(5:6)]) -***** assert (gppdf (single ([x, NaN]), 0, 1, 0), single ([y1, NaN])) -***** assert (gppdf ([x, NaN], 0, 1, single (0)), single ([y1, NaN])) -***** assert (gppdf ([x, NaN], 0, single (1), 0), single ([y1, NaN])) -***** assert (gppdf ([x, NaN], single (0), 1, 0), single ([y1, NaN])) -***** assert (gppdf (single ([x, NaN]), 1, 1, 0), single ([y2, NaN])) -***** assert (gppdf ([x, NaN], 1, 1, single (0)), single ([y2, NaN])) -***** assert (gppdf ([x, NaN], 1, single (1), 0), single ([y2, NaN])) -***** assert (gppdf ([x, NaN], single (1), 1, 0), single ([y2, NaN])) -***** assert (gppdf (single ([x, NaN]), -1, 1, 0), single ([y3, NaN])) -***** assert (gppdf ([x, NaN], -1, 1, single (0)), single ([y3, NaN])) -***** assert (gppdf ([x, NaN], -1, single (1), 0), single ([y3, NaN])) -***** assert (gppdf ([x, NaN], single (-1), 1, 0), single ([y3, NaN])) -***** error gpcdf () -***** error gpcdf (1) -***** error gpcdf (1, 2) -***** error gpcdf (1, 2, 3) -***** error ... - gpcdf (ones (3), ones (2), ones(2), ones(2)) -***** error ... - gpcdf (ones (2), ones (3), ones(2), ones(2)) -***** error ... - gpcdf (ones (2), ones (2), ones(3), ones(2)) -***** error ... - gpcdf (ones (2), ones (2), ones(2), ones(3)) -***** error gpcdf (i, 2, 3, 4) -***** error gpcdf (1, i, 3, 4) -***** error gpcdf (1, 2, i, 4) -***** error gpcdf (1, 2, 3, i) -51 tests, 51 passed, 0 known failure, 0 skipped -[inst/dist_fun/poisspdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/poisspdf.m -***** demo - ## Plot various PDFs from the Poisson distribution - x = 0:20; - y1 = poisspdf (x, 1); - y2 = poisspdf (x, 4); - y3 = poisspdf (x, 10); - plot (x, y1, "*b", x, y2, "*g", x, y3, "*r") - grid on - ylim ([0, 0.4]) - legend ({"λ = 1", "λ = 4", "λ = 10"}, "location", "northeast") - title ("Poisson PDF") - xlabel ("values in x (number of occurences)") - ylabel ("density") -***** shared x, y - x = [-1 0 1 2 Inf]; - y = [0, exp(-1)*[1 1 0.5], 0]; -***** assert (poisspdf (x, ones (1,5)), y, eps) -***** assert (poisspdf (x, 1), y, eps) -***** assert (poisspdf (x, [1 0 NaN 1 1]), [y(1) NaN NaN y(4:5)], eps) -***** assert (poisspdf ([x, NaN], 1), [y, NaN], eps) -***** assert (poisspdf (single ([x, NaN]), 1), single ([y, NaN]), eps ("single")) -***** assert (poisspdf ([x, NaN], single (1)), single ([y, NaN]), eps ("single")) -***** error poisspdf () -***** error poisspdf (1) -***** error ... - poisspdf (ones (3), ones (2)) -***** error ... - poisspdf (ones (2), ones (3)) -***** error poisspdf (i, 2) -***** error poisspdf (2, i) -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/dist_fun/wblpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wblpdf.m -***** demo - ## Plot various PDFs from the Weibul distribution - x = 0:0.001:2.5; - y1 = wblpdf (x, 1, 0.5); - y2 = wblpdf (x, 1, 1); - y3 = wblpdf (x, 1, 1.5); - y4 = wblpdf (x, 1, 5); - plot (x, y1, "-b", x, y2, "-r", x, y3, "-m", x, y4, "-g") - grid on - ylim ([0, 2.5]) - legend ({"λ = 5, k = 0.5", "λ = 9, k = 1", ... - "λ = 6, k = 1.5", "λ = 2, k = 5"}, "location", "northeast") - title ("Weibul PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x,y - x = [-1 0 0.5 1 Inf]; - y = [0, exp(-x(2:4)), NaN]; -***** assert (wblpdf (x, ones (1,5), ones (1,5)), y) -***** assert (wblpdf (x, 1, ones (1,5)), y) -***** assert (wblpdf (x, ones (1,5), 1), y) -***** assert (wblpdf (x, [0 NaN Inf 1 1], 1), [NaN NaN NaN y(4:5)]) -***** assert (wblpdf (x, 1, [0 NaN Inf 1 1]), [NaN NaN NaN y(4:5)]) -***** assert (wblpdf ([x, NaN], 1, 1), [y, NaN]) -***** assert (wblpdf (single ([x, NaN]), 1, 1), single ([y, NaN])) -***** assert (wblpdf ([x, NaN], single (1), 1), single ([y, NaN])) -***** assert (wblpdf ([x, NaN], 1, single (1)), single ([y, NaN])) -***** error wblpdf () -***** error wblpdf (1,2,3,4) -***** error wblpdf (ones (3), ones (2), ones (2)) -***** error wblpdf (ones (2), ones (3), ones (2)) -***** error wblpdf (ones (2), ones (2), ones (3)) -***** error wblpdf (i, 2, 2) -***** error wblpdf (2, i, 2) -***** error wblpdf (2, 2, i) -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/dist_fun/wienrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wienrnd.m -***** error wienrnd (0) -***** error wienrnd (1, 3, -50) -***** error wienrnd (5, 0) -***** error wienrnd (0.4, 3, 5) -***** error wienrnd ([1 4], 3, 5) -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/dist_fun/ncx2cdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncx2cdf.m -***** demo - ## Plot various CDFs from the noncentral chi-squared distribution - x = 0:0.1:10; - p1 = ncx2cdf (x, 2, 1); - p2 = ncx2cdf (x, 2, 2); - p3 = ncx2cdf (x, 2, 3); - p4 = ncx2cdf (x, 4, 1); - p5 = ncx2cdf (x, 4, 2); - p6 = ncx2cdf (x, 4, 3); - plot (x, p1, "-r", x, p2, "-g", x, p3, "-k", ... - x, p4, "-m", x, p5, "-c", x, p6, "-y") - grid on - xlim ([0, 10]) - legend ({"df = 2, λ = 1", "df = 2, λ = 2", ... - "df = 2, λ = 3", "df = 4, λ = 1", ... - "df = 4, λ = 2", "df = 4, λ = 3"}, "location", "southeast") - title ("Noncentral chi-squared CDF") - xlabel ("values in x") - ylabel ("probability") -***** demo - ## Compare the noncentral chi-squared CDF with LAMBDA = 2 to the - ## chi-squared CDF with the same number of degrees of freedom (4). - - x = 0:0.1:10; - p1 = ncx2cdf (x, 4, 2); - p2 = chi2cdf (x, 4); - plot (x, p1, "-", x, p2, "-") - grid on - xlim ([0, 10]) - legend ({"Noncentral χ^2(4,2)", "χ^2(4)"}, "location", "northwest") - title ("Noncentral chi-squared vs chi-squared CDFs") - xlabel ("values in x") - ylabel ("probability") + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'RowSummary', 1)", ... + ".* invalid .* RowSummary"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - x = -2:0.1:2; - p = ncx2cdf (x, 10, 1); - assert (p([1:21]), zeros (1, 21), 3e-84); - assert (p(22), 1.521400636466575e-09, 1e-14); - assert (p(30), 6.665480510026046e-05, 1e-14); - assert (p(41), 0.002406447308399836, 1e-14); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'GridVisible', .1)", ... + ".* invalid .* GridVisible"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - p = ncx2cdf (12, 10, 3); - assert (p, 0.4845555602398649, 1e-14); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'HandleVisibility', .1)", ... + ".* invalid .* HandleVisibility"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - p = ncx2cdf (2, 3, 2); - assert (p, 0.2207330870741212, 1e-14); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'OuterPosition', .1)", ... + ".* invalid .* OuterPosition"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - p = ncx2cdf (2, 3, 2, "upper"); - assert (p, 0.7792669129258789, 1e-14); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'Position', .1)", ... + ".* invalid .* Position"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - p = ncx2cdf ([3, 6], 3, 2, "upper"); - assert (p, [0.6423318186400054, 0.3152299878943012], 1e-14); -***** error ncx2cdf () -***** error ncx2cdf (1) -***** error ncx2cdf (1, 2) -***** error ncx2cdf (1, 2, 3, "tail") -***** error ncx2cdf (1, 2, 3, 4) -***** error ... - ncx2cdf (ones (3), ones (2), ones (2)) -***** error ... - ncx2cdf (ones (2), ones (3), ones (2)) -***** error ... - ncx2cdf (ones (2), ones (2), ones (3)) -***** error ncx2cdf (i, 2, 2) -***** error ncx2cdf (2, i, 2) -***** error ncx2cdf (2, 2, i) -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fun/copulacdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/copulacdf.m + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'Units', .1)", ".* invalid .* Units"); + set (0, "DefaultFigureVisible", visibility_setting); +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/@cvpartition/repartition.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/repartition.m ***** test - x = [0.2:0.2:0.6; 0.2:0.2:0.6]; - theta = [1; 2]; - p = copulacdf ("Clayton", x, theta); - expected_p = [0.1395; 0.1767]; - assert (p, expected_p, 0.001); + C = cvpartition (ones (10, 1), "KFold", 5); + Cnew = repartition (C); + assert (isa (Cnew, "cvpartition"), true); ***** test - x = [0.2:0.2:0.6; 0.2:0.2:0.6]; - p = copulacdf ("Gumbel", x, 2); - expected_p = [0.1464; 0.1464]; - assert (p, expected_p, 0.001); + C = cvpartition (ones (100, 1), "HoldOut", 5); + Cnew = repartition (C); + indC = get (C, "inds"); + indCnew = get (Cnew, "inds"); + assert (isequal (indC, indCnew), false); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@cvpartition/cvpartition.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/cvpartition.m +***** demo + ## Partition with Fisher iris dataset (n = 150) + ## Stratified by species + load fisheriris + y = species; + ## 10-fold cross-validation partition + c = cvpartition (species, 'KFold', 10) + ## leave-10-out partition + c1 = cvpartition (species, 'HoldOut', 10) + idx1 = test (c, 2); + idx2 = training (c, 2); + ## another leave-10-out partition + c2 = repartition (c1) ***** test - x = [0.2:0.2:0.6; 0.2:0.2:0.6]; - theta = [1; 2]; - p = copulacdf ("Frank", x, theta); - expected_p = [0.0699; 0.0930]; - assert (p, expected_p, 0.001); + C = cvpartition (ones (10, 1)); + assert (isa (C, "cvpartition"), true); ***** test - x = [0.2:0.2:0.6; 0.2:0.2:0.6]; - theta = [0.3; 0.7]; - p = copulacdf ("AMH", x, theta); - expected_p = [0.0629; 0.0959]; - assert (p, expected_p, 0.001); + C = cvpartition (ones (10, 1), "KFold", 5); + assert (get (C, "NumObservations"), 10); + assert (get (C, "NumTestSets"), 5); + assert (get (C, "TrainSize"), ones(5,1) * 8); + assert (get (C, "TestSize"), ones (5,1) * 2); + assert (get (C, "inds"), [1 1 2 2 3 3 4 4 5 5]'); + assert (get (C, "Type"), "kfold"); ***** test - x = [0.2:0.2:0.6; 0.2:0.1:0.4]; - theta = [0.2, 0.1, 0.1, 0.05]; - p = copulacdf ("FGM", x, theta); - expected_p = [0.0558; 0.0293]; - assert (p, expected_p, 0.001); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/dist_fun/bvncdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/bvncdf.m -***** demo - mu = [1, -1]; - sigma = [0.9, 0.4; 0.4, 0.3]; - [X1, X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); - x = [X1(:), X2(:)]; - p = bvncdf (x, mu, sigma); - Z = reshape (p, 25, 25); - surf (X1, X2, Z); - title ("Bivariate Normal Distribution"); - ylabel "X1" - xlabel "X2" + C = cvpartition (ones (10, 1), "KFold", 2); + assert (get (C, "NumObservations"), 10); + assert (get (C, "NumTestSets"), 2); + assert (get (C, "TrainSize"), [5; 5]); + assert (get (C, "TestSize"), [5; 5]); + assert (get (C, "inds"), [1 1 1 1 1 2 2 2 2 2]'); + assert (get (C, "Type"), "kfold"); ***** test - mu = [1, -1]; - sigma = [0.9, 0.4; 0.4, 0.3]; - [X1,X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); - x = [X1(:), X2(:)]; - p = bvncdf (x, mu, sigma); - p_out = [0.00011878988774500, 0.00034404112322371, ... - 0.00087682502191813, 0.00195221905058185, ... - 0.00378235566873474, 0.00638175749734415, ... - 0.00943764224329656, 0.01239164888125426, ... - 0.01472750274376648, 0.01623228313374828]'; - assert (p([1:10]), p_out, 1e-16); + C = cvpartition (ones (10, 1), "HoldOut", 5); + assert (get (C, "NumObservations"), 10); + assert (get (C, "NumTestSets"), 1); + assert (get (C, "TrainSize"), 5); + assert (get (C, "TestSize"), 5); + assert (class (get (C, "inds")), "logical"); + assert (length (get (C, "inds")), 10); + assert (get (C, "Type"), "holdout"); ***** test - mu = [1, -1]; - sigma = [0.9, 0.4; 0.4, 0.3]; - [X1,X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); - x = [X1(:), X2(:)]; - p = bvncdf (x, mu, sigma); - p_out = [0.8180695783608276, 0.8854485749482751, ... - 0.9308108777385832, 0.9579855743025508, ... - 0.9722897881414742, 0.9788150170059926, ... - 0.9813597788804785, 0.9821977956568989, ... - 0.9824283794464095, 0.9824809345614861]'; - assert (p([616:625]), p_out, 2e-16); -***** error bvncdf (randn (25,3), [], [1, 1; 1, 1]); -***** error bvncdf (randn (25,2), [], [1, 1; 1, 1]); -***** error bvncdf (randn (25,2), [], ones (3, 2)); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/dist_fun/riceinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/riceinv.m -***** demo - ## Plot various iCDFs from the Rician distribution - p = 0.001:0.001:0.999; - x1 = riceinv (p, 0, 1); - x2 = riceinv (p, 0.5, 1); - x3 = riceinv (p, 1, 1); - x4 = riceinv (p, 2, 1); - x5 = riceinv (p, 4, 1); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-m", p, x5, "-k") - grid on - legend ({"s = 0, σ = 1", "s = 0.5, σ = 1", "s = 1, σ = 1", ... - "s = 2, σ = 1", "s = 4, σ = 1"}, "location", "northwest") - title ("Rician iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p - p = [-1 0 0.75 1 2]; -***** assert (riceinv (p, ones (1,5), 2*ones (1,5)), [NaN 0 3.5354 Inf NaN], 1e-4) -***** assert (riceinv (p, 1, 2*ones (1,5)), [NaN 0 3.5354 Inf NaN], 1e-4) -***** assert (riceinv (p, ones (1,5), 2), [NaN 0 3.5354 Inf NaN], 1e-4) -***** assert (riceinv (p, [1 0 NaN 1 1], 2), [NaN 0 NaN Inf NaN]) -***** assert (riceinv (p, 1, 2*[1 0 NaN 1 1]), [NaN NaN NaN Inf NaN]) -***** assert (riceinv ([p(1:2) NaN p(4:5)], 1, 2), [NaN 0 NaN Inf NaN]) -***** assert (riceinv ([p, NaN], 1, 2), [NaN 0 3.5354 Inf NaN NaN], 1e-4) -***** assert (riceinv (single ([p, NaN]), 1, 2), ... - single ([NaN 0 3.5354 Inf NaN NaN]), 1e-4) -***** assert (riceinv ([p, NaN], single (1), 2), ... - single ([NaN 0 3.5354 Inf NaN NaN]), 1e-4) -***** assert (riceinv ([p, NaN], 1, single (2)), ... - single ([NaN 0 3.5354 Inf NaN NaN]), 1e-4) -***** error riceinv () -***** error riceinv (1) -***** error riceinv (1,2) -***** error riceinv (1,2,3,4) -***** error ... - riceinv (ones (3), ones (2), ones (2)) -***** error ... - riceinv (ones (2), ones (3), ones (2)) -***** error ... - riceinv (ones (2), ones (2), ones (3)) -***** error riceinv (i, 2, 2) -***** error riceinv (2, i, 2) -***** error riceinv (2, 2, i) -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/dist_fun/gamrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gamrnd.m -***** assert (size (gamrnd (1, 1)), [1 1]) -***** assert (size (gamrnd (1, ones (2,1))), [2, 1]) -***** assert (size (gamrnd (1, ones (2,2))), [2, 2]) -***** assert (size (gamrnd (ones (2,1), 1)), [2, 1]) -***** assert (size (gamrnd (ones (2,2), 1)), [2, 2]) -***** assert (size (gamrnd (1, 1, 3)), [3, 3]) -***** assert (size (gamrnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (gamrnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (gamrnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (gamrnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (gamrnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (gamrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (gamrnd (1, 1)), "double") -***** assert (class (gamrnd (1, single (1))), "single") -***** assert (class (gamrnd (1, single ([1, 1]))), "single") -***** assert (class (gamrnd (single (1), 1)), "single") -***** assert (class (gamrnd (single ([1, 1]), 1)), "single") -***** error gamrnd () -***** error gamrnd (1) -***** error ... - gamrnd (ones (3), ones (2)) -***** error ... - gamrnd (ones (2), ones (3)) -***** error gamrnd (i, 2, 3) -***** error gamrnd (1, i, 3) -***** error ... - gamrnd (1, 2, -1) -***** error ... - gamrnd (1, 2, 1.2) -***** error ... - gamrnd (1, 2, ones (2)) -***** error ... - gamrnd (1, 2, [2 -1 2]) -***** error ... - gamrnd (1, 2, [2 0 2.5]) -***** error ... - gamrnd (1, 2, 2, -1, 5) -***** error ... - gamrnd (1, 2, 2, 1.5, 5) -***** error ... - gamrnd (2, ones (2), 3) -***** error ... - gamrnd (2, ones (2), [3, 2]) -***** error ... - gamrnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/evrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/evrnd.m -***** assert (size (evrnd (1, 1)), [1 1]) -***** assert (size (evrnd (1, ones (2,1))), [2, 1]) -***** assert (size (evrnd (1, ones (2,2))), [2, 2]) -***** assert (size (evrnd (ones (2,1), 1)), [2, 1]) -***** assert (size (evrnd (ones (2,2), 1)), [2, 2]) -***** assert (size (evrnd (1, 1, 3)), [3, 3]) -***** assert (size (evrnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (evrnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (evrnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (evrnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (evrnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (evrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (evrnd (1, 1)), "double") -***** assert (class (evrnd (1, single (1))), "single") -***** assert (class (evrnd (1, single ([1, 1]))), "single") -***** assert (class (evrnd (single (1), 1)), "single") -***** assert (class (evrnd (single ([1, 1]), 1)), "single") -***** error evrnd () -***** error evrnd (1) -***** error ... - evrnd (ones (3), ones (2)) -***** error ... - evrnd (ones (2), ones (3)) -***** error evrnd (i, 2, 3) -***** error evrnd (1, i, 3) -***** error ... - evrnd (1, 2, -1) -***** error ... - evrnd (1, 2, 1.2) -***** error ... - evrnd (1, 2, ones (2)) -***** error ... - evrnd (1, 2, [2 -1 2]) -***** error ... - evrnd (1, 2, [2 0 2.5]) -***** error ... - evrnd (1, 2, 2, -1, 5) -***** error ... - evrnd (1, 2, 2, 1.5, 5) -***** error ... - evrnd (2, ones (2), 3) -***** error ... - evrnd (2, ones (2), [3, 2]) -***** error ... - evrnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/cauchyrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/cauchyrnd.m -***** assert (size (cauchyrnd (1, 1)), [1 1]) -***** assert (size (cauchyrnd (1, ones (2,1))), [2, 1]) -***** assert (size (cauchyrnd (1, ones (2,2))), [2, 2]) -***** assert (size (cauchyrnd (ones (2,1), 1)), [2, 1]) -***** assert (size (cauchyrnd (ones (2,2), 1)), [2, 2]) -***** assert (size (cauchyrnd (1, 1, 3)), [3, 3]) -***** assert (size (cauchyrnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (cauchyrnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (cauchyrnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (cauchyrnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (cauchyrnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (cauchyrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (cauchyrnd (1, 1)), "double") -***** assert (class (cauchyrnd (1, single (1))), "single") -***** assert (class (cauchyrnd (1, single ([1, 1]))), "single") -***** assert (class (cauchyrnd (single (1), 1)), "single") -***** assert (class (cauchyrnd (single ([1, 1]), 1)), "single") -***** error cauchyrnd () -***** error cauchyrnd (1) -***** error ... - cauchyrnd (ones (3), ones (2)) -***** error ... - cauchyrnd (ones (2), ones (3)) -***** error cauchyrnd (i, 2, 3) -***** error cauchyrnd (1, i, 3) -***** error ... - cauchyrnd (1, 2, -1) -***** error ... - cauchyrnd (1, 2, 1.2) -***** error ... - cauchyrnd (1, 2, ones (2)) -***** error ... - cauchyrnd (1, 2, [2 -1 2]) -***** error ... - cauchyrnd (1, 2, [2 0 2.5]) -***** error ... - cauchyrnd (1, 2, 2, -1, 5) -***** error ... - cauchyrnd (1, 2, 2, 1.5, 5) -***** error ... - cauchyrnd (2, ones (2), 3) -***** error ... - cauchyrnd (2, ones (2), [3, 2]) -***** error ... - cauchyrnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/poisscdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/poisscdf.m -***** demo - ## Plot various CDFs from the Poisson distribution - x = 0:20; - p1 = poisscdf (x, 1); - p2 = poisscdf (x, 4); - p3 = poisscdf (x, 10); - plot (x, p1, "*b", x, p2, "*g", x, p3, "*r") - grid on - ylim ([0, 1]) - legend ({"λ = 1", "λ = 4", "λ = 10"}, "location", "southeast") - title ("Poisson CDF") - xlabel ("values in x (number of occurences)") - ylabel ("probability") -***** shared x, y - x = [-1 0 1 2 Inf]; - y = [0, gammainc(1, (x(2:4) +1), "upper"), 1]; -***** assert (poisscdf (x, ones (1,5)), y) -***** assert (poisscdf (x, 1), y) -***** assert (poisscdf (x, [1 0 NaN 1 1]), [y(1) 1 NaN y(4:5)]) -***** assert (poisscdf ([x(1:2) NaN Inf x(5)], 1), [y(1:2) NaN 1 y(5)]) -***** assert (poisscdf ([x, NaN], 1), [y, NaN]) -***** assert (poisscdf (single ([x, NaN]), 1), single ([y, NaN]), eps ("single")) -***** assert (poisscdf ([x, NaN], single (1)), single ([y, NaN]), eps ("single")) -***** error poisscdf () -***** error poisscdf (1) -***** error poisscdf (1, 2, 3) -***** error poisscdf (1, 2, "tail") -***** error ... - poisscdf (ones (3), ones (2)) -***** error ... - poisscdf (ones (2), ones (3)) -***** error poisscdf (i, 2) -***** error poisscdf (2, i) -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fun/mvtrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvtrnd.m + C = cvpartition ([1 2 3 4 5 6 7 8 9 10], "LeaveOut", 5); + assert (get (C, "NumObservations"), 10); + assert (get (C, "NumTestSets"), 10); + assert (get (C, "TrainSize"), ones (10, 1)); + assert (get (C, "TestSize"), ones (10, 1) * 9); + assert (get (C, "inds"), []); + assert (get (C, "Type"), "leaveout"); ***** test - rho = [1, 0.5; 0.5, 1]; - df = 3; - n = 10; - r = mvtrnd (rho, df, n); - assert (size (r), [10, 2]); + C = cvpartition ([1 2 3 4 5 6 7 8 9 10], "resubstitution", 5); + assert (get (C, "NumObservations"), 10); + assert (get (C, "NumTestSets"), 1); + assert (get (C, "TrainSize"), 10); + assert (get (C, "TestSize"), 10); + assert (get (C, "inds"), []); + assert (get (C, "Type"), "resubstitution"); ***** test - rho = [1, 0.5; 0.5, 1]; - df = [2; 3]; - n = 2; - r = mvtrnd (rho, df, 2); - assert (size (r), [2, 2]); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/dist_fun/nctrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nctrnd.m -***** assert (size (nctrnd (1, 1)), [1 1]) -***** assert (size (nctrnd (1, ones (2,1))), [2, 1]) -***** assert (size (nctrnd (1, ones (2,2))), [2, 2]) -***** assert (size (nctrnd (ones (2,1), 1)), [2, 1]) -***** assert (size (nctrnd (ones (2,2), 1)), [2, 2]) -***** assert (size (nctrnd (1, 1, 3)), [3, 3]) -***** assert (size (nctrnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (nctrnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (nctrnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (nctrnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (nctrnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (nctrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (nctrnd (1, 1)), "double") -***** assert (class (nctrnd (1, single (1))), "single") -***** assert (class (nctrnd (1, single ([1, 1]))), "single") -***** assert (class (nctrnd (single (1), 1)), "single") -***** assert (class (nctrnd (single ([1, 1]), 1)), "single") -***** error nctrnd () -***** error nctrnd (1) -***** error ... - nctrnd (ones (3), ones (2)) -***** error ... - nctrnd (ones (2), ones (3)) -***** error nctrnd (i, 2) -***** error nctrnd (1, i) -***** error ... - nctrnd (1, 2, -1) -***** error ... - nctrnd (1, 2, 1.2) -***** error ... - nctrnd (1, 2, ones (2)) -***** error ... - nctrnd (1, 2, [2 -1 2]) -***** error ... - nctrnd (1, 2, [2 0 2.5]) -***** error ... - nctrnd (1, 2, 2, -1, 5) -***** error ... - nctrnd (1, 2, 2, 1.5, 5) -***** error ... - nctrnd (2, ones (2), 3) -***** error ... - nctrnd (2, ones (2), [3, 2]) -***** error ... - nctrnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/logicdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/logicdf.m -***** demo - ## Plot various CDFs from the logistic distribution - x = -5:0.01:20; - p1 = logicdf (x, 5, 2); - p2 = logicdf (x, 9, 3); - p3 = logicdf (x, 9, 4); - p4 = logicdf (x, 6, 2); - p5 = logicdf (x, 2, 1); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-m") - grid on - legend ({"μ = 5, σ = 2", "μ = 9, σ = 3", "μ = 9, σ = 4", ... - "μ = 6, σ = 2", "μ = 2, σ = 1"}, "location", "southeast") - title ("Logistic CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y - x = [-Inf -log(3) 0 log(3) Inf]; - y = [0, 1/4, 1/2, 3/4, 1]; -***** assert (logicdf ([x, NaN], 0, 1), [y, NaN], eps) -***** assert (logicdf (x, 0, [-2, -1, 0, 1, 2]), [nan(1, 3), 0.75, 1]) -***** assert (logicdf (single ([x, NaN]), 0, 1), single ([y, NaN]), eps ("single")) -***** assert (logicdf ([x, NaN], single (0), 1), single ([y, NaN]), eps ("single")) -***** assert (logicdf ([x, NaN], 0, single (1)), single ([y, NaN]), eps ("single")) -***** error logicdf () -***** error logicdf (1) -***** error ... - logicdf (1, 2) -***** error logicdf (1, 2, 3, "tail") -***** error logicdf (1, 2, 3, 4) -***** error ... - logicdf (1, ones (2), ones (3)) -***** error ... - logicdf (ones (2), 1, ones (3)) -***** error ... - logicdf (ones (2), ones (3), 1) -***** error logicdf (i, 2, 3) -***** error logicdf (1, i, 3) -***** error logicdf (1, 2, i) -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fun/gevcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gevcdf.m -***** demo - ## Plot various CDFs from the generalized extreme value distribution - x = -1:0.001:10; - p1 = gevcdf (x, 1, 1, 1); - p2 = gevcdf (x, 0.5, 1, 1); - p3 = gevcdf (x, 1, 1, 5); - p4 = gevcdf (x, 1, 2, 5); - p5 = gevcdf (x, 1, 5, 5); - p6 = gevcdf (x, 1, 0.5, 5); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", ... - x, p4, "-c", x, p5, "-m", x, p6, "-k") - grid on - xlim ([-1, 10]) - legend ({"k = 1, σ = 1, μ = 1", "k = 0.5, σ = 1, μ = 1", ... - "k = 1, σ = 1, μ = 5", "k = 1, σ = 2, μ = 5", ... - "k = 1, σ = 5, μ = 5", "k = 1, σ = 0.5, μ = 5"}, ... - "location", "southeast") - title ("Generalized extreme value CDF") - xlabel ("values in x") - ylabel ("probability") + C = cvpartition ([1 2 3 4 5 6 7 8 9 10], "Given", 2); + assert (get (C, "NumObservations"), 10); + assert (get (C, "NumTestSets"), 10); + assert (get (C, "TrainSize"), ones (10, 1) * 9); + assert (get (C, "TestSize"), ones (10, 1)); + assert (get (C, "inds"), [1:10]'); + assert (get (C, "Type"), "given"); +***** warning ... + C = cvpartition ([1 2 3 4 5 6 7 8 9 10], "some", 2); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/@cvpartition/training.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/training.m +***** shared C + C = cvpartition (ones (10, 1), "KFold", 5); +***** assert (training (C, 1), logical ([0 0 1 1 1 1 1 1 1 1]')) +***** assert (training (C, 2), logical ([1 1 0 0 1 1 1 1 1 1]')) +***** assert (training (C, 3), logical ([1 1 1 1 0 0 1 1 1 1]')) +***** assert (training (C, 4), logical ([1 1 1 1 1 1 0 0 1 1]')) +***** assert (training (C, 5), logical ([1 1 1 1 1 1 1 1 0 0]')) ***** test - x = 0:0.5:2.5; - sigma = 1:6; - k = 1; - mu = 0; - p = gevcdf (x, k, sigma, mu); - expected_p = [0.36788, 0.44933, 0.47237, 0.48323, 0.48954, 0.49367]; - assert (p, expected_p, 0.001); + C = set (C, "inds", [1 2 2 2 3 4 3 4 5 5]'); +***** assert (training (C), logical ([0 1 1 1 1 1 1 1 1 1]')) +***** assert (training (C, 2), logical ([1 0 0 0 1 1 1 1 1 1]')) +***** assert (training (C, 3), logical ([1 1 1 1 0 1 0 1 1 1]')) +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/@cvpartition/test.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/test.m +***** shared C + C = cvpartition (ones (10, 1), "KFold", 5); +***** assert (test (C, 1), logical ([1 1 0 0 0 0 0 0 0 0]')) +***** assert (test (C, 2), logical ([0 0 1 1 0 0 0 0 0 0]')) +***** assert (test (C, 3), logical ([0 0 0 0 1 1 0 0 0 0]')) +***** assert (test (C, 4), logical ([0 0 0 0 0 0 1 1 0 0]')) +***** assert (test (C, 5), logical ([0 0 0 0 0 0 0 0 1 1]')) ***** test - x = -0.5:0.5:2.5; - sigma = 0.5; - k = 1; - mu = 0; - p = gevcdf (x, k, sigma, mu); - expected_p = [0, 0.36788, 0.60653, 0.71653, 0.77880, 0.81873, 0.84648]; - assert (p, expected_p, 0.001); -***** test # check for continuity for k near 0 - x = 1; - sigma = 0.5; - k = -0.03:0.01:0.03; - mu = 0; - p = gevcdf (x, k, sigma, mu); - expected_p = [0.88062, 0.87820, 0.87580, 0.87342, 0.87107, 0.86874, 0.86643]; - assert (p, expected_p, 0.001); -***** error gevcdf () -***** error gevcdf (1) -***** error gevcdf (1, 2) -***** error gevcdf (1, 2, 3) -***** error ... - gevcdf (1, 2, 3, 4, 5, 6) -***** error gevcdf (1, 2, 3, 4, "tail") -***** error gevcdf (1, 2, 3, 4, 5) -***** error ... - gevcdf (ones (3), ones (2), ones(2), ones(2)) -***** error ... - gevcdf (ones (2), ones (3), ones(2), ones(2)) -***** error ... - gevcdf (ones (2), ones (2), ones(3), ones(2)) -***** error ... - gevcdf (ones (2), ones (2), ones(2), ones(3)) -***** error gevcdf (i, 2, 3, 4) -***** error gevcdf (1, i, 3, 4) -***** error gevcdf (1, 2, i, 4) -***** error gevcdf (1, 2, 3, i) -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/dist_fun/invgrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/invgrnd.m -***** assert (size (invgrnd (1, 1, 1)), [1, 1]) -***** assert (size (invgrnd (1, 1, 2)), [2, 2]) -***** assert (size (invgrnd (1, 1, [2, 1])), [2, 1]) -***** assert (size (invgrnd (1, zeros (2, 2))), [2, 2]) -***** assert (size (invgrnd (1, ones (2, 1))), [2, 1]) -***** assert (size (invgrnd (1, ones (2, 2))), [2, 2]) -***** assert (size (invgrnd (ones (2, 1), 1)), [2, 1]) -***** assert (size (invgrnd (ones (2, 2), 1)), [2, 2]) -***** assert (size (invgrnd (1, 1, 3)), [3, 3]) -***** assert (size (invgrnd (1, 1, [4 1])), [4, 1]) -***** assert (size (invgrnd (1, 1, 4, 1)), [4, 1]) + C = set (C, "inds", [1 2 2 2 3 4 3 4 5 5]'); +***** assert (test (C), logical ([1 0 0 0 0 0 0 0 0 0]')) +***** assert (test (C, 2), logical ([0 1 1 1 0 0 0 0 0 0]')) +***** assert (test (C, 3), logical ([0 0 0 0 1 0 1 0 0 0]')) +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/@cvpartition/display.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/display.m ***** test - r = invgrnd (1, [1, 0, -1]); - assert (r([2:3]), [NaN, NaN]) -***** assert (class (invgrnd (1, 0)), "double") -***** assert (class (invgrnd (1, single (0))), "single") -***** assert (class (invgrnd (1, single ([0 0]))), "single") -***** assert (class (invgrnd (1, single (1))), "single") -***** assert (class (invgrnd (1, single ([1 1]))), "single") -***** assert (class (invgrnd (single (1), 1)), "single") -***** assert (class (invgrnd (single ([1 1]), 1)), "single") -***** error invgrnd () -***** error invgrnd (1) -***** error ... - invgrnd (ones (3), ones (2)) -***** error ... - invgrnd (ones (2), ones (3)) -***** error invgrnd (i, 2, 3) -***** error invgrnd (1, i, 3) -***** error ... - invgrnd (1, 2, -1) -***** error ... - invgrnd (1, 2, 1.2) -***** error ... - invgrnd (1, 2, ones (2)) -***** error ... - invgrnd (1, 2, [2 -1 2]) -***** error ... - invgrnd (1, 2, [2 0 2.5]) -***** error ... - invgrnd (1, 2, 2, -1, 5) -***** error ... - invgrnd (1, 2, 2, 1.5, 5) -***** error ... - invgrnd (2, ones (2), 3) -***** error ... - invgrnd (2, ones (2), [3, 2]) -***** error ... - invgrnd (2, ones (2), 3, 2) -35 tests, 35 passed, 0 known failure, 0 skipped -[inst/dist_fun/tlscdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tlscdf.m -***** demo - ## Plot various CDFs from the location-scale Student's T distribution - x = -8:0.01:8; - p1 = tlscdf (x, 0, 1, 1); - p2 = tlscdf (x, 0, 2, 2); - p3 = tlscdf (x, 3, 2, 5); - p4 = tlscdf (x, -1, 3, Inf); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-m") - grid on - xlim ([-8, 8]) - ylim ([0, 1]) - legend ({"mu = 0, sigma = 1, nu = 1", "mu = 0, sigma = 2, nu = 2", ... - "mu = 3, sigma = 2, nu = 5", 'mu = -1, sigma = 3, nu = \infty'}, ... - "location", "northwest") - title ("Location-scale Student's T CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x,y - x = [-Inf 0 1 Inf]; - y = [0 1/2 3/4 1]; -***** assert (tlscdf (x, 0, 1, ones (1,4)), y, eps) -***** assert (tlscdf (x, 0, 1, 1), y, eps) -***** assert (tlscdf (x, 0, 1, [0 1 NaN 1]), [NaN 1/2 NaN 1], eps) -***** assert (tlscdf ([x(1:2) NaN x(4)], 0, 1, 1), [y(1:2) NaN y(4)], eps) -***** assert (tlscdf (2, 0, 1, 3, "upper"), 0.0697, 1e-4) -***** assert (tlscdf (205, 0, 1, 5, "upper"), 2.6206e-11, 1e-14) -***** assert (tlscdf ([x, NaN], 0, 1, 1), [y, NaN], eps) -***** assert (tlscdf (single ([x, NaN]), 0, 1, 1), single ([y, NaN]), eps ("single")) -***** assert (tlscdf ([x, NaN], single (0), 1, 1), single ([y, NaN]), eps ("single")) -***** assert (tlscdf ([x, NaN], 0, single (1), 1), single ([y, NaN]), eps ("single")) -***** assert (tlscdf ([x, NaN], 0, 1, single (1)), single ([y, NaN]), eps ("single")) -***** error tlscdf () -***** error tlscdf (1) -***** error tlscdf (1, 2) -***** error tlscdf (1, 2, 3) -***** error tlscdf (1, 2, 3, 4, "uper") -***** error tlscdf (1, 2, 3, 4, 5) -***** error ... - tlscdf (ones (3), ones (2), 1, 1) -***** error ... - tlscdf (ones (3), 1, ones (2), 1) -***** error ... - tlscdf (ones (3), 1, 1, ones (2)) -***** error ... - tlscdf (ones (3), ones (2), 1, 1, "upper") -***** error ... - tlscdf (ones (3), 1, ones (2), 1, "upper") -***** error ... - tlscdf (ones (3), 1, 1, ones (2), "upper") -***** error tlscdf (i, 2, 1, 1) -***** error tlscdf (2, i, 1, 1) -***** error tlscdf (2, 1, i, 1) -***** error tlscdf (2, 1, 1, i) -27 tests, 27 passed, 0 known failure, 0 skipped -[inst/dist_fun/raylinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/raylinv.m -***** demo - ## Plot various iCDFs from the Rayleigh distribution - p = 0.001:0.001:0.999; - x1 = raylinv (p, 0.5); - x2 = raylinv (p, 1); - x3 = raylinv (p, 2); - x4 = raylinv (p, 3); - x5 = raylinv (p, 4); - plot (p, x1, "-b", p, x2, "g", p, x3, "-r", p, x4, "-m", p, x5, "-k") - grid on - ylim ([0, 10]) - legend ({"σ = 0,5", "σ = 1", "σ = 2", ... - "σ = 3", "σ = 4"}, "location", "northwest") - title ("Rayleigh iCDF") - xlabel ("probability") - ylabel ("values in x") + C = cvpartition (ones (10, 1), "KFold", 5); + s = evalc ("display (C)"); + sout = "K-fold cross validation partition"; + assert (strcmpi (s(1:length (sout)), sout), true); ***** test - p = 0:0.1:0.5; - sigma = 1:6; - x = raylinv (p, sigma); - expected_x = [0.0000, 0.9181, 2.0041, 3.3784, 5.0538, 7.0645]; - assert (x, expected_x, 0.001); + C = cvpartition (ones (10, 1), "HoldOut", 5); + s = evalc ("display (C)"); + sout = "HoldOut cross validation partition"; + assert (strcmpi (s(1:length (sout)), sout), true); ***** test - p = 0:0.1:0.5; - x = raylinv (p, 0.5); - expected_x = [0.0000, 0.2295, 0.3340, 0.4223, 0.5054, 0.5887]; - assert (x, expected_x, 0.001); -***** error raylinv () -***** error raylinv (1) -***** error ... - raylinv (ones (3), ones (2)) -***** error ... - raylinv (ones (2), ones (3)) -***** error raylinv (i, 2) -***** error raylinv (2, i) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fun/chi2pdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/chi2pdf.m -***** demo - ## Plot various PDFs from the chi-squared distribution - x = 0:0.01:8; - y1 = chi2pdf (x, 1); - y2 = chi2pdf (x, 2); - y3 = chi2pdf (x, 3); - y4 = chi2pdf (x, 4); - y5 = chi2pdf (x, 6); - y6 = chi2pdf (x, 9); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", ... - x, y4, "-c", x, y5, "-m", x, y6, "-y") - grid on - xlim ([0, 8]) - ylim ([0, 0.5]) - legend ({"df = 1", "df = 2", "df = 3", ... - "df = 4", "df = 6", "df = 9"}, "location", "northeast") - title ("Chi-squared PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-1 0 0.5 1 Inf]; - y = [0, 1/2 * exp(-x(2:5)/2)]; -***** assert (chi2pdf (x, 2*ones (1,5)), y) -***** assert (chi2pdf (x, 2), y) -***** assert (chi2pdf (x, 2*[1 0 NaN 1 1]), [y(1) NaN NaN y(4:5)]) -***** assert (chi2pdf ([x, NaN], 2), [y, NaN]) -***** assert (chi2pdf (single ([x, NaN]), 2), single ([y, NaN])) -***** assert (chi2pdf ([x, NaN], single (2)), single ([y, NaN])) -***** error chi2pdf () -***** error chi2pdf (1) -***** error chi2pdf (1,2,3) -***** error ... - chi2pdf (ones (3), ones (2)) -***** error ... - chi2pdf (ones (2), ones (3)) -***** error chi2pdf (i, 2) -***** error chi2pdf (2, i) -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_fun/mvnrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvnrnd.m -***** error mvnrnd () -***** error mvnrnd ([2, 3, 4]) -***** error mvnrnd (ones (2, 2, 2), ones (1, 2, 3, 4)) -***** error mvnrnd (ones (1, 3), ones (1, 2, 3, 4)) -***** assert (size (mvnrnd ([2, 3, 4], [2, 2, 2])), [1, 3]) -***** assert (size (mvnrnd ([2, 3, 4], [2, 2, 2], 10)), [10, 3]) + C = cvpartition (ones (10, 1), "LeaveOut", 5); + s = evalc ("display (C)"); + sout = "Leave-One-Out cross validation partition"; + assert (strcmpi (s(1:length (sout)), sout), true); +***** test + C = cvpartition (ones (10, 1), "resubstitution", 5); + s = evalc ("display (C)"); + sout = "Resubstitution cross validation partition"; + assert (strcmpi (s(1:length (sout)), sout), true); +***** test + C = cvpartition (ones (10, 1), "Given", 5); + s = evalc ("display (C)"); + sout = "Given cross validation partition"; + assert (strcmpi (s(1:length (sout)), sout), true); +***** error display () 6 tests, 6 passed, 0 known failure, 0 skipped -[inst/dist_fun/mvtcdfqmc.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvtcdfqmc.m -***** error mvtcdfqmc (1, 2, 3); -***** error mvtcdfqmc (1, 2, 3, 4, 5, 6, 7, 8); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/dist_fun/trirnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/trirnd.m -***** assert (size (trirnd (1, 1.5, 2)), [1, 1]) -***** assert (size (trirnd (1 * ones (2, 1), 1.5, 2)), [2, 1]) -***** assert (size (trirnd (1 * ones (2, 2), 1.5, 2)), [2, 2]) -***** assert (size (trirnd (1, 1.5 * ones (2, 1), 2)), [2, 1]) -***** assert (size (trirnd (1, 1.5 * ones (2, 2), 2)), [2, 2]) -***** assert (size (trirnd (1, 1.5, 2 * ones (2, 1))), [2, 1]) -***** assert (size (trirnd (1, 1.5, 2 * ones (2, 2))), [2, 2]) -***** assert (size (trirnd (1, 1.5, 2, 3)), [3, 3]) -***** assert (size (trirnd (1, 1.5, 2, [4, 1])), [4, 1]) -***** assert (size (trirnd (1, 1.5, 2, 4, 1)), [4, 1]) -***** assert (class (trirnd (1, 1.5, 2)), "double") -***** assert (class (trirnd (single (1), 1.5, 2)), "single") -***** assert (class (trirnd (single ([1, 1]), 1.5, 2)), "single") -***** assert (class (trirnd (1, single (1.5), 2)), "single") -***** assert (class (trirnd (1, single ([1.5, 1.5]), 2)), "single") -***** assert (class (trirnd (1, 1.5, single (1.5))), "single") -***** assert (class (trirnd (1, 1.5, single ([2, 2]))), "single") -***** error trirnd () -***** error trirnd (1) -***** error trirnd (1, 2) -***** error ... - trirnd (ones (3), 5 * ones (2), ones (2)) -***** error ... - trirnd (ones (2), 5 * ones (3), ones (2)) -***** error ... - trirnd (ones (2), 5 * ones (2), ones (3)) -***** error trirnd (i, 5, 3) -***** error trirnd (1, 5+i, 3) -***** error trirnd (1, 5, i) -***** error ... - trirnd (1, 5, 3, -1) -***** error ... - trirnd (1, 5, 3, 1.2) -***** error ... - trirnd (1, 5, 3, ones (2)) -***** error ... - trirnd (1, 5, 3, [2 -1 2]) -***** error ... - trirnd (1, 5, 3, [2 0 2.5]) -***** error ... - trirnd (1, 5, 3, 2, -1, 5) -***** error ... - trirnd (1, 5, 3, 2, 1.5, 5) -***** error ... - trirnd (2, 5 * ones (2), 2, 3) -***** error ... - trirnd (2, 5 * ones (2), 2, [3, 2]) -***** error ... - trirnd (2, 5 * ones (2), 2, 3, 2) -36 tests, 36 passed, 0 known failure, 0 skipped -[inst/dist_fun/nakacdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nakacdf.m -***** demo - ## Plot various CDFs from the Nakagami distribution - x = 0:0.01:3; - p1 = nakacdf (x, 0.5, 1); - p2 = nakacdf (x, 1, 1); - p3 = nakacdf (x, 1, 2); - p4 = nakacdf (x, 1, 3); - p5 = nakacdf (x, 2, 1); - p6 = nakacdf (x, 2, 2); - p7 = nakacdf (x, 5, 1); - plot (x, p1, "-r", x, p2, "-g", x, p3, "-y", x, p4, "-m", ... - x, p5, "-k", x, p6, "-b", x, p7, "-c") - grid on - xlim ([0, 3]) - legend ({"μ = 0.5, ω = 1", "μ = 1, ω = 1", "μ = 1, ω = 2", ... - "μ = 1, ω = 3", "μ = 2, ω = 1", "μ = 2, ω = 2", ... - "μ = 5, ω = 1"}, "location", "southeast") - title ("Nakagami CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y - x = [-1, 0, 1, 2, Inf]; - y = [0, 0, 0.63212055882855778, 0.98168436111126578, 1]; -***** assert (nakacdf (x, ones (1,5), ones (1,5)), y, eps) -***** assert (nakacdf (x, 1, 1), y, eps) -***** assert (nakacdf (x, [1, 1, NaN, 1, 1], 1), [y(1:2), NaN, y(4:5)]) -***** assert (nakacdf (x, 1, [1, 1, NaN, 1, 1]), [y(1:2), NaN, y(4:5)]) -***** assert (nakacdf ([x, NaN], 1, 1), [y, NaN], eps) -***** assert (nakacdf (single ([x, NaN]), 1, 1), single ([y, NaN]), eps("single")) -***** assert (nakacdf ([x, NaN], single (1), 1), single ([y, NaN]), eps("single")) -***** assert (nakacdf ([x, NaN], 1, single (1)), single ([y, NaN]), eps("single")) -***** error nakacdf () -***** error nakacdf (1) -***** error nakacdf (1, 2) -***** error nakacdf (1, 2, 3, "tail") -***** error nakacdf (1, 2, 3, 4) -***** error ... - nakacdf (ones (3), ones (2), ones (2)) -***** error ... - nakacdf (ones (2), ones (3), ones (2)) -***** error ... - nakacdf (ones (2), ones (2), ones (3)) -***** error nakacdf (i, 2, 2) -***** error nakacdf (2, i, 2) -***** error nakacdf (2, 2, i) -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/dist_fun/cauchypdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/cauchypdf.m -***** demo - ## Plot various PDFs from the Cauchy distribution - x = -5:0.01:5; - y1 = cauchypdf (x, 0, 0.5); - y2 = cauchypdf (x, 0, 1); - y3 = cauchypdf (x, 0, 2); - y4 = cauchypdf (x, -2, 1); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") - grid on - xlim ([-5, 5]) - ylim ([0, 0.7]) - legend ({"x0 = 0, γ = 0.5", "x0 = 0, γ = 1", ... - "x0 = 0, γ = 2", "x0 = -2, γ = 1"}, "location", "northeast") - title ("Cauchy PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-1 0 0.5 1 2]; - y = 1/pi * ( 2 ./ ((x-1).^2 + 2^2) ); -***** assert (cauchypdf (x, ones (1,5), 2*ones (1,5)), y) -***** assert (cauchypdf (x, 1, 2*ones (1,5)), y) -***** assert (cauchypdf (x, ones (1,5), 2), y) -***** assert (cauchypdf (x, [-Inf 1 NaN 1 Inf], 2), [NaN y(2) NaN y(4) NaN]) -***** assert (cauchypdf (x, 1, 2*[0 1 NaN 1 Inf]), [NaN y(2) NaN y(4) NaN]) -***** assert (cauchypdf ([x, NaN], 1, 2), [y, NaN]) -***** assert (cauchypdf (single ([x, NaN]), 1, 2), single ([y, NaN]), eps ("single")) -***** assert (cauchypdf ([x, NaN], single (1), 2), single ([y, NaN]), eps ("single")) -***** assert (cauchypdf ([x, NaN], 1, single (2)), single ([y, NaN]), eps ("single")) +[inst/@cvpartition/get.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/get.m +***** shared C + C = cvpartition (ones (10, 1), "KFold", 5); +***** assert (get (C, "NumObservations"), 10); +***** assert (get (C, "NumTestSets"), 5); +***** assert (get (C, "TrainSize"), ones(5,1) * 8); +***** assert (get (C, "TestSize"), ones (5,1) * 2); +***** assert (get (C, "inds"), [1 1 2 2 3 3 4 4 5 5]'); +***** assert (get (C, "Type"), "kfold"); +***** error get (C, "some") +***** error get (C, 25) +***** error get (C, {25}) +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/@cvpartition/set.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/@cvpartition/set.m +***** shared C + C = cvpartition (ones (10, 1), "KFold", 5); ***** test - x = rand (10, 1); - assert (cauchypdf (x, 0, 1), tpdf (x, 1), eps); -***** error cauchypdf () -***** error cauchypdf (1) -***** error ... - cauchypdf (1, 2) -***** error cauchypdf (1, 2, 3, 4) -***** error ... - cauchypdf (ones (3), ones (2), ones(2)) -***** error ... - cauchypdf (ones (2), ones (3), ones(2)) -***** error ... - cauchypdf (ones (2), ones (2), ones(3)) -***** error cauchypdf (i, 4, 3) -***** error cauchypdf (1, i, 3) -***** error cauchypdf (1, 4, i) -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/dist_fun/normrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/normrnd.m -***** assert (size (normrnd (1, 1)), [1 1]) -***** assert (size (normrnd (1, ones (2,1))), [2, 1]) -***** assert (size (normrnd (1, ones (2,2))), [2, 2]) -***** assert (size (normrnd (ones (2,1), 1)), [2, 1]) -***** assert (size (normrnd (ones (2,2), 1)), [2, 2]) -***** assert (size (normrnd (1, 1, 3)), [3, 3]) -***** assert (size (normrnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (normrnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (normrnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (normrnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (normrnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (normrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (normrnd (1, 1)), "double") -***** assert (class (normrnd (1, single (1))), "single") -***** assert (class (normrnd (1, single ([1, 1]))), "single") -***** assert (class (normrnd (single (1), 1)), "single") -***** assert (class (normrnd (single ([1, 1]), 1)), "single") -***** error normrnd () -***** error normrnd (1) -***** error ... - normrnd (ones (3), ones (2)) -***** error ... - normrnd (ones (2), ones (3)) -***** error normrnd (i, 2, 3) -***** error normrnd (1, i, 3) -***** error ... - normrnd (1, 2, -1) -***** error ... - normrnd (1, 2, 1.2) -***** error ... - normrnd (1, 2, ones (2)) -***** error ... - normrnd (1, 2, [2 -1 2]) -***** error ... - normrnd (1, 2, [2 0 2.5]) -***** error ... - normrnd (1, 2, 2, -1, 5) -***** error ... - normrnd (1, 2, 2, 1.5, 5) -***** error ... - normrnd (2, ones (2), 3) -***** error ... - normrnd (2, ones (2), [3, 2]) -***** error ... - normrnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/norminv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/norminv.m + Cnew = set (C, "inds", [1 2 2 2 3 4 3 4 5 5]'); + assert (get (Cnew, "inds"), [1 2 2 2 3 4 3 4 5 5]'); +***** error set (C) +***** error set (C, "NumObservations") +***** error set (C, "some", 15) +***** error set (C, 15, 15) +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/dist_fun/finv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/finv.m ***** demo - ## Plot various iCDFs from the normal distribution + ## Plot various iCDFs from the F distribution p = 0.001:0.001:0.999; - x1 = norminv (p, 0, 0.5); - x2 = norminv (p, 0, 1); - x3 = norminv (p, 0, 2); - x4 = norminv (p, -2, 0.8); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") + x1 = finv (p, 1, 1); + x2 = finv (p, 2, 1); + x3 = finv (p, 5, 2); + x4 = finv (p, 10, 1); + x5 = finv (p, 100, 100); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-m") grid on - ylim ([-5, 5]) - legend ({"μ = 0, σ = 0.5", "μ = 0, σ = 1", ... - "μ = 0, σ = 2", "μ = -2, σ = 0.8"}, "location", "northwest") - title ("Normal iCDF") + ylim ([0, 4]) + legend ({"df1 = 1, df2 = 2", "df1 = 2, df2 = 1", ... + "df1 = 5, df2 = 2", "df1 = 10, df2 = 1", ... + "df1 = 100, df2 = 100"}, "location", "northwest") + title ("F iCDF") xlabel ("probability") ylabel ("values in x") ***** shared p p = [-1 0 0.5 1 2]; -***** assert (norminv (p, ones (1,5), ones (1,5)), [NaN -Inf 1 Inf NaN]) -***** assert (norminv (p, 1, ones (1,5)), [NaN -Inf 1 Inf NaN]) -***** assert (norminv (p, ones (1,5), 1), [NaN -Inf 1 Inf NaN]) -***** assert (norminv (p, [1 -Inf NaN Inf 1], 1), [NaN NaN NaN NaN NaN]) -***** assert (norminv (p, 1, [1 0 NaN Inf 1]), [NaN NaN NaN NaN NaN]) -***** assert (norminv ([p(1:2) NaN p(4:5)], 1, 1), [NaN -Inf NaN Inf NaN]) -***** assert (norminv (p), probit (p)) -***** assert (norminv (0.31254), probit (0.31254)) -***** assert (norminv ([p, NaN], 1, 1), [NaN -Inf 1 Inf NaN NaN]) -***** assert (norminv (single ([p, NaN]), 1, 1), single ([NaN -Inf 1 Inf NaN NaN])) -***** assert (norminv ([p, NaN], single (1), 1), single ([NaN -Inf 1 Inf NaN NaN])) -***** assert (norminv ([p, NaN], 1, single (1)), single ([NaN -Inf 1 Inf NaN NaN])) -***** error norminv () -***** error ... - norminv (ones (3), ones (2), ones (2)) -***** error ... - norminv (ones (2), ones (3), ones (2)) -***** error ... - norminv (ones (2), ones (2), ones (3)) -***** error norminv (i, 2, 2) -***** error norminv (2, i, 2) -***** error norminv (2, 2, i) +***** assert (finv (p, 2*ones (1,5), 2*ones (1,5)), [NaN 0 1 Inf NaN]) +***** assert (finv (p, 2, 2*ones (1,5)), [NaN 0 1 Inf NaN]) +***** assert (finv (p, 2*ones (1,5), 2), [NaN 0 1 Inf NaN]) +***** assert (finv (p, [2 -Inf NaN Inf 2], 2), [NaN NaN NaN NaN NaN]) +***** assert (finv (p, 2, [2 -Inf NaN Inf 2]), [NaN NaN NaN NaN NaN]) +***** assert (finv ([p(1:2) NaN p(4:5)], 2, 2), [NaN 0 NaN Inf NaN]) +***** assert (finv ([p, NaN], 2, 2), [NaN 0 1 Inf NaN NaN]) +***** assert (finv (single ([p, NaN]), 2, 2), single ([NaN 0 1 Inf NaN NaN])) +***** assert (finv ([p, NaN], single (2), 2), single ([NaN 0 1 Inf NaN NaN])) +***** assert (finv ([p, NaN], 2, single (2)), single ([NaN 0 1 Inf NaN NaN])) +***** error finv () +***** error finv (1) +***** error finv (1,2) +***** error ... + finv (ones (3), ones (2), ones (2)) +***** error ... + finv (ones (2), ones (3), ones (2)) +***** error ... + finv (ones (2), ones (2), ones (3)) +***** error finv (i, 2, 2) +***** error finv (2, i, 2) +***** error finv (2, 2, i) 19 tests, 19 passed, 0 known failure, 0 skipped -[inst/dist_fun/raylrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/raylrnd.m -***** assert (size (raylrnd (2)), [1, 1]) -***** assert (size (raylrnd (ones (2,1))), [2, 1]) -***** assert (size (raylrnd (ones (2,2))), [2, 2]) -***** assert (size (raylrnd (1, 3)), [3, 3]) -***** assert (size (raylrnd (1, [4 1])), [4, 1]) -***** assert (size (raylrnd (1, 4, 1)), [4, 1]) -***** assert (size (raylrnd (1, 4, 1)), [4, 1]) -***** assert (size (raylrnd (1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (raylrnd (1, 0, 1)), [0, 1]) -***** assert (size (raylrnd (1, 1, 0)), [1, 0]) -***** assert (size (raylrnd (1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (raylrnd (0, 1, 1), NaN) -***** assert (raylrnd ([0, 0, 0], [1, 3]), [NaN, NaN, NaN]) -***** assert (class (raylrnd (2)), "double") -***** assert (class (raylrnd (single (2))), "single") -***** assert (class (raylrnd (single ([2 2]))), "single") -***** error raylrnd () -***** error raylrnd (i) -***** error ... - raylrnd (1, -1) -***** error ... - raylrnd (1, 1.2) -***** error ... - raylrnd (1, ones (2)) -***** error ... - raylrnd (1, [2 -1 2]) -***** error ... - raylrnd (1, [2 0 2.5]) -***** error ... - raylrnd (ones (2), ones (2)) -***** error ... - raylrnd (1, 2, -1, 5) -***** error ... - raylrnd (1, 2, 1.5, 5) -***** error raylrnd (ones (2,2), 3) -***** error raylrnd (ones (2,2), [3, 2]) -***** error raylrnd (ones (2,2), 2, 3) -29 tests, 29 passed, 0 known failure, 0 skipped -[inst/dist_fun/bisainv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/bisainv.m -***** demo - ## Plot various iCDFs from the Birnbaum-Saunders distribution - p = 0.001:0.001:0.999; - x1 = bisainv (p, 1, 0.5); - x2 = bisainv (p, 1, 1); - x3 = bisainv (p, 1, 2); - x4 = bisainv (p, 1, 5); - x5 = bisainv (p, 1, 10); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-m") - grid on - ylim ([0, 10]) - legend ({"β = 1, γ = 0.5", "β = 1, γ = 1", "β = 1, γ = 2", ... - "β = 1, γ = 5", "β = 1, γ = 10"}, "location", "northwest") - title ("Birnbaum-Saunders iCDF") - xlabel ("probability") - ylabel ("values in x") -***** demo - ## Plot various iCDFs from the Birnbaum-Saunders distribution - p = 0.001:0.001:0.999; - x1 = bisainv (p, 1, 0.3); - x2 = bisainv (p, 2, 0.3); - x3 = bisainv (p, 1, 0.5); - x4 = bisainv (p, 3, 0.5); - x5 = bisainv (p, 5, 0.5); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-m") - grid on - ylim ([0, 10]) - legend ({"β = 1, γ = 0.3", "β = 2, γ = 0.3", "β = 1, γ = 0.5", ... - "β = 3, γ = 0.5", "β = 5, γ = 0.5"}, "location", "northwest") - title ("Birnbaum-Saunders iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p, y, f - f = @(p,b,c) (b * (c * norminv (p) + sqrt (4 + (c * norminv(p))^2))^2) / 4; - p = [-1, 0, 1/4, 1/2, 1, 2]; - y = [NaN, 0, f(1/4, 1, 1), 1, Inf, NaN]; -***** assert (bisainv (p, ones (1,6), ones (1,6)), y) -***** assert (bisainv (p, 1, ones (1,6)), y) -***** assert (bisainv (p, ones (1,6), 1), y) -***** assert (bisainv (p, 1, 1), y) -***** assert (bisainv (p, 1, [1, 1, 1, NaN, 1, 1]), [y(1:3), NaN, y(5:6)]) -***** assert (bisainv (p, [1, 1, 1, NaN, 1, 1], 1), [y(1:3), NaN, y(5:6)]) -***** assert (bisainv ([p, NaN], 1, 1), [y, NaN]) -***** assert (bisainv (single ([p, NaN]), 1, 1), single ([y, NaN]), eps ("single")) -***** assert (bisainv ([p, NaN], 1, single (1)), single ([y, NaN]), eps ("single")) -***** assert (bisainv ([p, NaN], single (1), 1), single ([y, NaN]), eps ("single")) -***** error bisainv () -***** error bisainv (1) -***** error bisainv (1, 2) -***** error bisainv (1, 2, 3, 4) -***** error ... - bisainv (ones (3), ones (2), ones(2)) -***** error ... - bisainv (ones (2), ones (3), ones(2)) -***** error ... - bisainv (ones (2), ones (2), ones(3)) -***** error bisainv (i, 4, 3) -***** error bisainv (1, i, 3) -***** error bisainv (1, 4, i) -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/dist_fun/ncx2rnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncx2rnd.m -***** assert (size (ncx2rnd (1, 1)), [1 1]) -***** assert (size (ncx2rnd (1, ones (2,1))), [2, 1]) -***** assert (size (ncx2rnd (1, ones (2,2))), [2, 2]) -***** assert (size (ncx2rnd (ones (2,1), 1)), [2, 1]) -***** assert (size (ncx2rnd (ones (2,2), 1)), [2, 2]) -***** assert (size (ncx2rnd (1, 1, 3)), [3, 3]) -***** assert (size (ncx2rnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (ncx2rnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (ncx2rnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (ncx2rnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (ncx2rnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (ncx2rnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (ncx2rnd (1, 1)), "double") -***** assert (class (ncx2rnd (1, single (1))), "single") -***** assert (class (ncx2rnd (1, single ([1, 1]))), "single") -***** assert (class (ncx2rnd (single (1), 1)), "single") -***** assert (class (ncx2rnd (single ([1, 1]), 1)), "single") -***** error ncx2rnd () -***** error ncx2rnd (1) -***** error ... - ncx2rnd (ones (3), ones (2)) -***** error ... - ncx2rnd (ones (2), ones (3)) -***** error ncx2rnd (i, 2) -***** error ncx2rnd (1, i) -***** error ... - ncx2rnd (1, 2, -1) -***** error ... - ncx2rnd (1, 2, 1.2) -***** error ... - ncx2rnd (1, 2, ones (2)) -***** error ... - ncx2rnd (1, 2, [2 -1 2]) -***** error ... - ncx2rnd (1, 2, [2 0 2.5]) -***** error ... - ncx2rnd (1, 2, 2, -1, 5) -***** error ... - ncx2rnd (1, 2, 2, 1.5, 5) -***** error ... - ncx2rnd (2, ones (2), 3) -***** error ... - ncx2rnd (2, ones (2), [3, 2]) -***** error ... - ncx2rnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/hygecdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hygecdf.m -***** demo - ## Plot various CDFs from the hypergeometric distribution - x = 0:60; - p1 = hygecdf (x, 500, 50, 100); - p2 = hygecdf (x, 500, 60, 200); - p3 = hygecdf (x, 500, 70, 300); - plot (x, p1, "*b", x, p2, "*g", x, p3, "*r") - grid on - xlim ([0, 60]) - legend ({"m = 500, k = 50, n = 100", "m = 500, k = 60, n = 200", ... - "m = 500, k = 70, n = 300"}, "location", "southeast") - title ("Hypergeometric CDF") - xlabel ("values in x (number of successes)") - ylabel ("probability") -***** shared x, y - x = [-1 0 1 2 3]; - y = [0 1/6 5/6 1 1]; -***** assert (hygecdf (x, 4*ones (1,5), 2, 2), y, 5*eps) -***** assert (hygecdf (x, 4, 2*ones (1,5), 2), y, 5*eps) -***** assert (hygecdf (x, 4, 2, 2*ones (1,5)), y, 5*eps) -***** assert (hygecdf (x, 4*[1 -1 NaN 1.1 1], 2, 2), [y(1) NaN NaN NaN y(5)], 5*eps) -***** assert (hygecdf (x, 4*[1 -1 NaN 1.1 1], 2, 2, "upper"), ... - [y(5) NaN NaN NaN y(1)], 5*eps) -***** assert (hygecdf (x, 4, 2*[1 -1 NaN 1.1 1], 2), [y(1) NaN NaN NaN y(5)], 5*eps) -***** assert (hygecdf (x, 4, 2*[1 -1 NaN 1.1 1], 2, "upper"), ... - [y(5) NaN NaN NaN y(1)], 5*eps) -***** assert (hygecdf (x, 4, 5, 2), [NaN NaN NaN NaN NaN]) -***** assert (hygecdf (x, 4, 2, 2*[1 -1 NaN 1.1 1]), [y(1) NaN NaN NaN y(5)], 5*eps) -***** assert (hygecdf (x, 4, 2, 2*[1 -1 NaN 1.1 1], "upper"), ... - [y(5) NaN NaN NaN y(1)], 5*eps) -***** assert (hygecdf (x, 4, 2, 5), [NaN NaN NaN NaN NaN]) -***** assert (hygecdf ([x(1:2) NaN x(4:5)], 4, 2, 2), [y(1:2) NaN y(4:5)], 5*eps) -***** test - p = hygecdf (x, 10, [1 2 3 4 5], 2, "upper"); - assert (p, [1, 34/90, 2/30, 0, 0], 10*eps); -***** test - p = hygecdf (2*x, 10, [1 2 3 4 5], 2, "upper"); - assert (p, [1, 34/90, 0, 0, 0], 10*eps); -***** assert (hygecdf ([x, NaN], 4, 2, 2), [y, NaN], 5*eps) -***** assert (hygecdf (single ([x, NaN]), 4, 2, 2), single ([y, NaN]), ... - eps ("single")) -***** assert (hygecdf ([x, NaN], single (4), 2, 2), single ([y, NaN]), ... - eps ("single")) -***** assert (hygecdf ([x, NaN], 4, single (2), 2), single ([y, NaN]), ... - eps ("single")) -***** assert (hygecdf ([x, NaN], 4, 2, single (2)), single ([y, NaN]), ... - eps ("single")) -***** error hygecdf () -***** error hygecdf (1) -***** error hygecdf (1,2) -***** error hygecdf (1,2,3) -***** error hygecdf (1,2,3,4,5) -***** error hygecdf (1,2,3,4,"uper") -***** error ... - hygecdf (ones (2), ones (3), 1, 1) -***** error ... - hygecdf (1, ones (2), ones (3), 1) -***** error ... - hygecdf (1, 1, ones (2), ones (3)) -***** error hygecdf (i, 2, 2, 2) -***** error hygecdf (2, i, 2, 2) -***** error hygecdf (2, 2, i, 2) -***** error hygecdf (2, 2, 2, i) -32 tests, 32 passed, 0 known failure, 0 skipped -[inst/dist_fun/binocdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/binocdf.m +[inst/dist_fun/hygernd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hygernd.m +***** assert (size (hygernd (4,2,2)), [1, 1]) +***** assert (size (hygernd (4*ones (2,1), 2,2)), [2, 1]) +***** assert (size (hygernd (4*ones (2,2), 2,2)), [2, 2]) +***** assert (size (hygernd (4, 2*ones (2,1), 2)), [2, 1]) +***** assert (size (hygernd (4, 2*ones (2,2), 2)), [2, 2]) +***** assert (size (hygernd (4, 2, 2*ones (2,1))), [2, 1]) +***** assert (size (hygernd (4, 2, 2*ones (2,2))), [2, 2]) +***** assert (size (hygernd (4, 2, 2, 3)), [3, 3]) +***** assert (size (hygernd (4, 2, 2, [4 1])), [4, 1]) +***** assert (size (hygernd (4, 2, 2, 4, 1)), [4, 1]) +***** assert (class (hygernd (4,2,2)), "double") +***** assert (class (hygernd (single (4),2,2)), "single") +***** assert (class (hygernd (single ([4 4]),2,2)), "single") +***** assert (class (hygernd (4,single (2),2)), "single") +***** assert (class (hygernd (4,single ([2 2]),2)), "single") +***** assert (class (hygernd (4,2,single (2))), "single") +***** assert (class (hygernd (4,2,single ([2 2]))), "single") +***** error hygernd () +***** error hygernd (1) +***** error hygernd (1, 2) +***** error ... + hygernd (ones (3), ones (2), ones (2)) +***** error ... + hygernd (ones (2), ones (3), ones (2)) +***** error ... + hygernd (ones (2), ones (2), ones (3)) +***** error hygernd (i, 2, 3) +***** error hygernd (1, i, 3) +***** error hygernd (1, 2, i) +***** error ... + hygernd (1, 2, 3, -1) +***** error ... + hygernd (1, 2, 3, 1.2) +***** error ... + hygernd (1, 2, 3, ones (2)) +***** error ... + hygernd (1, 2, 3, [2 -1 2]) +***** error ... + hygernd (1, 2, 3, [2 0 2.5]) +***** error ... + hygernd (1, 2, 3, 2, -1, 5) +***** error ... + hygernd (1, 2, 3, 2, 1.5, 5) +***** error ... + hygernd (2, ones (2), 2, 3) +***** error ... + hygernd (2, ones (2), 2, [3, 2]) +***** error ... + hygernd (2, ones (2), 2, 3, 2) +36 tests, 36 passed, 0 known failure, 0 skipped +[inst/dist_fun/gumbelpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gumbelpdf.m ***** demo - ## Plot various CDFs from the binomial distribution - x = 0:40; - p1 = binocdf (x, 20, 0.5); - p2 = binocdf (x, 20, 0.7); - p3 = binocdf (x, 40, 0.5); - plot (x, p1, "*b", x, p2, "*g", x, p3, "*r") + ## Plot various PDFs from the Extreme value distribution + x = -5:0.001:20; + y1 = gumbelpdf (x, 0.5, 2); + y2 = gumbelpdf (x, 1.0, 2); + y3 = gumbelpdf (x, 1.5, 3); + y4 = gumbelpdf (x, 3.0, 4); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") grid on - legend ({"n = 20, ps = 0.5", "n = 20, ps = 0.7", ... - "n = 40, ps = 0.5"}, "location", "southeast") - title ("Binomial CDF") - xlabel ("values in x (number of successes)") - ylabel ("probability") -***** shared x, p, p1 - x = [-1 0 1 2 3]; - p = [0 1/4 3/4 1 1]; - p1 = 1 - p; -***** assert (binocdf (x, 2 * ones (1, 5), 0.5 * ones (1, 5)), p, eps) -***** assert (binocdf (x, 2, 0.5 * ones (1, 5)), p, eps) -***** assert (binocdf (x, 2 * ones (1, 5), 0.5), p, eps) -***** assert (binocdf (x, 2 * [0 -1 NaN 1.1 1], 0.5), [0 NaN NaN NaN 1]) -***** assert (binocdf (x, 2, 0.5 * [0 -1 NaN 3 1]), [0 NaN NaN NaN 1]) -***** assert (binocdf ([x(1:2) NaN x(4:5)], 2, 0.5), [p(1:2) NaN p(4:5)], eps) -***** assert (binocdf (99, 100, 0.1, "upper"), 1e-100, 1e-112); -***** assert (binocdf (x, 2 * ones (1, 5), 0.5*ones (1,5), "upper"), p1, eps) -***** assert (binocdf (x, 2, 0.5 * ones (1, 5), "upper"), p1, eps) -***** assert (binocdf (x, 2 * ones (1, 5), 0.5, "upper"), p1, eps) -***** assert (binocdf (x, 2 * [0 -1 NaN 1.1 1], 0.5, "upper"), [1 NaN NaN NaN 0]) -***** assert (binocdf (x, 2, 0.5 * [0 -1 NaN 3 1], "upper"), [1 NaN NaN NaN 0]) -***** assert (binocdf ([x(1:2) NaN x(4:5)], 2, 0.5, "upper"), [p1(1:2) NaN p1(4:5)]) -***** assert (binocdf ([x, NaN], 2, 0.5), [p, NaN], eps) -***** assert (binocdf (single ([x, NaN]), 2, 0.5), single ([p, NaN])) -***** assert (binocdf ([x, NaN], single (2), 0.5), single ([p, NaN])) -***** assert (binocdf ([x, NaN], 2, single (0.5)), single ([p, NaN])) -***** error binocdf () -***** error binocdf (1) -***** error binocdf (1, 2) -***** error binocdf (1, 2, 3, 4, 5) -***** error binocdf (1, 2, 3, "tail") -***** error binocdf (1, 2, 3, 4) -***** error ... - binocdf (ones (3), ones (2), ones (2)) -***** error ... - binocdf (ones (2), ones (3), ones (2)) -***** error ... - binocdf (ones (2), ones (2), ones (3)) -***** error binocdf (i, 2, 2) -***** error binocdf (2, i, 2) -***** error binocdf (2, 2, i) -29 tests, 29 passed, 0 known failure, 0 skipped + ylim ([0, 0.2]) + legend ({"μ = 0.5, β = 2", "μ = 1.0, β = 2", ... + "μ = 1.5, β = 3", "μ = 3.0, β = 4"}, "location", "northeast") + title ("Extreme value PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y0, y1 + x = [-5, 0, 1, 2, 3]; + y0 = [0, 0.3679, 0.2547, 0.1182, 0.0474]; + y1 = [0, 0.1794, 0.3679, 0.2547, 0.1182]; +***** assert (gumbelpdf (x), y0, 1e-4) +***** assert (gumbelpdf (x, zeros (1,5), ones (1,5)), y0, 1e-4) +***** assert (gumbelpdf (x, ones (1,5), ones (1,5)), y1, 1e-4) +***** error gumbelpdf () +***** error ... + gumbelpdf (ones (3), ones (2), ones (2)) +***** error gumbelpdf (i, 2, 2) +***** error gumbelpdf (2, i, 2) +***** error gumbelpdf (2, 2, i) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/dist_fun/unifinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unifinv.m +***** demo + ## Plot various iCDFs from the continuous uniform distribution + p = 0.001:0.001:0.999; + x1 = unifinv (p, 2, 5); + x2 = unifinv (p, 3, 9); + plot (p, x1, "-b", p, x2, "-g") + grid on + xlim ([0, 1]) + ylim ([0, 10]) + legend ({"a = 2, b = 5", "a = 3, b = 9"}, "location", "northwest") + title ("Continuous uniform iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p + p = [-1 0 0.5 1 2]; +***** assert (unifinv (p, ones (1,5), 2*ones (1,5)), [NaN 1 1.5 2 NaN]) +***** assert (unifinv (p, 0, 1), [NaN 1 1.5 2 NaN] - 1) +***** assert (unifinv (p, 1, 2*ones (1,5)), [NaN 1 1.5 2 NaN]) +***** assert (unifinv (p, ones (1,5), 2), [NaN 1 1.5 2 NaN]) +***** assert (unifinv (p, [1 2 NaN 1 1], 2), [NaN NaN NaN 2 NaN]) +***** assert (unifinv (p, 1, 2*[1 0 NaN 1 1]), [NaN NaN NaN 2 NaN]) +***** assert (unifinv ([p(1:2) NaN p(4:5)], 1, 2), [NaN 1 NaN 2 NaN]) +***** assert (unifinv ([p, NaN], 1, 2), [NaN 1 1.5 2 NaN NaN]) +***** assert (unifinv (single ([p, NaN]), 1, 2), single ([NaN 1 1.5 2 NaN NaN])) +***** assert (unifinv ([p, NaN], single (1), 2), single ([NaN 1 1.5 2 NaN NaN])) +***** assert (unifinv ([p, NaN], 1, single (2)), single ([NaN 1 1.5 2 NaN NaN])) +***** error unifinv () +***** error unifinv (1, 2) +***** error ... + unifinv (ones (3), ones (2), ones (2)) +***** error ... + unifinv (ones (2), ones (3), ones (2)) +***** error ... + unifinv (ones (2), ones (2), ones (3)) +***** error unifinv (i, 2, 2) +***** error unifinv (2, i, 2) +***** error unifinv (2, 2, i) +19 tests, 19 passed, 0 known failure, 0 skipped [inst/dist_fun/invgcdf.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/invgcdf.m ***** demo @@ -20817,201 +12463,279 @@ ***** error invgcdf (1, i, 3) ***** error invgcdf (1, 2, i) 25 tests, 25 passed, 0 known failure, 0 skipped -[inst/dist_fun/lognrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/lognrnd.m -***** assert (size (lognrnd (1, 1)), [1 1]) -***** assert (size (lognrnd (1, ones (2,1))), [2, 1]) -***** assert (size (lognrnd (1, ones (2,2))), [2, 2]) -***** assert (size (lognrnd (ones (2,1), 1)), [2, 1]) -***** assert (size (lognrnd (ones (2,2), 1)), [2, 2]) -***** assert (size (lognrnd (1, 1, 3)), [3, 3]) -***** assert (size (lognrnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (lognrnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (lognrnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (lognrnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (lognrnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (lognrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (lognrnd (1, 1)), "double") -***** assert (class (lognrnd (1, single (1))), "single") -***** assert (class (lognrnd (1, single ([1, 1]))), "single") -***** assert (class (lognrnd (single (1), 1)), "single") -***** assert (class (lognrnd (single ([1, 1]), 1)), "single") -***** error lognrnd () -***** error lognrnd (1) -***** error ... - lognrnd (ones (3), ones (2)) -***** error ... - lognrnd (ones (2), ones (3)) -***** error lognrnd (i, 2, 3) -***** error lognrnd (1, i, 3) -***** error ... - lognrnd (1, 2, -1) -***** error ... - lognrnd (1, 2, 1.2) -***** error ... - lognrnd (1, 2, ones (2)) -***** error ... - lognrnd (1, 2, [2 -1 2]) -***** error ... - lognrnd (1, 2, [2 0 2.5]) -***** error ... - lognrnd (1, 2, 2, -1, 5) -***** error ... - lognrnd (1, 2, 2, 1.5, 5) -***** error ... - lognrnd (2, ones (2), 3) -***** error ... - lognrnd (2, ones (2), [3, 2]) -***** error ... - lognrnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/mvnpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvnpdf.m +[inst/dist_fun/bvncdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/bvncdf.m ***** demo mu = [1, -1]; sigma = [0.9, 0.4; 0.4, 0.3]; [X1, X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); x = [X1(:), X2(:)]; - p = mvnpdf (x, mu, sigma); - surf (X1, X2, reshape (p, 25, 25)); -***** error y = mvnpdf (); -***** error y = mvnpdf ([]); -***** error y = mvnpdf (ones (3,3,3)); -***** error ... - y = mvnpdf (ones (10, 2), [4, 2, 3]); -***** error ... - y = mvnpdf (ones (10, 2), [4, 2; 3, 2]); -***** error ... - y = mvnpdf (ones (10, 2), ones (3, 3, 3)); -***** shared x, mu, sigma - x = [1, 2, 5, 4, 6]; - mu = [2, 0, -1, 1, 4]; - sigma = [2, 2, 2, 2, 2]; -***** assert (mvnpdf (x), 1.579343404440977e-20, 1e-30); -***** assert (mvnpdf (x, mu), 1.899325144348102e-14, 1e-25); -***** assert (mvnpdf (x, mu, sigma), 2.449062307156273e-09, 1e-20); -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/dist_fun/unidrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unidrnd.m -***** assert (size (unidrnd (2)), [1, 1]) -***** assert (size (unidrnd (ones (2,1))), [2, 1]) -***** assert (size (unidrnd (ones (2,2))), [2, 2]) -***** assert (size (unidrnd (1, 3)), [3, 3]) -***** assert (size (unidrnd (1, [4 1])), [4, 1]) -***** assert (size (unidrnd (1, 4, 1)), [4, 1]) -***** assert (size (unidrnd (1, 4, 1)), [4, 1]) -***** assert (size (unidrnd (1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (unidrnd (1, 0, 1)), [0, 1]) -***** assert (size (unidrnd (1, 1, 0)), [1, 0]) -***** assert (size (unidrnd (1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (unidrnd (0, 1, 1), NaN) -***** assert (unidrnd ([0, 0, 0], [1, 3]), [NaN, NaN, NaN]) -***** assert (class (unidrnd (2)), "double") -***** assert (class (unidrnd (single (2))), "single") -***** assert (class (unidrnd (single ([2 2]))), "single") -***** error unidrnd () -***** error unidrnd (i) -***** error ... - unidrnd (1, -1) -***** error ... - unidrnd (1, 1.2) -***** error ... - unidrnd (1, ones (2)) -***** error ... - unidrnd (1, [2 -1 2]) -***** error ... - unidrnd (1, [2 0 2.5]) -***** error ... - unidrnd (ones (2), ones (2)) -***** error ... - unidrnd (1, 2, -1, 5) -***** error ... - unidrnd (1, 2, 1.5, 5) -***** error unidrnd (ones (2,2), 3) -***** error unidrnd (ones (2,2), [3, 2]) -***** error unidrnd (ones (2,2), 2, 3) -29 tests, 29 passed, 0 known failure, 0 skipped -[inst/dist_fun/wishpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wishpdf.m -***** assert(wishpdf(4, 3, 3.1), 0.07702496, 1E-7); -***** assert(wishpdf([2 -0.3;-0.3 4], [1 0.3;0.3 1], 4), 0.004529741, 1E-7); -***** assert(wishpdf([6 2 5; 2 10 -5; 5 -5 25], [9 5 5; 5 10 -8; 5 -8 22], 5.1), 4.474865e-10, 1E-15); -***** error wishpdf () -***** error wishpdf (1, 2) -***** error wishpdf (1, 2, 0) -***** error wishpdf (1, 2) -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/dist_fun/plcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/plcdf.m -***** demo - ## Plot various CDFs from the Piecewise linear distribution - data = 0:0.01:10; - x1 = [0, 1, 3, 4, 7, 10]; - Fx1 = [0, 0.2, 0.5, 0.6, 0.7, 1]; - x2 = [0, 2, 5, 6, 7, 8]; - Fx2 = [0, 0.1, 0.3, 0.6, 0.9, 1]; - p1 = plcdf (data, x1, Fx1); - p2 = plcdf (data, x2, Fx2); - plot (data, p1, "-b", data, p2, "g") - grid on - ylim ([0, 1]) - xlim ([0, 10]) - legend ({"x1, Fx1", "x2, Fx2"}, "location", "southeast") - title ("Piecewise linear CDF") - xlabel ("values in data") - ylabel ("probability") -***** test - data = 0:0.2:1; - p = plcdf (data, [0, 1], [0, 1]); - assert (p, data); + p = bvncdf (x, mu, sigma); + Z = reshape (p, 25, 25); + surf (X1, X2, Z); + title ("Bivariate Normal Distribution"); + ylabel "X1" + xlabel "X2" ***** test - data = 0:0.2:1; - p = plcdf (data, [0, 2], [0, 1]); - assert (p, 0.5 * data); + mu = [1, -1]; + sigma = [0.9, 0.4; 0.4, 0.3]; + [X1,X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); + x = [X1(:), X2(:)]; + p = bvncdf (x, mu, sigma); + p_out = [0.00011878988774500, 0.00034404112322371, ... + 0.00087682502191813, 0.00195221905058185, ... + 0.00378235566873474, 0.00638175749734415, ... + 0.00943764224329656, 0.01239164888125426, ... + 0.01472750274376648, 0.01623228313374828]'; + assert (p([1:10]), p_out, 1e-16); ***** test - data = 0:0.2:1; - p = plcdf (data, [0, 1], [0, 0.5]); - assert (p, 0.5 * data); + mu = [1, -1]; + sigma = [0.9, 0.4; 0.4, 0.3]; + [X1,X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); + x = [X1(:), X2(:)]; + p = bvncdf (x, mu, sigma); + p_out = [0.8180695783608276, 0.8854485749482751, ... + 0.9308108777385832, 0.9579855743025508, ... + 0.9722897881414742, 0.9788150170059926, ... + 0.9813597788804785, 0.9821977956568989, ... + 0.9824283794464095, 0.9824809345614861]'; + assert (p([616:625]), p_out, 2e-16); +***** error bvncdf (randn (25,3), [], [1, 1; 1, 1]); +***** error bvncdf (randn (25,2), [], [1, 1; 1, 1]); +***** error bvncdf (randn (25,2), [], ones (3, 2)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/dist_fun/unidinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unidinv.m +***** demo + ## Plot various iCDFs from the discrete uniform distribution + p = 0.001:0.001:0.999; + x1 = unidinv (p, 5); + x2 = unidinv (p, 9); + plot (p, x1, "-b", p, x2, "-g") + grid on + xlim ([0, 1]) + ylim ([0, 10]) + legend ({"N = 5", "N = 9"}, "location", "northwest") + title ("Discrete uniform iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p + p = [-1 0 0.5 1 2]; +***** assert (unidinv (p, 10*ones (1,5)), [NaN NaN 5 10 NaN], eps) +***** assert (unidinv (p, 10), [NaN NaN 5 10 NaN], eps) +***** assert (unidinv (p, 10*[0 1 NaN 1 1]), [NaN NaN NaN 10 NaN], eps) +***** assert (unidinv ([p(1:2) NaN p(4:5)], 10), [NaN NaN NaN 10 NaN], eps) +***** assert (unidinv ([p, NaN], 10), [NaN NaN 5 10 NaN NaN], eps) +***** assert (unidinv (single ([p, NaN]), 10), single ([NaN NaN 5 10 NaN NaN]), eps) +***** assert (unidinv ([p, NaN], single (10)), single ([NaN NaN 5 10 NaN NaN]), eps) +***** error unidinv () +***** error unidinv (1) +***** error ... + unidinv (ones (3), ones (2)) +***** error ... + unidinv (ones (2), ones (3)) +***** error unidinv (i, 2) +***** error unidinv (2, i) +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_fun/mvtrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvtrnd.m ***** test - data = 0:0.2:1; - p = plcdf (data, [0, 0.5], [0, 1]); - assert (p, [0, 0.4, 0.8, 1, 1, 1]); + rho = [1, 0.5; 0.5, 1]; + df = 3; + n = 10; + r = mvtrnd (rho, df, n); + assert (size (r), [10, 2]); ***** test - data = 0:0.2:1; - p = plcdf (data, [0, 1], [0, 1], "upper"); - assert (p, 1 - data); -***** error plcdf () -***** error plcdf (1) -***** error plcdf (1, 2) -***** error plcdf (1, 2, 3, "uper") -***** error plcdf (1, 2, 3, 4) -***** error ... - plcdf (1, [0, 1, 2], [0, 1]) -***** error ... - plcdf (1, [0], [1]) -***** error ... - plcdf (1, [0, 1, 2], [0, 1, 1.5]) -***** error ... - plcdf (1, [0, 1, 2], [0, i, 1]) -***** error ... - plcdf (i, [0, 1, 2], [0, 0.5, 1]) -***** error ... - plcdf (1, [0, i, 2], [0, 0.5, 1]) -***** error ... - plcdf (1, [0, 1, 2], [0, 0.5i, 1]) + rho = [1, 0.5; 0.5, 1]; + df = [2; 3]; + n = 2; + r = mvtrnd (rho, df, 2); + assert (size (r), [2, 2]); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/dist_fun/cauchyrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/cauchyrnd.m +***** assert (size (cauchyrnd (1, 1)), [1 1]) +***** assert (size (cauchyrnd (1, ones (2,1))), [2, 1]) +***** assert (size (cauchyrnd (1, ones (2,2))), [2, 2]) +***** assert (size (cauchyrnd (ones (2,1), 1)), [2, 1]) +***** assert (size (cauchyrnd (ones (2,2), 1)), [2, 2]) +***** assert (size (cauchyrnd (1, 1, 3)), [3, 3]) +***** assert (size (cauchyrnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (cauchyrnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (cauchyrnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (cauchyrnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (cauchyrnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (cauchyrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (cauchyrnd (1, 1)), "double") +***** assert (class (cauchyrnd (1, single (1))), "single") +***** assert (class (cauchyrnd (1, single ([1, 1]))), "single") +***** assert (class (cauchyrnd (single (1), 1)), "single") +***** assert (class (cauchyrnd (single ([1, 1]), 1)), "single") +***** error cauchyrnd () +***** error cauchyrnd (1) +***** error ... + cauchyrnd (ones (3), ones (2)) +***** error ... + cauchyrnd (ones (2), ones (3)) +***** error cauchyrnd (i, 2, 3) +***** error cauchyrnd (1, i, 3) +***** error ... + cauchyrnd (1, 2, -1) +***** error ... + cauchyrnd (1, 2, 1.2) +***** error ... + cauchyrnd (1, 2, ones (2)) +***** error ... + cauchyrnd (1, 2, [2 -1 2]) +***** error ... + cauchyrnd (1, 2, [2 0 2.5]) +***** error ... + cauchyrnd (1, 2, 2, -1, 5) +***** error ... + cauchyrnd (1, 2, 2, 1.5, 5) +***** error ... + cauchyrnd (2, ones (2), 3) +***** error ... + cauchyrnd (2, ones (2), [3, 2]) +***** error ... + cauchyrnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/gevrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gevrnd.m +***** assert(size (gevrnd (1,2,1)), [1, 1]); +***** assert(size (gevrnd (ones(2,1), 2, 1)), [2, 1]); +***** assert(size (gevrnd (ones(2,2), 2, 1)), [2, 2]); +***** assert(size (gevrnd (1, 2*ones(2,1), 1)), [2, 1]); +***** assert(size (gevrnd (1, 2*ones(2,2), 1)), [2, 2]); +***** assert(size (gevrnd (1, 2, 1, 3)), [3, 3]); +***** assert(size (gevrnd (1, 2, 1, [4 1])), [4, 1]); +***** assert(size (gevrnd (1, 2, 1, 4, 1)), [4, 1]); +***** assert (class (gevrnd (1,1,1)), "double") +***** assert (class (gevrnd (single (1),1,1)), "single") +***** assert (class (gevrnd (single ([1 1]),1,1)), "single") +***** assert (class (gevrnd (1,single (1),1)), "single") +***** assert (class (gevrnd (1,single ([1 1]),1)), "single") +***** assert (class (gevrnd (1,1,single (1))), "single") +***** assert (class (gevrnd (1,1,single ([1 1]))), "single") +***** error gevrnd () +***** error gevrnd (1) +***** error gevrnd (1, 2) +***** error ... + gevrnd (ones (3), ones (2), ones (2)) +***** error ... + gevrnd (ones (2), ones (3), ones (2)) +***** error ... + gevrnd (ones (2), ones (2), ones (3)) +***** error gevrnd (i, 2, 3) +***** error gevrnd (1, i, 3) +***** error gevrnd (1, 2, i) +***** error ... + gevrnd (1, 2, 3, -1) +***** error ... + gevrnd (1, 2, 3, 1.2) +***** error ... + gevrnd (1, 2, 3, ones (2)) +***** error ... + gevrnd (1, 2, 3, [2 -1 2]) +***** error ... + gevrnd (1, 2, 3, [2 0 2.5]) +***** error ... + gevrnd (1, 2, 3, 2, -1, 5) +***** error ... + gevrnd (1, 2, 3, 2, 1.5, 5) +***** error ... + gevrnd (2, ones (2), 2, 3) +***** error ... + gevrnd (2, ones (2), 2, [3, 2]) +***** error ... + gevrnd (2, ones (2), 2, 3, 2) +34 tests, 34 passed, 0 known failure, 0 skipped +[inst/dist_fun/nakacdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nakacdf.m +***** demo + ## Plot various CDFs from the Nakagami distribution + x = 0:0.01:3; + p1 = nakacdf (x, 0.5, 1); + p2 = nakacdf (x, 1, 1); + p3 = nakacdf (x, 1, 2); + p4 = nakacdf (x, 1, 3); + p5 = nakacdf (x, 2, 1); + p6 = nakacdf (x, 2, 2); + p7 = nakacdf (x, 5, 1); + plot (x, p1, "-r", x, p2, "-g", x, p3, "-y", x, p4, "-m", ... + x, p5, "-k", x, p6, "-b", x, p7, "-c") + grid on + xlim ([0, 3]) + legend ({"μ = 0.5, ω = 1", "μ = 1, ω = 1", "μ = 1, ω = 2", ... + "μ = 1, ω = 3", "μ = 2, ω = 1", "μ = 2, ω = 2", ... + "μ = 5, ω = 1"}, "location", "southeast") + title ("Nakagami CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y + x = [-1, 0, 1, 2, Inf]; + y = [0, 0, 0.63212055882855778, 0.98168436111126578, 1]; +***** assert (nakacdf (x, ones (1,5), ones (1,5)), y, eps) +***** assert (nakacdf (x, 1, 1), y, eps) +***** assert (nakacdf (x, [1, 1, NaN, 1, 1], 1), [y(1:2), NaN, y(4:5)]) +***** assert (nakacdf (x, 1, [1, 1, NaN, 1, 1]), [y(1:2), NaN, y(4:5)]) +***** assert (nakacdf ([x, NaN], 1, 1), [y, NaN], eps) +***** assert (nakacdf (single ([x, NaN]), 1, 1), single ([y, NaN]), eps("single")) +***** assert (nakacdf ([x, NaN], single (1), 1), single ([y, NaN]), eps("single")) +***** assert (nakacdf ([x, NaN], 1, single (1)), single ([y, NaN]), eps("single")) +***** error nakacdf () +***** error nakacdf (1) +***** error nakacdf (1, 2) +***** error nakacdf (1, 2, 3, "tail") +***** error nakacdf (1, 2, 3, 4) +***** error ... + nakacdf (ones (3), ones (2), ones (2)) +***** error ... + nakacdf (ones (2), ones (3), ones (2)) +***** error ... + nakacdf (ones (2), ones (2), ones (3)) +***** error nakacdf (i, 2, 2) +***** error nakacdf (2, i, 2) +***** error nakacdf (2, 2, i) +19 tests, 19 passed, 0 known failure, 0 skipped +[inst/dist_fun/wblpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wblpdf.m +***** demo + ## Plot various PDFs from the Weibul distribution + x = 0:0.001:2.5; + y1 = wblpdf (x, 1, 0.5); + y2 = wblpdf (x, 1, 1); + y3 = wblpdf (x, 1, 1.5); + y4 = wblpdf (x, 1, 5); + plot (x, y1, "-b", x, y2, "-r", x, y3, "-m", x, y4, "-g") + grid on + ylim ([0, 2.5]) + legend ({"λ = 5, k = 0.5", "λ = 9, k = 1", ... + "λ = 6, k = 1.5", "λ = 2, k = 5"}, "location", "northeast") + title ("Weibul PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x,y + x = [-1 0 0.5 1 Inf]; + y = [0, exp(-x(2:4)), NaN]; +***** assert (wblpdf (x, ones (1,5), ones (1,5)), y) +***** assert (wblpdf (x, 1, ones (1,5)), y) +***** assert (wblpdf (x, ones (1,5), 1), y) +***** assert (wblpdf (x, [0 NaN Inf 1 1], 1), [NaN NaN NaN y(4:5)]) +***** assert (wblpdf (x, 1, [0 NaN Inf 1 1]), [NaN NaN NaN y(4:5)]) +***** assert (wblpdf ([x, NaN], 1, 1), [y, NaN]) +***** assert (wblpdf (single ([x, NaN]), 1, 1), single ([y, NaN])) +***** assert (wblpdf ([x, NaN], single (1), 1), single ([y, NaN])) +***** assert (wblpdf ([x, NaN], 1, single (1)), single ([y, NaN])) +***** error wblpdf () +***** error wblpdf (1,2,3,4) +***** error wblpdf (ones (3), ones (2), ones (2)) +***** error wblpdf (ones (2), ones (3), ones (2)) +***** error wblpdf (ones (2), ones (2), ones (3)) +***** error wblpdf (i, 2, 2) +***** error wblpdf (2, i, 2) +***** error wblpdf (2, 2, i) 17 tests, 17 passed, 0 known failure, 0 skipped -[inst/dist_fun/wishrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wishrnd.m -***** assert(size (wishrnd (1,2)), [1, 1]); -***** assert(size (wishrnd (1,2,[])), [1, 1]); -***** assert(size (wishrnd (1,2,1)), [1, 1]); -***** assert(size (wishrnd ([],2,1)), [1, 1]); -***** assert(size (wishrnd ([3 1; 1 3], 2.00001, [], 1)), [2, 2]); -***** assert(size (wishrnd (eye(2), 2, [], 3)), [2, 2, 3]); -***** error wishrnd () -***** error wishrnd (1) -***** error wishrnd ([1; 1], 2) -9 tests, 9 passed, 0 known failure, 0 skipped [inst/dist_fun/logipdf.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/logipdf.m ***** demo @@ -21052,6 +12776,202 @@ ***** error logipdf (1, i, 3) ***** error logipdf (1, 2, i) 14 tests, 14 passed, 0 known failure, 0 skipped +[inst/dist_fun/evpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/evpdf.m +***** demo + ## Plot various PDFs from the Extreme value distribution + x = -10:0.001:10; + y1 = evpdf (x, 0.5, 2); + y2 = evpdf (x, 1.0, 2); + y3 = evpdf (x, 1.5, 3); + y4 = evpdf (x, 3.0, 4); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") + grid on + ylim ([0, 0.2]) + legend ({"μ = 0.5, σ = 2", "μ = 1.0, σ = 2", ... + "μ = 1.5, σ = 3", "μ = 3.0, σ = 4"}, "location", "northeast") + title ("Extreme value PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y0, y1 + x = [-5, 0, 1, 2, 3]; + y0 = [0.0067, 0.3679, 0.1794, 0.0046, 0]; + y1 = [0.0025, 0.2546, 0.3679, 0.1794, 0.0046]; +***** assert (evpdf (x), y0, 1e-4) +***** assert (evpdf (x, zeros (1,5), ones (1,5)), y0, 1e-4) +***** assert (evpdf (x, ones (1,5), ones (1,5)), y1, 1e-4) +***** error evpdf () +***** error ... + evpdf (ones (3), ones (2), ones (2)) +***** error evpdf (i, 2, 2) +***** error evpdf (2, i, 2) +***** error evpdf (2, 2, i) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/dist_fun/tricdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tricdf.m +***** demo + ## Plot various CDFs from the triangular distribution + x = 0.001:0.001:10; + p1 = tricdf (x, 3, 4, 6); + p2 = tricdf (x, 1, 2, 5); + p3 = tricdf (x, 2, 3, 9); + p4 = tricdf (x, 2, 5, 9); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") + grid on + xlim ([0, 10]) + legend ({"a = 3, b = 4, c = 6", "a = 1, b = 2, c = 5", ... + "a = 2, b = 3, c = 9", "a = 2, b = 5, c = 9"}, ... + "location", "southeast") + title ("Triangular CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y + x = [-1, 0, 0.1, 0.5, 0.9, 1, 2] + 1; + y = [0, 0, 0.02, 0.5, 0.98, 1 1]; +***** assert (tricdf (x, ones (1,7), 1.5 * ones (1, 7), 2 * ones (1, 7)), y, eps) +***** assert (tricdf (x, 1 * ones (1, 7), 1.5, 2), y, eps) +***** assert (tricdf (x, 1 * ones (1, 7), 1.5, 2, "upper"), 1 - y, eps) +***** assert (tricdf (x, 1, 1.5, 2 * ones (1, 7)), y, eps) +***** assert (tricdf (x, 1, 1.5 * ones (1, 7), 2), y, eps) +***** assert (tricdf (x, 1, 1.5, 2), y, eps) +***** assert (tricdf (x, [1, 1, NaN, 1, 1, 1, 1], 1.5, 2), ... + [y(1:2), NaN, y(4:7)], eps) +***** assert (tricdf (x, 1, 1.5, 2*[1, 1, NaN, 1, 1, 1, 1]), ... + [y(1:2), NaN, y(4:7)], eps) +***** assert (tricdf (x, 1, 1.5, 2*[1, 1, NaN, 1, 1, 1, 1]), ... + [y(1:2), NaN, y(4:7)], eps) +***** assert (tricdf ([x, NaN], 1, 1.5, 2), [y, NaN], eps) +***** assert (tricdf (single ([x, NaN]), 1, 1.5, 2), ... + single ([y, NaN]), eps("single")) +***** assert (tricdf ([x, NaN], single (1), 1.5, 2), ... + single ([y, NaN]), eps("single")) +***** assert (tricdf ([x, NaN], 1, single (1.5), 2), ... + single ([y, NaN]), eps("single")) +***** assert (tricdf ([x, NaN], 1, 1.5, single (2)), ... + single ([y, NaN]), eps("single")) +***** error tricdf () +***** error tricdf (1) +***** error tricdf (1, 2) +***** error tricdf (1, 2, 3) +***** error ... + tricdf (1, 2, 3, 4, 5, 6) +***** error tricdf (1, 2, 3, 4, "tail") +***** error tricdf (1, 2, 3, 4, 5) +***** error ... + tricdf (ones (3), ones (2), ones(2), ones(2)) +***** error ... + tricdf (ones (2), ones (3), ones(2), ones(2)) +***** error ... + tricdf (ones (2), ones (2), ones(3), ones(2)) +***** error ... + tricdf (ones (2), ones (2), ones(2), ones(3)) +***** error tricdf (i, 2, 3, 4) +***** error tricdf (1, i, 3, 4) +***** error tricdf (1, 2, i, 4) +***** error tricdf (1, 2, 3, i) +29 tests, 29 passed, 0 known failure, 0 skipped +[inst/dist_fun/normpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/normpdf.m +***** demo + ## Plot various PDFs from the normal distribution + x = -5:0.01:5; + y1 = normpdf (x, 0, 0.5); + y2 = normpdf (x, 0, 1); + y3 = normpdf (x, 0, 2); + y4 = normpdf (x, -2, 0.8); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") + grid on + xlim ([-5, 5]) + ylim ([0, 0.9]) + legend ({"μ = 0, σ = 0.5", "μ = 0, σ = 1", ... + "μ = 0, σ = 2", "μ = -2, σ = 0.8"}, "location", "northeast") + title ("Normal PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-Inf, 1, 2, Inf]; + y = 1 / sqrt (2 * pi) * exp (-(x - 1) .^ 2 / 2); +***** assert (normpdf (x, ones (1,4), ones (1,4)), y, eps) +***** assert (normpdf (x, 1, ones (1,4)), y, eps) +***** assert (normpdf (x, ones (1,4), 1), y, eps) +***** assert (normpdf (x, [0 -Inf NaN Inf], 1), [y(1) NaN NaN NaN], eps) +***** assert (normpdf (x, 1, [Inf NaN -1 0]), [NaN NaN NaN NaN], eps) +***** assert (normpdf ([x, NaN], 1, 1), [y, NaN], eps) +***** assert (normpdf (single ([x, NaN]), 1, 1), single ([y, NaN]), eps ("single")) +***** assert (normpdf ([x, NaN], single (1), 1), single ([y, NaN]), eps ("single")) +***** assert (normpdf ([x, NaN], 1, single (1)), single ([y, NaN]), eps ("single")) +***** error normpdf () +***** error ... + normpdf (ones (3), ones (2), ones (2)) +***** error ... + normpdf (ones (2), ones (3), ones (2)) +***** error ... + normpdf (ones (2), ones (2), ones (3)) +***** error normpdf (i, 2, 2) +***** error normpdf (2, i, 2) +***** error normpdf (2, 2, i) +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_fun/bisapdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/bisapdf.m +***** demo + ## Plot various PDFs from the Birnbaum-Saunders distribution + x = 0.01:0.01:4; + y1 = bisapdf (x, 1, 0.5); + y2 = bisapdf (x, 1, 1); + y3 = bisapdf (x, 1, 2); + y4 = bisapdf (x, 1, 5); + y5 = bisapdf (x, 1, 10); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c", x, y5, "-m") + grid on + ylim ([0, 1.5]) + legend ({"β = 1 ,γ = 0.5", "β = 1, γ = 1", "β = 1, γ = 2", ... + "β = 1, γ = 5", "β = 1, γ = 10"}, "location", "northeast") + title ("Birnbaum-Saunders PDF") + xlabel ("values in x") + ylabel ("density") +***** demo + ## Plot various PDFs from the Birnbaum-Saunders distribution + x = 0.01:0.01:6; + y1 = bisapdf (x, 1, 0.3); + y2 = bisapdf (x, 2, 0.3); + y3 = bisapdf (x, 1, 0.5); + y4 = bisapdf (x, 3, 0.5); + y5 = bisapdf (x, 5, 0.5); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c", x, y5, "-m") + grid on + ylim ([0, 1.5]) + legend ({"β = 1, γ = 0.3", "β = 2, γ = 0.3", "β = 1, γ = 0.5", ... + "β = 3, γ = 0.5", "β = 5, γ = 0.5"}, "location", "northeast") + title ("Birnbaum-Saunders CDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-1, 0, 1, 2, Inf]; + y = [0, 0, 0.3989422804014327, 0.1647717335503959, 0]; +***** assert (bisapdf (x, ones (1,5), ones (1,5)), y, eps) +***** assert (bisapdf (x, 1, 1), y, eps) +***** assert (bisapdf (x, 1, ones (1,5)), y, eps) +***** assert (bisapdf (x, ones (1,5), 1), y, eps) +***** assert (bisapdf (x, 1, [1, 1, NaN, 1, 1]), [y(1:2), NaN, y(4:5)], eps) +***** assert (bisapdf (x, [1, 1, NaN, 1, 1], 1), [y(1:2), NaN, y(4:5)], eps) +***** assert (bisapdf ([x, NaN], 1, 1), [y, NaN], eps) +***** assert (bisapdf (single ([x, NaN]), 1, 1), single ([y, NaN]), eps ("single")) +***** assert (bisapdf ([x, NaN], 1, single (1)), single ([y, NaN]), eps ("single")) +***** assert (bisapdf ([x, NaN], single (1), 1), single ([y, NaN]), eps ("single")) +***** error bisapdf () +***** error bisapdf (1) +***** error bisapdf (1, 2) +***** error bisapdf (1, 2, 3, 4) +***** error ... + bisapdf (ones (3), ones (2), ones(2)) +***** error ... + bisapdf (ones (2), ones (3), ones(2)) +***** error ... + bisapdf (ones (2), ones (2), ones(3)) +***** error bisapdf (i, 4, 3) +***** error bisapdf (1, i, 3) +***** error bisapdf (1, 4, i) +20 tests, 20 passed, 0 known failure, 0 skipped [inst/dist_fun/hnpdf.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hnpdf.m ***** demo @@ -21105,43 +13025,1028 @@ ***** error hnpdf (1, i, 3) ***** error hnpdf (1, 2, i) 14 tests, 14 passed, 0 known failure, 0 skipped -[inst/dist_fun/lognpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/lognpdf.m +[inst/dist_fun/logninv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/logninv.m ***** demo - ## Plot various PDFs from the log-normal distribution - x = 0:0.01:5; - y1 = lognpdf (x, 0, 1); - y2 = lognpdf (x, 0, 0.5); - y3 = lognpdf (x, 0, 0.25); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r") + ## Plot various iCDFs from the log-normal distribution + p = 0.001:0.001:0.999; + x1 = logninv (p, 0, 1); + x2 = logninv (p, 0, 0.5); + x3 = logninv (p, 0, 0.25); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r") grid on - ylim ([0, 2]) + ylim ([0, 3]) legend ({"μ = 0, σ = 1", "μ = 0, σ = 0.5", "μ = 0, σ = 0.25"}, ... - "location", "northeast") - title ("Log-normal PDF") + "location", "northwest") + title ("Log-normal iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p + p = [-1 0 0.5 1 2]; +***** assert (logninv (p, ones (1,5), ones (1,5)), [NaN 0 e Inf NaN]) +***** assert (logninv (p, 1, ones (1,5)), [NaN 0 e Inf NaN]) +***** assert (logninv (p, ones (1,5), 1), [NaN 0 e Inf NaN]) +***** assert (logninv (p, [1 1 NaN 0 1], 1), [NaN 0 NaN Inf NaN]) +***** assert (logninv (p, 1, [1 0 NaN Inf 1]), [NaN NaN NaN NaN NaN]) +***** assert (logninv ([p(1:2) NaN p(4:5)], 1, 2), [NaN 0 NaN Inf NaN]) +***** assert (logninv ([p, NaN], 1, 1), [NaN 0 e Inf NaN NaN]) +***** assert (logninv (single ([p, NaN]), 1, 1), single ([NaN 0 e Inf NaN NaN])) +***** assert (logninv ([p, NaN], single (1), 1), single ([NaN 0 e Inf NaN NaN])) +***** assert (logninv ([p, NaN], 1, single (1)), single ([NaN 0 e Inf NaN NaN])) +***** error logninv () +***** error logninv (1,2,3,4) +***** error logninv (ones (3), ones (2), ones (2)) +***** error logninv (ones (2), ones (3), ones (2)) +***** error logninv (ones (2), ones (2), ones (3)) +***** error logninv (i, 2, 2) +***** error logninv (2, i, 2) +***** error logninv (2, 2, i) +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/dist_fun/ncx2cdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncx2cdf.m +***** demo + ## Plot various CDFs from the noncentral chi-squared distribution + x = 0:0.1:10; + p1 = ncx2cdf (x, 2, 1); + p2 = ncx2cdf (x, 2, 2); + p3 = ncx2cdf (x, 2, 3); + p4 = ncx2cdf (x, 4, 1); + p5 = ncx2cdf (x, 4, 2); + p6 = ncx2cdf (x, 4, 3); + plot (x, p1, "-r", x, p2, "-g", x, p3, "-k", ... + x, p4, "-m", x, p5, "-c", x, p6, "-y") + grid on + xlim ([0, 10]) + legend ({"df = 2, λ = 1", "df = 2, λ = 2", ... + "df = 2, λ = 3", "df = 4, λ = 1", ... + "df = 4, λ = 2", "df = 4, λ = 3"}, "location", "southeast") + title ("Noncentral chi-squared CDF") + xlabel ("values in x") + ylabel ("probability") +***** demo + ## Compare the noncentral chi-squared CDF with LAMBDA = 2 to the + ## chi-squared CDF with the same number of degrees of freedom (4). + + x = 0:0.1:10; + p1 = ncx2cdf (x, 4, 2); + p2 = chi2cdf (x, 4); + plot (x, p1, "-", x, p2, "-") + grid on + xlim ([0, 10]) + legend ({"Noncentral χ^2(4,2)", "χ^2(4)"}, "location", "northwest") + title ("Noncentral chi-squared vs chi-squared CDFs") + xlabel ("values in x") + ylabel ("probability") +***** test + x = -2:0.1:2; + p = ncx2cdf (x, 10, 1); + assert (p([1:21]), zeros (1, 21), 3e-84); + assert (p(22), 1.521400636466575e-09, 1e-14); + assert (p(30), 6.665480510026046e-05, 1e-14); + assert (p(41), 0.002406447308399836, 1e-14); +***** test + p = ncx2cdf (12, 10, 3); + assert (p, 0.4845555602398649, 1e-14); +***** test + p = ncx2cdf (2, 3, 2); + assert (p, 0.2207330870741212, 1e-14); +***** test + p = ncx2cdf (2, 3, 2, "upper"); + assert (p, 0.7792669129258789, 1e-14); +***** test + p = ncx2cdf ([3, 6], 3, 2, "upper"); + assert (p, [0.6423318186400054, 0.3152299878943012], 1e-14); +***** error ncx2cdf () +***** error ncx2cdf (1) +***** error ncx2cdf (1, 2) +***** error ncx2cdf (1, 2, 3, "tail") +***** error ncx2cdf (1, 2, 3, 4) +***** error ... + ncx2cdf (ones (3), ones (2), ones (2)) +***** error ... + ncx2cdf (ones (2), ones (3), ones (2)) +***** error ... + ncx2cdf (ones (2), ones (2), ones (3)) +***** error ncx2cdf (i, 2, 2) +***** error ncx2cdf (2, i, 2) +***** error ncx2cdf (2, 2, i) +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_fun/vmcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/vmcdf.m +***** demo + ## Plot various CDFs from the von Mises distribution + x1 = [-pi:0.1:pi]; + p1 = vmcdf (x1, 0, 0.5); + p2 = vmcdf (x1, 0, 1); + p3 = vmcdf (x1, 0, 2); + p4 = vmcdf (x1, 0, 4); + plot (x1, p1, "-r", x1, p2, "-g", x1, p3, "-b", x1, p4, "-c") + grid on + xlim ([-pi, pi]) + legend ({"μ = 0, k = 0.5", "μ = 0, k = 1", ... + "μ = 0, k = 2", "μ = 0, k = 4"}, "location", "northwest") + title ("Von Mises CDF") xlabel ("values in x") + ylabel ("probability") +***** shared x, p0, p1 + x = [-pi:pi/2:pi]; + p0 = [0, 0.10975, 0.5, 0.89025, 1]; + p1 = [0, 0.03752, 0.5, 0.99622, 1]; +***** assert (vmcdf (x, 0, 1), p0, 1e-5) +***** assert (vmcdf (x, 0, 1, "upper"), 1 - p0, 1e-5) +***** assert (vmcdf (x, zeros (1,5), ones (1,5)), p0, 1e-5) +***** assert (vmcdf (x, zeros (1,5), ones (1,5), "upper"), 1 - p0, 1e-5) +***** assert (vmcdf (x, 0, [1 2 3 4 5]), p1, 1e-5) +***** assert (vmcdf (x, 0, [1 2 3 4 5], "upper"), 1 - p1, 1e-5) +***** assert (isa (vmcdf (single (pi), 0, 1), "single"), true) +***** assert (isa (vmcdf (pi, single (0), 1), "single"), true) +***** assert (isa (vmcdf (pi, 0, single (1)), "single"), true) +***** error vmcdf () +***** error vmcdf (1) +***** error vmcdf (1, 2) +***** error vmcdf (1, 2, 3, "tail") +***** error vmcdf (1, 2, 3, 4) +***** error ... + vmcdf (ones (3), ones (2), ones (2)) +***** error ... + vmcdf (ones (2), ones (3), ones (2)) +***** error ... + vmcdf (ones (2), ones (2), ones (3)) +***** error vmcdf (i, 2, 2) +***** error vmcdf (2, i, 2) +***** error vmcdf (2, 2, i) +20 tests, 20 passed, 0 known failure, 0 skipped +[inst/dist_fun/riceinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/riceinv.m +***** demo + ## Plot various iCDFs from the Rician distribution + p = 0.001:0.001:0.999; + x1 = riceinv (p, 0, 1); + x2 = riceinv (p, 0.5, 1); + x3 = riceinv (p, 1, 1); + x4 = riceinv (p, 2, 1); + x5 = riceinv (p, 4, 1); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-m", p, x5, "-k") + grid on + legend ({"s = 0, σ = 1", "s = 0.5, σ = 1", "s = 1, σ = 1", ... + "s = 2, σ = 1", "s = 4, σ = 1"}, "location", "northwest") + title ("Rician iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p + p = [-1 0 0.75 1 2]; +***** assert (riceinv (p, ones (1,5), 2*ones (1,5)), [NaN 0 3.5354 Inf NaN], 1e-4) +***** assert (riceinv (p, 1, 2*ones (1,5)), [NaN 0 3.5354 Inf NaN], 1e-4) +***** assert (riceinv (p, ones (1,5), 2), [NaN 0 3.5354 Inf NaN], 1e-4) +***** assert (riceinv (p, [1 0 NaN 1 1], 2), [NaN 0 NaN Inf NaN]) +***** assert (riceinv (p, 1, 2*[1 0 NaN 1 1]), [NaN NaN NaN Inf NaN]) +***** assert (riceinv ([p(1:2) NaN p(4:5)], 1, 2), [NaN 0 NaN Inf NaN]) +***** assert (riceinv ([p, NaN], 1, 2), [NaN 0 3.5354 Inf NaN NaN], 1e-4) +***** assert (riceinv (single ([p, NaN]), 1, 2), ... + single ([NaN 0 3.5354 Inf NaN NaN]), 1e-4) +***** assert (riceinv ([p, NaN], single (1), 2), ... + single ([NaN 0 3.5354 Inf NaN NaN]), 1e-4) +***** assert (riceinv ([p, NaN], 1, single (2)), ... + single ([NaN 0 3.5354 Inf NaN NaN]), 1e-4) +***** error riceinv () +***** error riceinv (1) +***** error riceinv (1,2) +***** error riceinv (1,2,3,4) +***** error ... + riceinv (ones (3), ones (2), ones (2)) +***** error ... + riceinv (ones (2), ones (3), ones (2)) +***** error ... + riceinv (ones (2), ones (2), ones (3)) +***** error riceinv (i, 2, 2) +***** error riceinv (2, i, 2) +***** error riceinv (2, 2, i) +20 tests, 20 passed, 0 known failure, 0 skipped +[inst/dist_fun/mnpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mnpdf.m +***** test + x = [1, 4, 2]; + pk = [0.2, 0.5, 0.3]; + y = mnpdf (x, pk); + assert (y, 0.11812, 0.001); +***** test + x = [1, 4, 2; 1, 0, 9]; + pk = [0.2, 0.5, 0.3; 0.1, 0.1, 0.8]; + y = mnpdf (x, pk); + assert (y, [0.11812; 0.13422], 0.001); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/dist_fun/binopdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/binopdf.m +***** demo + ## Plot various PDFs from the binomial distribution + x = 0:40; + y1 = binopdf (x, 20, 0.5); + y2 = binopdf (x, 20, 0.7); + y3 = binopdf (x, 40, 0.5); + plot (x, y1, "*b", x, y2, "*g", x, y3, "*r") + grid on + ylim ([0, 0.25]) + legend ({"n = 20, ps = 0.5", "n = 20, ps = 0.7", ... + "n = 40, ps = 0.5"}, "location", "northeast") + title ("Binomial PDF") + xlabel ("values in x (number of successes)") ylabel ("density") ***** shared x, y - x = [-1 0 e Inf]; - y = [0, 0, 1/(e*sqrt(2*pi)) * exp(-1/2), 0]; -***** assert (lognpdf (x, zeros (1,4), ones (1,4)), y, eps) -***** assert (lognpdf (x, 0, ones (1,4)), y, eps) -***** assert (lognpdf (x, zeros (1,4), 1), y, eps) -***** assert (lognpdf (x, [0 1 NaN 0], 1), [0 0 NaN y(4)], eps) -***** assert (lognpdf (x, 0, [0 NaN Inf 1]), [NaN NaN NaN y(4)], eps) -***** assert (lognpdf ([x, NaN], 0, 1), [y, NaN], eps) -***** assert (lognpdf (single ([x, NaN]), 0, 1), single ([y, NaN]), eps ("single")) -***** assert (lognpdf ([x, NaN], single (0), 1), single ([y, NaN]), eps ("single")) -***** assert (lognpdf ([x, NaN], 0, single (1)), single ([y, NaN]), eps ("single")) -***** error lognpdf () -***** error lognpdf (1,2,3,4) -***** error lognpdf (ones (3), ones (2), ones (2)) -***** error lognpdf (ones (2), ones (3), ones (2)) -***** error lognpdf (ones (2), ones (2), ones (3)) -***** error lognpdf (i, 2, 2) -***** error lognpdf (2, i, 2) -***** error lognpdf (2, 2, i) + x = [-1 0 1 2 3]; + y = [0 1/4 1/2 1/4 0]; +***** assert (binopdf (x, 2 * ones (1, 5), 0.5 * ones (1, 5)), y, eps) +***** assert (binopdf (x, 2, 0.5 * ones (1, 5)), y, eps) +***** assert (binopdf (x, 2 * ones (1, 5), 0.5), y, eps) +***** assert (binopdf (x, 2 * [0 -1 NaN 1.1 1], 0.5), [0 NaN NaN NaN 0]) +***** assert (binopdf (x, 2, 0.5 * [0 -1 NaN 3 1]), [0 NaN NaN NaN 0]) +***** assert (binopdf ([x, NaN], 2, 0.5), [y, NaN], eps) +***** assert (binopdf (cat (3, x, x), 2, 0.5), cat (3, y, y), eps) +***** assert (binopdf (1, 1, 1), 1) +***** assert (binopdf (0, 3, 0), 1) +***** assert (binopdf (2, 2, 1), 1) +***** assert (binopdf (1, 2, 1), 0) +***** assert (binopdf (0, 1.1, 0), NaN) +***** assert (binopdf (1, 2, -1), NaN) +***** assert (binopdf (1, 2, 1.5), NaN) +***** assert (binopdf ([], 1, 1), []) +***** assert (binopdf (1, [], 1), []) +***** assert (binopdf (1, 1, []), []) +***** assert (binopdf (ones (1, 0), 2, .5), ones(1, 0)) +***** assert (binopdf (ones (0, 1), 2, .5), ones(0, 1)) +***** assert (binopdf (ones (0, 1, 2), 2, .5), ones(0, 1, 2)) +***** assert (binopdf (1, ones (0, 1, 2), .5), ones(0, 1, 2)) +***** assert (binopdf (1, 2, ones (0, 1, 2)), ones(0, 1, 2)) +***** assert (binopdf (ones (1, 0, 2), 2, .5), ones(1, 0, 2)) +***** assert (binopdf (ones (1, 2, 0), 2, .5), ones(1, 2, 0)) +***** assert (binopdf (ones (0, 1, 2), NaN, .5), ones(0, 1, 2)) +***** assert (binopdf (ones (0, 1, 2), 2, NaN), ones(0, 1, 2)) +***** assert (binopdf (single ([x, NaN]), 2, 0.5), single ([y, NaN])) +***** assert (binopdf ([x, NaN], single (2), 0.5), single ([y, NaN])) +***** assert (binopdf ([x, NaN], 2, single (0.5)), single ([y, NaN])) +***** error binopdf () +***** error binopdf (1) +***** error binopdf (1, 2) +***** error binopdf (1, 2, 3, 4) +***** error ... + binopdf (ones (3), ones (2), ones (2)) +***** error ... + binopdf (ones (2), ones (3), ones (2)) +***** error ... + binopdf (ones (2), ones (2), ones (3)) +***** error binopdf (i, 2, 2) +***** error binopdf (2, i, 2) +***** error binopdf (2, 2, i) +39 tests, 39 passed, 0 known failure, 0 skipped +[inst/dist_fun/chi2cdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/chi2cdf.m +***** demo + ## Plot various CDFs from the chi-squared distribution + x = 0:0.01:8; + p1 = chi2cdf (x, 1); + p2 = chi2cdf (x, 2); + p3 = chi2cdf (x, 3); + p4 = chi2cdf (x, 4); + p5 = chi2cdf (x, 6); + p6 = chi2cdf (x, 9); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", ... + x, p4, "-c", x, p5, "-m", x, p6, "-y") + grid on + xlim ([0, 8]) + legend ({"df = 1", "df = 2", "df = 3", ... + "df = 4", "df = 6", "df = 9"}, "location", "southeast") + title ("Chi-squared CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, p, u + x = [-1, 0, 0.5, 1, 2]; + p = [0, (1 - exp (-x(2:end) / 2))]; + u = [1, 0, NaN, 0.3934693402873666, 0.6321205588285577]; +***** assert (chi2cdf (x, 2 * ones (1,5)), p, eps) +***** assert (chi2cdf (x, 2), p, eps) +***** assert (chi2cdf (x, 2 * [1, 0, NaN, 1, 1]), [p(1), 1, NaN, p(4:5)], eps) +***** assert (chi2cdf (x, 2 * [1, 0, NaN, 1, 1], "upper"), ... + [p(1), 1, NaN, u(4:5)], eps) +***** assert (chi2cdf ([x(1:2), NaN, x(4:5)], 2), [p(1:2), NaN, p(4:5)], eps) +***** assert (chi2cdf ([x, NaN], 2), [p, NaN], eps) +***** assert (chi2cdf (single ([x, NaN]), 2), single ([p, NaN]), eps ("single")) +***** assert (chi2cdf ([x, NaN], single (2)), single ([p, NaN]), eps ("single")) +***** error chi2cdf () +***** error chi2cdf (1) +***** error chi2cdf (1, 2, 3, 4) +***** error chi2cdf (1, 2, 3) +***** error chi2cdf (1, 2, "uper") +***** error ... + chi2cdf (ones (3), ones (2)) +***** error ... + chi2cdf (ones (2), ones (3)) +***** error chi2cdf (i, 2) +***** error chi2cdf (2, i) +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/dist_fun/tlsrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tlsrnd.m +***** assert (size (tlsrnd (1, 2, 3)), [1, 1]) +***** assert (size (tlsrnd (ones (2,1), 2, 3)), [2, 1]) +***** assert (size (tlsrnd (ones (2,2), 2, 3)), [2, 2]) +***** assert (size (tlsrnd (1, 2, 3, 3)), [3, 3]) +***** assert (size (tlsrnd (1, 2, 3, [4 1])), [4, 1]) +***** assert (size (tlsrnd (1, 2, 3, 4, 1)), [4, 1]) +***** assert (size (tlsrnd (1, 2, 3, 4, 1)), [4, 1]) +***** assert (size (tlsrnd (1, 2, 3, 4, 1, 5)), [4, 1, 5]) +***** assert (size (tlsrnd (1, 2, 3, 0, 1)), [0, 1]) +***** assert (size (tlsrnd (1, 2, 3, 1, 0)), [1, 0]) +***** assert (size (tlsrnd (1, 2, 3, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (tlsrnd (1, 2, 0, 1, 1), NaN) +***** assert (tlsrnd (1, 2, [0, 0, 0], [1, 3]), [NaN, NaN, NaN]) +***** assert (class (tlsrnd (1, 2, 3)), "double") +***** assert (class (tlsrnd (single (1), 2, 3)), "single") +***** assert (class (tlsrnd (single ([1, 1]), 2, 3)), "single") +***** assert (class (tlsrnd (1, single (2), 3)), "single") +***** assert (class (tlsrnd (1, single ([2, 2]), 3)), "single") +***** assert (class (tlsrnd (1, 2, single (3))), "single") +***** assert (class (tlsrnd (1, 2, single ([3, 3]))), "single") +***** error tlsrnd () +***** error tlsrnd (1) +***** error tlsrnd (1, 2) +***** error ... + tlsrnd (ones (3), ones (2), 1) +***** error ... + tlsrnd (ones (2), 1, ones (3)) +***** error ... + tlsrnd (1, ones (2), ones (3)) +***** error tlsrnd (i, 2, 3) +***** error tlsrnd (1, i, 3) +***** error tlsrnd (1, 2, i) +***** error ... + tlsrnd (1, 2, 3, -1) +***** error ... + tlsrnd (1, 2, 3, 1.2) +***** error ... + tlsrnd (1, 2, 3, ones (2)) +***** error ... + tlsrnd (1, 2, 3, [2 -1 2]) +***** error ... + tlsrnd (1, 2, 3, [2 0 2.5]) +***** error ... + tlsrnd (ones (2), 2, 3, ones (2)) +***** error ... + tlsrnd (1, 2, 3, 2, -1, 5) +***** error ... + tlsrnd (1, 2, 3, 2, 1.5, 5) +***** error ... + tlsrnd (ones (2,2), 2, 3, 3) +***** error ... + tlsrnd (1, ones (2,2), 3, 3) +***** error ... + tlsrnd (1, 2, ones (2,2), 3) +***** error ... + tlsrnd (1, 2, ones (2,2), [3, 3]) +***** error ... + tlsrnd (1, 2, ones (2,2), 2, 3) +42 tests, 42 passed, 0 known failure, 0 skipped +[inst/dist_fun/expinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/expinv.m +***** demo + ## Plot various iCDFs from the exponential distribution + p = 0.001:0.001:0.999; + x1 = expinv (p, 2/3); + x2 = expinv (p, 1.0); + x3 = expinv (p, 2.0); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r") + grid on + ylim ([0, 5]) + legend ({"μ = 2/3", "μ = 1", "μ = 2"}, "location", "northwest") + title ("Exponential iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p + p = [-1 0 0.3934693402873666 1 2]; +***** assert (expinv (p, 2*ones (1,5)), [NaN 0 1 Inf NaN], eps) +***** assert (expinv (p, 2), [NaN 0 1 Inf NaN], eps) +***** assert (expinv (p, 2*[1 0 NaN 1 1]), [NaN NaN NaN Inf NaN], eps) +***** assert (expinv ([p(1:2) NaN p(4:5)], 2), [NaN 0 NaN Inf NaN], eps) +***** assert (expinv ([p, NaN], 2), [NaN 0 1 Inf NaN NaN], eps) +***** assert (expinv (single ([p, NaN]), 2), single ([NaN 0 1 Inf NaN NaN]), eps) +***** assert (expinv ([p, NaN], single (2)), single ([NaN 0 1 Inf NaN NaN]), eps) +***** error expinv () +***** error expinv (1, 2 ,3 ,4 ,5) +***** error ... + expinv (ones (3), ones (2)) +***** error ... + expinv (2, 3, [1, 2]) +***** error ... + [x, xlo, xup] = expinv (1, 2) +***** error [x, xlo, xup] = ... + expinv (1, 2, 3, 0) +***** error [x, xlo, xup] = ... + expinv (1, 2, 3, 1.22) +***** error [x, xlo, xup] = ... + expinv (1, 2, 3, [0.05, 0.1]) +***** error expinv (i, 2) +***** error expinv (2, i) +***** error ... + [x, xlo, xup] = expinv (1, 2, -1, 0.04) +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/dist_fun/unidrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unidrnd.m +***** assert (size (unidrnd (2)), [1, 1]) +***** assert (size (unidrnd (ones (2,1))), [2, 1]) +***** assert (size (unidrnd (ones (2,2))), [2, 2]) +***** assert (size (unidrnd (1, 3)), [3, 3]) +***** assert (size (unidrnd (1, [4 1])), [4, 1]) +***** assert (size (unidrnd (1, 4, 1)), [4, 1]) +***** assert (size (unidrnd (1, 4, 1)), [4, 1]) +***** assert (size (unidrnd (1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (unidrnd (1, 0, 1)), [0, 1]) +***** assert (size (unidrnd (1, 1, 0)), [1, 0]) +***** assert (size (unidrnd (1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (unidrnd (0, 1, 1), NaN) +***** assert (unidrnd ([0, 0, 0], [1, 3]), [NaN, NaN, NaN]) +***** assert (class (unidrnd (2)), "double") +***** assert (class (unidrnd (single (2))), "single") +***** assert (class (unidrnd (single ([2 2]))), "single") +***** error unidrnd () +***** error unidrnd (i) +***** error ... + unidrnd (1, -1) +***** error ... + unidrnd (1, 1.2) +***** error ... + unidrnd (1, ones (2)) +***** error ... + unidrnd (1, [2 -1 2]) +***** error ... + unidrnd (1, [2 0 2.5]) +***** error ... + unidrnd (ones (2), ones (2)) +***** error ... + unidrnd (1, 2, -1, 5) +***** error ... + unidrnd (1, 2, 1.5, 5) +***** error unidrnd (ones (2,2), 3) +***** error unidrnd (ones (2,2), [3, 2]) +***** error unidrnd (ones (2,2), 2, 3) +29 tests, 29 passed, 0 known failure, 0 skipped +[inst/dist_fun/betarnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/betarnd.m +***** assert (size (betarnd (2, 1/2)), [1 1]) +***** assert (size (betarnd (2 * ones (2, 1), 1/2)), [2, 1]) +***** assert (size (betarnd (2 * ones (2, 2), 1/2)), [2, 2]) +***** assert (size (betarnd (2, 1/2 * ones (2, 1))), [2, 1]) +***** assert (size (betarnd (1, 1/2 * ones (2, 2))), [2, 2]) +***** assert (size (betarnd (ones (2, 1), 1)), [2, 1]) +***** assert (size (betarnd (ones (2, 2), 1)), [2, 2]) +***** assert (size (betarnd (2, 1/2, 3)), [3, 3]) +***** assert (size (betarnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (betarnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (betarnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (betarnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (betarnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (betarnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (betarnd (1, 1)), "double") +***** assert (class (betarnd (1, single (0))), "single") +***** assert (class (betarnd (1, single ([0, 0]))), "single") +***** assert (class (betarnd (1, single (1), 2)), "single") +***** assert (class (betarnd (1, single ([1, 1]), 1, 2)), "single") +***** assert (class (betarnd (single (1), 1, 2)), "single") +***** assert (class (betarnd (single ([1, 1]), 1, 1, 2)), "single") +***** error betarnd () +***** error betarnd (1) +***** error ... + betarnd (ones (3), ones (2)) +***** error ... + betarnd (ones (2), ones (3)) +***** error betarnd (i, 2) +***** error betarnd (1, i) +***** error ... + betarnd (1, 1/2, -1) +***** error ... + betarnd (1, 1/2, 1.2) +***** error ... + betarnd (1, 1/2, ones (2)) +***** error ... + betarnd (1, 1/2, [2 -1 2]) +***** error ... + betarnd (1, 1/2, [2 0 2.5]) +***** error ... + betarnd (1, 1/2, 2, -1, 5) +***** error ... + betarnd (1, 1/2, 2, 1.5, 5) +***** error ... + betarnd (2, 1/2 * ones (2), 3) +***** error ... + betarnd (2, 1/2 * ones (2), [3, 2]) +***** error ... + betarnd (2, 1/2 * ones (2), 3, 2) +***** error ... + betarnd (2 * ones (2), 1/2, 3) +***** error ... + betarnd (2 * ones (2), 1/2, [3, 2]) +***** error ... + betarnd (2 * ones (2), 1/2, 3, 2) +40 tests, 40 passed, 0 known failure, 0 skipped +[inst/dist_fun/plrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/plrnd.m +***** shared x, Fx + x = [0, 1, 3, 4, 7, 10]; + Fx = [0, 0.2, 0.5, 0.6, 0.7, 1]; +***** assert (size (plrnd (x, Fx)), [1, 1]) +***** assert (size (plrnd (x, Fx, 3)), [3, 3]) +***** assert (size (plrnd (x, Fx, [4, 1])), [4, 1]) +***** assert (size (plrnd (x, Fx, 4, 1)), [4, 1]) +***** assert (size (plrnd (x, Fx, 4, 1, 5)), [4, 1, 5]) +***** assert (size (plrnd (x, Fx, 0, 1)), [0, 1]) +***** assert (size (plrnd (x, Fx, 1, 0)), [1, 0]) +***** assert (size (plrnd (x, Fx, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (plrnd (x, Fx)), "double") +***** assert (class (plrnd (x, single (Fx))), "single") +***** assert (class (plrnd (single (x), Fx)), "single") +***** error plrnd () +***** error plrnd (1) +***** error ... + plrnd ([0, 1, 2], [0, 1]) +***** error ... + plrnd ([0], [1]) +***** error ... + plrnd ([0, 1, 2], [0, 1, 1.5]) +***** error ... + plrnd ([0, 1, 2], [0, i, 1]) +***** error ... + plrnd ([0, i, 2], [0, 0.5, 1]) +***** error ... + plrnd ([0, i, 2], [0, 0.5i, 1]) +***** error ... + plrnd (x, Fx, -1) +***** error ... + plrnd (x, Fx, 1.2) +***** error ... + plrnd (x, Fx, ones (2)) +***** error ... + plrnd (x, Fx, [2 -1 2]) +***** error ... + plrnd (x, Fx, [2 0 2.5]) +***** error ... + plrnd (x, Fx, 2, -1, 5) +***** error ... + plrnd (x, Fx, 2, 1.5, 5) +26 tests, 26 passed, 0 known failure, 0 skipped +[inst/dist_fun/logicdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/logicdf.m +***** demo + ## Plot various CDFs from the logistic distribution + x = -5:0.01:20; + p1 = logicdf (x, 5, 2); + p2 = logicdf (x, 9, 3); + p3 = logicdf (x, 9, 4); + p4 = logicdf (x, 6, 2); + p5 = logicdf (x, 2, 1); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-m") + grid on + legend ({"μ = 5, σ = 2", "μ = 9, σ = 3", "μ = 9, σ = 4", ... + "μ = 6, σ = 2", "μ = 2, σ = 1"}, "location", "southeast") + title ("Logistic CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y + x = [-Inf -log(3) 0 log(3) Inf]; + y = [0, 1/4, 1/2, 3/4, 1]; +***** assert (logicdf ([x, NaN], 0, 1), [y, NaN], eps) +***** assert (logicdf (x, 0, [-2, -1, 0, 1, 2]), [nan(1, 3), 0.75, 1]) +***** assert (logicdf (single ([x, NaN]), 0, 1), single ([y, NaN]), eps ("single")) +***** assert (logicdf ([x, NaN], single (0), 1), single ([y, NaN]), eps ("single")) +***** assert (logicdf ([x, NaN], 0, single (1)), single ([y, NaN]), eps ("single")) +***** error logicdf () +***** error logicdf (1) +***** error ... + logicdf (1, 2) +***** error logicdf (1, 2, 3, "tail") +***** error logicdf (1, 2, 3, 4) +***** error ... + logicdf (1, ones (2), ones (3)) +***** error ... + logicdf (ones (2), 1, ones (3)) +***** error ... + logicdf (ones (2), ones (3), 1) +***** error logicdf (i, 2, 3) +***** error logicdf (1, i, 3) +***** error logicdf (1, 2, i) +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_fun/loglpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/loglpdf.m +***** demo + ## Plot various PDFs from the log-logistic distribution + x = 0.001:0.001:2; + y1 = loglpdf (x, log (1), 1/0.5); + y2 = loglpdf (x, log (1), 1); + y3 = loglpdf (x, log (1), 1/2); + y4 = loglpdf (x, log (1), 1/4); + y5 = loglpdf (x, log (1), 1/8); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c", x, y5, "-m") + grid on + ylim ([0,3]) + legend ({"σ = 2 (β = 0.5)", "σ = 1 (β = 1)", "σ = 0.5 (β = 2)", ... + "σ = 0.25 (β = 4)", "σ = 0.125 (β = 8)"}, "location", "northeast") + title ("Log-logistic PDF") + xlabel ("values in x") + ylabel ("density") + text (0.1, 2.8, "μ = 0 (α = 1), values of σ (β) as shown in legend") +***** shared out1, out2 + out1 = [0, 0, 1, 0.2500, 0.1111, 0.0625, 0.0400, 0.0278, 0]; + out2 = [0, 0, 0.0811, 0.0416, 0.0278, 0.0207, 0.0165, 0]; +***** assert (loglpdf ([-1,0,realmin,1:5,Inf], 0, 1), out1, 1e-4) +***** assert (loglpdf ([-1,0,realmin,1:5,Inf], 0, 1), out1, 1e-4) +***** assert (loglpdf ([-1:5,Inf], 1, 3), out2, 1e-4) +***** assert (class (loglpdf (single (1), 2, 3)), "single") +***** assert (class (loglpdf (1, single (2), 3)), "single") +***** assert (class (loglpdf (1, 2, single (3))), "single") +***** error loglpdf (1) +***** error loglpdf (1, 2) +***** error ... + loglpdf (1, ones (2), ones (3)) +***** error ... + loglpdf (ones (2), 1, ones (3)) +***** error ... + loglpdf (ones (2), ones (3), 1) +***** error loglpdf (i, 2, 3) +***** error loglpdf (1, i, 3) +***** error loglpdf (1, 2, i) +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/dist_fun/gumbelrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gumbelrnd.m +***** assert (size (gumbelrnd (1, 1)), [1 1]) +***** assert (size (gumbelrnd (1, ones (2,1))), [2, 1]) +***** assert (size (gumbelrnd (1, ones (2,2))), [2, 2]) +***** assert (size (gumbelrnd (ones (2,1), 1)), [2, 1]) +***** assert (size (gumbelrnd (ones (2,2), 1)), [2, 2]) +***** assert (size (gumbelrnd (1, 1, 3)), [3, 3]) +***** assert (size (gumbelrnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (gumbelrnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (gumbelrnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (gumbelrnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (gumbelrnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (gumbelrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (gumbelrnd (1, 1)), "double") +***** assert (class (gumbelrnd (1, single (1))), "single") +***** assert (class (gumbelrnd (1, single ([1, 1]))), "single") +***** assert (class (gumbelrnd (single (1), 1)), "single") +***** assert (class (gumbelrnd (single ([1, 1]), 1)), "single") +***** error gumbelrnd () +***** error gumbelrnd (1) +***** error ... + gumbelrnd (ones (3), ones (2)) +***** error ... + gumbelrnd (ones (2), ones (3)) +***** error gumbelrnd (i, 2, 3) +***** error gumbelrnd (1, i, 3) +***** error ... + gumbelrnd (1, 2, -1) +***** error ... + gumbelrnd (1, 2, 1.2) +***** error ... + gumbelrnd (1, 2, ones (2)) +***** error ... + gumbelrnd (1, 2, [2 -1 2]) +***** error ... + gumbelrnd (1, 2, [2 0 2.5]) +***** error ... + gumbelrnd (1, 2, 2, -1, 5) +***** error ... + gumbelrnd (1, 2, 2, 1.5, 5) +***** error ... + gumbelrnd (2, ones (2), 3) +***** error ... + gumbelrnd (2, ones (2), [3, 2]) +***** error ... + gumbelrnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/ricepdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ricepdf.m +***** demo + ## Plot various PDFs from the Rician distribution + x = 0:0.01:8; + y1 = ricepdf (x, 0, 1); + y2 = ricepdf (x, 0.5, 1); + y3 = ricepdf (x, 1, 1); + y4 = ricepdf (x, 2, 1); + y5 = ricepdf (x, 4, 1); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-m", x, y5, "-k") + grid on + ylim ([0, 0.65]) + xlim ([0, 8]) + legend ({"s = 0, σ = 1", "s = 0.5, σ = 1", "s = 1, σ = 1", ... + "s = 2, σ = 1", "s = 4, σ = 1"}, "location", "northeast") + title ("Rician PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-1 0 0.5 1 2]; + y = [0 0 0.1073 0.1978 0.2846]; +***** assert (ricepdf (x, ones (1, 5), 2 * ones (1, 5)), y, 1e-4) +***** assert (ricepdf (x, 1, 2 * ones (1, 5)), y, 1e-4) +***** assert (ricepdf (x, ones (1, 5), 2), y, 1e-4) +***** assert (ricepdf (x, [0 NaN 1 1 1], 2), [0 NaN y(3:5)], 1e-4) +***** assert (ricepdf (x, 1, 2 * [0 NaN 1 1 1]), [0 NaN y(3:5)], 1e-4) +***** assert (ricepdf ([x, NaN], 1, 2), [y, NaN], 1e-4) +***** assert (ricepdf (single ([x, NaN]), 1, 2), single ([y, NaN]), 1e-4) +***** assert (ricepdf ([x, NaN], single (1), 2), single ([y, NaN]), 1e-4) +***** assert (ricepdf ([x, NaN], 1, single (2)), single ([y, NaN]), 1e-4) +***** error ricepdf () +***** error ricepdf (1) +***** error ricepdf (1,2) +***** error ricepdf (1,2,3,4) +***** error ... + ricepdf (ones (3), ones (2), ones (2)) +***** error ... + ricepdf (ones (2), ones (3), ones (2)) +***** error ... + ricepdf (ones (2), ones (2), ones (3)) +***** error ricepdf (i, 2, 2) +***** error ricepdf (2, i, 2) +***** error ricepdf (2, 2, i) +19 tests, 19 passed, 0 known failure, 0 skipped +[inst/dist_fun/wblinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wblinv.m +***** demo + ## Plot various iCDFs from the Weibull distribution + p = 0.001:0.001:0.999; + x1 = wblinv (p, 1, 0.5); + x2 = wblinv (p, 1, 1); + x3 = wblinv (p, 1, 1.5); + x4 = wblinv (p, 1, 5); + plot (p, x1, "-b", p, x2, "-r", p, x3, "-m", p, x4, "-g") + ylim ([0, 2.5]) + grid on + legend ({"λ = 1, k = 0.5", "λ = 1, k = 1", ... + "λ = 1, k = 1.5", "λ = 1, k = 5"}, "location", "northwest") + title ("Weibull iCDF") + xlabel ("probability") + ylabel ("x") +***** shared p + p = [-1 0 0.63212055882855778 1 2]; +***** assert (wblinv (p, ones (1,5), ones (1,5)), [NaN 0 1 Inf NaN], eps) +***** assert (wblinv (p, 1, ones (1,5)), [NaN 0 1 Inf NaN], eps) +***** assert (wblinv (p, ones (1,5), 1), [NaN 0 1 Inf NaN], eps) +***** assert (wblinv (p, [1 -1 NaN Inf 1], 1), [NaN NaN NaN NaN NaN]) +***** assert (wblinv (p, 1, [1 -1 NaN Inf 1]), [NaN NaN NaN NaN NaN]) +***** assert (wblinv ([p(1:2) NaN p(4:5)], 1, 1), [NaN 0 NaN Inf NaN]) +***** assert (wblinv ([p, NaN], 1, 1), [NaN 0 1 Inf NaN NaN], eps) +***** assert (wblinv (single ([p, NaN]), 1, 1), single ([NaN 0 1 Inf NaN NaN]), eps ("single")) +***** assert (wblinv ([p, NaN], single (1), 1), single ([NaN 0 1 Inf NaN NaN]), eps ("single")) +***** assert (wblinv ([p, NaN], 1, single (1)), single ([NaN 0 1 Inf NaN NaN]), eps ("single")) +***** error wblinv () +***** error wblinv (1,2,3,4) +***** error ... + wblinv (ones (3), ones (2), ones (2)) +***** error ... + wblinv (ones (2), ones (3), ones (2)) +***** error ... + wblinv (ones (2), ones (2), ones (3)) +***** error wblinv (i, 2, 2) +***** error wblinv (2, i, 2) +***** error wblinv (2, 2, i) +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/dist_fun/cauchyinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/cauchyinv.m +***** demo + ## Plot various iCDFs from the Cauchy distribution + p = 0.001:0.001:0.999; + x1 = cauchyinv (p, 0, 0.5); + x2 = cauchyinv (p, 0, 1); + x3 = cauchyinv (p, 0, 2); + x4 = cauchyinv (p, -2, 1); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") + grid on + ylim ([-5, 5]) + legend ({"x0 = 0, γ = 0.5", "x0 = 0, γ = 1", ... + "x0 = 0, γ = 2", "x0 = -2, γ = 1"}, "location", "northwest") + title ("Cauchy iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p + p = [-1 0 0.5 1 2]; +***** assert (cauchyinv (p, ones (1,5), 2 * ones (1,5)), [NaN -Inf 1 Inf NaN], eps) +***** assert (cauchyinv (p, 1, 2 * ones (1,5)), [NaN -Inf 1 Inf NaN], eps) +***** assert (cauchyinv (p, ones (1,5), 2), [NaN -Inf 1 Inf NaN], eps) +***** assert (cauchyinv (p, [1 -Inf NaN Inf 1], 2), [NaN NaN NaN NaN NaN]) +***** assert (cauchyinv (p, 1, 2 * [1 0 NaN Inf 1]), [NaN NaN NaN NaN NaN]) +***** assert (cauchyinv ([p(1:2) NaN p(4:5)], 1, 2), [NaN -Inf NaN Inf NaN]) +***** assert (cauchyinv ([p, NaN], 1, 2), [NaN -Inf 1 Inf NaN NaN], eps) +***** assert (cauchyinv (single ([p, NaN]), 1, 2), ... + single ([NaN -Inf 1 Inf NaN NaN]), eps ("single")) +***** assert (cauchyinv ([p, NaN], single (1), 2), ... + single ([NaN -Inf 1 Inf NaN NaN]), eps ("single")) +***** assert (cauchyinv ([p, NaN], 1, single (2)), ... + single ([NaN -Inf 1 Inf NaN NaN]), eps ("single")) +***** error cauchyinv () +***** error cauchyinv (1) +***** error ... + cauchyinv (1, 2) +***** error cauchyinv (1, 2, 3, 4) +***** error ... + cauchyinv (ones (3), ones (2), ones(2)) +***** error ... + cauchyinv (ones (2), ones (3), ones(2)) +***** error ... + cauchyinv (ones (2), ones (2), ones(3)) +***** error cauchyinv (i, 4, 3) +***** error cauchyinv (1, i, 3) +***** error cauchyinv (1, 4, i) +20 tests, 20 passed, 0 known failure, 0 skipped +[inst/dist_fun/loglrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/loglrnd.m +***** assert (size (loglrnd (1, 1)), [1 1]) +***** assert (size (loglrnd (1, ones (2,1))), [2, 1]) +***** assert (size (loglrnd (1, ones (2,2))), [2, 2]) +***** assert (size (loglrnd (ones (2,1), 1)), [2, 1]) +***** assert (size (loglrnd (ones (2,2), 1)), [2, 2]) +***** assert (size (loglrnd (1, 1, 3)), [3, 3]) +***** assert (size (loglrnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (loglrnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (loglrnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (loglrnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (loglrnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (loglrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (loglrnd (1, 1)), "double") +***** assert (class (loglrnd (1, single (1))), "single") +***** assert (class (loglrnd (1, single ([1, 1]))), "single") +***** assert (class (loglrnd (single (1), 1)), "single") +***** assert (class (loglrnd (single ([1, 1]), 1)), "single") +***** error loglrnd () +***** error loglrnd (1) +***** error ... + loglrnd (ones (3), ones (2)) +***** error ... + loglrnd (ones (2), ones (3)) +***** error loglrnd (i, 2, 3) +***** error loglrnd (1, i, 3) +***** error ... + loglrnd (1, 2, -1) +***** error ... + loglrnd (1, 2, 1.2) +***** error ... + loglrnd (1, 2, ones (2)) +***** error ... + loglrnd (1, 2, [2 -1 2]) +***** error ... + loglrnd (1, 2, [2 0 2.5]) +***** error ... + loglrnd (1, 2, 2, -1, 5) +***** error ... + loglrnd (1, 2, 2, 1.5, 5) +***** error ... + loglrnd (2, ones (2), 3) +***** error ... + loglrnd (2, ones (2), [3, 2]) +***** error ... + loglrnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/chi2pdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/chi2pdf.m +***** demo + ## Plot various PDFs from the chi-squared distribution + x = 0:0.01:8; + y1 = chi2pdf (x, 1); + y2 = chi2pdf (x, 2); + y3 = chi2pdf (x, 3); + y4 = chi2pdf (x, 4); + y5 = chi2pdf (x, 6); + y6 = chi2pdf (x, 9); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", ... + x, y4, "-c", x, y5, "-m", x, y6, "-y") + grid on + xlim ([0, 8]) + ylim ([0, 0.5]) + legend ({"df = 1", "df = 2", "df = 3", ... + "df = 4", "df = 6", "df = 9"}, "location", "northeast") + title ("Chi-squared PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-1 0 0.5 1 Inf]; + y = [0, 1/2 * exp(-x(2:5)/2)]; +***** assert (chi2pdf (x, 2*ones (1,5)), y) +***** assert (chi2pdf (x, 2), y) +***** assert (chi2pdf (x, 2*[1 0 NaN 1 1]), [y(1) NaN NaN y(4:5)]) +***** assert (chi2pdf ([x, NaN], 2), [y, NaN]) +***** assert (chi2pdf (single ([x, NaN]), 2), single ([y, NaN])) +***** assert (chi2pdf ([x, NaN], single (2)), single ([y, NaN])) +***** error chi2pdf () +***** error chi2pdf (1) +***** error chi2pdf (1,2,3) +***** error ... + chi2pdf (ones (3), ones (2)) +***** error ... + chi2pdf (ones (2), ones (3)) +***** error chi2pdf (i, 2) +***** error chi2pdf (2, i) +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_fun/unidcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unidcdf.m +***** demo + ## Plot various CDFs from the discrete uniform distribution + x = 0:10; + p1 = unidcdf (x, 5); + p2 = unidcdf (x, 9); + plot (x, p1, "*b", x, p2, "*g") + grid on + xlim ([0, 10]) + ylim ([0, 1]) + legend ({"N = 5", "N = 9"}, "location", "southeast") + title ("Discrete uniform CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y + x = [0 1 2.5 10 11]; + y = [0, 0.1 0.2 1.0 1.0]; +***** assert (unidcdf (x, 10*ones (1,5)), y) +***** assert (unidcdf (x, 10*ones (1,5), "upper"), 1 - y) +***** assert (unidcdf (x, 10), y) +***** assert (unidcdf (x, 10, "upper"), 1 - y) +***** assert (unidcdf (x, 10*[0 1 NaN 1 1]), [NaN 0.1 NaN y(4:5)]) +***** assert (unidcdf ([x(1:2) NaN Inf x(5)], 10), [y(1:2) NaN 1 y(5)]) +***** assert (unidcdf ([x, NaN], 10), [y, NaN]) +***** assert (unidcdf (single ([x, NaN]), 10), single ([y, NaN])) +***** assert (unidcdf ([x, NaN], single (10)), single ([y, NaN])) +***** error unidcdf () +***** error unidcdf (1) +***** error unidcdf (1, 2, 3) +***** error unidcdf (1, 2, "tail") +***** error ... + unidcdf (ones (3), ones (2)) +***** error ... + unidcdf (ones (2), ones (3)) +***** error unidcdf (i, 2) +***** error unidcdf (2, i) 17 tests, 17 passed, 0 known failure, 0 skipped +[inst/dist_fun/ncfcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncfcdf.m +***** demo + ## Plot various CDFs from the noncentral F distribution + x = 0:0.01:5; + p1 = ncfcdf (x, 2, 5, 1); + p2 = ncfcdf (x, 2, 5, 2); + p3 = ncfcdf (x, 5, 10, 1); + p4 = ncfcdf (x, 10, 20, 10); + plot (x, p1, "-r", x, p2, "-g", x, p3, "-k", x, p4, "-m") + grid on + xlim ([0, 5]) + legend ({"df1 = 2, df2 = 5, λ = 1", "df1 = 2, df2 = 5, λ = 2", ... + "df1 = 5, df2 = 10, λ = 1", "df1 = 10, df2 = 20, λ = 10"}, ... + "location", "southeast") + title ("Noncentral F CDF") + xlabel ("values in x") + ylabel ("probability") +***** demo + ## Compare the noncentral F CDF with LAMBDA = 10 to the F CDF with the + ## same number of numerator and denominator degrees of freedom (5, 20) + + x = 0.01:0.1:10.01; + p1 = ncfcdf (x, 5, 20, 10); + p2 = fcdf (x, 5, 20); + plot (x, p1, "-", x, p2, "-"); + grid on + xlim ([0, 10]) + legend ({"Noncentral F(5,20,10)", "F(5,20)"}, "location", "southeast") + title ("Noncentral F vs F CDFs") + xlabel ("values in x") + ylabel ("probability") +***** test + x = -2:0.1:2; + p = ncfcdf (x, 10, 1, 3); + assert (p([1:21]), zeros (1, 21), 1e-76); + assert (p(22), 0.004530737275319753, 1e-14); + assert (p(30), 0.255842099135669, 1e-14); + assert (p(41), 0.4379890998457305, 1e-14); +***** test + p = ncfcdf (12, 10, 3, 2); + assert (p, 0.9582287900447416, 1e-14); +***** test + p = ncfcdf (2, 3, 2, 1); + assert (p, 0.5731985522994989, 1e-14); +***** test + p = ncfcdf (2, 3, 2, 1, "upper"); + assert (p, 0.4268014477004823, 1e-14); +***** test + p = ncfcdf ([3, 6], 3, 2, 5, "upper"); + assert (p, [0.530248523596927, 0.3350482341323044], 1e-14); +***** error ncfcdf () +***** error ncfcdf (1) +***** error ncfcdf (1, 2) +***** error ncfcdf (1, 2, 3) +***** error ncfcdf (1, 2, 3, 4, "tail") +***** error ncfcdf (1, 2, 3, 4, 5) +***** error ... + ncfcdf (ones (3), ones (2), ones (2), ones (2)) +***** error ... + ncfcdf (ones (2), ones (3), ones (2), ones (2)) +***** error ... + ncfcdf (ones (2), ones (2), ones (3), ones (2)) +***** error ... + ncfcdf (ones (2), ones (2), ones (2), ones (3)) +***** error ncfcdf (i, 2, 2, 2) +***** error ncfcdf (2, i, 2, 2) +***** error ncfcdf (2, 2, i, 2) +***** error ncfcdf (2, 2, 2, i) +19 tests, 19 passed, 0 known failure, 0 skipped [inst/dist_fun/betainv.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/betainv.m ***** demo @@ -21185,86 +14090,380 @@ ***** error betainv (2, i, 2) ***** error betainv (2, 2, i) 20 tests, 20 passed, 0 known failure, 0 skipped -[inst/dist_fun/chi2rnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/chi2rnd.m -***** assert (size (chi2rnd (2)), [1, 1]) -***** assert (size (chi2rnd (ones (2,1))), [2, 1]) -***** assert (size (chi2rnd (ones (2,2))), [2, 2]) -***** assert (size (chi2rnd (1, 3)), [3, 3]) -***** assert (size (chi2rnd (1, [4 1])), [4, 1]) -***** assert (size (chi2rnd (1, 4, 1)), [4, 1]) -***** assert (size (chi2rnd (1, 4, 1)), [4, 1]) -***** assert (size (chi2rnd (1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (chi2rnd (1, 0, 1)), [0, 1]) -***** assert (size (chi2rnd (1, 1, 0)), [1, 0]) -***** assert (size (chi2rnd (1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (chi2rnd (2)), "double") -***** assert (class (chi2rnd (single (2))), "single") -***** assert (class (chi2rnd (single ([2 2]))), "single") -***** error chi2rnd () -***** error chi2rnd (i) -***** error ... - chi2rnd (1, -1) -***** error ... - chi2rnd (1, 1.2) -***** error ... - chi2rnd (1, ones (2)) -***** error ... - chi2rnd (1, [2 -1 2]) -***** error ... - chi2rnd (1, [2 0 2.5]) -***** error ... - chi2rnd (ones (2), ones (2)) -***** error ... - chi2rnd (1, 2, -1, 5) -***** error ... - chi2rnd (1, 2, 1.5, 5) -***** error chi2rnd (ones (2,2), 3) -***** error chi2rnd (ones (2,2), [3, 2]) -***** error chi2rnd (ones (2,2), 2, 3) -27 tests, 27 passed, 0 known failure, 0 skipped -[inst/dist_fun/logiinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/logiinv.m +[inst/dist_fun/hygeinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hygeinv.m ***** demo - ## Plot various iCDFs from the logistic distribution + ## Plot various iCDFs from the hypergeometric distribution p = 0.001:0.001:0.999; - x1 = logiinv (p, 5, 2); - x2 = logiinv (p, 9, 3); - x3 = logiinv (p, 9, 4); - x4 = logiinv (p, 6, 2); - x5 = logiinv (p, 2, 1); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-m") + x1 = hygeinv (p, 500, 50, 100); + x2 = hygeinv (p, 500, 60, 200); + x3 = hygeinv (p, 500, 70, 300); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r") grid on - legend ({"μ = 5, σ = 2", "μ = 9, σ = 3", "μ = 9, σ = 4", ... - "μ = 6, σ = 2", "μ = 2, σ = 1"}, "location", "southeast") - title ("Logistic iCDF") + ylim ([0, 60]) + legend ({"m = 500, k = 50, n = 100", "m = 500, k = 60, n = 200", ... + "m = 500, k = 70, n = 300"}, "location", "northwest") + title ("Hypergeometric iCDF") xlabel ("probability") - ylabel ("x") -***** test - p = [0.01:0.01:0.99]; - assert (logiinv (p, 0, 1), log (p ./ (1-p)), 25*eps); + ylabel ("values in p (number of successes)") ***** shared p p = [-1 0 0.5 1 2]; -***** assert (logiinv (p, 0, 1), [NaN -Inf 0 Inf NaN]) -***** assert (logiinv (p, 0, [-1, 0, 1, 2, 3]), [NaN NaN 0 Inf NaN]) -***** assert (logiinv ([p, NaN], 0, 1), [NaN -Inf 0 Inf NaN NaN]) -***** assert (logiinv (single ([p, NaN]), 0, 1), single ([NaN -Inf 0 Inf NaN NaN])) -***** assert (logiinv ([p, NaN], single (0), 1), single ([NaN -Inf 0 Inf NaN NaN])) -***** assert (logiinv ([p, NaN], 0, single (1)), single ([NaN -Inf 0 Inf NaN NaN])) -***** error logiinv () -***** error logiinv (1) -***** error ... - logiinv (1, 2) -***** error ... - logiinv (1, ones (2), ones (3)) -***** error ... - logiinv (ones (2), 1, ones (3)) -***** error ... - logiinv (ones (2), ones (3), 1) -***** error logiinv (i, 2, 3) -***** error logiinv (1, i, 3) -***** error logiinv (1, 2, i) -16 tests, 16 passed, 0 known failure, 0 skipped +***** assert (hygeinv (p, 4*ones (1,5), 2*ones (1,5), 2*ones (1,5)), [NaN 0 1 2 NaN]) +***** assert (hygeinv (p, 4*ones (1,5), 2, 2), [NaN 0 1 2 NaN]) +***** assert (hygeinv (p, 4, 2*ones (1,5), 2), [NaN 0 1 2 NaN]) +***** assert (hygeinv (p, 4, 2, 2*ones (1,5)), [NaN 0 1 2 NaN]) +***** assert (hygeinv (p, 4*[1 -1 NaN 1.1 1], 2, 2), [NaN NaN NaN NaN NaN]) +***** assert (hygeinv (p, 4, 2*[1 -1 NaN 1.1 1], 2), [NaN NaN NaN NaN NaN]) +***** assert (hygeinv (p, 4, 5, 2), [NaN NaN NaN NaN NaN]) +***** assert (hygeinv (p, 4, 2, 2*[1 -1 NaN 1.1 1]), [NaN NaN NaN NaN NaN]) +***** assert (hygeinv (p, 4, 2, 5), [NaN NaN NaN NaN NaN]) +***** assert (hygeinv ([p(1:2) NaN p(4:5)], 4, 2, 2), [NaN 0 NaN 2 NaN]) +***** assert (hygeinv ([p, NaN], 4, 2, 2), [NaN 0 1 2 NaN NaN]) +***** assert (hygeinv (single ([p, NaN]), 4, 2, 2), single ([NaN 0 1 2 NaN NaN])) +***** assert (hygeinv ([p, NaN], single (4), 2, 2), single ([NaN 0 1 2 NaN NaN])) +***** assert (hygeinv ([p, NaN], 4, single (2), 2), single ([NaN 0 1 2 NaN NaN])) +***** assert (hygeinv ([p, NaN], 4, 2, single (2)), single ([NaN 0 1 2 NaN NaN])) +***** error hygeinv () +***** error hygeinv (1) +***** error hygeinv (1,2) +***** error hygeinv (1,2,3) +***** error ... + hygeinv (ones (2), ones (3), 1, 1) +***** error ... + hygeinv (1, ones (2), ones (3), 1) +***** error ... + hygeinv (1, 1, ones (2), ones (3)) +***** error hygeinv (i, 2, 2, 2) +***** error hygeinv (2, i, 2, 2) +***** error hygeinv (2, 2, i, 2) +***** error hygeinv (2, 2, 2, i) +26 tests, 26 passed, 0 known failure, 0 skipped +[inst/dist_fun/burrinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/burrinv.m +***** demo + ## Plot various iCDFs from the Burr type XII distribution + p = 0.001:0.001:0.999; + x1 = burrinv (p, 1, 1, 1); + x2 = burrinv (p, 1, 1, 2); + x3 = burrinv (p, 1, 1, 3); + x4 = burrinv (p, 1, 2, 1); + x5 = burrinv (p, 1, 3, 1); + x6 = burrinv (p, 1, 0.5, 2); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", ... + p, x4, "-c", p, x5, "-m", p, x6, "-k") + grid on + ylim ([0, 5]) + legend ({"λ = 1, c = 1, k = 1", "λ = 1, c = 1, k = 2", ... + "λ = 1, c = 1, k = 3", "λ = 1, c = 2, k = 1", ... + "λ = 1, c = 3, k = 1", "λ = 1, c = 0.5, k = 2"}, ... + "location", "northwest") + title ("Burr type XII iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p, y + p = [-Inf, -1, 0, 1/2, 1, 2, Inf]; + y = [NaN, NaN, 0, 1 , Inf, NaN, NaN]; +***** assert (burrinv (p, ones (1,7), ones (1,7), ones(1,7)), y, eps) +***** assert (burrinv (p, 1, 1, 1), y, eps) +***** assert (burrinv (p, [1, 1, 1, NaN, 1, 1, 1], 1, 1), [y(1:3), NaN, y(5:7)], eps) +***** assert (burrinv (p, 1, [1, 1, 1, NaN, 1, 1, 1], 1), [y(1:3), NaN, y(5:7)], eps) +***** assert (burrinv (p, 1, 1, [1, 1, 1, NaN, 1, 1, 1]), [y(1:3), NaN, y(5:7)], eps) +***** assert (burrinv ([p, NaN], 1, 1, 1), [y, NaN], eps) +***** assert (burrinv (single ([p, NaN]), 1, 1, 1), single ([y, NaN]), eps("single")) +***** assert (burrinv ([p, NaN], single (1), 1, 1), single ([y, NaN]), eps("single")) +***** assert (burrinv ([p, NaN], 1, single (1), 1), single ([y, NaN]), eps("single")) +***** assert (burrinv ([p, NaN], 1, 1, single (1)), single ([y, NaN]), eps("single")) +***** error burrinv () +***** error burrinv (1) +***** error burrinv (1, 2) +***** error burrinv (1, 2, 3) +***** error ... + burrinv (1, 2, 3, 4, 5) +***** error ... + burrinv (ones (3), ones (2), ones(2), ones(2)) +***** error ... + burrinv (ones (2), ones (3), ones(2), ones(2)) +***** error ... + burrinv (ones (2), ones (2), ones(3), ones(2)) +***** error ... + burrinv (ones (2), ones (2), ones(2), ones(3)) +***** error burrinv (i, 2, 3, 4) +***** error burrinv (1, i, 3, 4) +***** error burrinv (1, 2, i, 4) +***** error burrinv (1, 2, 3, i) +23 tests, 23 passed, 0 known failure, 0 skipped +[inst/dist_fun/iwishpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/iwishpdf.m +***** assert(iwishpdf(4, 3, 3.1), 0.04226595, 1E-7); +***** assert(iwishpdf([2 -0.3;-0.3 4], [1 0.3;0.3 1], 4), 1.60166e-05, 1E-10); +***** assert(iwishpdf([6 2 5; 2 10 -5; 5 -5 25], ... + [9 5 5; 5 10 -8; 5 -8 22], 5.1), 4.946831e-12, 1E-17); +***** error iwishpdf () +***** error iwishpdf (1, 2) +***** error iwishpdf (1, 2, 0) +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/dist_fun/cauchypdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/cauchypdf.m +***** demo + ## Plot various PDFs from the Cauchy distribution + x = -5:0.01:5; + y1 = cauchypdf (x, 0, 0.5); + y2 = cauchypdf (x, 0, 1); + y3 = cauchypdf (x, 0, 2); + y4 = cauchypdf (x, -2, 1); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") + grid on + xlim ([-5, 5]) + ylim ([0, 0.7]) + legend ({"x0 = 0, γ = 0.5", "x0 = 0, γ = 1", ... + "x0 = 0, γ = 2", "x0 = -2, γ = 1"}, "location", "northeast") + title ("Cauchy PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-1 0 0.5 1 2]; + y = 1/pi * ( 2 ./ ((x-1).^2 + 2^2) ); +***** assert (cauchypdf (x, ones (1,5), 2*ones (1,5)), y) +***** assert (cauchypdf (x, 1, 2*ones (1,5)), y) +***** assert (cauchypdf (x, ones (1,5), 2), y) +***** assert (cauchypdf (x, [-Inf 1 NaN 1 Inf], 2), [NaN y(2) NaN y(4) NaN]) +***** assert (cauchypdf (x, 1, 2*[0 1 NaN 1 Inf]), [NaN y(2) NaN y(4) NaN]) +***** assert (cauchypdf ([x, NaN], 1, 2), [y, NaN]) +***** assert (cauchypdf (single ([x, NaN]), 1, 2), single ([y, NaN]), eps ("single")) +***** assert (cauchypdf ([x, NaN], single (1), 2), single ([y, NaN]), eps ("single")) +***** assert (cauchypdf ([x, NaN], 1, single (2)), single ([y, NaN]), eps ("single")) +***** test + x = rand (10, 1); + assert (cauchypdf (x, 0, 1), tpdf (x, 1), eps); +***** error cauchypdf () +***** error cauchypdf (1) +***** error ... + cauchypdf (1, 2) +***** error cauchypdf (1, 2, 3, 4) +***** error ... + cauchypdf (ones (3), ones (2), ones(2)) +***** error ... + cauchypdf (ones (2), ones (3), ones(2)) +***** error ... + cauchypdf (ones (2), ones (2), ones(3)) +***** error cauchypdf (i, 4, 3) +***** error cauchypdf (1, i, 3) +***** error cauchypdf (1, 4, i) +20 tests, 20 passed, 0 known failure, 0 skipped +[inst/dist_fun/bisacdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/bisacdf.m +***** demo + ## Plot various CDFs from the Birnbaum-Saunders distribution + x = 0.01:0.01:4; + p1 = bisacdf (x, 1, 0.5); + p2 = bisacdf (x, 1, 1); + p3 = bisacdf (x, 1, 2); + p4 = bisacdf (x, 1, 5); + p5 = bisacdf (x, 1, 10); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-m") + grid on + legend ({"β = 1, γ = 0.5", "β = 1, γ = 1", "β = 1, γ = 2", ... + "β = 1, γ = 5", "β = 1, γ = 10"}, "location", "southeast") + title ("Birnbaum-Saunders CDF") + xlabel ("values in x") + ylabel ("probability") +***** demo + ## Plot various CDFs from the Birnbaum-Saunders distribution + x = 0.01:0.01:6; + p1 = bisacdf (x, 1, 0.3); + p2 = bisacdf (x, 2, 0.3); + p3 = bisacdf (x, 1, 0.5); + p4 = bisacdf (x, 3, 0.5); + p5 = bisacdf (x, 5, 0.5); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-m") + grid on + legend ({"β = 1, γ = 0.3", "β = 2, γ = 0.3", "β = 1, γ = 0.5", ... + "β = 3, γ = 0.5", "β = 5, γ = 0.5"}, "location", "southeast") + title ("Birnbaum-Saunders CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y + x = [-1, 0, 1, 2, Inf]; + y = [0, 0, 1/2, 0.76024993890652337, 1]; +***** assert (bisacdf (x, ones (1,5), ones (1,5)), y, eps) +***** assert (bisacdf (x, 1, 1), y, eps) +***** assert (bisacdf (x, 1, ones (1,5)), y, eps) +***** assert (bisacdf (x, ones (1,5), 1), y, eps) +***** assert (bisacdf (x, 1, 1), y, eps) +***** assert (bisacdf (x, 1, [1, 1, NaN, 1, 1]), [y(1:2), NaN, y(4:5)], eps) +***** assert (bisacdf (x, [1, 1, NaN, 1, 1], 1), [y(1:2), NaN, y(4:5)], eps) +***** assert (bisacdf ([x, NaN], 1, 1), [y, NaN], eps) +***** assert (bisacdf (single ([x, NaN]), 1, 1), single ([y, NaN]), eps ("single")) +***** assert (bisacdf ([x, NaN], 1, single (1)), single ([y, NaN]), eps ("single")) +***** assert (bisacdf ([x, NaN], single (1), 1), single ([y, NaN]), eps ("single")) +***** error bisacdf () +***** error bisacdf (1) +***** error bisacdf (1, 2) +***** error ... + bisacdf (1, 2, 3, 4, 5) +***** error bisacdf (1, 2, 3, "tail") +***** error bisacdf (1, 2, 3, 4) +***** error ... + bisacdf (ones (3), ones (2), ones(2)) +***** error ... + bisacdf (ones (2), ones (3), ones(2)) +***** error ... + bisacdf (ones (2), ones (2), ones(3)) +***** error bisacdf (i, 4, 3) +***** error bisacdf (1, i, 3) +***** error bisacdf (1, 4, i) +23 tests, 23 passed, 0 known failure, 0 skipped +[inst/dist_fun/ncfrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncfrnd.m +***** assert (size (ncfrnd (1, 1, 1)), [1 1]) +***** assert (size (ncfrnd (1, ones (2,1), 1)), [2, 1]) +***** assert (size (ncfrnd (1, ones (2,2), 1)), [2, 2]) +***** assert (size (ncfrnd (ones (2,1), 1, 1)), [2, 1]) +***** assert (size (ncfrnd (ones (2,2), 1, 1)), [2, 2]) +***** assert (size (ncfrnd (1, 1, 1, 3)), [3, 3]) +***** assert (size (ncfrnd (1, 1, 1, [4, 1])), [4, 1]) +***** assert (size (ncfrnd (1, 1, 1, 4, 1)), [4, 1]) +***** assert (size (ncfrnd (1, 1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (ncfrnd (1, 1, 1, 0, 1)), [0, 1]) +***** assert (size (ncfrnd (1, 1, 1, 1, 0)), [1, 0]) +***** assert (size (ncfrnd (1, 1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (ncfrnd (1, 1, 1)), "double") +***** assert (class (ncfrnd (1, single (1), 1)), "single") +***** assert (class (ncfrnd (1, 1, single (1))), "single") +***** assert (class (ncfrnd (1, single ([1, 1]), 1)), "single") +***** assert (class (ncfrnd (1, 1, single ([1, 1]))), "single") +***** assert (class (ncfrnd (single (1), 1, 1)), "single") +***** assert (class (ncfrnd (single ([1, 1]), 1, 1)), "single") +***** error ncfrnd () +***** error ncfrnd (1) +***** error ncfrnd (1, 2) +***** error ... + ncfrnd (ones (3), ones (2), ones (2)) +***** error ... + ncfrnd (ones (2), ones (3), ones (2)) +***** error ... + ncfrnd (ones (2), ones (2), ones (3)) +***** error ncfrnd (i, 2, 3) +***** error ncfrnd (1, i, 3) +***** error ncfrnd (1, 2, i) +***** error ... + ncfrnd (1, 2, 3, -1) +***** error ... + ncfrnd (1, 2, 3, 1.2) +***** error ... + ncfrnd (1, 2, 3, ones (2)) +***** error ... + ncfrnd (1, 2, 3, [2 -1 2]) +***** error ... + ncfrnd (1, 2, 3, [2 0 2.5]) +***** error ... + ncfrnd (1, 2, 3, 2, -1, 5) +***** error ... + ncfrnd (1, 2, 3, 2, 1.5, 5) +***** error ... + ncfrnd (2, ones (2), 2, 3) +***** error ... + ncfrnd (2, ones (2), 2, [3, 2]) +***** error ... + ncfrnd (2, ones (2), 2, 3, 2) +38 tests, 38 passed, 0 known failure, 0 skipped +[inst/dist_fun/tpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tpdf.m +***** demo + ## Plot various PDFs from the Student's T distribution + x = -5:0.01:5; + y1 = tpdf (x, 1); + y2 = tpdf (x, 2); + y3 = tpdf (x, 5); + y4 = tpdf (x, Inf); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-m") + grid on + xlim ([-5, 5]) + ylim ([0, 0.41]) + legend ({"df = 1", "df = 2", ... + "df = 5", 'df = \infty'}, "location", "northeast") + title ("Student's T PDF") + xlabel ("values in x") + ylabel ("density") +***** test + x = rand (10,1); + y = 1./(pi * (1 + x.^2)); + assert (tpdf (x, 1), y, 5*eps); +***** shared x, y + x = [-Inf 0 0.5 1 Inf]; + y = 1./(pi * (1 + x.^2)); +***** assert (tpdf (x, ones (1,5)), y, eps) +***** assert (tpdf (x, 1), y, eps) +***** assert (tpdf (x, [0 NaN 1 1 1]), [NaN NaN y(3:5)], eps) +***** assert (tpdf (x, Inf), normpdf (x)) +***** assert (tpdf ([x, NaN], 1), [y, NaN], eps) +***** assert (tpdf (single ([x, NaN]), 1), single ([y, NaN]), eps ("single")) +***** assert (tpdf ([x, NaN], single (1)), single ([y, NaN]), eps ("single")) +***** error tpdf () +***** error tpdf (1) +***** error ... + tpdf (ones (3), ones (2)) +***** error ... + tpdf (ones (2), ones (3)) +***** error tpdf (i, 2) +***** error tpdf (2, i) +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/dist_fun/gaminv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gaminv.m +***** demo + ## Plot various iCDFs from the Gamma distribution + p = 0.001:0.001:0.999; + x1 = gaminv (p, 1, 2); + x2 = gaminv (p, 2, 2); + x3 = gaminv (p, 3, 2); + x4 = gaminv (p, 5, 1); + x5 = gaminv (p, 9, 0.5); + x6 = gaminv (p, 7.5, 1); + x7 = gaminv (p, 0.5, 1); + plot (p, x1, "-r", p, x2, "-g", p, x3, "-y", p, x4, "-m", ... + p, x5, "-k", p, x6, "-b", p, x7, "-c") + ylim ([0, 20]) + grid on + legend ({"α = 1, β = 2", "α = 2, β = 2", "α = 3, β = 2", ... + "α = 5, β = 1", "α = 9, β = 0.5", "α = 7.5, β = 1", ... + "α = 0.5, β = 1"}, "location", "northwest") + title ("Gamma iCDF") + xlabel ("probability") + ylabel ("x") +***** shared p + p = [-1 0 0.63212055882855778 1 2]; +***** assert (gaminv (p, ones (1,5), ones (1,5)), [NaN 0 1 Inf NaN], eps) +***** assert (gaminv (p, 1, ones (1,5)), [NaN 0 1 Inf NaN], eps) +***** assert (gaminv (p, ones (1,5), 1), [NaN 0 1 Inf NaN], eps) +***** assert (gaminv (p, [1 -Inf NaN Inf 1], 1), [NaN NaN NaN NaN NaN]) +***** assert (gaminv (p, 1, [1 -Inf NaN Inf 1]), [NaN NaN NaN NaN NaN]) +***** assert (gaminv ([p(1:2) NaN p(4:5)], 1, 1), [NaN 0 NaN Inf NaN]) +***** assert (gaminv ([p(1:2) NaN p(4:5)], 1, 1), [NaN 0 NaN Inf NaN]) +***** assert (gaminv (1e-16, 1, 1), 1e-16, eps) +***** assert (gaminv (1e-16, 1, 2), 2e-16, eps) +***** assert (gaminv (1e-20, 3, 5), 1.957434012161815e-06, eps) +***** assert (gaminv (1e-15, 1, 1), 1e-15, eps) +***** assert (gaminv (1e-35, 1, 1), 1e-35, eps) +***** assert (gaminv ([p, NaN], 1, 1), [NaN 0 1 Inf NaN NaN], eps) +***** assert (gaminv (single ([p, NaN]), 1, 1), single ([NaN 0 1 Inf NaN NaN]), ... + eps ("single")) +***** assert (gaminv ([p, NaN], single (1), 1), single ([NaN 0 1 Inf NaN NaN]), ... + eps ("single")) +***** assert (gaminv ([p, NaN], 1, single (1)), single ([NaN 0 1 Inf NaN NaN]), ... + eps ("single")) +***** error gaminv () +***** error gaminv (1) +***** error gaminv (1,2) +***** error ... + gaminv (ones (3), ones (2), ones (2)) +***** error ... + gaminv (ones (2), ones (3), ones (2)) +***** error ... + gaminv (ones (2), ones (2), ones (3)) +***** error gaminv (i, 2, 2) +***** error gaminv (2, i, 2) +***** error gaminv (2, 2, i) +25 tests, 25 passed, 0 known failure, 0 skipped [inst/dist_fun/binornd.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/binornd.m ***** assert (size (binornd (2, 1/2)), [1 1]) @@ -21323,389 +14522,495 @@ ***** error ... binornd (2 * ones (2), 1/2, 3, 2) 40 tests, 40 passed, 0 known failure, 0 skipped -[inst/dist_fun/tlspdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tlspdf.m +[inst/dist_fun/nakainv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nakainv.m ***** demo - ## Plot various PDFs from the Student's T distribution - x = -8:0.01:8; - y1 = tlspdf (x, 0, 1, 1); - y2 = tlspdf (x, 0, 2, 2); - y3 = tlspdf (x, 3, 2, 5); - y4 = tlspdf (x, -1, 3, Inf); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-m") + ## Plot various iCDFs from the Nakagami distribution + p = 0.001:0.001:0.999; + x1 = nakainv (p, 0.5, 1); + x2 = nakainv (p, 1, 1); + x3 = nakainv (p, 1, 2); + x4 = nakainv (p, 1, 3); + x5 = nakainv (p, 2, 1); + x6 = nakainv (p, 2, 2); + x7 = nakainv (p, 5, 1); + plot (p, x1, "-r", p, x2, "-g", p, x3, "-y", p, x4, "-m", ... + p, x5, "-k", p, x6, "-b", p, x7, "-c") grid on - xlim ([-8, 8]) - ylim ([0, 0.41]) - legend ({"mu = 0, sigma = 1, nu = 1", "mu = 0, sigma = 2, nu = 2", ... - "mu = 3, sigma = 2, nu = 5", 'mu = -1, sigma = 3, nu = \infty'}, ... - "location", "northwest") - title ("Location-scale Student's T PDF") + ylim ([0, 3]) + legend ({"μ = 0.5, ω = 1", "μ = 1, ω = 1", "μ = 1, ω = 2", ... + "μ = 1, ω = 3", "μ = 2, ω = 1", "μ = 2, ω = 2", ... + "μ = 5, ω = 1"}, "location", "northwest") + title ("Nakagami iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p, y + p = [-Inf, -1, 0, 1/2, 1, 2, Inf]; + y = [NaN, NaN, 0, 0.83255461115769769, Inf, NaN, NaN]; +***** assert (nakainv (p, ones (1,7), ones (1,7)), y, eps) +***** assert (nakainv (p, 1, 1), y, eps) +***** assert (nakainv (p, [1, 1, 1, NaN, 1, 1, 1], 1), [y(1:3), NaN, y(5:7)], eps) +***** assert (nakainv (p, 1, [1, 1, 1, NaN, 1, 1, 1]), [y(1:3), NaN, y(5:7)], eps) +***** assert (nakainv ([p, NaN], 1, 1), [y, NaN], eps) +***** assert (nakainv (single ([p, NaN]), 1, 1), single ([y, NaN])) +***** assert (nakainv ([p, NaN], single (1), 1), single ([y, NaN])) +***** assert (nakainv ([p, NaN], 1, single (1)), single ([y, NaN])) +***** error nakainv () +***** error nakainv (1) +***** error nakainv (1, 2) +***** error ... + nakainv (ones (3), ones (2), ones(2)) +***** error ... + nakainv (ones (2), ones (3), ones(2)) +***** error ... + nakainv (ones (2), ones (2), ones(3)) +***** error nakainv (i, 4, 3) +***** error nakainv (1, i, 3) +***** error nakainv (1, 4, i) +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/dist_fun/binocdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/binocdf.m +***** demo + ## Plot various CDFs from the binomial distribution + x = 0:40; + p1 = binocdf (x, 20, 0.5); + p2 = binocdf (x, 20, 0.7); + p3 = binocdf (x, 40, 0.5); + plot (x, p1, "*b", x, p2, "*g", x, p3, "*r") + grid on + legend ({"n = 20, ps = 0.5", "n = 20, ps = 0.7", ... + "n = 40, ps = 0.5"}, "location", "southeast") + title ("Binomial CDF") + xlabel ("values in x (number of successes)") + ylabel ("probability") +***** shared x, p, p1 + x = [-1 0 1 2 3]; + p = [0 1/4 3/4 1 1]; + p1 = 1 - p; +***** assert (binocdf (x, 2 * ones (1, 5), 0.5 * ones (1, 5)), p, eps) +***** assert (binocdf (x, 2, 0.5 * ones (1, 5)), p, eps) +***** assert (binocdf (x, 2 * ones (1, 5), 0.5), p, eps) +***** assert (binocdf (x, 2 * [0 -1 NaN 1.1 1], 0.5), [0 NaN NaN NaN 1]) +***** assert (binocdf (x, 2, 0.5 * [0 -1 NaN 3 1]), [0 NaN NaN NaN 1]) +***** assert (binocdf ([x(1:2) NaN x(4:5)], 2, 0.5), [p(1:2) NaN p(4:5)], eps) +***** assert (binocdf (99, 100, 0.1, "upper"), 1e-100, 1e-112); +***** assert (binocdf (x, 2 * ones (1, 5), 0.5*ones (1,5), "upper"), p1, eps) +***** assert (binocdf (x, 2, 0.5 * ones (1, 5), "upper"), p1, eps) +***** assert (binocdf (x, 2 * ones (1, 5), 0.5, "upper"), p1, eps) +***** assert (binocdf (x, 2 * [0 -1 NaN 1.1 1], 0.5, "upper"), [1 NaN NaN NaN 0]) +***** assert (binocdf (x, 2, 0.5 * [0 -1 NaN 3 1], "upper"), [1 NaN NaN NaN 0]) +***** assert (binocdf ([x(1:2) NaN x(4:5)], 2, 0.5, "upper"), [p1(1:2) NaN p1(4:5)]) +***** assert (binocdf ([x, NaN], 2, 0.5), [p, NaN], eps) +***** assert (binocdf (single ([x, NaN]), 2, 0.5), single ([p, NaN])) +***** assert (binocdf ([x, NaN], single (2), 0.5), single ([p, NaN])) +***** assert (binocdf ([x, NaN], 2, single (0.5)), single ([p, NaN])) +***** error binocdf () +***** error binocdf (1) +***** error binocdf (1, 2) +***** error binocdf (1, 2, 3, 4, 5) +***** error binocdf (1, 2, 3, "tail") +***** error binocdf (1, 2, 3, 4) +***** error ... + binocdf (ones (3), ones (2), ones (2)) +***** error ... + binocdf (ones (2), ones (3), ones (2)) +***** error ... + binocdf (ones (2), ones (2), ones (3)) +***** error binocdf (i, 2, 2) +***** error binocdf (2, i, 2) +***** error binocdf (2, 2, i) +29 tests, 29 passed, 0 known failure, 0 skipped +[inst/dist_fun/mvnrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvnrnd.m +***** error mvnrnd () +***** error mvnrnd ([2, 3, 4]) +***** error mvnrnd (ones (2, 2, 2), ones (1, 2, 3, 4)) +***** error mvnrnd (ones (1, 3), ones (1, 2, 3, 4)) +***** assert (size (mvnrnd ([2, 3, 4], [2, 2, 2])), [1, 3]) +***** assert (size (mvnrnd ([2, 3, 4], [2, 2, 2], 10)), [10, 3]) +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/dist_fun/wishpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wishpdf.m +***** assert(wishpdf(4, 3, 3.1), 0.07702496, 1E-7); +***** assert(wishpdf([2 -0.3;-0.3 4], [1 0.3;0.3 1], 4), 0.004529741, 1E-7); +***** assert(wishpdf([6 2 5; 2 10 -5; 5 -5 25], [9 5 5; 5 10 -8; 5 -8 22], 5.1), 4.474865e-10, 1E-15); +***** error wishpdf () +***** error wishpdf (1, 2) +***** error wishpdf (1, 2, 0) +***** error wishpdf (1, 2) +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/dist_fun/betacdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/betacdf.m +***** demo + ## Plot various CDFs from the Beta distribution + x = 0:0.005:1; + p1 = betacdf (x, 0.5, 0.5); + p2 = betacdf (x, 5, 1); + p3 = betacdf (x, 1, 3); + p4 = betacdf (x, 2, 2); + p5 = betacdf (x, 2, 5); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-m") + grid on + legend ({"α = β = 0.5", "α = 5, β = 1", "α = 1, β = 3", ... + "α = 2, β = 2", "α = 2, β = 5"}, "location", "northwest") + title ("Beta CDF") xlabel ("values in x") - ylabel ("density") + ylabel ("probability") +***** shared x, y, x1, x2 + x = [-1 0 0.5 1 2]; + y = [0 0 0.75 1 1]; +***** assert (betacdf (x, ones (1, 5), 2 * ones (1, 5)), y) +***** assert (betacdf (x, 1, 2 * ones (1, 5)), y) +***** assert (betacdf (x, ones (1, 5), 2), y) +***** assert (betacdf (x, [0 1 NaN 1 1], 2), [NaN 0 NaN 1 1]) +***** assert (betacdf (x, 1, 2 * [0 1 NaN 1 1]), [NaN 0 NaN 1 1]) +***** assert (betacdf ([x(1:2) NaN x(4:5)], 1, 2), [y(1:2) NaN y(4:5)]) + x1 = [0.1:0.2:0.9]; +***** assert (betacdf (x1, 2, 2), [0.028, 0.216, 0.5, 0.784, 0.972], 1e-14); +***** assert (betacdf (x1, 2, 2, "upper"), 1 - [0.028, 0.216, 0.5, 0.784, 0.972],... + 1e-14); + x2 = [1, 2, 3]; +***** assert (betacdf (0.5, x2, x2), [0.5, 0.5, 0.5], 1e-14); +***** assert (betacdf ([x, NaN], 1, 2), [y, NaN]) +***** assert (betacdf (single ([x, NaN]), 1, 2), single ([y, NaN])) +***** assert (betacdf ([x, NaN], single (1), 2), single ([y, NaN])) +***** assert (betacdf ([x, NaN], 1, single (2)), single ([y, NaN])) +***** error betacdf () +***** error betacdf (1) +***** error betacdf (1, 2) +***** error betacdf (1, 2, 3, 4, 5) +***** error betacdf (1, 2, 3, "tail") +***** error betacdf (1, 2, 3, 4) +***** error ... + betacdf (ones (3), ones (2), ones (2)) +***** error ... + betacdf (ones (2), ones (3), ones (2)) +***** error ... + betacdf (ones (2), ones (2), ones (3)) +***** error betacdf (i, 2, 2) +***** error betacdf (2, i, 2) +***** error betacdf (2, 2, i) +25 tests, 25 passed, 0 known failure, 0 skipped +[inst/dist_fun/nbininv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nbininv.m +***** demo + ## Plot various iCDFs from the negative binomial distribution + p = 0.001:0.001:0.999; + x1 = nbininv (p, 2, 0.15); + x2 = nbininv (p, 5, 0.2); + x3 = nbininv (p, 4, 0.4); + x4 = nbininv (p, 10, 0.3); + plot (p, x1, "-r", p, x2, "-g", p, x3, "-k", p, x4, "-m") + grid on + ylim ([0, 40]) + legend ({"r = 2, ps = 0.15", "r = 5, ps = 0.2", "r = 4, p = 0.4", ... + "r = 10, ps = 0.3"}, "location", "northwest") + title ("Negative binomial iCDF") + xlabel ("probability") + ylabel ("values in x (number of failures)") +***** shared p + p = [-1 0 3/4 1 2]; +***** assert (nbininv (p, ones (1,5), 0.5*ones (1,5)), [NaN 0 1 Inf NaN]) +***** assert (nbininv (p, 1, 0.5*ones (1,5)), [NaN 0 1 Inf NaN]) +***** assert (nbininv (p, ones (1,5), 0.5), [NaN 0 1 Inf NaN]) +***** assert (nbininv (p, [1 0 NaN Inf 1], 0.5), [NaN NaN NaN NaN NaN]) +***** assert (nbininv (p, [1 0 1.5 Inf 1], 0.5), [NaN NaN 2 NaN NaN]) +***** assert (nbininv (p, 1, 0.5*[1 -Inf NaN Inf 1]), [NaN NaN NaN NaN NaN]) +***** assert (nbininv ([p(1:2) NaN p(4:5)], 1, 0.5), [NaN 0 NaN Inf NaN]) +***** assert (nbininv ([p, NaN], 1, 0.5), [NaN 0 1 Inf NaN NaN]) +***** assert (nbininv (single ([p, NaN]), 1, 0.5), single ([NaN 0 1 Inf NaN NaN])) +***** assert (nbininv ([p, NaN], single (1), 0.5), single ([NaN 0 1 Inf NaN NaN])) +***** assert (nbininv ([p, NaN], 1, single (0.5)), single ([NaN 0 1 Inf NaN NaN])) +***** shared y, tol + y = magic (3) + 1; + tol = 1; +***** assert (nbininv (nbincdf (1:10, 3, 0.1), 3, 0.1), 1:10, tol) +***** assert (nbininv (nbincdf (1:10, 3./(1:10), 0.1), 3./(1:10), 0.1), 1:10, tol) +***** assert (nbininv (nbincdf (y, 3./y, 1./y), 3./y, 1./y), y, tol) +***** error nbininv () +***** error nbininv (1) +***** error nbininv (1, 2) +***** error ... + nbininv (ones (3), ones (2), ones (2)) +***** error ... + nbininv (ones (2), ones (3), ones (2)) +***** error ... + nbininv (ones (2), ones (2), ones (3)) +***** error nbininv (i, 2, 2) +***** error nbininv (2, i, 2) +***** error nbininv (2, 2, i) +23 tests, 23 passed, 0 known failure, 0 skipped +[inst/dist_fun/invgrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/invgrnd.m +***** assert (size (invgrnd (1, 1, 1)), [1, 1]) +***** assert (size (invgrnd (1, 1, 2)), [2, 2]) +***** assert (size (invgrnd (1, 1, [2, 1])), [2, 1]) +***** assert (size (invgrnd (1, zeros (2, 2))), [2, 2]) +***** assert (size (invgrnd (1, ones (2, 1))), [2, 1]) +***** assert (size (invgrnd (1, ones (2, 2))), [2, 2]) +***** assert (size (invgrnd (ones (2, 1), 1)), [2, 1]) +***** assert (size (invgrnd (ones (2, 2), 1)), [2, 2]) +***** assert (size (invgrnd (1, 1, 3)), [3, 3]) +***** assert (size (invgrnd (1, 1, [4 1])), [4, 1]) +***** assert (size (invgrnd (1, 1, 4, 1)), [4, 1]) ***** test - x = rand (10,1); - y = 1./(pi * (1 + x.^2)); - assert (tlspdf (x, 0, 1, 1), y, 5*eps); - assert (tlspdf (x+5, 5, 1, 1), y, 5*eps); - assert (tlspdf (x.*2, 0, 2, 1), y./2, 5*eps); + r = invgrnd (1, [1, 0, -1]); + assert (r([2:3]), [NaN, NaN]) +***** assert (class (invgrnd (1, 0)), "double") +***** assert (class (invgrnd (1, single (0))), "single") +***** assert (class (invgrnd (1, single ([0 0]))), "single") +***** assert (class (invgrnd (1, single (1))), "single") +***** assert (class (invgrnd (1, single ([1 1]))), "single") +***** assert (class (invgrnd (single (1), 1)), "single") +***** assert (class (invgrnd (single ([1 1]), 1)), "single") +***** error invgrnd () +***** error invgrnd (1) +***** error ... + invgrnd (ones (3), ones (2)) +***** error ... + invgrnd (ones (2), ones (3)) +***** error invgrnd (i, 2, 3) +***** error invgrnd (1, i, 3) +***** error ... + invgrnd (1, 2, -1) +***** error ... + invgrnd (1, 2, 1.2) +***** error ... + invgrnd (1, 2, ones (2)) +***** error ... + invgrnd (1, 2, [2 -1 2]) +***** error ... + invgrnd (1, 2, [2 0 2.5]) +***** error ... + invgrnd (1, 2, 2, -1, 5) +***** error ... + invgrnd (1, 2, 2, 1.5, 5) +***** error ... + invgrnd (2, ones (2), 3) +***** error ... + invgrnd (2, ones (2), [3, 2]) +***** error ... + invgrnd (2, ones (2), 3, 2) +35 tests, 35 passed, 0 known failure, 0 skipped +[inst/dist_fun/gumbelcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gumbelcdf.m +***** demo + ## Plot various CDFs from the Gumbel distribution + x = -5:0.01:20; + p1 = gumbelcdf (x, 0.5, 2); + p2 = gumbelcdf (x, 1.0, 2); + p3 = gumbelcdf (x, 1.5, 3); + p4 = gumbelcdf (x, 3.0, 4); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") + grid on + legend ({"μ = 0.5, β = 2", "μ = 1.0, β = 2", ... + "μ = 1.5, β = 3", "μ = 3.0, β = 4"}, "location", "southeast") + title ("Gumbel CDF") + xlabel ("values in x") + ylabel ("probability") ***** shared x, y - x = [-Inf 0 0.5 1 Inf]; - y = 1./(pi * (1 + x.^2)); -***** assert (tlspdf (x, 0, 1, ones (1,5)), y, eps) -***** assert (tlspdf (x, 0, 1, 1), y, eps) -***** assert (tlspdf (x, 0, 1, [0 NaN 1 1 1]), [NaN NaN y(3:5)], eps) -***** assert (tlspdf (x, 0, 1, Inf), normpdf (x)) -***** assert (class (tlspdf ([x, NaN], 1, 1, 1)), "double") -***** assert (class (tlspdf (single ([x, NaN]), 1, 1, 1)), "single") -***** assert (class (tlspdf ([x, NaN], single (1), 1, 1)), "single") -***** assert (class (tlspdf ([x, NaN], 1, single (1), 1)), "single") -***** assert (class (tlspdf ([x, NaN], 1, 1, single (1))), "single") -***** error tlspdf () -***** error tlspdf (1) -***** error tlspdf (1, 2) -***** error tlspdf (1, 2, 3) -***** error ... - tlspdf (ones (3), ones (2), 1, 1) -***** error ... - tlspdf (ones (2), 1, ones (3), 1) -***** error ... - tlspdf (ones (2), 1, 1, ones (3)) -***** error tlspdf (i, 2, 1, 1) -***** error tlspdf (2, i, 1, 1) -***** error tlspdf (2, 1, i, 1) -***** error tlspdf (2, 1, 1, i) -21 tests, 21 passed, 0 known failure, 0 skipped -[inst/dist_fun/poissrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/poissrnd.m -***** assert (size (poissrnd (2)), [1, 1]) -***** assert (size (poissrnd (ones (2,1))), [2, 1]) -***** assert (size (poissrnd (ones (2,2))), [2, 2]) -***** assert (size (poissrnd (1, 3)), [3, 3]) -***** assert (size (poissrnd (1, [4 1])), [4, 1]) -***** assert (size (poissrnd (1, 4, 1)), [4, 1]) -***** assert (size (poissrnd (1, 4, 1)), [4, 1]) -***** assert (size (poissrnd (1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (poissrnd (1, 0, 1)), [0, 1]) -***** assert (size (poissrnd (1, 1, 0)), [1, 0]) -***** assert (size (poissrnd (1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (poissrnd (0, 1, 1), 0) -***** assert (poissrnd ([0, 0, 0], [1, 3]), [0 0 0]) -***** assert (class (poissrnd (2)), "double") -***** assert (class (poissrnd (single (2))), "single") -***** assert (class (poissrnd (single ([2 2]))), "single") -***** error poissrnd () -***** error poissrnd (i) -***** error ... - poissrnd (1, -1) -***** error ... - poissrnd (1, 1.2) -***** error ... - poissrnd (1, ones (2)) -***** error ... - poissrnd (1, [2 -1 2]) -***** error ... - poissrnd (1, [2 0 2.5]) -***** error ... - poissrnd (ones (2), ones (2)) -***** error ... - poissrnd (1, 2, -1, 5) -***** error ... - poissrnd (1, 2, 1.5, 5) -***** error poissrnd (ones (2,2), 3) -***** error poissrnd (ones (2,2), [3, 2]) -***** error poissrnd (ones (2,2), 2, 3) -29 tests, 29 passed, 0 known failure, 0 skipped -[inst/dist_fun/gevrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gevrnd.m -***** assert(size (gevrnd (1,2,1)), [1, 1]); -***** assert(size (gevrnd (ones(2,1), 2, 1)), [2, 1]); -***** assert(size (gevrnd (ones(2,2), 2, 1)), [2, 2]); -***** assert(size (gevrnd (1, 2*ones(2,1), 1)), [2, 1]); -***** assert(size (gevrnd (1, 2*ones(2,2), 1)), [2, 2]); -***** assert(size (gevrnd (1, 2, 1, 3)), [3, 3]); -***** assert(size (gevrnd (1, 2, 1, [4 1])), [4, 1]); -***** assert(size (gevrnd (1, 2, 1, 4, 1)), [4, 1]); -***** assert (class (gevrnd (1,1,1)), "double") -***** assert (class (gevrnd (single (1),1,1)), "single") -***** assert (class (gevrnd (single ([1 1]),1,1)), "single") -***** assert (class (gevrnd (1,single (1),1)), "single") -***** assert (class (gevrnd (1,single ([1 1]),1)), "single") -***** assert (class (gevrnd (1,1,single (1))), "single") -***** assert (class (gevrnd (1,1,single ([1 1]))), "single") -***** error gevrnd () -***** error gevrnd (1) -***** error gevrnd (1, 2) -***** error ... - gevrnd (ones (3), ones (2), ones (2)) -***** error ... - gevrnd (ones (2), ones (3), ones (2)) -***** error ... - gevrnd (ones (2), ones (2), ones (3)) -***** error gevrnd (i, 2, 3) -***** error gevrnd (1, i, 3) -***** error gevrnd (1, 2, i) -***** error ... - gevrnd (1, 2, 3, -1) -***** error ... - gevrnd (1, 2, 3, 1.2) -***** error ... - gevrnd (1, 2, 3, ones (2)) -***** error ... - gevrnd (1, 2, 3, [2 -1 2]) -***** error ... - gevrnd (1, 2, 3, [2 0 2.5]) -***** error ... - gevrnd (1, 2, 3, 2, -1, 5) -***** error ... - gevrnd (1, 2, 3, 2, 1.5, 5) -***** error ... - gevrnd (2, ones (2), 2, 3) -***** error ... - gevrnd (2, ones (2), 2, [3, 2]) -***** error ... - gevrnd (2, ones (2), 2, 3, 2) -34 tests, 34 passed, 0 known failure, 0 skipped -[inst/dist_fun/copularnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/copularnd.m -***** test - theta = 0.5; - r = copularnd ("Gaussian", theta); - assert (size (r), [1, 2]); - assert (all ((r >= 0) & (r <= 1))); -***** test - theta = 0.5; - df = 2; - r = copularnd ("t", theta, df); - assert (size (r), [1, 2]); - assert (all ((r >= 0) & (r <= 1))); -***** test - theta = 0.5; - r = copularnd ("Clayton", theta); - assert (size (r), [1, 2]); - assert (all ((r >= 0) & (r <= 1))); -***** test - theta = 0.5; - n = 2; - r = copularnd ("Clayton", theta, n); - assert (size (r), [n, 2]); - assert (all ((r >= 0) & (r <= 1))); -***** test - theta = [1; 2]; - n = 2; - d = 3; - r = copularnd ("Clayton", theta, n, d); - assert (size (r), [n, d]); - assert (all ((r >= 0) & (r <= 1))); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/dist_fun/burrinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/burrinv.m + x = [-Inf, 1, 2, Inf]; + y = [0, 0.3679, 0.6922, 1]; +***** assert (gumbelcdf (x, ones (1,4), ones (1,4)), y, 1e-4) +***** assert (gumbelcdf (x, 1, ones (1,4)), y, 1e-4) +***** assert (gumbelcdf (x, ones (1,4), 1), y, 1e-4) +***** assert (gumbelcdf (x, [0, -Inf, NaN, Inf], 1), [0, 1, NaN, NaN], 1e-4) +***** assert (gumbelcdf (x, 1, [Inf, NaN, -1, 0]), [NaN, NaN, NaN, NaN], 1e-4) +***** assert (gumbelcdf ([x(1:2), NaN, x(4)], 1, 1), [y(1:2), NaN, y(4)], 1e-4) +***** assert (gumbelcdf (x, "upper"), [1, 0.3078, 0.1266, 0], 1e-4) +***** assert (gumbelcdf ([x, NaN], 1, 1), [y, NaN], 1e-4) +***** assert (gumbelcdf (single ([x, NaN]), 1, 1), single ([y, NaN]), 1e-4) +***** assert (gumbelcdf ([x, NaN], single (1), 1), single ([y, NaN]), 1e-4) +***** assert (gumbelcdf ([x, NaN], 1, single (1)), single ([y, NaN]), 1e-4) +***** error gumbelcdf () +***** error gumbelcdf (1,2,3,4,5,6,7) +***** error gumbelcdf (1, 2, 3, 4, "uper") +***** error ... + gumbelcdf (ones (3), ones (2), ones (2)) +***** error gumbelcdf (2, 3, 4, [1, 2]) +***** error ... + [p, plo, pup] = gumbelcdf (1, 2, 3) +***** error [p, plo, pup] = ... + gumbelcdf (1, 2, 3, [1, 0; 0, 1], 0) +***** error [p, plo, pup] = ... + gumbelcdf (1, 2, 3, [1, 0; 0, 1], 1.22) +***** error [p, plo, pup] = ... + gumbelcdf (1, 2, 3, [1, 0; 0, 1], "alpha", "upper") +***** error gumbelcdf (i, 2, 2) +***** error gumbelcdf (2, i, 2) +***** error gumbelcdf (2, 2, i) +***** error ... + [p, plo, pup] = gumbelcdf (1, 2, 3, [1, 0; 0, -inf], 0.04) +24 tests, 24 passed, 0 known failure, 0 skipped +[inst/dist_fun/unifpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unifpdf.m ***** demo - ## Plot various iCDFs from the Burr type XII distribution + ## Plot various PDFs from the continuous uniform distribution + x = 0:0.001:10; + y1 = unifpdf (x, 2, 5); + y2 = unifpdf (x, 3, 9); + plot (x, y1, "-b", x, y2, "-g") + grid on + xlim ([0, 10]) + ylim ([0, 0.4]) + legend ({"a = 2, b = 5", "a = 3, b = 9"}, "location", "northeast") + title ("Continuous uniform PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-1 0 0.5 1 2] + 1; + y = [0 1 1 1 0]; +***** assert (unifpdf (x, ones (1,5), 2*ones (1,5)), y) +***** assert (unifpdf (x, 1, 2*ones (1,5)), y) +***** assert (unifpdf (x, ones (1,5), 2), y) +***** assert (unifpdf (x, [2 NaN 1 1 1], 2), [NaN NaN y(3:5)]) +***** assert (unifpdf (x, 1, 2*[0 NaN 1 1 1]), [NaN NaN y(3:5)]) +***** assert (unifpdf ([x, NaN], 1, 2), [y, NaN]) +***** assert (unifpdf (x, 0, 1), [1 1 0 0 0]) +***** assert (unifpdf (single ([x, NaN]), 1, 2), single ([y, NaN])) +***** assert (unifpdf (single ([x, NaN]), single (1), 2), single ([y, NaN])) +***** assert (unifpdf ([x, NaN], 1, single (2)), single ([y, NaN])) +***** error unifpdf () +***** error unifpdf (1) +***** error unifpdf (1, 2) +***** error ... + unifpdf (ones (3), ones (2), ones (2)) +***** error ... + unifpdf (ones (2), ones (3), ones (2)) +***** error ... + unifpdf (ones (2), ones (2), ones (3)) +***** error unifpdf (i, 2, 2) +***** error unifpdf (2, i, 2) +***** error unifpdf (2, 2, i) +19 tests, 19 passed, 0 known failure, 0 skipped +[inst/dist_fun/evinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/evinv.m +***** demo + ## Plot various iCDFs from the extreme value distribution p = 0.001:0.001:0.999; - x1 = burrinv (p, 1, 1, 1); - x2 = burrinv (p, 1, 1, 2); - x3 = burrinv (p, 1, 1, 3); - x4 = burrinv (p, 1, 2, 1); - x5 = burrinv (p, 1, 3, 1); - x6 = burrinv (p, 1, 0.5, 2); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", ... - p, x4, "-c", p, x5, "-m", p, x6, "-k") + x1 = evinv (p, 0.5, 2); + x2 = evinv (p, 1.0, 2); + x3 = evinv (p, 1.5, 3); + x4 = evinv (p, 3.0, 4); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") grid on - ylim ([0, 5]) - legend ({"λ = 1, c = 1, k = 1", "λ = 1, c = 1, k = 2", ... - "λ = 1, c = 1, k = 3", "λ = 1, c = 2, k = 1", ... - "λ = 1, c = 3, k = 1", "λ = 1, c = 0.5, k = 2"}, ... - "location", "northwest") - title ("Burr type XII iCDF") + ylim ([-10, 10]) + legend ({"μ = 0.5, σ = 2", "μ = 1.0, σ = 2", ... + "μ = 1.5, σ = 3", "μ = 3.0, σ = 4"}, "location", "northwest") + title ("Extreme value iCDF") xlabel ("probability") ylabel ("values in x") -***** shared p, y - p = [-Inf, -1, 0, 1/2, 1, 2, Inf]; - y = [NaN, NaN, 0, 1 , Inf, NaN, NaN]; -***** assert (burrinv (p, ones (1,7), ones (1,7), ones(1,7)), y, eps) -***** assert (burrinv (p, 1, 1, 1), y, eps) -***** assert (burrinv (p, [1, 1, 1, NaN, 1, 1, 1], 1, 1), [y(1:3), NaN, y(5:7)], eps) -***** assert (burrinv (p, 1, [1, 1, 1, NaN, 1, 1, 1], 1), [y(1:3), NaN, y(5:7)], eps) -***** assert (burrinv (p, 1, 1, [1, 1, 1, NaN, 1, 1, 1]), [y(1:3), NaN, y(5:7)], eps) -***** assert (burrinv ([p, NaN], 1, 1, 1), [y, NaN], eps) -***** assert (burrinv (single ([p, NaN]), 1, 1, 1), single ([y, NaN]), eps("single")) -***** assert (burrinv ([p, NaN], single (1), 1, 1), single ([y, NaN]), eps("single")) -***** assert (burrinv ([p, NaN], 1, single (1), 1), single ([y, NaN]), eps("single")) -***** assert (burrinv ([p, NaN], 1, 1, single (1)), single ([y, NaN]), eps("single")) -***** error burrinv () -***** error burrinv (1) -***** error burrinv (1, 2) -***** error burrinv (1, 2, 3) -***** error ... - burrinv (1, 2, 3, 4, 5) -***** error ... - burrinv (ones (3), ones (2), ones(2), ones(2)) -***** error ... - burrinv (ones (2), ones (3), ones(2), ones(2)) -***** error ... - burrinv (ones (2), ones (2), ones(3), ones(2)) -***** error ... - burrinv (ones (2), ones (2), ones(2), ones(3)) -***** error burrinv (i, 2, 3, 4) -***** error burrinv (1, i, 3, 4) -***** error burrinv (1, 2, i, 4) -***** error burrinv (1, 2, 3, i) -23 tests, 23 passed, 0 known failure, 0 skipped -[inst/dist_fun/mvtcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvtcdf.m -***** demo - ## Compute the cdf of a multivariate Student's t distribution with - ## correlation parameters rho = [1, 0.4; 0.4, 1] and 2 degrees of freedom. - - rho = [1, 0.4; 0.4, 1]; - df = 2; - [X1, X2] = meshgrid (linspace (-2, 2, 25)', linspace (-2, 2, 25)'); - X = [X1(:), X2(:)]; - p = mvtcdf (X, rho, df); - surf (X1, X2, reshape (p, 25, 25)); - title ("Bivariate Student's t cummulative distribution function"); +***** shared p, x + p = [0, 0.05, 0.5 0.95]; + x = [-Inf, -2.9702, -0.3665, 1.0972]; +***** assert (evinv (p), x, 1e-4) +***** assert (evinv (p, zeros (1,4), ones (1,4)), x, 1e-4) +***** assert (evinv (p, 0, ones (1,4)), x, 1e-4) +***** assert (evinv (p, zeros (1,4), 1), x, 1e-4) +***** assert (evinv (p, [0, -Inf, NaN, Inf], 1), [-Inf, -Inf, NaN, Inf], 1e-4) +***** assert (evinv (p, 0, [Inf, NaN, -1, 0]), [-Inf, NaN, NaN, NaN], 1e-4) +***** assert (evinv ([p(1:2), NaN, p(4)], 0, 1), [x(1:2), NaN, x(4)], 1e-4) +***** assert (evinv ([p, NaN], 0, 1), [x, NaN], 1e-4) +***** assert (evinv (single ([p, NaN]), 0, 1), single ([x, NaN]), 1e-4) +***** assert (evinv ([p, NaN], single (0), 1), single ([x, NaN]), 1e-4) +***** assert (evinv ([p, NaN], 0, single (1)), single ([x, NaN]), 1e-4) +***** error evinv () +***** error evinv (1,2,3,4,5,6) +***** error ... + evinv (ones (3), ones (2), ones (2)) +***** error ... + [p, plo, pup] = evinv (2, 3, 4, [1, 2]) +***** error ... + [p, plo, pup] = evinv (1, 2, 3) +***** error [p, plo, pup] = ... + evinv (1, 2, 3, [1, 0; 0, 1], 0) +***** error [p, plo, pup] = ... + evinv (1, 2, 3, [1, 0; 0, 1], 1.22) +***** error evinv (i, 2, 2) +***** error evinv (2, i, 2) +***** error evinv (2, 2, i) +***** error ... + [p, plo, pup] = evinv (1, 2, 3, [-1, -10; -Inf, -Inf], 0.04) +22 tests, 22 passed, 0 known failure, 0 skipped +[inst/dist_fun/bvtcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/bvtcdf.m ***** test x = [1, 2]; rho = [1, 0.5; 0.5, 1]; df = 4; - a = [-1, 0]; - assert (mvtcdf(a, x, rho, df), 0.294196905339283, 1e-14); + assert (bvtcdf(x, rho(2), df), mvtcdf(x, rho, df), 1e-14); ***** test - x = [1, 2;2, 4;1, 5]; + x = [3, 2;2, 4;1, 5]; rho = [1, 0.5; 0.5, 1]; df = 4; - p =[0.790285178602166; 0.938703291727784; 0.81222737321336]; - assert (mvtcdf(x, rho, df), p, 1e-14); -***** test - x = [1, 2, 2, 4, 1, 5]; - rho = eye (6); - rho(rho == 0) = 0.5; - df = 4; - assert (mvtcdf(x, rho, df), 0.6874, 1e-4); -***** error mvtcdf (1) -***** error mvtcdf (1, 2) -***** error ... - mvtcdf (1, [2, 3; 3, 2], 1) -***** error ... - mvtcdf ([2, 3, 4], ones (2), 1) -***** error ... - mvtcdf ([1, 2, 3], [2, 3], ones (2), 1) -***** error ... - mvtcdf ([2, 3], ones (2), [1, 2, 3]) -***** error ... - mvtcdf ([2, 3], [1, 0.5; 0.5, 1], [1, 2, 3]) -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/dist_fun/tricdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tricdf.m + assert (bvtcdf(x, rho(2), df), mvtcdf(x, rho, df), 1e-14); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/dist_fun/hygecdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hygecdf.m ***** demo - ## Plot various CDFs from the triangular distribution - x = 0.001:0.001:10; - p1 = tricdf (x, 3, 4, 6); - p2 = tricdf (x, 1, 2, 5); - p3 = tricdf (x, 2, 3, 9); - p4 = tricdf (x, 2, 5, 9); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") + ## Plot various CDFs from the hypergeometric distribution + x = 0:60; + p1 = hygecdf (x, 500, 50, 100); + p2 = hygecdf (x, 500, 60, 200); + p3 = hygecdf (x, 500, 70, 300); + plot (x, p1, "*b", x, p2, "*g", x, p3, "*r") grid on - xlim ([0, 10]) - legend ({"a = 3, b = 4, c = 6", "a = 1, b = 2, c = 5", ... - "a = 2, b = 3, c = 9", "a = 2, b = 5, c = 9"}, ... - "location", "southeast") - title ("Triangular CDF") - xlabel ("values in x") + xlim ([0, 60]) + legend ({"m = 500, k = 50, n = 100", "m = 500, k = 60, n = 200", ... + "m = 500, k = 70, n = 300"}, "location", "southeast") + title ("Hypergeometric CDF") + xlabel ("values in x (number of successes)") ylabel ("probability") ***** shared x, y - x = [-1, 0, 0.1, 0.5, 0.9, 1, 2] + 1; - y = [0, 0, 0.02, 0.5, 0.98, 1 1]; -***** assert (tricdf (x, ones (1,7), 1.5 * ones (1, 7), 2 * ones (1, 7)), y, eps) -***** assert (tricdf (x, 1 * ones (1, 7), 1.5, 2), y, eps) -***** assert (tricdf (x, 1 * ones (1, 7), 1.5, 2, "upper"), 1 - y, eps) -***** assert (tricdf (x, 1, 1.5, 2 * ones (1, 7)), y, eps) -***** assert (tricdf (x, 1, 1.5 * ones (1, 7), 2), y, eps) -***** assert (tricdf (x, 1, 1.5, 2), y, eps) -***** assert (tricdf (x, [1, 1, NaN, 1, 1, 1, 1], 1.5, 2), ... - [y(1:2), NaN, y(4:7)], eps) -***** assert (tricdf (x, 1, 1.5, 2*[1, 1, NaN, 1, 1, 1, 1]), ... - [y(1:2), NaN, y(4:7)], eps) -***** assert (tricdf (x, 1, 1.5, 2*[1, 1, NaN, 1, 1, 1, 1]), ... - [y(1:2), NaN, y(4:7)], eps) -***** assert (tricdf ([x, NaN], 1, 1.5, 2), [y, NaN], eps) -***** assert (tricdf (single ([x, NaN]), 1, 1.5, 2), ... - single ([y, NaN]), eps("single")) -***** assert (tricdf ([x, NaN], single (1), 1.5, 2), ... - single ([y, NaN]), eps("single")) -***** assert (tricdf ([x, NaN], 1, single (1.5), 2), ... - single ([y, NaN]), eps("single")) -***** assert (tricdf ([x, NaN], 1, 1.5, single (2)), ... - single ([y, NaN]), eps("single")) -***** error tricdf () -***** error tricdf (1) -***** error tricdf (1, 2) -***** error tricdf (1, 2, 3) -***** error ... - tricdf (1, 2, 3, 4, 5, 6) -***** error tricdf (1, 2, 3, 4, "tail") -***** error tricdf (1, 2, 3, 4, 5) -***** error ... - tricdf (ones (3), ones (2), ones(2), ones(2)) -***** error ... - tricdf (ones (2), ones (3), ones(2), ones(2)) -***** error ... - tricdf (ones (2), ones (2), ones(3), ones(2)) -***** error ... - tricdf (ones (2), ones (2), ones(2), ones(3)) -***** error tricdf (i, 2, 3, 4) -***** error tricdf (1, i, 3, 4) -***** error tricdf (1, 2, i, 4) -***** error tricdf (1, 2, 3, i) -29 tests, 29 passed, 0 known failure, 0 skipped -[inst/dist_fun/frnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/frnd.m -***** assert (size (frnd (1, 1)), [1 1]) -***** assert (size (frnd (1, ones (2,1))), [2, 1]) -***** assert (size (frnd (1, ones (2,2))), [2, 2]) -***** assert (size (frnd (ones (2,1), 1)), [2, 1]) -***** assert (size (frnd (ones (2,2), 1)), [2, 2]) -***** assert (size (frnd (1, 1, 3)), [3, 3]) -***** assert (size (frnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (frnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (frnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (frnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (frnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (frnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (frnd (1, 1)), "double") -***** assert (class (frnd (1, single (1))), "single") -***** assert (class (frnd (1, single ([1, 1]))), "single") -***** assert (class (frnd (single (1), 1)), "single") -***** assert (class (frnd (single ([1, 1]), 1)), "single") -***** error frnd () -***** error frnd (1) -***** error ... - frnd (ones (3), ones (2)) -***** error ... - frnd (ones (2), ones (3)) -***** error frnd (i, 2, 3) -***** error frnd (1, i, 3) -***** error ... - frnd (1, 2, -1) -***** error ... - frnd (1, 2, 1.2) -***** error ... - frnd (1, 2, ones (2)) -***** error ... - frnd (1, 2, [2 -1 2]) -***** error ... - frnd (1, 2, [2 0 2.5]) -***** error ... - frnd (1, 2, 2, -1, 5) -***** error ... - frnd (1, 2, 2, 1.5, 5) -***** error ... - frnd (2, ones (2), 3) -***** error ... - frnd (2, ones (2), [3, 2]) -***** error ... - frnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped + x = [-1 0 1 2 3]; + y = [0 1/6 5/6 1 1]; +***** assert (hygecdf (x, 4*ones (1,5), 2, 2), y, 5*eps) +***** assert (hygecdf (x, 4, 2*ones (1,5), 2), y, 5*eps) +***** assert (hygecdf (x, 4, 2, 2*ones (1,5)), y, 5*eps) +***** assert (hygecdf (x, 4*[1 -1 NaN 1.1 1], 2, 2), [y(1) NaN NaN NaN y(5)], 5*eps) +***** assert (hygecdf (x, 4*[1 -1 NaN 1.1 1], 2, 2, "upper"), ... + [y(5) NaN NaN NaN y(1)], 5*eps) +***** assert (hygecdf (x, 4, 2*[1 -1 NaN 1.1 1], 2), [y(1) NaN NaN NaN y(5)], 5*eps) +***** assert (hygecdf (x, 4, 2*[1 -1 NaN 1.1 1], 2, "upper"), ... + [y(5) NaN NaN NaN y(1)], 5*eps) +***** assert (hygecdf (x, 4, 5, 2), [NaN NaN NaN NaN NaN]) +***** assert (hygecdf (x, 4, 2, 2*[1 -1 NaN 1.1 1]), [y(1) NaN NaN NaN y(5)], 5*eps) +***** assert (hygecdf (x, 4, 2, 2*[1 -1 NaN 1.1 1], "upper"), ... + [y(5) NaN NaN NaN y(1)], 5*eps) +***** assert (hygecdf (x, 4, 2, 5), [NaN NaN NaN NaN NaN]) +***** assert (hygecdf ([x(1:2) NaN x(4:5)], 4, 2, 2), [y(1:2) NaN y(4:5)], 5*eps) +***** test + p = hygecdf (x, 10, [1 2 3 4 5], 2, "upper"); + assert (p, [1, 34/90, 2/30, 0, 0], 10*eps); +***** test + p = hygecdf (2*x, 10, [1 2 3 4 5], 2, "upper"); + assert (p, [1, 34/90, 0, 0, 0], 10*eps); +***** assert (hygecdf ([x, NaN], 4, 2, 2), [y, NaN], 5*eps) +***** assert (hygecdf (single ([x, NaN]), 4, 2, 2), single ([y, NaN]), ... + eps ("single")) +***** assert (hygecdf ([x, NaN], single (4), 2, 2), single ([y, NaN]), ... + eps ("single")) +***** assert (hygecdf ([x, NaN], 4, single (2), 2), single ([y, NaN]), ... + eps ("single")) +***** assert (hygecdf ([x, NaN], 4, 2, single (2)), single ([y, NaN]), ... + eps ("single")) +***** error hygecdf () +***** error hygecdf (1) +***** error hygecdf (1,2) +***** error hygecdf (1,2,3) +***** error hygecdf (1,2,3,4,5) +***** error hygecdf (1,2,3,4,"uper") +***** error ... + hygecdf (ones (2), ones (3), 1, 1) +***** error ... + hygecdf (1, ones (2), ones (3), 1) +***** error ... + hygecdf (1, 1, ones (2), ones (3)) +***** error hygecdf (i, 2, 2, 2) +***** error hygecdf (2, i, 2, 2) +***** error hygecdf (2, 2, i, 2) +***** error hygecdf (2, 2, 2, i) +32 tests, 32 passed, 0 known failure, 0 skipped [inst/dist_fun/gevinv.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gevinv.m ***** demo @@ -21769,158 +15074,989 @@ ***** error gevinv (1, 2, i, 4) ***** error gevinv (1, 2, 3, i) 15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fun/hygepdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hygepdf.m +[inst/dist_fun/raylrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/raylrnd.m +***** assert (size (raylrnd (2)), [1, 1]) +***** assert (size (raylrnd (ones (2,1))), [2, 1]) +***** assert (size (raylrnd (ones (2,2))), [2, 2]) +***** assert (size (raylrnd (1, 3)), [3, 3]) +***** assert (size (raylrnd (1, [4 1])), [4, 1]) +***** assert (size (raylrnd (1, 4, 1)), [4, 1]) +***** assert (size (raylrnd (1, 4, 1)), [4, 1]) +***** assert (size (raylrnd (1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (raylrnd (1, 0, 1)), [0, 1]) +***** assert (size (raylrnd (1, 1, 0)), [1, 0]) +***** assert (size (raylrnd (1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (raylrnd (0, 1, 1), NaN) +***** assert (raylrnd ([0, 0, 0], [1, 3]), [NaN, NaN, NaN]) +***** assert (class (raylrnd (2)), "double") +***** assert (class (raylrnd (single (2))), "single") +***** assert (class (raylrnd (single ([2 2]))), "single") +***** error raylrnd () +***** error raylrnd (i) +***** error ... + raylrnd (1, -1) +***** error ... + raylrnd (1, 1.2) +***** error ... + raylrnd (1, ones (2)) +***** error ... + raylrnd (1, [2 -1 2]) +***** error ... + raylrnd (1, [2 0 2.5]) +***** error ... + raylrnd (ones (2), ones (2)) +***** error ... + raylrnd (1, 2, -1, 5) +***** error ... + raylrnd (1, 2, 1.5, 5) +***** error raylrnd (ones (2,2), 3) +***** error raylrnd (ones (2,2), [3, 2]) +***** error raylrnd (ones (2,2), 2, 3) +29 tests, 29 passed, 0 known failure, 0 skipped +[inst/dist_fun/hnrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hnrnd.m +***** assert (size (hnrnd (1, 1, 1)), [1, 1]) +***** assert (size (hnrnd (1, 1, 2)), [2, 2]) +***** assert (size (hnrnd (1, 1, [2, 1])), [2, 1]) +***** assert (size (hnrnd (1, zeros (2, 2))), [2, 2]) +***** assert (size (hnrnd (1, ones (2, 1))), [2, 1]) +***** assert (size (hnrnd (1, ones (2, 2))), [2, 2]) +***** assert (size (hnrnd (ones (2, 1), 1)), [2, 1]) +***** assert (size (hnrnd (ones (2, 2), 1)), [2, 2]) +***** assert (size (hnrnd (1, 1, 3)), [3, 3]) +***** assert (size (hnrnd (1, 1, [4 1])), [4, 1]) +***** assert (size (hnrnd (1, 1, 4, 1)), [4, 1]) +***** test + r = hnrnd (1, [1, 0, -1]); + assert (r([2:3]), [NaN, NaN]) +***** assert (class (hnrnd (1, 0)), "double") +***** assert (class (hnrnd (1, single (0))), "single") +***** assert (class (hnrnd (1, single ([0 0]))), "single") +***** assert (class (hnrnd (1, single (1))), "single") +***** assert (class (hnrnd (1, single ([1 1]))), "single") +***** assert (class (hnrnd (single (1), 1)), "single") +***** assert (class (hnrnd (single ([1 1]), 1)), "single") +***** error hnrnd () +***** error hnrnd (1) +***** error ... + hnrnd (ones (3), ones (2)) +***** error ... + hnrnd (ones (2), ones (3)) +***** error hnrnd (i, 2, 3) +***** error hnrnd (1, i, 3) +***** error ... + hnrnd (1, 2, -1) +***** error ... + hnrnd (1, 2, 1.2) +***** error ... + hnrnd (1, 2, ones (2)) +***** error ... + hnrnd (1, 2, [2 -1 2]) +***** error ... + hnrnd (1, 2, [2 0 2.5]) +***** error ... + hnrnd (1, 2, 2, -1, 5) +***** error ... + hnrnd (1, 2, 2, 1.5, 5) +***** error ... + hnrnd (2, ones (2), 3) +***** error ... + hnrnd (2, ones (2), [3, 2]) +***** error ... + hnrnd (2, ones (2), 3, 2) +35 tests, 35 passed, 0 known failure, 0 skipped +[inst/dist_fun/ricecdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ricecdf.m ***** demo - ## Plot various PDFs from the hypergeometric distribution - x = 0:60; - y1 = hygepdf (x, 500, 50, 100); - y2 = hygepdf (x, 500, 60, 200); - y3 = hygepdf (x, 500, 70, 300); - plot (x, y1, "*b", x, y2, "*g", x, y3, "*r") + ## Plot various CDFs from the Rician distribution + x = 0:0.01:10; + p1 = ricecdf (x, 0, 1); + p2 = ricecdf (x, 0.5, 1); + p3 = ricecdf (x, 1, 1); + p4 = ricecdf (x, 2, 1); + p5 = ricecdf (x, 4, 1); + plot (x, p1, "-b", x, p2, "g", x, p3, "-r", x, p4, "-m", x, p5, "-k") grid on - xlim ([0, 60]) - ylim ([0, 0.18]) - legend ({"m = 500, k = 50, μ = 100", "m = 500, k = 60, μ = 200", ... - "m = 500, k = 70, μ = 300"}, "location", "northeast") - title ("Hypergeometric PDF") - xlabel ("values in x (number of successes)") + ylim ([0, 1]) + xlim ([0, 8]) + legend ({"s = 0, σ = 1", "s = 0.5, σ = 1", "s = 1, σ = 1", ... + "s = 2, σ = 1", "s = 4, σ = 1"}, "location", "southeast") + title ("Rician CDF") + xlabel ("values in x") + ylabel ("probability") +***** demo + ## Plot various CDFs from the Rician distribution + x = 0:0.01:10; + p1 = ricecdf (x, 0, 0.5); + p2 = ricecdf (x, 0, 2); + p3 = ricecdf (x, 0, 3); + p4 = ricecdf (x, 2, 2); + p5 = ricecdf (x, 4, 2); + plot (x, p1, "-b", x, p2, "g", x, p3, "-r", x, p4, "-m", x, p5, "-k") + grid on + ylim ([0, 1]) + xlim ([0, 8]) + legend ({"ν = 0, σ = 0.5", "ν = 0, σ = 2", "ν = 0, σ = 3", ... + "ν = 2, σ = 2", "ν = 4, σ = 2"}, "location", "southeast") + title ("Rician CDF") + xlabel ("values in x") + ylabel ("probability") +***** test + x = 0:0.5:2.5; + s = 1:6; + p = ricecdf (x, s, 1); + expected_p = [0.0000, 0.0179, 0.0108, 0.0034, 0.0008, 0.0001]; + assert (p, expected_p, 0.001); +***** test + x = 0:0.5:2.5; + sigma = 1:6; + p = ricecdf (x, 1, sigma); + expected_p = [0.0000, 0.0272, 0.0512, 0.0659, 0.0754, 0.0820]; + assert (p, expected_p, 0.001); +***** test + x = 0:0.5:2.5; + p = ricecdf (x, 0, 1); + expected_p = [0.0000, 0.1175, 0.3935, 0.6753, 0.8647, 0.9561]; + assert (p, expected_p, 0.001); +***** test + x = 0:0.5:2.5; + p = ricecdf (x, 1, 1); + expected_p = [0.0000, 0.0735, 0.2671, 0.5120, 0.7310, 0.8791]; + assert (p, expected_p, 0.001); +***** shared x, p + x = [-1, 0, 1, 2, Inf]; + p = [0, 0, 0.26712019620318, 0.73098793996409, 1]; +***** assert (ricecdf (x, 1, 1), p, 1e-14) +***** assert (ricecdf (x, 1, 1, "upper"), 1 - p, 1e-14) +***** error ricecdf () +***** error ricecdf (1) +***** error ricecdf (1, 2) +***** error ricecdf (1, 2, 3, "uper") +***** error ricecdf (1, 2, 3, 4) +***** error ... + ricecdf (ones (3), ones (2), ones (2)) +***** error ... + ricecdf (ones (2), ones (3), ones (2)) +***** error ... + ricecdf (ones (2), ones (2), ones (3)) +***** error ricecdf (i, 2, 3) +***** error ricecdf (2, i, 3) +***** error ricecdf (2, 2, i) +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/dist_fun/loglinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/loglinv.m +***** demo + ## Plot various iCDFs from the log-logistic distribution + p = 0.001:0.001:0.999; + x1 = loglinv (p, log (1), 1/0.5); + x2 = loglinv (p, log (1), 1); + x3 = loglinv (p, log (1), 1/2); + x4 = loglinv (p, log (1), 1/4); + x5 = loglinv (p, log (1), 1/8); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-m") + ylim ([0, 20]) + grid on + legend ({"σ = 2 (β = 0.5)", "σ = 1 (β = 1)", "σ = 0.5 (β = 2)", ... + "σ = 0.25 (β = 4)", "σ = 0.125 (β = 8)"}, "location", "northwest") + title ("Log-logistic iCDF") + xlabel ("probability") + ylabel ("x") + text (0.03, 12.5, "μ = 0 (α = 1), values of σ (β) as shown in legend") +***** shared p, out1, out2 + p = [-1, 0, 0.2, 0.5, 0.8, 0.95, 1, 2]; + out1 = [NaN, 0, 0.25, 1, 4, 19, Inf, NaN]; + out2 = [NaN, 0, 0.0424732, 2.718282, 173.970037, 18644.695061, Inf, NaN]; +***** assert (loglinv (p, 0, 1), out1, 1e-8) +***** assert (loglinv (p, 0, 1), out1, 1e-8) +***** assert (loglinv (p, 1, 3), out2, 1e-6) +***** assert (class (loglinv (single (1), 2, 3)), "single") +***** assert (class (loglinv (1, single (2), 3)), "single") +***** assert (class (loglinv (1, 2, single (3))), "single") +***** error loglinv (1) +***** error loglinv (1, 2) +***** error ... + loglinv (1, ones (2), ones (3)) +***** error ... + loglinv (ones (2), 1, ones (3)) +***** error ... + loglinv (ones (2), ones (3), 1) +***** error loglinv (i, 2, 3) +***** error loglinv (1, i, 3) +***** error loglinv (1, 2, i) +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/dist_fun/jsucdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/jsucdf.m +***** error jsucdf () +***** error jsucdf (1, 2, 3, 4) +***** error ... + jsucdf (1, ones (2), ones (3)) +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/dist_fun/loglcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/loglcdf.m +***** demo + ## Plot various CDFs from the log-logistic distribution + x = 0:0.001:2; + p1 = loglcdf (x, log (1), 1/0.5); + p2 = loglcdf (x, log (1), 1); + p3 = loglcdf (x, log (1), 1/2); + p4 = loglcdf (x, log (1), 1/4); + p5 = loglcdf (x, log (1), 1/8); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-m") + legend ({"σ = 2 (β = 0.5)", "σ = 1 (β = 1)", "σ = 0.5 (β = 2)", ... + "σ = 0.25 (β = 4)", "σ = 0.125 (β = 8)"}, "location", "northwest") + grid on + title ("Log-logistic CDF") + xlabel ("values in x") + ylabel ("probability") + text (0.05, 0.64, "μ = 0 (α = 1), values of σ (β) as shown in legend") +***** shared out1, out2 + out1 = [0, 0.5, 0.66666667, 0.75, 0.8, 0.83333333]; + out2 = [0, 0.4174, 0.4745, 0.5082, 0.5321, 0.5506]; +***** assert (loglcdf ([0:5], 0, 1), out1, 1e-8) +***** assert (loglcdf ([0:5], 0, 1, "upper"), 1 - out1, 1e-8) +***** assert (loglcdf ([0:5], 0, 1), out1, 1e-8) +***** assert (loglcdf ([0:5], 0, 1, "upper"), 1 - out1, 1e-8) +***** assert (loglcdf ([0:5], 1, 3), out2, 1e-4) +***** assert (loglcdf ([0:5], 1, 3, "upper"), 1 - out2, 1e-4) +***** assert (class (loglcdf (single (1), 2, 3)), "single") +***** assert (class (loglcdf (1, single (2), 3)), "single") +***** assert (class (loglcdf (1, 2, single (3))), "single") +***** error loglcdf (1) +***** error loglcdf (1, 2) +***** error ... + loglcdf (1, 2, 3, 4) +***** error ... + loglcdf (1, 2, 3, "uper") +***** error ... + loglcdf (1, ones (2), ones (3)) +***** error ... + loglcdf (1, ones (2), ones (3), "upper") +***** error ... + loglcdf (ones (2), 1, ones (3)) +***** error ... + loglcdf (ones (2), 1, ones (3), "upper") +***** error ... + loglcdf (ones (2), ones (3), 1) +***** error ... + loglcdf (ones (2), ones (3), 1, "upper") +***** error loglcdf (i, 2, 3) +***** error loglcdf (i, 2, 3, "upper") +***** error loglcdf (1, i, 3) +***** error loglcdf (1, i, 3, "upper") +***** error loglcdf (1, 2, i) +***** error loglcdf (1, 2, i, "upper") +25 tests, 25 passed, 0 known failure, 0 skipped +[inst/dist_fun/laplaceinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/laplaceinv.m +***** demo + ## Plot various iCDFs from the Laplace distribution + p = 0.001:0.001:0.999; + x1 = cauchyinv (p, 0, 1); + x2 = cauchyinv (p, 0, 2); + x3 = cauchyinv (p, 0, 4); + x4 = cauchyinv (p, -5, 4); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") + grid on + ylim ([-10, 10]) + legend ({"μ = 0, β = 1", "μ = 0, β = 2", ... + "μ = 0, β = 4", "μ = -5, β = 4"}, "location", "northwest") + title ("Laplace iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p, x + p = [-1 0 0.5 1 2]; + x = [NaN, -Inf, 0, Inf, NaN]; +***** assert (laplaceinv (p, 0, 1), x) +***** assert (laplaceinv (p, 0, [-2, -1, 0, 1, 2]), [nan(1, 3), Inf, NaN]) +***** assert (laplaceinv ([p, NaN], 0, 1), [x, NaN]) +***** assert (laplaceinv (single ([p, NaN]), 0, 1), single ([x, NaN])) +***** assert (laplaceinv ([p, NaN], single (0), 1), single ([x, NaN])) +***** assert (laplaceinv ([p, NaN], 0, single (1)), single ([x, NaN])) +***** error laplaceinv () +***** error laplaceinv (1) +***** error ... + laplaceinv (1, 2) +***** error laplaceinv (1, 2, 3, 4) +***** error ... + laplaceinv (1, ones (2), ones (3)) +***** error ... + laplaceinv (ones (2), 1, ones (3)) +***** error ... + laplaceinv (ones (2), ones (3), 1) +***** error laplaceinv (i, 2, 3) +***** error laplaceinv (1, i, 3) +***** error laplaceinv (1, 2, i) +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_fun/nbincdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nbincdf.m +***** demo + ## Plot various CDFs from the negative binomial distribution + x = 0:50; + p1 = nbincdf (x, 2, 0.15); + p2 = nbincdf (x, 5, 0.2); + p3 = nbincdf (x, 4, 0.4); + p4 = nbincdf (x, 10, 0.3); + plot (x, p1, "*r", x, p2, "*g", x, p3, "*k", x, p4, "*m") + grid on + xlim ([0, 40]) + legend ({"r = 2, ps = 0.15", "r = 5, ps = 0.2", "r = 4, p = 0.4", ... + "r = 10, ps = 0.3"}, "location", "southeast") + title ("Negative binomial CDF") + xlabel ("values in x (number of failures)") + ylabel ("probability") +***** shared x, y + x = [-1 0 1 2 Inf]; + y = [0 1/2 3/4 7/8 1]; +***** assert (nbincdf (x, ones (1,5), 0.5*ones (1,5)), y) +***** assert (nbincdf (x, 1, 0.5*ones (1,5)), y) +***** assert (nbincdf (x, ones (1,5), 0.5), y) +***** assert (nbincdf (x, ones (1,5), 0.5, "upper"), 1 - y, eps) +***** assert (nbincdf ([x(1:3) 0 x(5)], [0 1 NaN 1.5 Inf], 0.5), ... + [NaN 1/2 NaN nbinpdf(0,1.5,0.5) NaN], eps) +***** assert (nbincdf (x, 1, 0.5*[-1 NaN 4 1 1]), [NaN NaN NaN y(4:5)]) +***** assert (nbincdf ([x(1:2) NaN x(4:5)], 1, 0.5), [y(1:2) NaN y(4:5)]) +***** assert (nbincdf ([x, NaN], 1, 0.5), [y, NaN]) +***** assert (nbincdf (single ([x, NaN]), 1, 0.5), single ([y, NaN])) +***** assert (nbincdf ([x, NaN], single (1), 0.5), single ([y, NaN])) +***** assert (nbincdf ([x, NaN], 1, single (0.5)), single ([y, NaN])) +***** error nbincdf () +***** error nbincdf (1) +***** error nbincdf (1, 2) +***** error nbincdf (1, 2, 3, 4) +***** error nbincdf (1, 2, 3, "some") +***** error ... + nbincdf (ones (3), ones (2), ones (2)) +***** error ... + nbincdf (ones (2), ones (3), ones (2)) +***** error ... + nbincdf (ones (2), ones (2), ones (3)) +***** error nbincdf (i, 2, 2) +***** error nbincdf (2, i, 2) +***** error nbincdf (2, 2, i) +22 tests, 22 passed, 0 known failure, 0 skipped +[inst/dist_fun/unifcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unifcdf.m +***** demo + ## Plot various CDFs from the continuous uniform distribution + x = 0:0.1:10; + p1 = unifcdf (x, 2, 5); + p2 = unifcdf (x, 3, 9); + plot (x, p1, "-b", x, p2, "-g") + grid on + xlim ([0, 10]) + ylim ([0, 1]) + legend ({"a = 2, b = 5", "a = 3, b = 9"}, "location", "southeast") + title ("Continuous uniform CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y + x = [-1 0 0.5 1 2] + 1; + y = [0 0 0.5 1 1]; +***** assert (unifcdf (x, ones (1,5), 2*ones (1,5)), y) +***** assert (unifcdf (x, ones (1,5), 2*ones (1,5), "upper"), 1 - y) +***** assert (unifcdf (x, 1, 2*ones (1,5)), y) +***** assert (unifcdf (x, 1, 2*ones (1,5), "upper"), 1 - y) +***** assert (unifcdf (x, ones (1,5), 2), y) +***** assert (unifcdf (x, ones (1,5), 2, "upper"), 1 - y) +***** assert (unifcdf (x, [2 1 NaN 1 1], 2), [NaN 0 NaN 1 1]) +***** assert (unifcdf (x, [2 1 NaN 1 1], 2, "upper"), 1 - [NaN 0 NaN 1 1]) +***** assert (unifcdf (x, 1, 2*[0 1 NaN 1 1]), [NaN 0 NaN 1 1]) +***** assert (unifcdf (x, 1, 2*[0 1 NaN 1 1], "upper"), 1 - [NaN 0 NaN 1 1]) +***** assert (unifcdf ([x(1:2) NaN x(4:5)], 1, 2), [y(1:2) NaN y(4:5)]) +***** assert (unifcdf ([x(1:2) NaN x(4:5)], 1, 2, "upper"), 1 - [y(1:2) NaN y(4:5)]) +***** assert (unifcdf ([x, NaN], 1, 2), [y, NaN]) +***** assert (unifcdf (single ([x, NaN]), 1, 2), single ([y, NaN])) +***** assert (unifcdf ([x, NaN], single (1), 2), single ([y, NaN])) +***** assert (unifcdf ([x, NaN], 1, single (2)), single ([y, NaN])) +***** error unifcdf () +***** error unifcdf (1) +***** error unifcdf (1, 2) +***** error unifcdf (1, 2, 3, 4) +***** error unifcdf (1, 2, 3, "tail") +***** error ... + unifcdf (ones (3), ones (2), ones (2)) +***** error ... + unifcdf (ones (2), ones (3), ones (2)) +***** error ... + unifcdf (ones (2), ones (2), ones (3)) +***** error unifcdf (i, 2, 2) +***** error unifcdf (2, i, 2) +***** error unifcdf (2, 2, i) +27 tests, 27 passed, 0 known failure, 0 skipped +[inst/dist_fun/poissinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/poissinv.m +***** demo + ## Plot various iCDFs from the Poisson distribution + p = 0.001:0.001:0.999; + x1 = poissinv (p, 13); + x2 = poissinv (p, 4); + x3 = poissinv (p, 10); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r") + grid on + ylim ([0, 20]) + legend ({"λ = 1", "λ = 4", "λ = 10"}, "location", "northwest") + title ("Poisson iCDF") + xlabel ("probability") + ylabel ("values in x (number of occurences)") +***** shared p + p = [-1 0 0.5 1 2]; +***** assert (poissinv (p, ones (1,5)), [NaN 0 1 Inf NaN]) +***** assert (poissinv (p, 1), [NaN 0 1 Inf NaN]) +***** assert (poissinv (p, [1 0 NaN 1 1]), [NaN NaN NaN Inf NaN]) +***** assert (poissinv ([p(1:2) NaN p(4:5)], 1), [NaN 0 NaN Inf NaN]) +***** assert (poissinv ([p, NaN], 1), [NaN 0 1 Inf NaN NaN]) +***** assert (poissinv (single ([p, NaN]), 1), single ([NaN 0 1 Inf NaN NaN])) +***** assert (poissinv ([p, NaN], single (1)), single ([NaN 0 1 Inf NaN NaN])) +***** error poissinv () +***** error poissinv (1) +***** error ... + poissinv (ones (3), ones (2)) +***** error ... + poissinv (ones (2), ones (3)) +***** error poissinv (i, 2) +***** error poissinv (2, i) +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_fun/gampdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gampdf.m +***** demo + ## Plot various PDFs from the Gamma distribution + x = 0:0.01:20; + y1 = gampdf (x, 1, 2); + y2 = gampdf (x, 2, 2); + y3 = gampdf (x, 3, 2); + y4 = gampdf (x, 5, 1); + y5 = gampdf (x, 9, 0.5); + y6 = gampdf (x, 7.5, 1); + y7 = gampdf (x, 0.5, 1); + plot (x, y1, "-r", x, y2, "-g", x, y3, "-y", x, y4, "-m", ... + x, y5, "-k", x, y6, "-b", x, y7, "-c") + grid on + ylim ([0,0.5]) + legend ({"α = 1, β = 2", "α = 2, β = 2", "α = 3, β = 2", ... + "α = 5, β = 1", "α = 9, β = 0.5", "α = 7.5, β = 1", ... + "α = 0.5, β = 1"}, "location", "northeast") + title ("Gamma PDF") + xlabel ("values in x") ylabel ("density") ***** shared x, y - x = [-1 0 1 2 3]; - y = [0 1/6 4/6 1/6 0]; -***** assert (hygepdf (x, 4*ones (1,5), 2, 2), y, eps) -***** assert (hygepdf (x, 4, 2*ones (1,5), 2), y, eps) -***** assert (hygepdf (x, 4, 2, 2*ones (1,5)), y, eps) -***** assert (hygepdf (x, 4*[1 -1 NaN 1.1 1], 2, 2), [0 NaN NaN NaN 0], eps) -***** assert (hygepdf (x, 4, 2*[1 -1 NaN 1.1 1], 2), [0 NaN NaN NaN 0], eps) -***** assert (hygepdf (x, 4, 5, 2), [NaN NaN NaN NaN NaN], eps) -***** assert (hygepdf (x, 4, 2, 2*[1 -1 NaN 1.1 1]), [0 NaN NaN NaN 0], eps) -***** assert (hygepdf (x, 4, 2, 5), [NaN NaN NaN NaN NaN], eps) -***** assert (hygepdf ([x, NaN], 4, 2, 2), [y, NaN], eps) -***** assert (hygepdf (single ([x, NaN]), 4, 2, 2), single ([y, NaN]), eps("single")) -***** assert (hygepdf ([x, NaN], single (4), 2, 2), single ([y, NaN]), eps("single")) -***** assert (hygepdf ([x, NaN], 4, single (2), 2), single ([y, NaN]), eps("single")) -***** assert (hygepdf ([x, NaN], 4, 2, single (2)), single ([y, NaN]), eps("single")) + x = [-1 0 0.5 1 Inf]; + y = [0 exp(-x(2:end))]; +***** assert (gampdf (x, ones (1,5), ones (1,5)), y) +***** assert (gampdf (x, 1, ones (1,5)), y) +***** assert (gampdf (x, ones (1,5), 1), y) +***** assert (gampdf (x, [0 -Inf NaN Inf 1], 1), [NaN NaN NaN NaN y(5)]) +***** assert (gampdf (x, 1, [0 -Inf NaN Inf 1]), [NaN NaN NaN 0 y(5)]) +***** assert (gampdf ([x, NaN], 1, 1), [y, NaN]) +***** assert (gampdf (single ([x, NaN]), 1, 1), single ([y, NaN])) +***** assert (gampdf ([x, NaN], single (1), 1), single ([y, NaN])) +***** assert (gampdf ([x, NaN], 1, single (1)), single ([y, NaN])) +***** error gampdf () +***** error gampdf (1) +***** error gampdf (1,2) +***** error ... + gampdf (ones (3), ones (2), ones (2)) +***** error ... + gampdf (ones (2), ones (3), ones (2)) +***** error ... + gampdf (ones (2), ones (2), ones (3)) +***** error gampdf (i, 2, 2) +***** error gampdf (2, i, 2) +***** error gampdf (2, 2, i) +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/dist_fun/evcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/evcdf.m +***** demo + ## Plot various CDFs from the extreme value distribution + x = -10:0.01:10; + p1 = evcdf (x, 0.5, 2); + p2 = evcdf (x, 1.0, 2); + p3 = evcdf (x, 1.5, 3); + p4 = evcdf (x, 3.0, 4); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") + grid on + legend ({"μ = 0.5, σ = 2", "μ = 1.0, σ = 2", ... + "μ = 1.5, σ = 3", "μ = 3.0, σ = 4"}, "location", "southeast") + title ("Extreme value CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y + x = [-Inf, 1, 2, Inf]; + y = [0, 0.6321, 0.9340, 1]; +***** assert (evcdf (x, ones (1,4), ones (1,4)), y, 1e-4) +***** assert (evcdf (x, 1, ones (1,4)), y, 1e-4) +***** assert (evcdf (x, ones (1,4), 1), y, 1e-4) +***** assert (evcdf (x, [0, -Inf, NaN, Inf], 1), [0, 1, NaN, NaN], 1e-4) +***** assert (evcdf (x, 1, [Inf, NaN, -1, 0]), [NaN, NaN, NaN, NaN], 1e-4) +***** assert (evcdf ([x(1:2), NaN, x(4)], 1, 1), [y(1:2), NaN, y(4)], 1e-4) +***** assert (evcdf (x, "upper"), [1, 0.0660, 0.0006, 0], 1e-4) +***** assert (evcdf ([x, NaN], 1, 1), [y, NaN], 1e-4) +***** assert (evcdf (single ([x, NaN]), 1, 1), single ([y, NaN]), 1e-4) +***** assert (evcdf ([x, NaN], single (1), 1), single ([y, NaN]), 1e-4) +***** assert (evcdf ([x, NaN], 1, single (1)), single ([y, NaN]), 1e-4) +***** error evcdf () +***** error evcdf (1,2,3,4,5,6,7) +***** error evcdf (1, 2, 3, 4, "uper") +***** error ... + evcdf (ones (3), ones (2), ones (2)) +***** error evcdf (2, 3, 4, [1, 2]) +***** error ... + [p, plo, pup] = evcdf (1, 2, 3) +***** error [p, plo, pup] = ... + evcdf (1, 2, 3, [1, 0; 0, 1], 0) +***** error [p, plo, pup] = ... + evcdf (1, 2, 3, [1, 0; 0, 1], 1.22) +***** error [p, plo, pup] = ... + evcdf (1, 2, 3, [1, 0; 0, 1], "alpha", "upper") +***** error evcdf (i, 2, 2) +***** error evcdf (2, i, 2) +***** error evcdf (2, 2, i) +***** error ... + [p, plo, pup] = evcdf (1, 2, 3, [1, 0; 0, -inf], 0.04) +24 tests, 24 passed, 0 known failure, 0 skipped +[inst/dist_fun/tlspdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tlspdf.m +***** demo + ## Plot various PDFs from the Student's T distribution + x = -8:0.01:8; + y1 = tlspdf (x, 0, 1, 1); + y2 = tlspdf (x, 0, 2, 2); + y3 = tlspdf (x, 3, 2, 5); + y4 = tlspdf (x, -1, 3, Inf); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-m") + grid on + xlim ([-8, 8]) + ylim ([0, 0.41]) + legend ({"mu = 0, sigma = 1, nu = 1", "mu = 0, sigma = 2, nu = 2", ... + "mu = 3, sigma = 2, nu = 5", 'mu = -1, sigma = 3, nu = \infty'}, ... + "location", "northwest") + title ("Location-scale Student's T PDF") + xlabel ("values in x") + ylabel ("density") ***** test - z = zeros(3,5); - z([4,5,6,8,9,12]) = [1, 0.5, 1/6, 0.5, 2/3, 1/6]; - assert (hygepdf (x, 4, [0, 1, 2], 2, "vectorexpand"), z, eps); - assert (hygepdf (x, 4, [0, 1, 2]', 2, "vectorexpand"), z, eps); - assert (hygepdf (x', 4, [0, 1, 2], 2, "vectorexpand"), z, eps); - assert (hygepdf (2, 4, [0 ,1, 2], 2, "vectorexpand"), z(:,4), eps); - assert (hygepdf (x, 4, 1, 2, "vectorexpand"), z(2,:), eps); - assert (hygepdf ([NaN, x], 4, [0 1 2]', 2, "vectorexpand"), [NaN(3,1), z], eps); -***** error hygepdf () -***** error hygepdf (1) -***** error hygepdf (1,2) -***** error hygepdf (1,2,3) -***** error ... - hygepdf (1, ones (3), ones (2), ones (2)) -***** error ... - hygepdf (1, ones (2), ones (3), ones (2)) -***** error ... - hygepdf (1, ones (2), ones (2), ones (3)) -***** error hygepdf (i, 2, 2, 2) -***** error hygepdf (2, i, 2, 2) -***** error hygepdf (2, 2, i, 2) -***** error hygepdf (2, 2, 2, i) -25 tests, 25 passed, 0 known failure, 0 skipped -[inst/dist_fun/fpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/fpdf.m + x = rand (10,1); + y = 1./(pi * (1 + x.^2)); + assert (tlspdf (x, 0, 1, 1), y, 5*eps); + assert (tlspdf (x+5, 5, 1, 1), y, 5*eps); + assert (tlspdf (x.*2, 0, 2, 1), y./2, 5*eps); +***** shared x, y + x = [-Inf 0 0.5 1 Inf]; + y = 1./(pi * (1 + x.^2)); +***** assert (tlspdf (x, 0, 1, ones (1,5)), y, eps) +***** assert (tlspdf (x, 0, 1, 1), y, eps) +***** assert (tlspdf (x, 0, 1, [0 NaN 1 1 1]), [NaN NaN y(3:5)], eps) +***** assert (tlspdf (x, 0, 1, Inf), normpdf (x)) +***** assert (class (tlspdf ([x, NaN], 1, 1, 1)), "double") +***** assert (class (tlspdf (single ([x, NaN]), 1, 1, 1)), "single") +***** assert (class (tlspdf ([x, NaN], single (1), 1, 1)), "single") +***** assert (class (tlspdf ([x, NaN], 1, single (1), 1)), "single") +***** assert (class (tlspdf ([x, NaN], 1, 1, single (1))), "single") +***** error tlspdf () +***** error tlspdf (1) +***** error tlspdf (1, 2) +***** error tlspdf (1, 2, 3) +***** error ... + tlspdf (ones (3), ones (2), 1, 1) +***** error ... + tlspdf (ones (2), 1, ones (3), 1) +***** error ... + tlspdf (ones (2), 1, 1, ones (3)) +***** error tlspdf (i, 2, 1, 1) +***** error tlspdf (2, i, 1, 1) +***** error tlspdf (2, 1, i, 1) +***** error tlspdf (2, 1, 1, i) +21 tests, 21 passed, 0 known failure, 0 skipped +[inst/dist_fun/wblcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wblcdf.m ***** demo - ## Plot various PDFs from the F distribution - x = 0.01:0.01:4; - y1 = fpdf (x, 1, 1); - y2 = fpdf (x, 2, 1); - y3 = fpdf (x, 5, 2); - y4 = fpdf (x, 10, 1); - y5 = fpdf (x, 100, 100); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c", x, y5, "-m") + ## Plot various CDFs from the Weibull distribution + x = 0:0.001:2.5; + p1 = wblcdf (x, 1, 0.5); + p2 = wblcdf (x, 1, 1); + p3 = wblcdf (x, 1, 1.5); + p4 = wblcdf (x, 1, 5); + plot (x, p1, "-b", x, p2, "-r", x, p3, "-m", x, p4, "-g") grid on - ylim ([0, 2.5]) - legend ({"df1 = 1, df2 = 2", "df1 = 2, df2 = 1", ... - "df1 = 5, df2 = 2", "df1 = 10, df2 = 1", ... - "df1 = 100, df2 = 100"}, "location", "northeast") - title ("F PDF") + legend ({"λ = 1, k = 0.5", "λ = 1, k = 1", ... + "λ = 1, k = 1.5", "λ = 1, k = 5"}, "location", "southeast") + title ("Weibull CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y + x = [-1 0 0.5 1 Inf]; + y = [0, 1-exp(-x(2:4)), 1]; +***** assert (wblcdf (x, ones (1,5), ones (1,5)), y) +***** assert (wblcdf (x, ones (1,5), ones (1,5), "upper"), 1 - y) +***** assert (wblcdf (x, "upper"), 1 - y) +***** assert (wblcdf (x, 1, ones (1,5)), y) +***** assert (wblcdf (x, ones (1,5), 1), y) +***** assert (wblcdf (x, [0 1 NaN Inf 1], 1), [NaN 0 NaN 0 1]) +***** assert (wblcdf (x, [0 1 NaN Inf 1], 1, "upper"), 1 - [NaN 0 NaN 0 1]) +***** assert (wblcdf (x, 1, [0 1 NaN Inf 1]), [NaN 0 NaN y(4:5)]) +***** assert (wblcdf (x, 1, [0 1 NaN Inf 1], "upper"), 1 - [NaN 0 NaN y(4:5)]) +***** assert (wblcdf ([x(1:2) NaN x(4:5)], 1, 1), [y(1:2) NaN y(4:5)]) +***** assert (wblcdf ([x(1:2) NaN x(4:5)], 1, 1, "upper"), 1 - [y(1:2) NaN y(4:5)]) +***** assert (wblcdf ([x, NaN], 1, 1), [y, NaN]) +***** assert (wblcdf (single ([x, NaN]), 1, 1), single ([y, NaN])) +***** assert (wblcdf ([x, NaN], single (1), 1), single ([y, NaN])) +***** assert (wblcdf ([x, NaN], 1, single (1)), single ([y, NaN])) +***** error wblcdf () +***** error wblcdf (1,2,3,4,5,6,7) +***** error wblcdf (1, 2, 3, 4, "uper") +***** error ... + wblcdf (ones (3), ones (2), ones (2)) +***** error wblcdf (2, 3, 4, [1, 2]) +***** error ... + [p, plo, pup] = wblcdf (1, 2, 3) +***** error [p, plo, pup] = ... + wblcdf (1, 2, 3, [1, 0; 0, 1], 0) +***** error [p, plo, pup] = ... + wblcdf (1, 2, 3, [1, 0; 0, 1], 1.22) +***** error [p, plo, pup] = ... + wblcdf (1, 2, 3, [1, 0; 0, 1], "alpha", "upper") +***** error wblcdf (i, 2, 2) +***** error wblcdf (2, i, 2) +***** error wblcdf (2, 2, i) +***** error ... + [p, plo, pup] =wblcdf (1, 2, 3, [1, 0; 0, -inf], 0.04) +28 tests, 28 passed, 0 known failure, 0 skipped +[inst/dist_fun/unidpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unidpdf.m +***** demo + ## Plot various PDFs from the discrete uniform distribution + x = 0:10; + y1 = unidpdf (x, 5); + y2 = unidpdf (x, 9); + plot (x, y1, "*b", x, y2, "*g") + grid on + xlim ([0, 10]) + ylim ([0, 0.25]) + legend ({"N = 5", "N = 9"}, "location", "northeast") + title ("Descrete uniform PDF") xlabel ("values in x") ylabel ("density") ***** shared x, y - x = [-1 0 0.5 1 2]; - y = [0 0 4/9 1/4 1/9]; -***** assert (fpdf (x, 2*ones (1,5), 2*ones (1,5)), y, eps) -***** assert (fpdf (x, 2, 2*ones (1,5)), y, eps) -***** assert (fpdf (x, 2*ones (1,5), 2), y, eps) -***** assert (fpdf (x, [0 NaN Inf 2 2], 2), [NaN NaN NaN y(4:5)], eps) -***** assert (fpdf (x, 2, [0 NaN Inf 2 2]), [NaN NaN NaN y(4:5)], eps) -***** assert (fpdf ([x, NaN], 2, 2), [y, NaN], eps) -***** test #F (x, 1, df1) == T distribution (sqrt (x), df1) / sqrt (x) - rand ("seed", 1234); # for reproducibility - xr = rand (10,1); - xr = xr(x > 0.1 & x < 0.9); - yr = tpdf (sqrt (xr), 2) ./ sqrt (xr); - assert (fpdf (xr, 1, 2), yr, 5*eps); -***** assert (fpdf (single ([x, NaN]), 2, 2), single ([y, NaN]), eps ("single")) -***** assert (fpdf ([x, NaN], single (2), 2), single ([y, NaN]), eps ("single")) -***** assert (fpdf ([x, NaN], 2, single (2)), single ([y, NaN]), eps ("single")) -***** error fpdf () -***** error fpdf (1) -***** error fpdf (1,2) -***** error ... - fpdf (ones (3), ones (2), ones (2)) -***** error ... - fpdf (ones (2), ones (3), ones (2)) -***** error ... - fpdf (ones (2), ones (2), ones (3)) -***** error fpdf (i, 2, 2) -***** error fpdf (2, i, 2) -***** error fpdf (2, 2, i) -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/dist_fun/plrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/plrnd.m -***** shared x, Fx - x = [0, 1, 3, 4, 7, 10]; - Fx = [0, 0.2, 0.5, 0.6, 0.7, 1]; -***** assert (size (plrnd (x, Fx)), [1, 1]) -***** assert (size (plrnd (x, Fx, 3)), [3, 3]) -***** assert (size (plrnd (x, Fx, [4, 1])), [4, 1]) -***** assert (size (plrnd (x, Fx, 4, 1)), [4, 1]) -***** assert (size (plrnd (x, Fx, 4, 1, 5)), [4, 1, 5]) -***** assert (size (plrnd (x, Fx, 0, 1)), [0, 1]) -***** assert (size (plrnd (x, Fx, 1, 0)), [1, 0]) -***** assert (size (plrnd (x, Fx, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (plrnd (x, Fx)), "double") -***** assert (class (plrnd (x, single (Fx))), "single") -***** assert (class (plrnd (single (x), Fx)), "single") -***** error plrnd () -***** error plrnd (1) -***** error ... - plrnd ([0, 1, 2], [0, 1]) -***** error ... - plrnd ([0], [1]) -***** error ... - plrnd ([0, 1, 2], [0, 1, 1.5]) -***** error ... - plrnd ([0, 1, 2], [0, i, 1]) -***** error ... - plrnd ([0, i, 2], [0, 0.5, 1]) -***** error ... - plrnd ([0, i, 2], [0, 0.5i, 1]) -***** error ... - plrnd (x, Fx, -1) -***** error ... - plrnd (x, Fx, 1.2) -***** error ... - plrnd (x, Fx, ones (2)) -***** error ... - plrnd (x, Fx, [2 -1 2]) -***** error ... - plrnd (x, Fx, [2 0 2.5]) -***** error ... - plrnd (x, Fx, 2, -1, 5) -***** error ... - plrnd (x, Fx, 2, 1.5, 5) -26 tests, 26 passed, 0 known failure, 0 skipped + x = [-1 0 1 2 10 11]; + y = [0 0 0.1 0.1 0.1 0]; +***** assert (unidpdf (x, 10*ones (1,6)), y) +***** assert (unidpdf (x, 10), y) +***** assert (unidpdf (x, 10*[0 NaN 1 1 1 1]), [NaN NaN y(3:6)]) +***** assert (unidpdf ([x, NaN], 10), [y, NaN]) +***** assert (unidpdf (single ([x, NaN]), 10), single ([y, NaN])) +***** assert (unidpdf ([x, NaN], single (10)), single ([y, NaN])) +***** error unidpdf () +***** error unidpdf (1) +***** error ... + unidpdf (ones (3), ones (2)) +***** error ... + unidpdf (ones (2), ones (3)) +***** error unidpdf (i, 2) +***** error unidpdf (2, i) +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/dist_fun/plinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/plinv.m +***** demo + ## Plot various iCDFs from the Piecewise linear distribution + p = 0.001:0.001:0.999; + x1 = [0, 1, 3, 4, 7, 10]; + Fx1 = [0, 0.2, 0.5, 0.6, 0.7, 1]; + x2 = [0, 2, 5, 6, 7, 8]; + Fx2 = [0, 0.1, 0.3, 0.6, 0.9, 1]; + data1 = plinv (p, x1, Fx1); + data2 = plinv (p, x2, Fx2); + plot (p, data1, "-b", p, data2, "-g") + grid on + legend ({"x1, Fx1", "x2, Fx2"}, "location", "northwest") + title ("Piecewise linear iCDF") + xlabel ("probability") + ylabel ("values in data") +***** test + p = 0:0.2:1; + data = plinv (p, [0, 1], [0, 1]); + assert (data, p); +***** test + p = 0:0.2:1; + data = plinv (p, [0, 2], [0, 1]); + assert (data, 2 * p); +***** test + p = 0:0.2:1; + data_out = 1:6; + data = plinv (p, [0, 1], [0, 0.5]); + assert (data, [0, 0.4, 0.8, NA, NA, NA]); +***** test + p = 0:0.2:1; + data_out = 1:6; + data = plinv (p, [0, 0.5], [0, 1]); + assert (data, [0:0.1:0.5]); +***** error plinv () +***** error plinv (1) +***** error plinv (1, 2) +***** error ... + plinv (1, [0, 1, 2], [0, 1]) +***** error ... + plinv (1, [0], [1]) +***** error ... + plinv (1, [0, 1, 2], [0, 1, 1.5]) +***** error ... + plinv (1, [0, 1, 2], [0, i, 1]) +***** error ... + plinv (i, [0, 1, 2], [0, 0.5, 1]) +***** error ... + plinv (1, [0, i, 2], [0, 0.5, 1]) +***** error ... + plinv (1, [0, 1, 2], [0, 0.5i, 1]) +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/dist_fun/raylcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/raylcdf.m +***** demo + ## Plot various CDFs from the Rayleigh distribution + x = 0:0.01:10; + p1 = raylcdf (x, 0.5); + p2 = raylcdf (x, 1); + p3 = raylcdf (x, 2); + p4 = raylcdf (x, 3); + p5 = raylcdf (x, 4); + plot (x, p1, "-b", x, p2, "g", x, p3, "-r", x, p4, "-m", x, p5, "-k") + grid on + ylim ([0, 1]) + legend ({"σ = 0.5", "σ = 1", "σ = 2", ... + "σ = 3", "σ = 4"}, "location", "southeast") + title ("Rayleigh CDF") + xlabel ("values in x") + ylabel ("probability") +***** test + x = 0:0.5:2.5; + sigma = 1:6; + p = raylcdf (x, sigma); + expected_p = [0.0000, 0.0308, 0.0540, 0.0679, 0.0769, 0.0831]; + assert (p, expected_p, 0.001); +***** test + x = 0:0.5:2.5; + p = raylcdf (x, 0.5); + expected_p = [0.0000, 0.3935, 0.8647, 0.9889, 0.9997, 1.0000]; + assert (p, expected_p, 0.001); +***** shared x, p + x = [-1, 0, 1, 2, Inf]; + p = [0, 0, 0.39346934028737, 0.86466471676338, 1]; +***** assert (raylcdf (x, 1), p, 1e-14) +***** assert (raylcdf (x, 1, "upper"), 1 - p, 1e-14) +***** error raylcdf () +***** error raylcdf (1) +***** error raylcdf (1, 2, "uper") +***** error raylcdf (1, 2, 3) +***** error ... + raylcdf (ones (3), ones (2)) +***** error ... + raylcdf (ones (2), ones (3)) +***** error raylcdf (i, 2) +***** error raylcdf (2, i) +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/dist_fun/laplacernd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/laplacernd.m +***** assert (size (laplacernd (1, 1)), [1 1]) +***** assert (size (laplacernd (1, ones (2,1))), [2, 1]) +***** assert (size (laplacernd (1, ones (2,2))), [2, 2]) +***** assert (size (laplacernd (ones (2,1), 1)), [2, 1]) +***** assert (size (laplacernd (ones (2,2), 1)), [2, 2]) +***** assert (size (laplacernd (1, 1, 3)), [3, 3]) +***** assert (size (laplacernd (1, 1, [4, 1])), [4, 1]) +***** assert (size (laplacernd (1, 1, 4, 1)), [4, 1]) +***** assert (size (laplacernd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (laplacernd (1, 1, 0, 1)), [0, 1]) +***** assert (size (laplacernd (1, 1, 1, 0)), [1, 0]) +***** assert (size (laplacernd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (laplacernd (1, 1)), "double") +***** assert (class (laplacernd (1, single (1))), "single") +***** assert (class (laplacernd (1, single ([1, 1]))), "single") +***** assert (class (laplacernd (single (1), 1)), "single") +***** assert (class (laplacernd (single ([1, 1]), 1)), "single") +***** error laplacernd () +***** error laplacernd (1) +***** error ... + laplacernd (ones (3), ones (2)) +***** error ... + laplacernd (ones (2), ones (3)) +***** error laplacernd (i, 2, 3) +***** error laplacernd (1, i, 3) +***** error ... + laplacernd (1, 2, -1) +***** error ... + laplacernd (1, 2, 1.2) +***** error ... + laplacernd (1, 2, ones (2)) +***** error ... + laplacernd (1, 2, [2 -1 2]) +***** error ... + laplacernd (1, 2, [2 0 2.5]) +***** error ... + laplacernd (1, 2, 2, -1, 5) +***** error ... + laplacernd (1, 2, 2, 1.5, 5) +***** error ... + laplacernd (2, ones (2), 3) +***** error ... + laplacernd (2, ones (2), [3, 2]) +***** error ... + laplacernd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/copulapdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/copulapdf.m +***** test + x = [0.2:0.2:0.6; 0.2:0.2:0.6]; + theta = [1; 2]; + y = copulapdf ("Clayton", x, theta); + expected_p = [0.9872; 0.7295]; + assert (y, expected_p, 0.001); +***** test + x = [0.2:0.2:0.6; 0.2:0.2:0.6]; + y = copulapdf ("Gumbel", x, 2); + expected_p = [0.9468; 0.9468]; + assert (y, expected_p, 0.001); +***** test + x = [0.2, 0.6; 0.2, 0.6]; + theta = [1; 2]; + y = copulapdf ("Frank", x, theta); + expected_p = [0.9378; 0.8678]; + assert (y, expected_p, 0.001); +***** test + x = [0.2, 0.6; 0.2, 0.6]; + theta = [0.3; 0.7]; + y = copulapdf ("AMH", x, theta); + expected_p = [0.9540; 0.8577]; + assert (y, expected_p, 0.001); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/dist_fun/trirnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/trirnd.m +***** assert (size (trirnd (1, 1.5, 2)), [1, 1]) +***** assert (size (trirnd (1 * ones (2, 1), 1.5, 2)), [2, 1]) +***** assert (size (trirnd (1 * ones (2, 2), 1.5, 2)), [2, 2]) +***** assert (size (trirnd (1, 1.5 * ones (2, 1), 2)), [2, 1]) +***** assert (size (trirnd (1, 1.5 * ones (2, 2), 2)), [2, 2]) +***** assert (size (trirnd (1, 1.5, 2 * ones (2, 1))), [2, 1]) +***** assert (size (trirnd (1, 1.5, 2 * ones (2, 2))), [2, 2]) +***** assert (size (trirnd (1, 1.5, 2, 3)), [3, 3]) +***** assert (size (trirnd (1, 1.5, 2, [4, 1])), [4, 1]) +***** assert (size (trirnd (1, 1.5, 2, 4, 1)), [4, 1]) +***** assert (class (trirnd (1, 1.5, 2)), "double") +***** assert (class (trirnd (single (1), 1.5, 2)), "single") +***** assert (class (trirnd (single ([1, 1]), 1.5, 2)), "single") +***** assert (class (trirnd (1, single (1.5), 2)), "single") +***** assert (class (trirnd (1, single ([1.5, 1.5]), 2)), "single") +***** assert (class (trirnd (1, 1.5, single (1.5))), "single") +***** assert (class (trirnd (1, 1.5, single ([2, 2]))), "single") +***** error trirnd () +***** error trirnd (1) +***** error trirnd (1, 2) +***** error ... + trirnd (ones (3), 5 * ones (2), ones (2)) +***** error ... + trirnd (ones (2), 5 * ones (3), ones (2)) +***** error ... + trirnd (ones (2), 5 * ones (2), ones (3)) +***** error trirnd (i, 5, 3) +***** error trirnd (1, 5+i, 3) +***** error trirnd (1, 5, i) +***** error ... + trirnd (1, 5, 3, -1) +***** error ... + trirnd (1, 5, 3, 1.2) +***** error ... + trirnd (1, 5, 3, ones (2)) +***** error ... + trirnd (1, 5, 3, [2 -1 2]) +***** error ... + trirnd (1, 5, 3, [2 0 2.5]) +***** error ... + trirnd (1, 5, 3, 2, -1, 5) +***** error ... + trirnd (1, 5, 3, 2, 1.5, 5) +***** error ... + trirnd (2, 5 * ones (2), 2, 3) +***** error ... + trirnd (2, 5 * ones (2), 2, [3, 2]) +***** error ... + trirnd (2, 5 * ones (2), 2, 3, 2) +36 tests, 36 passed, 0 known failure, 0 skipped +[inst/dist_fun/normrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/normrnd.m +***** assert (size (normrnd (1, 1)), [1 1]) +***** assert (size (normrnd (1, ones (2,1))), [2, 1]) +***** assert (size (normrnd (1, ones (2,2))), [2, 2]) +***** assert (size (normrnd (ones (2,1), 1)), [2, 1]) +***** assert (size (normrnd (ones (2,2), 1)), [2, 2]) +***** assert (size (normrnd (1, 1, 3)), [3, 3]) +***** assert (size (normrnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (normrnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (normrnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (normrnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (normrnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (normrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (normrnd (1, 1)), "double") +***** assert (class (normrnd (1, single (1))), "single") +***** assert (class (normrnd (1, single ([1, 1]))), "single") +***** assert (class (normrnd (single (1), 1)), "single") +***** assert (class (normrnd (single ([1, 1]), 1)), "single") +***** error normrnd () +***** error normrnd (1) +***** error ... + normrnd (ones (3), ones (2)) +***** error ... + normrnd (ones (2), ones (3)) +***** error normrnd (i, 2, 3) +***** error normrnd (1, i, 3) +***** error ... + normrnd (1, 2, -1) +***** error ... + normrnd (1, 2, 1.2) +***** error ... + normrnd (1, 2, ones (2)) +***** error ... + normrnd (1, 2, [2 -1 2]) +***** error ... + normrnd (1, 2, [2 0 2.5]) +***** error ... + normrnd (1, 2, 2, -1, 5) +***** error ... + normrnd (1, 2, 2, 1.5, 5) +***** error ... + normrnd (2, ones (2), 3) +***** error ... + normrnd (2, ones (2), [3, 2]) +***** error ... + normrnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/exppdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/exppdf.m +***** demo + ## Plot various PDFs from the exponential distribution + x = 0:0.01:5; + y1 = exppdf (x, 2/3); + y2 = exppdf (x, 1.0); + y3 = exppdf (x, 2.0); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r") + grid on + ylim ([0, 1.5]) + legend ({"μ = 2/3", "μ = 1", "μ = 2"}, "location", "northeast") + title ("Exponential PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x,y + x = [-1 0 0.5 1 Inf]; + y = gampdf (x, 1, 2); +***** assert (exppdf (x, 2*ones (1,5)), y) +***** assert (exppdf (x, 2*[1 0 NaN 1 1]), [y(1) NaN NaN y(4:5)]) +***** assert (exppdf ([x, NaN], 2), [y, NaN]) +***** assert (exppdf (single ([x, NaN]), 2), single ([y, NaN])) +***** assert (exppdf ([x, NaN], single (2)), single ([y, NaN])) +***** error exppdf () +***** error exppdf (1,2,3) +***** error ... + exppdf (ones (3), ones (2)) +***** error ... + exppdf (ones (2), ones (3)) +***** error exppdf (i, 2) +***** error exppdf (2, i) +11 tests, 11 passed, 0 known failure, 0 skipped [inst/dist_fun/expcdf.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/expcdf.m ***** demo @@ -21979,69 +16115,228 @@ ***** error ... [p, plo, pup] = expcdf (1, 2, -1, 0.04) 21 tests, 21 passed, 0 known failure, 0 skipped -[inst/dist_fun/iwishrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/iwishrnd.m -***** assert(size (iwishrnd (1,2,1)), [1, 1]); -***** assert(size (iwishrnd ([],2,1)), [1, 1]); -***** assert(size (iwishrnd ([3 1; 1 3], 2.00001, [], 1)), [2, 2]); -***** assert(size (iwishrnd (eye(2), 2, [], 3)), [2, 2, 3]); -***** error iwishrnd () -***** error iwishrnd (1) -***** error iwishrnd ([-3 1; 1 3],1) -***** error iwishrnd ([1; 1],1) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fun/hnrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hnrnd.m -***** assert (size (hnrnd (1, 1, 1)), [1, 1]) -***** assert (size (hnrnd (1, 1, 2)), [2, 2]) -***** assert (size (hnrnd (1, 1, [2, 1])), [2, 1]) -***** assert (size (hnrnd (1, zeros (2, 2))), [2, 2]) -***** assert (size (hnrnd (1, ones (2, 1))), [2, 1]) -***** assert (size (hnrnd (1, ones (2, 2))), [2, 2]) -***** assert (size (hnrnd (ones (2, 1), 1)), [2, 1]) -***** assert (size (hnrnd (ones (2, 2), 1)), [2, 2]) -***** assert (size (hnrnd (1, 1, 3)), [3, 3]) -***** assert (size (hnrnd (1, 1, [4 1])), [4, 1]) -***** assert (size (hnrnd (1, 1, 4, 1)), [4, 1]) -***** test - r = hnrnd (1, [1, 0, -1]); - assert (r([2:3]), [NaN, NaN]) -***** assert (class (hnrnd (1, 0)), "double") -***** assert (class (hnrnd (1, single (0))), "single") -***** assert (class (hnrnd (1, single ([0 0]))), "single") -***** assert (class (hnrnd (1, single (1))), "single") -***** assert (class (hnrnd (1, single ([1 1]))), "single") -***** assert (class (hnrnd (single (1), 1)), "single") -***** assert (class (hnrnd (single ([1 1]), 1)), "single") -***** error hnrnd () -***** error hnrnd (1) -***** error ... - hnrnd (ones (3), ones (2)) -***** error ... - hnrnd (ones (2), ones (3)) -***** error hnrnd (i, 2, 3) -***** error hnrnd (1, i, 3) -***** error ... - hnrnd (1, 2, -1) -***** error ... - hnrnd (1, 2, 1.2) -***** error ... - hnrnd (1, 2, ones (2)) -***** error ... - hnrnd (1, 2, [2 -1 2]) -***** error ... - hnrnd (1, 2, [2 0 2.5]) -***** error ... - hnrnd (1, 2, 2, -1, 5) -***** error ... - hnrnd (1, 2, 2, 1.5, 5) -***** error ... - hnrnd (2, ones (2), 3) -***** error ... - hnrnd (2, ones (2), [3, 2]) -***** error ... - hnrnd (2, ones (2), 3, 2) -35 tests, 35 passed, 0 known failure, 0 skipped +[inst/dist_fun/mvtcdfqmc.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvtcdfqmc.m +***** error mvtcdfqmc (1, 2, 3); +***** error mvtcdfqmc (1, 2, 3, 4, 5, 6, 7, 8); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/dist_fun/gpcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gpcdf.m +***** demo + ## Plot various CDFs from the generalized Pareto distribution + x = 0:0.001:5; + p1 = gpcdf (x, 1, 1, 0); + p2 = gpcdf (x, 5, 1, 0); + p3 = gpcdf (x, 20, 1, 0); + p4 = gpcdf (x, 1, 2, 0); + p5 = gpcdf (x, 5, 2, 0); + p6 = gpcdf (x, 20, 2, 0); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", ... + x, p4, "-c", x, p5, "-m", x, p6, "-k") + grid on + xlim ([0, 5]) + legend ({"k = 1, σ = 1, θ = 0", "k = 5, σ = 1, θ = 0", ... + "k = 20, σ = 1, θ = 0", "k = 1, σ = 2, θ = 0", ... + "k = 5, σ = 2, θ = 0", "k = 20, σ = 2, θ = 0"}, ... + "location", "northwest") + title ("Generalized Pareto CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y1, y1u, y2, y2u, y3, y3u + x = [-Inf, -1, 0, 1/2, 1, Inf]; + y1 = [0, 0, 0, 0.3934693402873666, 0.6321205588285577, 1]; + y1u = [1, 1, 1, 0.6065306597126334, 0.3678794411714423, 0]; + y2 = [0, 0, 0, 1/3, 1/2, 1]; + y2u = [1, 1, 1, 2/3, 1/2, 0]; + y3 = [0, 0, 0, 1/2, 1, 1]; + y3u = [1, 1, 1, 1/2, 0, 0]; +***** assert (gpcdf (x, zeros (1,6), ones (1,6), zeros (1,6)), y1, eps) +***** assert (gpcdf (x, 0, 1, zeros (1,6)), y1, eps) +***** assert (gpcdf (x, 0, ones (1,6), 0), y1, eps) +***** assert (gpcdf (x, zeros (1,6), 1, 0), y1, eps) +***** assert (gpcdf (x, 0, 1, 0), y1, eps) +***** assert (gpcdf (x, 0, 1, [0, 0, 0, NaN, 0, 0]), [y1(1:3), NaN, y1(5:6)], eps) +***** assert (gpcdf (x, 0, [1, 1, 1, NaN, 1, 1], 0), [y1(1:3), NaN, y1(5:6)], eps) +***** assert (gpcdf (x, [0, 0, 0, NaN, 0, 0], 1, 0), [y1(1:3), NaN, y1(5:6)], eps) +***** assert (gpcdf ([x(1:3), NaN, x(5:6)], 0, 1, 0), [y1(1:3), NaN, y1(5:6)], eps) +***** assert (gpcdf (x, zeros (1,6), ones (1,6), zeros (1,6), "upper"), y1u, eps) +***** assert (gpcdf (x, 0, 1, zeros (1,6), "upper"), y1u, eps) +***** assert (gpcdf (x, 0, ones (1,6), 0, "upper"), y1u, eps) +***** assert (gpcdf (x, zeros (1,6), 1, 0, "upper"), y1u, eps) +***** assert (gpcdf (x, 0, 1, 0, "upper"), y1u, eps) +***** assert (gpcdf (x, ones (1,6), ones (1,6), zeros (1,6)), y2, eps) +***** assert (gpcdf (x, 1, 1, zeros (1,6)), y2, eps) +***** assert (gpcdf (x, 1, ones (1,6), 0), y2, eps) +***** assert (gpcdf (x, ones (1,6), 1, 0), y2, eps) +***** assert (gpcdf (x, 1, 1, 0), y2, eps) +***** assert (gpcdf (x, 1, 1, [0, 0, 0, NaN, 0, 0]), [y2(1:3), NaN, y2(5:6)], eps) +***** assert (gpcdf (x, 1, [1, 1, 1, NaN, 1, 1], 0), [y2(1:3), NaN, y2(5:6)], eps) +***** assert (gpcdf (x, [1, 1, 1, NaN, 1, 1], 1, 0), [y2(1:3), NaN, y2(5:6)], eps) +***** assert (gpcdf ([x(1:3), NaN, x(5:6)], 1, 1, 0), [y2(1:3), NaN, y2(5:6)], eps) +***** assert (gpcdf (x, ones (1,6), ones (1,6), zeros (1,6), "upper"), y2u, eps) +***** assert (gpcdf (x, 1, 1, zeros (1,6), "upper"), y2u, eps) +***** assert (gpcdf (x, 1, ones (1,6), 0, "upper"), y2u, eps) +***** assert (gpcdf (x, ones (1,6), 1, 0, "upper"), y2u, eps) +***** assert (gpcdf (x, 1, 1, 0, "upper"), y2u, eps) +***** assert (gpcdf (x, 1, 1, [0, 0, 0, NaN, 0, 0], "upper"), ... + [y2u(1:3), NaN, y2u(5:6)], eps) +***** assert (gpcdf (x, 1, [1, 1, 1, NaN, 1, 1], 0, "upper"), ... + [y2u(1:3), NaN, y2u(5:6)], eps) +***** assert (gpcdf (x, [1, 1, 1, NaN, 1, 1], 1, 0, "upper"), ... + [y2u(1:3), NaN, y2u(5:6)], eps) +***** assert (gpcdf ([x(1:3), NaN, x(5:6)], 1, 1, 0, "upper"), ... + [y2u(1:3), NaN, y2u(5:6)], eps) +***** assert (gpcdf (x, -ones (1,6), ones (1,6), zeros (1,6)), y3, eps) +***** assert (gpcdf (x, -1, 1, zeros (1,6)), y3, eps) +***** assert (gpcdf (x, -1, ones (1,6), 0), y3, eps) +***** assert (gpcdf (x, -ones (1,6), 1, 0), y3, eps) +***** assert (gpcdf (x, -1, 1, 0), y3, eps) +***** assert (gpcdf (x, -1, 1, [0, 0, 0, NaN, 0, 0]), [y3(1:3), NaN, y3(5:6)], eps) +***** assert (gpcdf (x, -1, [1, 1, 1, NaN, 1, 1], 0), [y3(1:3), NaN, y3(5:6)], eps) +***** assert (gpcdf (x, [-1, -1, -1, NaN, -1, -1], 1, 0), [y3(1:3), NaN, y3(5:6)], eps) +***** assert (gpcdf ([x(1:3), NaN, x(5:6)], -1, 1, 0), [y3(1:3), NaN, y3(5:6)], eps) +***** assert (gpcdf (x, -ones (1,6), ones (1,6), zeros (1,6), "upper"), y3u, eps) +***** assert (gpcdf (x, -1, 1, zeros (1,6), "upper"), y3u, eps) +***** assert (gpcdf (x, -1, ones (1,6), 0, "upper"), y3u, eps) +***** assert (gpcdf (x, -ones (1,6), 1, 0, "upper"), y3u, eps) +***** assert (gpcdf (x, -1, 1, 0, "upper"), y3u, eps) +***** assert (gpcdf (x, -1, 1, [0, 0, 0, NaN, 0, 0], "upper"), ... + [y3u(1:3), NaN, y3u(5:6)], eps) +***** assert (gpcdf (x, -1, [1, 1, 1, NaN, 1, 1], 0, "upper"), ... + [y3u(1:3), NaN, y3u(5:6)], eps) +***** assert (gpcdf (x, [-1, -1, -1, NaN, -1, -1], 1, 0, "upper"), ... + [y3u(1:3), NaN, y3u(5:6)], eps) +***** assert (gpcdf ([x(1:3), NaN, x(5:6)], -1, 1, 0, "upper"), ... + [y3u(1:3), NaN, y3u(5:6)], eps) +***** assert (gpcdf (single ([x, NaN]), 0, 1, 0), single ([y1, NaN]), eps("single")) +***** assert (gpcdf ([x, NaN], 0, 1, single (0)), single ([y1, NaN]), eps("single")) +***** assert (gpcdf ([x, NaN], 0, single (1), 0), single ([y1, NaN]), eps("single")) +***** assert (gpcdf ([x, NaN], single (0), 1, 0), single ([y1, NaN]), eps("single")) +***** assert (gpcdf (single ([x, NaN]), 1, 1, 0), single ([y2, NaN]), eps("single")) +***** assert (gpcdf ([x, NaN], 1, 1, single (0)), single ([y2, NaN]), eps("single")) +***** assert (gpcdf ([x, NaN], 1, single (1), 0), single ([y2, NaN]), eps("single")) +***** assert (gpcdf ([x, NaN], single (1), 1, 0), single ([y2, NaN]), eps("single")) +***** assert (gpcdf (single ([x, NaN]), -1, 1, 0), single ([y3, NaN]), eps("single")) +***** assert (gpcdf ([x, NaN], -1, 1, single (0)), single ([y3, NaN]), eps("single")) +***** assert (gpcdf ([x, NaN], -1, single (1), 0), single ([y3, NaN]), eps("single")) +***** assert (gpcdf ([x, NaN], single (-1), 1, 0), single ([y3, NaN]), eps("single")) +***** error gpcdf () +***** error gpcdf (1) +***** error gpcdf (1, 2) +***** error gpcdf (1, 2, 3) +***** error gpcdf (1, 2, 3, 4, "tail") +***** error gpcdf (1, 2, 3, 4, 5) +***** error ... + gpcdf (ones (3), ones (2), ones(2), ones(2)) +***** error ... + gpcdf (ones (2), ones (3), ones(2), ones(2)) +***** error ... + gpcdf (ones (2), ones (2), ones(3), ones(2)) +***** error ... + gpcdf (ones (2), ones (2), ones(2), ones(3)) +***** error gpcdf (i, 2, 3, 4) +***** error gpcdf (1, i, 3, 4) +***** error gpcdf (1, 2, i, 4) +***** error gpcdf (1, 2, 3, i) +76 tests, 76 passed, 0 known failure, 0 skipped +[inst/dist_fun/jsupdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/jsupdf.m +***** error jsupdf () +***** error jsupdf (1, 2, 3, 4) +***** error ... + jsupdf (1, ones (2), ones (3)) +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/dist_fun/nbinpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nbinpdf.m +***** demo + ## Plot various PDFs from the negative binomial distribution + x = 0:40; + y1 = nbinpdf (x, 2, 0.15); + y2 = nbinpdf (x, 5, 0.2); + y3 = nbinpdf (x, 4, 0.4); + y4 = nbinpdf (x, 10, 0.3); + plot (x, y1, "*r", x, y2, "*g", x, y3, "*k", x, y4, "*m") + grid on + xlim ([0, 40]) + ylim ([0, 0.12]) + legend ({"r = 2, ps = 0.15", "r = 5, ps = 0.2", "r = 4, p = 0.4", ... + "r = 10, ps = 0.3"}, "location", "northeast") + title ("Negative binomial PDF") + xlabel ("values in x (number of failures)") + ylabel ("density") +***** shared x, y + x = [-1 0 1 2 Inf]; + y = [0 1/2 1/4 1/8 NaN]; +***** assert (nbinpdf (x, ones (1,5), 0.5*ones (1,5)), y) +***** assert (nbinpdf (x, 1, 0.5*ones (1,5)), y) +***** assert (nbinpdf (x, ones (1,5), 0.5), y) +***** assert (nbinpdf (x, [0 1 NaN 1.5 Inf], 0.5), [NaN 1/2 NaN 1.875*0.5^1.5/4 NaN], eps) +***** assert (nbinpdf (x, 1, 0.5*[-1 NaN 4 1 1]), [NaN NaN NaN y(4:5)]) +***** assert (nbinpdf ([x, NaN], 1, 0.5), [y, NaN]) +***** assert (nbinpdf (single ([x, NaN]), 1, 0.5), single ([y, NaN])) +***** assert (nbinpdf ([x, NaN], single (1), 0.5), single ([y, NaN])) +***** assert (nbinpdf ([x, NaN], 1, single (0.5)), single ([y, NaN])) +***** error nbinpdf () +***** error nbinpdf (1) +***** error nbinpdf (1, 2) +***** error ... + nbinpdf (ones (3), ones (2), ones (2)) +***** error ... + nbinpdf (ones (2), ones (3), ones (2)) +***** error ... + nbinpdf (ones (2), ones (2), ones (3)) +***** error nbinpdf (i, 2, 2) +***** error nbinpdf (2, i, 2) +***** error nbinpdf (2, 2, i) +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/dist_fun/evrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/evrnd.m +***** assert (size (evrnd (1, 1)), [1 1]) +***** assert (size (evrnd (1, ones (2,1))), [2, 1]) +***** assert (size (evrnd (1, ones (2,2))), [2, 2]) +***** assert (size (evrnd (ones (2,1), 1)), [2, 1]) +***** assert (size (evrnd (ones (2,2), 1)), [2, 2]) +***** assert (size (evrnd (1, 1, 3)), [3, 3]) +***** assert (size (evrnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (evrnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (evrnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (evrnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (evrnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (evrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (evrnd (1, 1)), "double") +***** assert (class (evrnd (1, single (1))), "single") +***** assert (class (evrnd (1, single ([1, 1]))), "single") +***** assert (class (evrnd (single (1), 1)), "single") +***** assert (class (evrnd (single ([1, 1]), 1)), "single") +***** error evrnd () +***** error evrnd (1) +***** error ... + evrnd (ones (3), ones (2)) +***** error ... + evrnd (ones (2), ones (3)) +***** error evrnd (i, 2, 3) +***** error evrnd (1, i, 3) +***** error ... + evrnd (1, 2, -1) +***** error ... + evrnd (1, 2, 1.2) +***** error ... + evrnd (1, 2, ones (2)) +***** error ... + evrnd (1, 2, [2 -1 2]) +***** error ... + evrnd (1, 2, [2 0 2.5]) +***** error ... + evrnd (1, 2, 2, -1, 5) +***** error ... + evrnd (1, 2, 2, 1.5, 5) +***** error ... + evrnd (2, ones (2), 3) +***** error ... + evrnd (2, ones (2), [3, 2]) +***** error ... + evrnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped [inst/dist_fun/bisarnd.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/bisarnd.m ***** assert (size (bisarnd (1, 1)), [1 1]) @@ -22090,32 +16385,219 @@ ***** error ... bisarnd (2, ones (2), 3, 2) 33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/copulapdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/copulapdf.m -***** test - x = [0.2:0.2:0.6; 0.2:0.2:0.6]; - theta = [1; 2]; - y = copulapdf ("Clayton", x, theta); - expected_p = [0.9872; 0.7295]; - assert (y, expected_p, 0.001); -***** test - x = [0.2:0.2:0.6; 0.2:0.2:0.6]; - y = copulapdf ("Gumbel", x, 2); - expected_p = [0.9468; 0.9468]; - assert (y, expected_p, 0.001); +[inst/dist_fun/mvnpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvnpdf.m +***** demo + mu = [1, -1]; + sigma = [0.9, 0.4; 0.4, 0.3]; + [X1, X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); + x = [X1(:), X2(:)]; + p = mvnpdf (x, mu, sigma); + surf (X1, X2, reshape (p, 25, 25)); +***** error y = mvnpdf (); +***** error y = mvnpdf ([]); +***** error y = mvnpdf (ones (3,3,3)); +***** error ... + y = mvnpdf (ones (10, 2), [4, 2, 3]); +***** error ... + y = mvnpdf (ones (10, 2), [4, 2; 3, 2]); +***** error ... + y = mvnpdf (ones (10, 2), ones (3, 3, 3)); +***** shared x, mu, sigma + x = [1, 2, 5, 4, 6]; + mu = [2, 0, -1, 1, 4]; + sigma = [2, 2, 2, 2, 2]; +***** assert (mvnpdf (x), 1.579343404440977e-20, 1e-30); +***** assert (mvnpdf (x, mu), 1.899325144348102e-14, 1e-25); +***** assert (mvnpdf (x, mu, sigma), 2.449062307156273e-09, 1e-20); +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/dist_fun/norminv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/norminv.m +***** demo + ## Plot various iCDFs from the normal distribution + p = 0.001:0.001:0.999; + x1 = norminv (p, 0, 0.5); + x2 = norminv (p, 0, 1); + x3 = norminv (p, 0, 2); + x4 = norminv (p, -2, 0.8); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") + grid on + ylim ([-5, 5]) + legend ({"μ = 0, σ = 0.5", "μ = 0, σ = 1", ... + "μ = 0, σ = 2", "μ = -2, σ = 0.8"}, "location", "northwest") + title ("Normal iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p + p = [-1 0 0.5 1 2]; +***** assert (norminv (p, ones (1,5), ones (1,5)), [NaN -Inf 1 Inf NaN]) +***** assert (norminv (p, 1, ones (1,5)), [NaN -Inf 1 Inf NaN]) +***** assert (norminv (p, ones (1,5), 1), [NaN -Inf 1 Inf NaN]) +***** assert (norminv (p, [1 -Inf NaN Inf 1], 1), [NaN NaN NaN NaN NaN]) +***** assert (norminv (p, 1, [1 0 NaN Inf 1]), [NaN NaN NaN NaN NaN]) +***** assert (norminv ([p(1:2) NaN p(4:5)], 1, 1), [NaN -Inf NaN Inf NaN]) +***** assert (norminv (p), probit (p)) +***** assert (norminv (0.31254), probit (0.31254)) +***** assert (norminv ([p, NaN], 1, 1), [NaN -Inf 1 Inf NaN NaN]) +***** assert (norminv (single ([p, NaN]), 1, 1), single ([NaN -Inf 1 Inf NaN NaN])) +***** assert (norminv ([p, NaN], single (1), 1), single ([NaN -Inf 1 Inf NaN NaN])) +***** assert (norminv ([p, NaN], 1, single (1)), single ([NaN -Inf 1 Inf NaN NaN])) +***** error norminv () +***** error ... + norminv (ones (3), ones (2), ones (2)) +***** error ... + norminv (ones (2), ones (3), ones (2)) +***** error ... + norminv (ones (2), ones (2), ones (3)) +***** error norminv (i, 2, 2) +***** error norminv (2, i, 2) +***** error norminv (2, 2, i) +19 tests, 19 passed, 0 known failure, 0 skipped +[inst/dist_fun/raylpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/raylpdf.m +***** demo + ## Plot various PDFs from the Rayleigh distribution + x = 0:0.01:10; + y1 = raylpdf (x, 0.5); + y2 = raylpdf (x, 1); + y3 = raylpdf (x, 2); + y4 = raylpdf (x, 3); + y5 = raylpdf (x, 4); + plot (x, y1, "-b", x, y2, "g", x, y3, "-r", x, y4, "-m", x, y5, "-k") + grid on + ylim ([0, 1.25]) + legend ({"σ = 0,5", "σ = 1", "σ = 2", ... + "σ = 3", "σ = 4"}, "location", "northeast") + title ("Rayleigh PDF") + xlabel ("values in x") + ylabel ("density") ***** test - x = [0.2, 0.6; 0.2, 0.6]; - theta = [1; 2]; - y = copulapdf ("Frank", x, theta); - expected_p = [0.9378; 0.8678]; - assert (y, expected_p, 0.001); + x = 0:0.5:2.5; + sigma = 1:6; + y = raylpdf (x, sigma); + expected_y = [0.0000, 0.1212, 0.1051, 0.0874, 0.0738, 0.0637]; + assert (y, expected_y, 0.001); ***** test - x = [0.2, 0.6; 0.2, 0.6]; - theta = [0.3; 0.7]; - y = copulapdf ("AMH", x, theta); - expected_p = [0.9540; 0.8577]; - assert (y, expected_p, 0.001); -4 tests, 4 passed, 0 known failure, 0 skipped + x = 0:0.5:2.5; + y = raylpdf (x, 0.5); + expected_y = [0.0000, 1.2131, 0.5413, 0.0667, 0.0027, 0.0000]; + assert (y, expected_y, 0.001); +***** error raylpdf () +***** error raylpdf (1) +***** error ... + raylpdf (ones (3), ones (2)) +***** error ... + raylpdf (ones (2), ones (3)) +***** error raylpdf (i, 2) +***** error raylpdf (2, i) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/dist_fun/wishrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wishrnd.m +***** assert(size (wishrnd (1,2)), [1, 1]); +***** assert(size (wishrnd (1,2,[])), [1, 1]); +***** assert(size (wishrnd (1,2,1)), [1, 1]); +***** assert(size (wishrnd ([],2,1)), [1, 1]); +***** assert(size (wishrnd ([3 1; 1 3], 2.00001, [], 1)), [2, 2]); +***** assert(size (wishrnd (eye(2), 2, [], 3)), [2, 2, 3]); +***** error wishrnd () +***** error wishrnd (1) +***** error wishrnd ([1; 1], 2) +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/dist_fun/binoinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/binoinv.m +***** demo + ## Plot various iCDFs from the binomial distribution + p = 0.001:0.001:0.999; + x1 = binoinv (p, 20, 0.5); + x2 = binoinv (p, 20, 0.7); + x3 = binoinv (p, 40, 0.5); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r") + grid on + legend ({"n = 20, ps = 0.5", "n = 20, ps = 0.7", ... + "n = 40, ps = 0.5"}, "location", "southeast") + title ("Binomial iCDF") + xlabel ("probability") + ylabel ("values in x (number of successes)") +***** shared p + p = [-1 0 0.5 1 2]; +***** assert (binoinv (p, 2*ones (1,5), 0.5*ones (1,5)), [NaN 0 1 2 NaN]) +***** assert (binoinv (p, 2, 0.5*ones (1,5)), [NaN 0 1 2 NaN]) +***** assert (binoinv (p, 2*ones (1,5), 0.5), [NaN 0 1 2 NaN]) +***** assert (binoinv (p, 2*[0 -1 NaN 1.1 1], 0.5), [NaN NaN NaN NaN NaN]) +***** assert (binoinv (p, 2, 0.5*[0 -1 NaN 3 1]), [NaN NaN NaN NaN NaN]) +***** assert (binoinv ([p(1:2) NaN p(4:5)], 2, 0.5), [NaN 0 NaN 2 NaN]) +***** assert (binoinv ([p, NaN], 2, 0.5), [NaN 0 1 2 NaN NaN]) +***** assert (binoinv (single ([p, NaN]), 2, 0.5), single ([NaN 0 1 2 NaN NaN])) +***** assert (binoinv ([p, NaN], single (2), 0.5), single ([NaN 0 1 2 NaN NaN])) +***** assert (binoinv ([p, NaN], 2, single (0.5)), single ([NaN 0 1 2 NaN NaN])) +***** shared x, tol + x = magic (3) + 1; + tol = 1; +***** assert (binoinv (binocdf (1:10, 11, 0.1), 11, 0.1), 1:10, tol) +***** assert (binoinv (binocdf (1:10, 2*(1:10), 0.1), 2*(1:10), 0.1), 1:10, tol) +***** assert (binoinv (binocdf (x, 2*x, 1./x), 2*x, 1./x), x, tol) +***** error binoinv () +***** error binoinv (1) +***** error binoinv (1,2) +***** error binoinv (1,2,3,4) +***** error ... + binoinv (ones (3), ones (2), ones (2)) +***** error ... + binoinv (ones (2), ones (3), ones (2)) +***** error ... + binoinv (ones (2), ones (2), ones (3)) +***** error binoinv (i, 2, 2) +***** error binoinv (2, i, 2) +***** error binoinv (2, 2, i) +23 tests, 23 passed, 0 known failure, 0 skipped +[inst/dist_fun/nctrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nctrnd.m +***** assert (size (nctrnd (1, 1)), [1 1]) +***** assert (size (nctrnd (1, ones (2,1))), [2, 1]) +***** assert (size (nctrnd (1, ones (2,2))), [2, 2]) +***** assert (size (nctrnd (ones (2,1), 1)), [2, 1]) +***** assert (size (nctrnd (ones (2,2), 1)), [2, 2]) +***** assert (size (nctrnd (1, 1, 3)), [3, 3]) +***** assert (size (nctrnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (nctrnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (nctrnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (nctrnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (nctrnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (nctrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (nctrnd (1, 1)), "double") +***** assert (class (nctrnd (1, single (1))), "single") +***** assert (class (nctrnd (1, single ([1, 1]))), "single") +***** assert (class (nctrnd (single (1), 1)), "single") +***** assert (class (nctrnd (single ([1, 1]), 1)), "single") +***** error nctrnd () +***** error nctrnd (1) +***** error ... + nctrnd (ones (3), ones (2)) +***** error ... + nctrnd (ones (2), ones (3)) +***** error nctrnd (i, 2) +***** error nctrnd (1, i) +***** error ... + nctrnd (1, 2, -1) +***** error ... + nctrnd (1, 2, 1.2) +***** error ... + nctrnd (1, 2, ones (2)) +***** error ... + nctrnd (1, 2, [2 -1 2]) +***** error ... + nctrnd (1, 2, [2 0 2.5]) +***** error ... + nctrnd (1, 2, 2, -1, 5) +***** error ... + nctrnd (1, 2, 2, 1.5, 5) +***** error ... + nctrnd (2, ones (2), 3) +***** error ... + nctrnd (2, ones (2), [3, 2]) +***** error ... + nctrnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped [inst/dist_fun/cauchycdf.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/cauchycdf.m ***** demo @@ -22164,137 +16646,260 @@ ***** error cauchycdf (2, i, 2) ***** error cauchycdf (2, 2, i) 22 tests, 22 passed, 0 known failure, 0 skipped -[inst/dist_fun/gpinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gpinv.m +[inst/dist_fun/frnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/frnd.m +***** assert (size (frnd (1, 1)), [1 1]) +***** assert (size (frnd (1, ones (2,1))), [2, 1]) +***** assert (size (frnd (1, ones (2,2))), [2, 2]) +***** assert (size (frnd (ones (2,1), 1)), [2, 1]) +***** assert (size (frnd (ones (2,2), 1)), [2, 2]) +***** assert (size (frnd (1, 1, 3)), [3, 3]) +***** assert (size (frnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (frnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (frnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (frnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (frnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (frnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (frnd (1, 1)), "double") +***** assert (class (frnd (1, single (1))), "single") +***** assert (class (frnd (1, single ([1, 1]))), "single") +***** assert (class (frnd (single (1), 1)), "single") +***** assert (class (frnd (single ([1, 1]), 1)), "single") +***** error frnd () +***** error frnd (1) +***** error ... + frnd (ones (3), ones (2)) +***** error ... + frnd (ones (2), ones (3)) +***** error frnd (i, 2, 3) +***** error frnd (1, i, 3) +***** error ... + frnd (1, 2, -1) +***** error ... + frnd (1, 2, 1.2) +***** error ... + frnd (1, 2, ones (2)) +***** error ... + frnd (1, 2, [2 -1 2]) +***** error ... + frnd (1, 2, [2 0 2.5]) +***** error ... + frnd (1, 2, 2, -1, 5) +***** error ... + frnd (1, 2, 2, 1.5, 5) +***** error ... + frnd (2, ones (2), 3) +***** error ... + frnd (2, ones (2), [3, 2]) +***** error ... + frnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/nctcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nctcdf.m ***** demo - ## Plot various iCDFs from the generalized Pareto distribution - p = 0.001:0.001:0.999; - x1 = gpinv (p, 1, 1, 0); - x2 = gpinv (p, 5, 1, 0); - x3 = gpinv (p, 20, 1, 0); - x4 = gpinv (p, 1, 2, 0); - x5 = gpinv (p, 5, 2, 0); - x6 = gpinv (p, 20, 2, 0); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", ... - p, x4, "-c", p, x5, "-m", p, x6, "-k") + ## Plot various CDFs from the noncentral Τ distribution + x = -5:0.01:5; + p1 = nctcdf (x, 1, 0); + p2 = nctcdf (x, 4, 0); + p3 = nctcdf (x, 1, 2); + p4 = nctcdf (x, 4, 2); + plot (x, p1, "-r", x, p2, "-g", x, p3, "-k", x, p4, "-m") grid on - ylim ([0, 5]) - legend ({"k = 1, σ = 1, θ = 0", "k = 5, σ = 1, θ = 0", ... - "k = 20, σ = 1, θ = 0", "k = 1, σ = 2, θ = 0", ... - "k = 5, σ = 2, θ = 0", "k = 20, σ = 2, θ = 0"}, ... - "location", "southeast") - title ("Generalized Pareto iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p, y1, y2, y3 - p = [-1, 0, 1/2, 1, 2]; - y1 = [NaN, 0, 0.6931471805599453, Inf, NaN]; - y2 = [NaN, 0, 1, Inf, NaN]; - y3 = [NaN, 0, 1/2, 1, NaN]; -***** assert (gpinv (p, zeros (1,5), ones (1,5), zeros (1,5)), y1) -***** assert (gpinv (p, 0, 1, zeros (1,5)), y1) -***** assert (gpinv (p, 0, ones (1,5), 0), y1) -***** assert (gpinv (p, zeros (1,5), 1, 0), y1) -***** assert (gpinv (p, 0, 1, 0), y1) -***** assert (gpinv (p, 0, 1, [0, 0, NaN, 0, 0]), [y1(1:2), NaN, y1(4:5)]) -***** assert (gpinv (p, 0, [1, 1, NaN, 1, 1], 0), [y1(1:2), NaN, y1(4:5)]) -***** assert (gpinv (p, [0, 0, NaN, 0, 0], 1, 0), [y1(1:2), NaN, y1(4:5)]) -***** assert (gpinv ([p(1:2), NaN, p(4:5)], 0, 1, 0), [y1(1:2), NaN, y1(4:5)]) -***** assert (gpinv (p, ones (1,5), ones (1,5), zeros (1,5)), y2) -***** assert (gpinv (p, 1, 1, zeros (1,5)), y2) -***** assert (gpinv (p, 1, ones (1,5), 0), y2) -***** assert (gpinv (p, ones (1,5), 1, 0), y2) -***** assert (gpinv (p, 1, 1, 0), y2) -***** assert (gpinv (p, 1, 1, [0, 0, NaN, 0, 0]), [y2(1:2), NaN, y2(4:5)]) -***** assert (gpinv (p, 1, [1, 1, NaN, 1, 1], 0), [y2(1:2), NaN, y2(4:5)]) -***** assert (gpinv (p, [1, 1, NaN, 1, 1], 1, 0), [y2(1:2), NaN, y2(4:5)]) -***** assert (gpinv ([p(1:2), NaN, p(4:5)], 1, 1, 0), [y2(1:2), NaN, y2(4:5)]) -***** assert (gpinv (p, -ones (1,5), ones (1,5), zeros (1,5)), y3) -***** assert (gpinv (p, -1, 1, zeros (1,5)), y3) -***** assert (gpinv (p, -1, ones (1,5), 0), y3) -***** assert (gpinv (p, -ones (1,5), 1, 0), y3) -***** assert (gpinv (p, -1, 1, 0), y3) -***** assert (gpinv (p, -1, 1, [0, 0, NaN, 0, 0]), [y3(1:2), NaN, y3(4:5)]) -***** assert (gpinv (p, -1, [1, 1, NaN, 1, 1], 0), [y3(1:2), NaN, y3(4:5)]) -***** assert (gpinv (p, -[1, 1, NaN, 1, 1], 1, 0), [y3(1:2), NaN, y3(4:5)]) -***** assert (gpinv ([p(1:2), NaN, p(4:5)], -1, 1, 0), [y3(1:2), NaN, y3(4:5)]) -***** assert (gpinv (single ([p, NaN]), 0, 1, 0), single ([y1, NaN])) -***** assert (gpinv ([p, NaN], 0, 1, single (0)), single ([y1, NaN])) -***** assert (gpinv ([p, NaN], 0, single (1), 0), single ([y1, NaN])) -***** assert (gpinv ([p, NaN], single (0), 1, 0), single ([y1, NaN])) -***** assert (gpinv (single ([p, NaN]), 1, 1, 0), single ([y2, NaN])) -***** assert (gpinv ([p, NaN], 1, 1, single (0)), single ([y2, NaN])) -***** assert (gpinv ([p, NaN], 1, single (1), 0), single ([y2, NaN])) -***** assert (gpinv ([p, NaN], single (1), 1, 0), single ([y2, NaN])) -***** assert (gpinv (single ([p, NaN]), -1, 1, 0), single ([y3, NaN])) -***** assert (gpinv ([p, NaN], -1, 1, single (0)), single ([y3, NaN])) -***** assert (gpinv ([p, NaN], -1, single (1), 0), single ([y3, NaN])) -***** assert (gpinv ([p, NaN], single (-1), 1, 0), single ([y3, NaN])) -***** error gpinv () -***** error gpinv (1) -***** error gpinv (1, 2) -***** error gpinv (1, 2, 3) -***** error ... - gpinv (ones (3), ones (2), ones(2), ones(2)) -***** error ... - gpinv (ones (2), ones (3), ones(2), ones(2)) -***** error ... - gpinv (ones (2), ones (2), ones(3), ones(2)) -***** error ... - gpinv (ones (2), ones (2), ones(2), ones(3)) -***** error gpinv (i, 2, 3, 4) -***** error gpinv (1, i, 3, 4) -***** error gpinv (1, 2, i, 4) -***** error gpinv (1, 2, 3, i) -51 tests, 51 passed, 0 known failure, 0 skipped -[inst/dist_fun/gumbelrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gumbelrnd.m -***** assert (size (gumbelrnd (1, 1)), [1 1]) -***** assert (size (gumbelrnd (1, ones (2,1))), [2, 1]) -***** assert (size (gumbelrnd (1, ones (2,2))), [2, 2]) -***** assert (size (gumbelrnd (ones (2,1), 1)), [2, 1]) -***** assert (size (gumbelrnd (ones (2,2), 1)), [2, 2]) -***** assert (size (gumbelrnd (1, 1, 3)), [3, 3]) -***** assert (size (gumbelrnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (gumbelrnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (gumbelrnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (gumbelrnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (gumbelrnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (gumbelrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (gumbelrnd (1, 1)), "double") -***** assert (class (gumbelrnd (1, single (1))), "single") -***** assert (class (gumbelrnd (1, single ([1, 1]))), "single") -***** assert (class (gumbelrnd (single (1), 1)), "single") -***** assert (class (gumbelrnd (single ([1, 1]), 1)), "single") -***** error gumbelrnd () -***** error gumbelrnd (1) -***** error ... - gumbelrnd (ones (3), ones (2)) -***** error ... - gumbelrnd (ones (2), ones (3)) -***** error gumbelrnd (i, 2, 3) -***** error gumbelrnd (1, i, 3) -***** error ... - gumbelrnd (1, 2, -1) -***** error ... - gumbelrnd (1, 2, 1.2) -***** error ... - gumbelrnd (1, 2, ones (2)) -***** error ... - gumbelrnd (1, 2, [2 -1 2]) -***** error ... - gumbelrnd (1, 2, [2 0 2.5]) -***** error ... - gumbelrnd (1, 2, 2, -1, 5) -***** error ... - gumbelrnd (1, 2, 2, 1.5, 5) -***** error ... - gumbelrnd (2, ones (2), 3) -***** error ... - gumbelrnd (2, ones (2), [3, 2]) -***** error ... - gumbelrnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped + xlim ([-5, 5]) + legend ({"df = 1, μ = 0", "df = 4, μ = 0", ... + "df = 1, μ = 2", "df = 4, μ = 2"}, "location", "southeast") + title ("Noncentral Τ CDF") + xlabel ("values in x") + ylabel ("probability") +***** demo + ## Compare the noncentral T CDF with MU = 1 to the T CDF + ## with the same number of degrees of freedom (10). + + x = -5:0.1:5; + p1 = nctcdf (x, 10, 1); + p2 = tcdf (x, 10); + plot (x, p1, "-", x, p2, "-") + grid on + xlim ([-5, 5]) + legend ({"Noncentral T(10,1)", "T(10)"}, "location", "southeast") + title ("Noncentral T vs T CDFs") + xlabel ("values in x") + ylabel ("probability") +***** test + x = -2:0.1:2; + p = nctcdf (x, 10, 1); + assert (p(1), 0.003302485766631558, 1e-14); + assert (p(2), 0.004084668193532631, 1e-14); + assert (p(3), 0.005052800319478737, 1e-14); + assert (p(41), 0.8076115625303751, 1e-14); +***** test + p = nctcdf (12, 10, 3); + assert (p, 0.9997719343243797, 1e-14); +***** test + p = nctcdf (2, 3, 2); + assert (p, 0.4430757822176028, 1e-14); +***** test + p = nctcdf (2, 3, 2, "upper"); + assert (p, 0.5569242177823971, 1e-14); +***** test + p = nctcdf ([3, 6], 3, 2, "upper"); + assert (p, [0.3199728259444777, 0.07064855592441913], 1e-14); +***** error nctcdf () +***** error nctcdf (1) +***** error nctcdf (1, 2) +***** error nctcdf (1, 2, 3, "tail") +***** error nctcdf (1, 2, 3, 4) +***** error ... + nctcdf (ones (3), ones (2), ones (2)) +***** error ... + nctcdf (ones (2), ones (3), ones (2)) +***** error ... + nctcdf (ones (2), ones (2), ones (3)) +***** error nctcdf (i, 2, 2) +***** error nctcdf (2, i, 2) +***** error nctcdf (2, 2, i) +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_fun/copulacdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/copulacdf.m +***** test + x = [0.2:0.2:0.6; 0.2:0.2:0.6]; + theta = [1; 2]; + p = copulacdf ("Clayton", x, theta); + expected_p = [0.1395; 0.1767]; + assert (p, expected_p, 0.001); +***** test + x = [0.2:0.2:0.6; 0.2:0.2:0.6]; + p = copulacdf ("Gumbel", x, 2); + expected_p = [0.1464; 0.1464]; + assert (p, expected_p, 0.001); +***** test + x = [0.2:0.2:0.6; 0.2:0.2:0.6]; + theta = [1; 2]; + p = copulacdf ("Frank", x, theta); + expected_p = [0.0699; 0.0930]; + assert (p, expected_p, 0.001); +***** test + x = [0.2:0.2:0.6; 0.2:0.2:0.6]; + theta = [0.3; 0.7]; + p = copulacdf ("AMH", x, theta); + expected_p = [0.0629; 0.0959]; + assert (p, expected_p, 0.001); +***** test + x = [0.2:0.2:0.6; 0.2:0.1:0.4]; + theta = [0.2, 0.1, 0.1, 0.05]; + p = copulacdf ("FGM", x, theta); + expected_p = [0.0558; 0.0293]; + assert (p, expected_p, 0.001); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/dist_fun/gamcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gamcdf.m +***** demo + ## Plot various CDFs from the Gamma distribution + x = 0:0.01:20; + p1 = gamcdf (x, 1, 2); + p2 = gamcdf (x, 2, 2); + p3 = gamcdf (x, 3, 2); + p4 = gamcdf (x, 5, 1); + p5 = gamcdf (x, 9, 0.5); + p6 = gamcdf (x, 7.5, 1); + p7 = gamcdf (x, 0.5, 1); + plot (x, p1, "-r", x, p2, "-g", x, p3, "-y", x, p4, "-m", ... + x, p5, "-k", x, p6, "-b", x, p7, "-c") + grid on + legend ({"α = 1, β = 2", "α = 2, β = 2", "α = 3, β = 2", ... + "α = 5, β = 1", "α = 9, β = 0.5", "α = 7.5, β = 1", ... + "α = 0.5, β = 1"}, "location", "southeast") + title ("Gamma CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y, u + x = [-1, 0, 0.5, 1, 2, Inf]; + y = [0, gammainc(x(2:end), 1)]; + u = [0, NaN, NaN, 1, 0.1353352832366127, 0]; +***** assert (gamcdf (x, ones (1,6), ones (1,6)), y, eps) +***** assert (gamcdf (x, ones (1,6), ones (1,6), []), y, eps) +***** assert (gamcdf (x, 1, ones (1,6)), y, eps) +***** assert (gamcdf (x, ones (1,6), 1), y, eps) +***** assert (gamcdf (x, [0, -Inf, NaN, Inf, 1, 1], 1), [1, NaN, NaN, 0, y(5:6)], eps) +***** assert (gamcdf (x, [0, -Inf, NaN, Inf, 1, 1], 1, "upper"), u, eps) +***** assert (gamcdf (x, 1, [0, -Inf, NaN, Inf, 1, 1]), [NaN, NaN, NaN, 0, y(5:6)], eps) +***** assert (gamcdf ([x(1:2), NaN, x(4:6)], 1, 1), [y(1:2), NaN, y(4:6)], eps) +***** assert (gamcdf ([x, NaN], 1, 1), [y, NaN]) +***** assert (gamcdf (single ([x, NaN]), 1, 1), single ([y, NaN]), eps ("single")) +***** assert (gamcdf ([x, NaN], single (1), 1), single ([y, NaN]), eps ("single")) +***** assert (gamcdf ([x, NaN], 1, single (1)), single ([y, NaN]), eps ("single")) +***** error gamcdf () +***** error gamcdf (1) +***** error gamcdf (1, 2, 3, 4, 5, 6, 7) +***** error gamcdf (1, 2, 3, "uper") +***** error gamcdf (1, 2, 3, 4, 5, "uper") +***** error gamcdf (2, 3, 4, [1, 2]) +***** error ... + [p, plo, pup] = gamcdf (1, 2, 3) +***** error ... + [p, plo, pup] = gamcdf (1, 2, 3, "upper") +***** error [p, plo, pup] = ... + gamcdf (1, 2, 3, [1, 0; 0, 1], 0) +***** error [p, plo, pup] = ... + gamcdf (1, 2, 3, [1, 0; 0, 1], 1.22) +***** error [p, plo, pup] = ... + gamcdf (1, 2, 3, [1, 0; 0, 1], "alpha", "upper") +***** error ... + gamcdf (ones (3), ones (2), ones (2)) +***** error ... + gamcdf (ones (2), ones (3), ones (2)) +***** error ... + gamcdf (ones (2), ones (2), ones (3)) +***** error gamcdf (i, 2, 2) +***** error gamcdf (2, i, 2) +***** error gamcdf (2, 2, i) +***** error ... + [p, plo, pup] = gamcdf (1, 2, 3, [1, 0; 0, -inf], 0.04) +30 tests, 30 passed, 0 known failure, 0 skipped +[inst/dist_fun/mvtcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvtcdf.m +***** demo + ## Compute the cdf of a multivariate Student's t distribution with + ## correlation parameters rho = [1, 0.4; 0.4, 1] and 2 degrees of freedom. + + rho = [1, 0.4; 0.4, 1]; + df = 2; + [X1, X2] = meshgrid (linspace (-2, 2, 25)', linspace (-2, 2, 25)'); + X = [X1(:), X2(:)]; + p = mvtcdf (X, rho, df); + surf (X1, X2, reshape (p, 25, 25)); + title ("Bivariate Student's t cummulative distribution function"); +***** test + x = [1, 2]; + rho = [1, 0.5; 0.5, 1]; + df = 4; + a = [-1, 0]; + assert (mvtcdf(a, x, rho, df), 0.294196905339283, 1e-14); +***** test + x = [1, 2;2, 4;1, 5]; + rho = [1, 0.5; 0.5, 1]; + df = 4; + p =[0.790285178602166; 0.938703291727784; 0.81222737321336]; + assert (mvtcdf(x, rho, df), p, 1e-14); +***** test + x = [1, 2, 2, 4, 1, 5]; + rho = eye (6); + rho(rho == 0) = 0.5; + df = 4; + assert (mvtcdf(x, rho, df), 0.6874, 1e-4); +***** error mvtcdf (1) +***** error mvtcdf (1, 2) +***** error ... + mvtcdf (1, [2, 3; 3, 2], 1) +***** error ... + mvtcdf ([2, 3, 4], ones (2), 1) +***** error ... + mvtcdf ([1, 2, 3], [2, 3], ones (2), 1) +***** error ... + mvtcdf ([2, 3], ones (2), [1, 2, 3]) +***** error ... + mvtcdf ([2, 3], [1, 0.5; 0.5, 1], [1, 2, 3]) +10 tests, 10 passed, 0 known failure, 0 skipped [inst/dist_fun/nctinv.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nctinv.m ***** demo @@ -22359,313 +16964,236 @@ ***** error nctinv (2, i, 2) ***** error nctinv (2, 2, i) 16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fun/betarnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/betarnd.m -***** assert (size (betarnd (2, 1/2)), [1 1]) -***** assert (size (betarnd (2 * ones (2, 1), 1/2)), [2, 1]) -***** assert (size (betarnd (2 * ones (2, 2), 1/2)), [2, 2]) -***** assert (size (betarnd (2, 1/2 * ones (2, 1))), [2, 1]) -***** assert (size (betarnd (1, 1/2 * ones (2, 2))), [2, 2]) -***** assert (size (betarnd (ones (2, 1), 1)), [2, 1]) -***** assert (size (betarnd (ones (2, 2), 1)), [2, 2]) -***** assert (size (betarnd (2, 1/2, 3)), [3, 3]) -***** assert (size (betarnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (betarnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (betarnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (betarnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (betarnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (betarnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (betarnd (1, 1)), "double") -***** assert (class (betarnd (1, single (0))), "single") -***** assert (class (betarnd (1, single ([0, 0]))), "single") -***** assert (class (betarnd (1, single (1), 2)), "single") -***** assert (class (betarnd (1, single ([1, 1]), 1, 2)), "single") -***** assert (class (betarnd (single (1), 1, 2)), "single") -***** assert (class (betarnd (single ([1, 1]), 1, 1, 2)), "single") -***** error betarnd () -***** error betarnd (1) -***** error ... - betarnd (ones (3), ones (2)) -***** error ... - betarnd (ones (2), ones (3)) -***** error betarnd (i, 2) -***** error betarnd (1, i) -***** error ... - betarnd (1, 1/2, -1) -***** error ... - betarnd (1, 1/2, 1.2) -***** error ... - betarnd (1, 1/2, ones (2)) -***** error ... - betarnd (1, 1/2, [2 -1 2]) -***** error ... - betarnd (1, 1/2, [2 0 2.5]) -***** error ... - betarnd (1, 1/2, 2, -1, 5) -***** error ... - betarnd (1, 1/2, 2, 1.5, 5) -***** error ... - betarnd (2, 1/2 * ones (2), 3) -***** error ... - betarnd (2, 1/2 * ones (2), [3, 2]) -***** error ... - betarnd (2, 1/2 * ones (2), 3, 2) -***** error ... - betarnd (2 * ones (2), 1/2, 3) -***** error ... - betarnd (2 * ones (2), 1/2, [3, 2]) -***** error ... - betarnd (2 * ones (2), 1/2, 3, 2) -40 tests, 40 passed, 0 known failure, 0 skipped -[inst/dist_fun/iwishpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/iwishpdf.m -***** assert(iwishpdf(4, 3, 3.1), 0.04226595, 1E-7); -***** assert(iwishpdf([2 -0.3;-0.3 4], [1 0.3;0.3 1], 4), 1.60166e-05, 1E-10); -***** assert(iwishpdf([6 2 5; 2 10 -5; 5 -5 25], ... - [9 5 5; 5 10 -8; 5 -8 22], 5.1), 4.946831e-12, 1E-17); -***** error iwishpdf () -***** error iwishpdf (1, 2) -***** error iwishpdf (1, 2, 0) -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/dist_fun/gaminv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gaminv.m +[inst/dist_fun/gevcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gevcdf.m ***** demo - ## Plot various iCDFs from the Gamma distribution - p = 0.001:0.001:0.999; - x1 = gaminv (p, 1, 2); - x2 = gaminv (p, 2, 2); - x3 = gaminv (p, 3, 2); - x4 = gaminv (p, 5, 1); - x5 = gaminv (p, 9, 0.5); - x6 = gaminv (p, 7.5, 1); - x7 = gaminv (p, 0.5, 1); - plot (p, x1, "-r", p, x2, "-g", p, x3, "-y", p, x4, "-m", ... - p, x5, "-k", p, x6, "-b", p, x7, "-c") - ylim ([0, 20]) + ## Plot various CDFs from the generalized extreme value distribution + x = -1:0.001:10; + p1 = gevcdf (x, 1, 1, 1); + p2 = gevcdf (x, 0.5, 1, 1); + p3 = gevcdf (x, 1, 1, 5); + p4 = gevcdf (x, 1, 2, 5); + p5 = gevcdf (x, 1, 5, 5); + p6 = gevcdf (x, 1, 0.5, 5); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", ... + x, p4, "-c", x, p5, "-m", x, p6, "-k") grid on - legend ({"α = 1, β = 2", "α = 2, β = 2", "α = 3, β = 2", ... - "α = 5, β = 1", "α = 9, β = 0.5", "α = 7.5, β = 1", ... - "α = 0.5, β = 1"}, "location", "northwest") - title ("Gamma iCDF") - xlabel ("probability") - ylabel ("x") -***** shared p - p = [-1 0 0.63212055882855778 1 2]; -***** assert (gaminv (p, ones (1,5), ones (1,5)), [NaN 0 1 Inf NaN], eps) -***** assert (gaminv (p, 1, ones (1,5)), [NaN 0 1 Inf NaN], eps) -***** assert (gaminv (p, ones (1,5), 1), [NaN 0 1 Inf NaN], eps) -***** assert (gaminv (p, [1 -Inf NaN Inf 1], 1), [NaN NaN NaN NaN NaN]) -***** assert (gaminv (p, 1, [1 -Inf NaN Inf 1]), [NaN NaN NaN NaN NaN]) -***** assert (gaminv ([p(1:2) NaN p(4:5)], 1, 1), [NaN 0 NaN Inf NaN]) -***** assert (gaminv ([p(1:2) NaN p(4:5)], 1, 1), [NaN 0 NaN Inf NaN]) -***** assert (gaminv (1e-16, 1, 1), 1e-16, eps) -***** assert (gaminv (1e-16, 1, 2), 2e-16, eps) -***** assert (gaminv (1e-20, 3, 5), 1.957434012161815e-06, eps) -***** assert (gaminv (1e-15, 1, 1), 1e-15, eps) -***** assert (gaminv (1e-35, 1, 1), 1e-35, eps) -***** assert (gaminv ([p, NaN], 1, 1), [NaN 0 1 Inf NaN NaN], eps) -***** assert (gaminv (single ([p, NaN]), 1, 1), single ([NaN 0 1 Inf NaN NaN]), ... - eps ("single")) -***** assert (gaminv ([p, NaN], single (1), 1), single ([NaN 0 1 Inf NaN NaN]), ... - eps ("single")) -***** assert (gaminv ([p, NaN], 1, single (1)), single ([NaN 0 1 Inf NaN NaN]), ... - eps ("single")) -***** error gaminv () -***** error gaminv (1) -***** error gaminv (1,2) -***** error ... - gaminv (ones (3), ones (2), ones (2)) -***** error ... - gaminv (ones (2), ones (3), ones (2)) -***** error ... - gaminv (ones (2), ones (2), ones (3)) -***** error gaminv (i, 2, 2) -***** error gaminv (2, i, 2) -***** error gaminv (2, 2, i) -25 tests, 25 passed, 0 known failure, 0 skipped -[inst/dist_fun/poissinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/poissinv.m + xlim ([-1, 10]) + legend ({"k = 1, σ = 1, μ = 1", "k = 0.5, σ = 1, μ = 1", ... + "k = 1, σ = 1, μ = 5", "k = 1, σ = 2, μ = 5", ... + "k = 1, σ = 5, μ = 5", "k = 1, σ = 0.5, μ = 5"}, ... + "location", "southeast") + title ("Generalized extreme value CDF") + xlabel ("values in x") + ylabel ("probability") +***** test + x = 0:0.5:2.5; + sigma = 1:6; + k = 1; + mu = 0; + p = gevcdf (x, k, sigma, mu); + expected_p = [0.36788, 0.44933, 0.47237, 0.48323, 0.48954, 0.49367]; + assert (p, expected_p, 0.001); +***** test + x = -0.5:0.5:2.5; + sigma = 0.5; + k = 1; + mu = 0; + p = gevcdf (x, k, sigma, mu); + expected_p = [0, 0.36788, 0.60653, 0.71653, 0.77880, 0.81873, 0.84648]; + assert (p, expected_p, 0.001); +***** test # check for continuity for k near 0 + x = 1; + sigma = 0.5; + k = -0.03:0.01:0.03; + mu = 0; + p = gevcdf (x, k, sigma, mu); + expected_p = [0.88062, 0.87820, 0.87580, 0.87342, 0.87107, 0.86874, 0.86643]; + assert (p, expected_p, 0.001); +***** error gevcdf () +***** error gevcdf (1) +***** error gevcdf (1, 2) +***** error gevcdf (1, 2, 3) +***** error ... + gevcdf (1, 2, 3, 4, 5, 6) +***** error gevcdf (1, 2, 3, 4, "tail") +***** error gevcdf (1, 2, 3, 4, 5) +***** error ... + gevcdf (ones (3), ones (2), ones(2), ones(2)) +***** error ... + gevcdf (ones (2), ones (3), ones(2), ones(2)) +***** error ... + gevcdf (ones (2), ones (2), ones(3), ones(2)) +***** error ... + gevcdf (ones (2), ones (2), ones(2), ones(3)) +***** error gevcdf (i, 2, 3, 4) +***** error gevcdf (1, i, 3, 4) +***** error gevcdf (1, 2, i, 4) +***** error gevcdf (1, 2, 3, i) +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/dist_fun/mvtpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvtpdf.m ***** demo - ## Plot various iCDFs from the Poisson distribution - p = 0.001:0.001:0.999; - x1 = poissinv (p, 13); - x2 = poissinv (p, 4); - x3 = poissinv (p, 10); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r") + ## Compute the pdf of a multivariate t distribution with correlation + ## parameters rho = [1 .4; .4 1] and 2 degrees of freedom. + + rho = [1, 0.4; 0.4, 1]; + df = 2; + [X1, X2] = meshgrid (linspace (-2, 2, 25)', linspace (-2, 2, 25)'); + X = [X1(:), X2(:)]; + y = mvtpdf (X, rho, df); + surf (X1, X2, reshape (y, 25, 25)); + title ("Bivariate Student's t probability density function"); +***** assert (mvtpdf ([0 0], eye(2), 1), 0.1591549, 1E-7) +***** assert (mvtpdf ([1 0], [1 0.5; 0.5 1], 2), 0.06615947, 1E-7) +***** assert (mvtpdf ([1 0.4 0; 1.2 0.5 0.5; 1.4 0.6 1], ... + [1 0.5 0.3; 0.5 1 0.6; 0.3 0.6 1], [5 6 7]), ... + [0.04713313 0.03722421 0.02069011]', 1E-7) +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/dist_fun/logirnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/logirnd.m +***** assert (size (logirnd (1, 1)), [1 1]) +***** assert (size (logirnd (1, ones (2,1))), [2, 1]) +***** assert (size (logirnd (1, ones (2,2))), [2, 2]) +***** assert (size (logirnd (ones (2,1), 1)), [2, 1]) +***** assert (size (logirnd (ones (2,2), 1)), [2, 2]) +***** assert (size (logirnd (1, 1, 3)), [3, 3]) +***** assert (size (logirnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (logirnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (logirnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (logirnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (logirnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (logirnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (logirnd (1, 1)), "double") +***** assert (class (logirnd (1, single (1))), "single") +***** assert (class (logirnd (1, single ([1, 1]))), "single") +***** assert (class (logirnd (single (1), 1)), "single") +***** assert (class (logirnd (single ([1, 1]), 1)), "single") +***** error logirnd () +***** error logirnd (1) +***** error ... + logirnd (ones (3), ones (2)) +***** error ... + logirnd (ones (2), ones (3)) +***** error logirnd (i, 2, 3) +***** error logirnd (1, i, 3) +***** error ... + logirnd (1, 2, -1) +***** error ... + logirnd (1, 2, 1.2) +***** error ... + logirnd (1, 2, ones (2)) +***** error ... + logirnd (1, 2, [2 -1 2]) +***** error ... + logirnd (1, 2, [2 0 2.5]) +***** error ... + logirnd (1, 2, 2, -1, 5) +***** error ... + logirnd (1, 2, 2, 1.5, 5) +***** error ... + logirnd (2, ones (2), 3) +***** error ... + logirnd (2, ones (2), [3, 2]) +***** error ... + logirnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/burrpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/burrpdf.m +***** demo + ## Plot various PDFs from the Burr type XII distribution + x = 0.001:0.001:3; + y1 = burrpdf (x, 1, 1, 1); + y2 = burrpdf (x, 1, 1, 2); + y3 = burrpdf (x, 1, 1, 3); + y4 = burrpdf (x, 1, 2, 1); + y5 = burrpdf (x, 1, 3, 1); + y6 = burrpdf (x, 1, 0.5, 2); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", ... + x, y4, "-c", x, y5, "-m", x, y6, "-k") grid on - ylim ([0, 20]) - legend ({"λ = 1", "λ = 4", "λ = 10"}, "location", "northwest") - title ("Poisson iCDF") - xlabel ("probability") - ylabel ("values in x (number of occurences)") -***** shared p - p = [-1 0 0.5 1 2]; -***** assert (poissinv (p, ones (1,5)), [NaN 0 1 Inf NaN]) -***** assert (poissinv (p, 1), [NaN 0 1 Inf NaN]) -***** assert (poissinv (p, [1 0 NaN 1 1]), [NaN NaN NaN Inf NaN]) -***** assert (poissinv ([p(1:2) NaN p(4:5)], 1), [NaN 0 NaN Inf NaN]) -***** assert (poissinv ([p, NaN], 1), [NaN 0 1 Inf NaN NaN]) -***** assert (poissinv (single ([p, NaN]), 1), single ([NaN 0 1 Inf NaN NaN])) -***** assert (poissinv ([p, NaN], single (1)), single ([NaN 0 1 Inf NaN NaN])) -***** error poissinv () -***** error poissinv (1) -***** error ... - poissinv (ones (3), ones (2)) -***** error ... - poissinv (ones (2), ones (3)) -***** error poissinv (i, 2) -***** error poissinv (2, i) -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_fun/hygernd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hygernd.m -***** assert (size (hygernd (4,2,2)), [1, 1]) -***** assert (size (hygernd (4*ones (2,1), 2,2)), [2, 1]) -***** assert (size (hygernd (4*ones (2,2), 2,2)), [2, 2]) -***** assert (size (hygernd (4, 2*ones (2,1), 2)), [2, 1]) -***** assert (size (hygernd (4, 2*ones (2,2), 2)), [2, 2]) -***** assert (size (hygernd (4, 2, 2*ones (2,1))), [2, 1]) -***** assert (size (hygernd (4, 2, 2*ones (2,2))), [2, 2]) -***** assert (size (hygernd (4, 2, 2, 3)), [3, 3]) -***** assert (size (hygernd (4, 2, 2, [4 1])), [4, 1]) -***** assert (size (hygernd (4, 2, 2, 4, 1)), [4, 1]) -***** assert (class (hygernd (4,2,2)), "double") -***** assert (class (hygernd (single (4),2,2)), "single") -***** assert (class (hygernd (single ([4 4]),2,2)), "single") -***** assert (class (hygernd (4,single (2),2)), "single") -***** assert (class (hygernd (4,single ([2 2]),2)), "single") -***** assert (class (hygernd (4,2,single (2))), "single") -***** assert (class (hygernd (4,2,single ([2 2]))), "single") -***** error hygernd () -***** error hygernd (1) -***** error hygernd (1, 2) -***** error ... - hygernd (ones (3), ones (2), ones (2)) -***** error ... - hygernd (ones (2), ones (3), ones (2)) -***** error ... - hygernd (ones (2), ones (2), ones (3)) -***** error hygernd (i, 2, 3) -***** error hygernd (1, i, 3) -***** error hygernd (1, 2, i) -***** error ... - hygernd (1, 2, 3, -1) -***** error ... - hygernd (1, 2, 3, 1.2) -***** error ... - hygernd (1, 2, 3, ones (2)) -***** error ... - hygernd (1, 2, 3, [2 -1 2]) -***** error ... - hygernd (1, 2, 3, [2 0 2.5]) -***** error ... - hygernd (1, 2, 3, 2, -1, 5) -***** error ... - hygernd (1, 2, 3, 2, 1.5, 5) -***** error ... - hygernd (2, ones (2), 2, 3) -***** error ... - hygernd (2, ones (2), 2, [3, 2]) -***** error ... - hygernd (2, ones (2), 2, 3, 2) -36 tests, 36 passed, 0 known failure, 0 skipped -[inst/dist_fun/hygeinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hygeinv.m + ylim ([0, 2]) + legend ({"λ = 1, c = 1, k = 1", "λ = 1, c = 1, k = 2", ... + "λ = 1, c = 1, k = 3", "λ = 1, c = 2, k = 1", ... + "λ = 1, c = 3, k = 1", "λ = 1, c = 0.5, k = 2"}, ... + "location", "northeast") + title ("Burr type XII PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-1, 0, 1, 2, Inf]; + y = [0, 1, 1/4, 1/9, 0]; +***** assert (burrpdf (x, ones(1,5), ones (1,5), ones (1,5)), y) +***** assert (burrpdf (x, 1, 1, 1), y) +***** assert (burrpdf (x, [1, 1, NaN, 1, 1], 1, 1), [y(1:2), NaN, y(4:5)]) +***** assert (burrpdf (x, 1, [1, 1, NaN, 1, 1], 1), [y(1:2), NaN, y(4:5)]) +***** assert (burrpdf (x, 1, 1, [1, 1, NaN, 1, 1]), [y(1:2), NaN, y(4:5)]) +***** assert (burrpdf ([x, NaN], 1, 1, 1), [y, NaN]) +***** assert (burrpdf (single ([x, NaN]), 1, 1, 1), single ([y, NaN])) +***** assert (burrpdf ([x, NaN], single (1), 1, 1), single ([y, NaN])) +***** assert (burrpdf ([x, NaN], 1, single (1), 1), single ([y, NaN])) +***** assert (burrpdf ([x, NaN], 1, 1, single (1)), single ([y, NaN])) +***** error burrpdf () +***** error burrpdf (1) +***** error burrpdf (1, 2) +***** error burrpdf (1, 2, 3) +***** error ... + burrpdf (1, 2, 3, 4, 5) +***** error ... + burrpdf (ones (3), ones (2), ones(2), ones(2)) +***** error ... + burrpdf (ones (2), ones (3), ones(2), ones(2)) +***** error ... + burrpdf (ones (2), ones (2), ones(3), ones(2)) +***** error ... + burrpdf (ones (2), ones (2), ones(2), ones(3)) +***** error burrpdf (i, 2, 3, 4) +***** error burrpdf (1, i, 3, 4) +***** error burrpdf (1, 2, i, 4) +***** error burrpdf (1, 2, 3, i) +23 tests, 23 passed, 0 known failure, 0 skipped +[inst/dist_fun/logiinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/logiinv.m ***** demo - ## Plot various iCDFs from the hypergeometric distribution + ## Plot various iCDFs from the logistic distribution p = 0.001:0.001:0.999; - x1 = hygeinv (p, 500, 50, 100); - x2 = hygeinv (p, 500, 60, 200); - x3 = hygeinv (p, 500, 70, 300); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r") + x1 = logiinv (p, 5, 2); + x2 = logiinv (p, 9, 3); + x3 = logiinv (p, 9, 4); + x4 = logiinv (p, 6, 2); + x5 = logiinv (p, 2, 1); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-m") grid on - ylim ([0, 60]) - legend ({"m = 500, k = 50, n = 100", "m = 500, k = 60, n = 200", ... - "m = 500, k = 70, n = 300"}, "location", "northwest") - title ("Hypergeometric iCDF") + legend ({"μ = 5, σ = 2", "μ = 9, σ = 3", "μ = 9, σ = 4", ... + "μ = 6, σ = 2", "μ = 2, σ = 1"}, "location", "southeast") + title ("Logistic iCDF") xlabel ("probability") - ylabel ("values in p (number of successes)") + ylabel ("x") +***** test + p = [0.01:0.01:0.99]; + assert (logiinv (p, 0, 1), log (p ./ (1-p)), 25*eps); ***** shared p p = [-1 0 0.5 1 2]; -***** assert (hygeinv (p, 4*ones (1,5), 2*ones (1,5), 2*ones (1,5)), [NaN 0 1 2 NaN]) -***** assert (hygeinv (p, 4*ones (1,5), 2, 2), [NaN 0 1 2 NaN]) -***** assert (hygeinv (p, 4, 2*ones (1,5), 2), [NaN 0 1 2 NaN]) -***** assert (hygeinv (p, 4, 2, 2*ones (1,5)), [NaN 0 1 2 NaN]) -***** assert (hygeinv (p, 4*[1 -1 NaN 1.1 1], 2, 2), [NaN NaN NaN NaN NaN]) -***** assert (hygeinv (p, 4, 2*[1 -1 NaN 1.1 1], 2), [NaN NaN NaN NaN NaN]) -***** assert (hygeinv (p, 4, 5, 2), [NaN NaN NaN NaN NaN]) -***** assert (hygeinv (p, 4, 2, 2*[1 -1 NaN 1.1 1]), [NaN NaN NaN NaN NaN]) -***** assert (hygeinv (p, 4, 2, 5), [NaN NaN NaN NaN NaN]) -***** assert (hygeinv ([p(1:2) NaN p(4:5)], 4, 2, 2), [NaN 0 NaN 2 NaN]) -***** assert (hygeinv ([p, NaN], 4, 2, 2), [NaN 0 1 2 NaN NaN]) -***** assert (hygeinv (single ([p, NaN]), 4, 2, 2), single ([NaN 0 1 2 NaN NaN])) -***** assert (hygeinv ([p, NaN], single (4), 2, 2), single ([NaN 0 1 2 NaN NaN])) -***** assert (hygeinv ([p, NaN], 4, single (2), 2), single ([NaN 0 1 2 NaN NaN])) -***** assert (hygeinv ([p, NaN], 4, 2, single (2)), single ([NaN 0 1 2 NaN NaN])) -***** error hygeinv () -***** error hygeinv (1) -***** error hygeinv (1,2) -***** error hygeinv (1,2,3) -***** error ... - hygeinv (ones (2), ones (3), 1, 1) -***** error ... - hygeinv (1, ones (2), ones (3), 1) -***** error ... - hygeinv (1, 1, ones (2), ones (3)) -***** error hygeinv (i, 2, 2, 2) -***** error hygeinv (2, i, 2, 2) -***** error hygeinv (2, 2, i, 2) -***** error hygeinv (2, 2, 2, i) -26 tests, 26 passed, 0 known failure, 0 skipped -[inst/dist_fun/evcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/evcdf.m -***** demo - ## Plot various CDFs from the extreme value distribution - x = -10:0.01:10; - p1 = evcdf (x, 0.5, 2); - p2 = evcdf (x, 1.0, 2); - p3 = evcdf (x, 1.5, 3); - p4 = evcdf (x, 3.0, 4); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") - grid on - legend ({"μ = 0.5, σ = 2", "μ = 1.0, σ = 2", ... - "μ = 1.5, σ = 3", "μ = 3.0, σ = 4"}, "location", "southeast") - title ("Extreme value CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y - x = [-Inf, 1, 2, Inf]; - y = [0, 0.6321, 0.9340, 1]; -***** assert (evcdf (x, ones (1,4), ones (1,4)), y, 1e-4) -***** assert (evcdf (x, 1, ones (1,4)), y, 1e-4) -***** assert (evcdf (x, ones (1,4), 1), y, 1e-4) -***** assert (evcdf (x, [0, -Inf, NaN, Inf], 1), [0, 1, NaN, NaN], 1e-4) -***** assert (evcdf (x, 1, [Inf, NaN, -1, 0]), [NaN, NaN, NaN, NaN], 1e-4) -***** assert (evcdf ([x(1:2), NaN, x(4)], 1, 1), [y(1:2), NaN, y(4)], 1e-4) -***** assert (evcdf (x, "upper"), [1, 0.0660, 0.0006, 0], 1e-4) -***** assert (evcdf ([x, NaN], 1, 1), [y, NaN], 1e-4) -***** assert (evcdf (single ([x, NaN]), 1, 1), single ([y, NaN]), 1e-4) -***** assert (evcdf ([x, NaN], single (1), 1), single ([y, NaN]), 1e-4) -***** assert (evcdf ([x, NaN], 1, single (1)), single ([y, NaN]), 1e-4) -***** error evcdf () -***** error evcdf (1,2,3,4,5,6,7) -***** error evcdf (1, 2, 3, 4, "uper") -***** error ... - evcdf (ones (3), ones (2), ones (2)) -***** error evcdf (2, 3, 4, [1, 2]) -***** error ... - [p, plo, pup] = evcdf (1, 2, 3) -***** error [p, plo, pup] = ... - evcdf (1, 2, 3, [1, 0; 0, 1], 0) -***** error [p, plo, pup] = ... - evcdf (1, 2, 3, [1, 0; 0, 1], 1.22) -***** error [p, plo, pup] = ... - evcdf (1, 2, 3, [1, 0; 0, 1], "alpha", "upper") -***** error evcdf (i, 2, 2) -***** error evcdf (2, i, 2) -***** error evcdf (2, 2, i) -***** error ... - [p, plo, pup] = evcdf (1, 2, 3, [1, 0; 0, -inf], 0.04) -24 tests, 24 passed, 0 known failure, 0 skipped +***** assert (logiinv (p, 0, 1), [NaN -Inf 0 Inf NaN]) +***** assert (logiinv (p, 0, [-1, 0, 1, 2, 3]), [NaN NaN 0 Inf NaN]) +***** assert (logiinv ([p, NaN], 0, 1), [NaN -Inf 0 Inf NaN NaN]) +***** assert (logiinv (single ([p, NaN]), 0, 1), single ([NaN -Inf 0 Inf NaN NaN])) +***** assert (logiinv ([p, NaN], single (0), 1), single ([NaN -Inf 0 Inf NaN NaN])) +***** assert (logiinv ([p, NaN], 0, single (1)), single ([NaN -Inf 0 Inf NaN NaN])) +***** error logiinv () +***** error logiinv (1) +***** error ... + logiinv (1, 2) +***** error ... + logiinv (1, ones (2), ones (3)) +***** error ... + logiinv (ones (2), 1, ones (3)) +***** error ... + logiinv (ones (2), ones (3), 1) +***** error logiinv (i, 2, 3) +***** error logiinv (1, i, 3) +***** error logiinv (1, 2, i) +16 tests, 16 passed, 0 known failure, 0 skipped [inst/dist_fun/tcdf.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tcdf.m ***** demo @@ -22723,6 +17251,269 @@ ***** assert (tcdf (-10^4, 2.5), 7.1933970159922115e-11, -tol_rel) ***** assert (tcdf (-10^5, 2.5), 2.2747519231756221e-13, -tol_rel) 30 tests, 30 passed, 0 known failure, 0 skipped +[inst/dist_fun/ncx2rnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncx2rnd.m +***** assert (size (ncx2rnd (1, 1)), [1 1]) +***** assert (size (ncx2rnd (1, ones (2,1))), [2, 1]) +***** assert (size (ncx2rnd (1, ones (2,2))), [2, 2]) +***** assert (size (ncx2rnd (ones (2,1), 1)), [2, 1]) +***** assert (size (ncx2rnd (ones (2,2), 1)), [2, 2]) +***** assert (size (ncx2rnd (1, 1, 3)), [3, 3]) +***** assert (size (ncx2rnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (ncx2rnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (ncx2rnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (ncx2rnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (ncx2rnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (ncx2rnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (ncx2rnd (1, 1)), "double") +***** assert (class (ncx2rnd (1, single (1))), "single") +***** assert (class (ncx2rnd (1, single ([1, 1]))), "single") +***** assert (class (ncx2rnd (single (1), 1)), "single") +***** assert (class (ncx2rnd (single ([1, 1]), 1)), "single") +***** error ncx2rnd () +***** error ncx2rnd (1) +***** error ... + ncx2rnd (ones (3), ones (2)) +***** error ... + ncx2rnd (ones (2), ones (3)) +***** error ncx2rnd (i, 2) +***** error ncx2rnd (1, i) +***** error ... + ncx2rnd (1, 2, -1) +***** error ... + ncx2rnd (1, 2, 1.2) +***** error ... + ncx2rnd (1, 2, ones (2)) +***** error ... + ncx2rnd (1, 2, [2 -1 2]) +***** error ... + ncx2rnd (1, 2, [2 0 2.5]) +***** error ... + ncx2rnd (1, 2, 2, -1, 5) +***** error ... + ncx2rnd (1, 2, 2, 1.5, 5) +***** error ... + ncx2rnd (2, ones (2), 3) +***** error ... + ncx2rnd (2, ones (2), [3, 2]) +***** error ... + ncx2rnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/gumbelinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gumbelinv.m +***** demo + ## Plot various iCDFs from the Gumbel distribution + p = 0.001:0.001:0.999; + x1 = gumbelinv (p, 0.5, 2); + x2 = gumbelinv (p, 1.0, 2); + x3 = gumbelinv (p, 1.5, 3); + x4 = gumbelinv (p, 3.0, 4); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") + grid on + ylim ([-5, 20]) + legend ({"μ = 0.5, β = 2", "μ = 1.0, β = 2", ... + "μ = 1.5, β = 3", "μ = 3.0, β = 4"}, "location", "northwest") + title ("Gumbel iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p, x + p = [0, 0.05, 0.5 0.95]; + x = [-Inf, -1.0972, 0.3665, 2.9702]; +***** assert (gumbelinv (p), x, 1e-4) +***** assert (gumbelinv (p, zeros (1,4), ones (1,4)), x, 1e-4) +***** assert (gumbelinv (p, 0, ones (1,4)), x, 1e-4) +***** assert (gumbelinv (p, zeros (1,4), 1), x, 1e-4) +***** assert (gumbelinv (p, [0, -Inf, NaN, Inf], 1), [-Inf, Inf, NaN, -Inf], 1e-4) +***** assert (gumbelinv (p, 0, [Inf, NaN, -1, 0]), [-Inf, NaN, NaN, NaN], 1e-4) +***** assert (gumbelinv ([p(1:2), NaN, p(4)], 0, 1), [x(1:2), NaN, x(4)], 1e-4) +***** assert (gumbelinv ([p, NaN], 0, 1), [x, NaN], 1e-4) +***** assert (gumbelinv (single ([p, NaN]), 0, 1), single ([x, NaN]), 1e-4) +***** assert (gumbelinv ([p, NaN], single (0), 1), single ([x, NaN]), 1e-4) +***** assert (gumbelinv ([p, NaN], 0, single (1)), single ([x, NaN]), 1e-4) +***** error gumbelinv () +***** error gumbelinv (1,2,3,4,5,6) +***** error ... + gumbelinv (ones (3), ones (2), ones (2)) +***** error ... + [p, plo, pup] = gumbelinv (2, 3, 4, [1, 2]) +***** error ... + [p, plo, pup] = gumbelinv (1, 2, 3) +***** error [p, plo, pup] = ... + gumbelinv (1, 2, 3, [1, 0; 0, 1], 0) +***** error [p, plo, pup] = ... + gumbelinv (1, 2, 3, [1, 0; 0, 1], 1.22) +***** error gumbelinv (i, 2, 2) +***** error gumbelinv (2, i, 2) +***** error gumbelinv (2, 2, i) +***** error ... + [p, plo, pup] = gumbelinv (1, 2, 3, [-1, 10; -Inf, -Inf], 0.04) +22 tests, 22 passed, 0 known failure, 0 skipped +[inst/dist_fun/tripdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tripdf.m +***** demo + ## Plot various CDFs from the triangular distribution + x = 0.001:0.001:10; + y1 = tripdf (x, 3, 4, 6); + y2 = tripdf (x, 1, 2, 5); + y3 = tripdf (x, 2, 3, 9); + y4 = tripdf (x, 2, 5, 9); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") + grid on + xlim ([0, 10]) + legend ({"a = 3, b = 4, c = 6", "a = 1, b = 2, c = 5", ... + "a = 2, b = 3, c = 9", "a = 2, b = 5, c = 9"}, ... + "location", "northeast") + title ("Triangular CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y, deps + x = [-1, 0, 0.1, 0.5, 0.9, 1, 2] + 1; + y = [0, 0, 0.4, 2, 0.4, 0, 0]; + deps = 2*eps; +***** assert (tripdf (x, ones (1,7), 1.5*ones (1,7), 2*ones (1,7)), y, deps) +***** assert (tripdf (x, 1*ones (1,7), 1.5, 2), y, deps) +***** assert (tripdf (x, 1, 1.5, 2*ones (1,7)), y, deps) +***** assert (tripdf (x, 1, 1.5*ones (1,7), 2), y, deps) +***** assert (tripdf (x, 1, 1.5, 2), y, deps) +***** assert (tripdf (x, [1, 1, NaN, 1, 1, 1, 1], 1.5, 2), [y(1:2), NaN, y(4:7)], deps) +***** assert (tripdf (x, 1, 1.5, 2*[1, 1, NaN, 1, 1, 1, 1]), [y(1:2), NaN, y(4:7)], deps) +***** assert (tripdf (x, 1, 1.5*[1, 1, NaN, 1, 1, 1, 1], 2), [y(1:2), NaN, y(4:7)], deps) +***** assert (tripdf ([x, NaN], 1, 1.5, 2), [y, NaN], deps) +***** assert (tripdf (single ([x, NaN]), 1, 1.5, 2), single ([y, NaN]), eps("single")) +***** assert (tripdf ([x, NaN], single (1), 1.5, 2), single ([y, NaN]), eps("single")) +***** assert (tripdf ([x, NaN], 1, 1.5, single (2)), single ([y, NaN]), eps("single")) +***** assert (tripdf ([x, NaN], 1, single (1.5), 2), single ([y, NaN]), eps("single")) +***** error tripdf () +***** error tripdf (1) +***** error tripdf (1, 2) +***** error tripdf (1, 2, 3) +***** error ... + tripdf (1, 2, 3, 4, 5) +***** error ... + tripdf (ones (3), ones (2), ones(2), ones(2)) +***** error ... + tripdf (ones (2), ones (3), ones(2), ones(2)) +***** error ... + tripdf (ones (2), ones (2), ones(3), ones(2)) +***** error ... + tripdf (ones (2), ones (2), ones(2), ones(3)) +***** error tripdf (i, 2, 3, 4) +***** error tripdf (1, i, 3, 4) +***** error tripdf (1, 2, i, 4) +***** error tripdf (1, 2, 3, i) +26 tests, 26 passed, 0 known failure, 0 skipped +[inst/dist_fun/poissrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/poissrnd.m +***** assert (size (poissrnd (2)), [1, 1]) +***** assert (size (poissrnd (ones (2,1))), [2, 1]) +***** assert (size (poissrnd (ones (2,2))), [2, 2]) +***** assert (size (poissrnd (1, 3)), [3, 3]) +***** assert (size (poissrnd (1, [4 1])), [4, 1]) +***** assert (size (poissrnd (1, 4, 1)), [4, 1]) +***** assert (size (poissrnd (1, 4, 1)), [4, 1]) +***** assert (size (poissrnd (1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (poissrnd (1, 0, 1)), [0, 1]) +***** assert (size (poissrnd (1, 1, 0)), [1, 0]) +***** assert (size (poissrnd (1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (poissrnd (0, 1, 1), 0) +***** assert (poissrnd ([0, 0, 0], [1, 3]), [0 0 0]) +***** assert (class (poissrnd (2)), "double") +***** assert (class (poissrnd (single (2))), "single") +***** assert (class (poissrnd (single ([2 2]))), "single") +***** error poissrnd () +***** error poissrnd (i) +***** error ... + poissrnd (1, -1) +***** error ... + poissrnd (1, 1.2) +***** error ... + poissrnd (1, ones (2)) +***** error ... + poissrnd (1, [2 -1 2]) +***** error ... + poissrnd (1, [2 0 2.5]) +***** error ... + poissrnd (ones (2), ones (2)) +***** error ... + poissrnd (1, 2, -1, 5) +***** error ... + poissrnd (1, 2, 1.5, 5) +***** error poissrnd (ones (2,2), 3) +***** error poissrnd (ones (2,2), [3, 2]) +***** error poissrnd (ones (2,2), 2, 3) +29 tests, 29 passed, 0 known failure, 0 skipped +[inst/dist_fun/geopdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/geopdf.m +***** demo + ## Plot various PDFs from the geometric distribution + x = 0:10; + y1 = geopdf (x, 0.2); + y2 = geopdf (x, 0.5); + y3 = geopdf (x, 0.7); + plot (x, y1, "*b", x, y2, "*g", x, y3, "*r") + grid on + ylim ([0, 0.8]) + legend ({"ps = 0.2", "ps = 0.5", "ps = 0.7"}, "location", "northeast") + title ("Geometric PDF") + xlabel ("values in x (number of failures)") + ylabel ("density") +***** shared x, y + x = [-1 0 1 Inf]; + y = [0, 1/2, 1/4, NaN]; +***** assert (geopdf (x, 0.5*ones (1,4)), y) +***** assert (geopdf (x, 0.5), y) +***** assert (geopdf (x, 0.5*[-1 NaN 4 1]), [NaN NaN NaN y(4)]) +***** assert (geopdf ([x, NaN], 0.5), [y, NaN]) +***** assert (geopdf (single ([x, NaN]), 0.5), single ([y, NaN]), 5*eps ("single")) +***** assert (geopdf ([x, NaN], single (0.5)), single ([y, NaN]), 5*eps ("single")) +***** error geopdf () +***** error geopdf (1) +***** error geopdf (1,2,3) +***** error geopdf (ones (3), ones (2)) +***** error geopdf (ones (2), ones (3)) +***** error geopdf (i, 2) +***** error geopdf (2, i) +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_fun/invginv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/invginv.m +***** demo + ## Plot various iCDFs from the inverse Gaussian distribution + p = 0.001:0.001:0.999; + x1 = invginv (p, 1, 0.2); + x2 = invginv (p, 1, 1); + x3 = invginv (p, 1, 3); + x4 = invginv (p, 3, 0.2); + x5 = invginv (p, 3, 1); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-y") + grid on + ylim ([0, 3]) + legend ({"μ = 1, σ = 0.2", "μ = 1, σ = 1", "μ = 1, σ = 3", ... + "μ = 3, σ = 0.2", "μ = 3, σ = 1"}, "location", "northwest") + title ("Inverse Gaussian iCDF") + xlabel ("probability") + ylabel ("x") +***** shared p, x + p = [0, 0.3829, 0.6827, 1]; + x = [0, 0.5207, 1.0376, Inf]; +***** assert (invginv (p, 1, 1), x, 1e-4); +***** assert (invginv (p, 1, ones (1,4)), x, 1e-4); +***** assert (invginv (p, 1, [-1, 0, 1, 1]), [NaN, NaN, x(3:4)], 1e-4) +***** assert (invginv (p, [-1, 0, 1, 1], 1), [NaN, NaN, x(3:4)], 1e-4) +***** assert (class (invginv (single ([p, NaN]), 0, 1)), "single") +***** assert (class (invginv ([p, NaN], single (0), 1)), "single") +***** assert (class (invginv ([p, NaN], 0, single (1))), "single") +***** error invginv (1) +***** error invginv (1, 2) +***** error ... + invginv (1, ones (2), ones (3)) +***** error ... + invginv (ones (2), 1, ones (3)) +***** error ... + invginv (ones (2), ones (3), 1) +***** error invginv (i, 2, 3) +***** error invginv (1, i, 3) +***** error invginv (1, 2, i) +15 tests, 15 passed, 0 known failure, 0 skipped [inst/dist_fun/plpdf.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/plpdf.m ***** demo @@ -22768,156 +17559,433 @@ ***** error ... plpdf (1, [0, 1, 2], [0, 0.5i, 1]) 15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fun/bisapdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/bisapdf.m +[inst/dist_fun/fpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/fpdf.m ***** demo - ## Plot various PDFs from the Birnbaum-Saunders distribution + ## Plot various PDFs from the F distribution x = 0.01:0.01:4; - y1 = bisapdf (x, 1, 0.5); - y2 = bisapdf (x, 1, 1); - y3 = bisapdf (x, 1, 2); - y4 = bisapdf (x, 1, 5); - y5 = bisapdf (x, 1, 10); + y1 = fpdf (x, 1, 1); + y2 = fpdf (x, 2, 1); + y3 = fpdf (x, 5, 2); + y4 = fpdf (x, 10, 1); + y5 = fpdf (x, 100, 100); plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c", x, y5, "-m") grid on - ylim ([0, 1.5]) - legend ({"β = 1 ,γ = 0.5", "β = 1, γ = 1", "β = 1, γ = 2", ... - "β = 1, γ = 5", "β = 1, γ = 10"}, "location", "northeast") - title ("Birnbaum-Saunders PDF") + ylim ([0, 2.5]) + legend ({"df1 = 1, df2 = 2", "df1 = 2, df2 = 1", ... + "df1 = 5, df2 = 2", "df1 = 10, df2 = 1", ... + "df1 = 100, df2 = 100"}, "location", "northeast") + title ("F PDF") xlabel ("values in x") ylabel ("density") +***** shared x, y + x = [-1 0 0.5 1 2]; + y = [0 0 4/9 1/4 1/9]; +***** assert (fpdf (x, 2*ones (1,5), 2*ones (1,5)), y, eps) +***** assert (fpdf (x, 2, 2*ones (1,5)), y, eps) +***** assert (fpdf (x, 2*ones (1,5), 2), y, eps) +***** assert (fpdf (x, [0 NaN Inf 2 2], 2), [NaN NaN NaN y(4:5)], eps) +***** assert (fpdf (x, 2, [0 NaN Inf 2 2]), [NaN NaN NaN y(4:5)], eps) +***** assert (fpdf ([x, NaN], 2, 2), [y, NaN], eps) +***** test #F (x, 1, df1) == T distribution (sqrt (x), df1) / sqrt (x) + rand ("seed", 1234); # for reproducibility + xr = rand (10,1); + xr = xr(x > 0.1 & x < 0.9); + yr = tpdf (sqrt (xr), 2) ./ sqrt (xr); + assert (fpdf (xr, 1, 2), yr, 5*eps); +***** assert (fpdf (single ([x, NaN]), 2, 2), single ([y, NaN]), eps ("single")) +***** assert (fpdf ([x, NaN], single (2), 2), single ([y, NaN]), eps ("single")) +***** assert (fpdf ([x, NaN], 2, single (2)), single ([y, NaN]), eps ("single")) +***** error fpdf () +***** error fpdf (1) +***** error fpdf (1,2) +***** error ... + fpdf (ones (3), ones (2), ones (2)) +***** error ... + fpdf (ones (2), ones (3), ones (2)) +***** error ... + fpdf (ones (2), ones (2), ones (3)) +***** error fpdf (i, 2, 2) +***** error fpdf (2, i, 2) +***** error fpdf (2, 2, i) +19 tests, 19 passed, 0 known failure, 0 skipped +[inst/dist_fun/lognrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/lognrnd.m +***** assert (size (lognrnd (1, 1)), [1 1]) +***** assert (size (lognrnd (1, ones (2,1))), [2, 1]) +***** assert (size (lognrnd (1, ones (2,2))), [2, 2]) +***** assert (size (lognrnd (ones (2,1), 1)), [2, 1]) +***** assert (size (lognrnd (ones (2,2), 1)), [2, 2]) +***** assert (size (lognrnd (1, 1, 3)), [3, 3]) +***** assert (size (lognrnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (lognrnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (lognrnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (lognrnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (lognrnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (lognrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (lognrnd (1, 1)), "double") +***** assert (class (lognrnd (1, single (1))), "single") +***** assert (class (lognrnd (1, single ([1, 1]))), "single") +***** assert (class (lognrnd (single (1), 1)), "single") +***** assert (class (lognrnd (single ([1, 1]), 1)), "single") +***** error lognrnd () +***** error lognrnd (1) +***** error ... + lognrnd (ones (3), ones (2)) +***** error ... + lognrnd (ones (2), ones (3)) +***** error lognrnd (i, 2, 3) +***** error lognrnd (1, i, 3) +***** error ... + lognrnd (1, 2, -1) +***** error ... + lognrnd (1, 2, 1.2) +***** error ... + lognrnd (1, 2, ones (2)) +***** error ... + lognrnd (1, 2, [2 -1 2]) +***** error ... + lognrnd (1, 2, [2 0 2.5]) +***** error ... + lognrnd (1, 2, 2, -1, 5) +***** error ... + lognrnd (1, 2, 2, 1.5, 5) +***** error ... + lognrnd (2, ones (2), 3) +***** error ... + lognrnd (2, ones (2), [3, 2]) +***** error ... + lognrnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/hninv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hninv.m +***** demo + ## Plot various iCDFs from the half-normal distribution + p = 0.001:0.001:0.999; + x1 = hninv (p, 0, 1); + x2 = hninv (p, 0, 2); + x3 = hninv (p, 0, 3); + x4 = hninv (p, 0, 5); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") + grid on + ylim ([0, 10]) + legend ({"μ = 0, σ = 1", "μ = 0, σ = 2", ... + "μ = 0, σ = 3", "μ = 0, σ = 5"}, "location", "northwest") + title ("Half-normal iCDF") + xlabel ("probability") + ylabel ("x") +***** shared p, x + p = [0, 0.3829, 0.6827, 1]; + x = [0, 1/2, 1, Inf]; +***** assert (hninv (p, 0, 1), x, 1e-4); +***** assert (hninv (p, 5, 1), x + 5, 1e-4); +***** assert (hninv (p, 0, ones (1,4)), x, 1e-4); +***** assert (hninv (p, 0, [-1, 0, 1, 1]), [NaN, NaN, x(3:4)], 1e-4) +***** assert (class (hninv (single ([p, NaN]), 0, 1)), "single") +***** assert (class (hninv ([p, NaN], single (0), 1)), "single") +***** assert (class (hninv ([p, NaN], 0, single (1))), "single") +***** error hninv (1) +***** error hninv (1, 2) +***** error ... + hninv (1, ones (2), ones (3)) +***** error ... + hninv (ones (2), 1, ones (3)) +***** error ... + hninv (ones (2), ones (3), 1) +***** error hninv (i, 2, 3) +***** error hninv (1, i, 3) +***** error hninv (1, 2, i) +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_fun/poisspdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/poisspdf.m +***** demo + ## Plot various PDFs from the Poisson distribution + x = 0:20; + y1 = poisspdf (x, 1); + y2 = poisspdf (x, 4); + y3 = poisspdf (x, 10); + plot (x, y1, "*b", x, y2, "*g", x, y3, "*r") + grid on + ylim ([0, 0.4]) + legend ({"λ = 1", "λ = 4", "λ = 10"}, "location", "northeast") + title ("Poisson PDF") + xlabel ("values in x (number of occurences)") + ylabel ("density") +***** shared x, y + x = [-1 0 1 2 Inf]; + y = [0, exp(-1)*[1 1 0.5], 0]; +***** assert (poisspdf (x, ones (1,5)), y, eps) +***** assert (poisspdf (x, 1), y, eps) +***** assert (poisspdf (x, [1 0 NaN 1 1]), [y(1) NaN NaN y(4:5)], eps) +***** assert (poisspdf ([x, NaN], 1), [y, NaN], eps) +***** assert (poisspdf (single ([x, NaN]), 1), single ([y, NaN]), eps ("single")) +***** assert (poisspdf ([x, NaN], single (1)), single ([y, NaN]), eps ("single")) +***** error poisspdf () +***** error poisspdf (1) +***** error ... + poisspdf (ones (3), ones (2)) +***** error ... + poisspdf (ones (2), ones (3)) +***** error poisspdf (i, 2) +***** error poisspdf (2, i) +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/dist_fun/trnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/trnd.m +***** assert (size (trnd (2)), [1, 1]) +***** assert (size (trnd (ones (2,1))), [2, 1]) +***** assert (size (trnd (ones (2,2))), [2, 2]) +***** assert (size (trnd (1, 3)), [3, 3]) +***** assert (size (trnd (1, [4 1])), [4, 1]) +***** assert (size (trnd (1, 4, 1)), [4, 1]) +***** assert (size (trnd (1, 4, 1)), [4, 1]) +***** assert (size (trnd (1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (trnd (1, 0, 1)), [0, 1]) +***** assert (size (trnd (1, 1, 0)), [1, 0]) +***** assert (size (trnd (1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (trnd (0, 1, 1), NaN) +***** assert (trnd ([0, 0, 0], [1, 3]), [NaN, NaN, NaN]) +***** assert (class (trnd (2)), "double") +***** assert (class (trnd (single (2))), "single") +***** assert (class (trnd (single ([2 2]))), "single") +***** error trnd () +***** error trnd (i) +***** error ... + trnd (1, -1) +***** error ... + trnd (1, 1.2) +***** error ... + trnd (1, ones (2)) +***** error ... + trnd (1, [2 -1 2]) +***** error ... + trnd (1, [2 0 2.5]) +***** error ... + trnd (ones (2), ones (2)) +***** error ... + trnd (1, 2, -1, 5) +***** error ... + trnd (1, 2, 1.5, 5) +***** error trnd (ones (2,2), 3) +***** error trnd (ones (2,2), [3, 2]) +***** error trnd (ones (2,2), 2, 3) +29 tests, 29 passed, 0 known failure, 0 skipped +[inst/dist_fun/nctpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nctpdf.m ***** demo - ## Plot various PDFs from the Birnbaum-Saunders distribution - x = 0.01:0.01:6; - y1 = bisapdf (x, 1, 0.3); - y2 = bisapdf (x, 2, 0.3); - y3 = bisapdf (x, 1, 0.5); - y4 = bisapdf (x, 3, 0.5); - y5 = bisapdf (x, 5, 0.5); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c", x, y5, "-m") + ## Plot various PDFs from the noncentral T distribution + x = -5:0.01:10; + y1 = nctpdf (x, 1, 0); + y2 = nctpdf (x, 4, 0); + y3 = nctpdf (x, 1, 2); + y4 = nctpdf (x, 4, 2); + plot (x, y1, "-r", x, y2, "-g", x, y3, "-k", x, y4, "-m") grid on - ylim ([0, 1.5]) - legend ({"β = 1, γ = 0.3", "β = 2, γ = 0.3", "β = 1, γ = 0.5", ... - "β = 3, γ = 0.5", "β = 5, γ = 0.5"}, "location", "northeast") - title ("Birnbaum-Saunders CDF") + xlim ([-5, 10]) + ylim ([0, 0.4]) + legend ({"df = 1, μ = 0", "df = 4, μ = 0", ... + "df = 1, μ = 2", "df = 4, μ = 2"}, "location", "northeast") + title ("Noncentral T PDF") xlabel ("values in x") ylabel ("density") -***** shared x, y - x = [-1, 0, 1, 2, Inf]; - y = [0, 0, 0.3989422804014327, 0.1647717335503959, 0]; -***** assert (bisapdf (x, ones (1,5), ones (1,5)), y, eps) -***** assert (bisapdf (x, 1, 1), y, eps) -***** assert (bisapdf (x, 1, ones (1,5)), y, eps) -***** assert (bisapdf (x, ones (1,5), 1), y, eps) -***** assert (bisapdf (x, 1, [1, 1, NaN, 1, 1]), [y(1:2), NaN, y(4:5)], eps) -***** assert (bisapdf (x, [1, 1, NaN, 1, 1], 1), [y(1:2), NaN, y(4:5)], eps) -***** assert (bisapdf ([x, NaN], 1, 1), [y, NaN], eps) -***** assert (bisapdf (single ([x, NaN]), 1, 1), single ([y, NaN]), eps ("single")) -***** assert (bisapdf ([x, NaN], 1, single (1)), single ([y, NaN]), eps ("single")) -***** assert (bisapdf ([x, NaN], single (1), 1), single ([y, NaN]), eps ("single")) -***** error bisapdf () -***** error bisapdf (1) -***** error bisapdf (1, 2) -***** error bisapdf (1, 2, 3, 4) -***** error ... - bisapdf (ones (3), ones (2), ones(2)) -***** error ... - bisapdf (ones (2), ones (3), ones(2)) -***** error ... - bisapdf (ones (2), ones (2), ones(3)) -***** error bisapdf (i, 4, 3) -***** error bisapdf (1, i, 3) -***** error bisapdf (1, 4, i) -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/dist_fun/mvtpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvtpdf.m ***** demo - ## Compute the pdf of a multivariate t distribution with correlation - ## parameters rho = [1 .4; .4 1] and 2 degrees of freedom. + ## Compare the noncentral T PDF with MU = 1 to the T PDF + ## with the same number of degrees of freedom (10). - rho = [1, 0.4; 0.4, 1]; - df = 2; - [X1, X2] = meshgrid (linspace (-2, 2, 25)', linspace (-2, 2, 25)'); - X = [X1(:), X2(:)]; - y = mvtpdf (X, rho, df); - surf (X1, X2, reshape (y, 25, 25)); - title ("Bivariate Student's t probability density function"); -***** assert (mvtpdf ([0 0], eye(2), 1), 0.1591549, 1E-7) -***** assert (mvtpdf ([1 0], [1 0.5; 0.5 1], 2), 0.06615947, 1E-7) -***** assert (mvtpdf ([1 0.4 0; 1.2 0.5 0.5; 1.4 0.6 1], ... - [1 0.5 0.3; 0.5 1 0.6; 0.3 0.6 1], [5 6 7]), ... - [0.04713313 0.03722421 0.02069011]', 1E-7) -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/dist_fun/bisacdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/bisacdf.m -***** demo - ## Plot various CDFs from the Birnbaum-Saunders distribution - x = 0.01:0.01:4; - p1 = bisacdf (x, 1, 0.5); - p2 = bisacdf (x, 1, 1); - p3 = bisacdf (x, 1, 2); - p4 = bisacdf (x, 1, 5); - p5 = bisacdf (x, 1, 10); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-m") + x = -5:0.1:5; + y1 = nctpdf (x, 10, 1); + y2 = tpdf (x, 10); + plot (x, y1, "-", x, y2, "-"); grid on - legend ({"β = 1, γ = 0.5", "β = 1, γ = 1", "β = 1, γ = 2", ... - "β = 1, γ = 5", "β = 1, γ = 10"}, "location", "southeast") - title ("Birnbaum-Saunders CDF") + xlim ([-5, 5]) + ylim ([0, 0.4]) + legend ({"Noncentral χ^2(4,2)", "χ^2(4)"}, "location", "northwest") + title ("Noncentral T vs T PDFs") xlabel ("values in x") - ylabel ("probability") + ylabel ("density") +***** shared x1, df, mu + x1 = [-Inf, 2, NaN, 4, Inf]; + df = [2, 0, -1, 1, 4]; + mu = [1, NaN, 3, -1, 2]; +***** assert (nctpdf (x1, df, mu), [0, NaN, NaN, 0.00401787561306999, 0], 1e-14); +***** assert (nctpdf (x1, df, 1), [0, NaN, NaN, 0.0482312135423008, 0], 1e-14); +***** assert (nctpdf (x1, df, 3), [0, NaN, NaN, 0.1048493126401585, 0], 1e-14); +***** assert (nctpdf (x1, df, 2), [0, NaN, NaN, 0.08137377919890307, 0], 1e-14); +***** assert (nctpdf (x1, 3, mu), [0, NaN, NaN, 0.001185305171654381, 0], 1e-14); +***** assert (nctpdf (2, df, mu), [0.1791097459405861, NaN, NaN, ... + 0.0146500727180389, 0.3082302682110299], 1e-14); +***** assert (nctpdf (4, df, mu), [0.04467929612254971, NaN, NaN, ... + 0.00401787561306999, 0.0972086534042828], 1e-14); +***** error nctpdf () +***** error nctpdf (1) +***** error nctpdf (1, 2) +***** error ... + nctpdf (ones (3), ones (2), ones (2)) +***** error ... + nctpdf (ones (2), ones (3), ones (2)) +***** error ... + nctpdf (ones (2), ones (2), ones (3)) +***** error nctpdf (i, 2, 2) +***** error nctpdf (2, i, 2) +***** error nctpdf (2, 2, i) +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_fun/chi2inv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/chi2inv.m ***** demo - ## Plot various CDFs from the Birnbaum-Saunders distribution - x = 0.01:0.01:6; - p1 = bisacdf (x, 1, 0.3); - p2 = bisacdf (x, 2, 0.3); - p3 = bisacdf (x, 1, 0.5); - p4 = bisacdf (x, 3, 0.5); - p5 = bisacdf (x, 5, 0.5); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-m") + ## Plot various iCDFs from the chi-squared distribution + p = 0.001:0.001:0.999; + x1 = chi2inv (p, 1); + x2 = chi2inv (p, 2); + x3 = chi2inv (p, 3); + x4 = chi2inv (p, 4); + x5 = chi2inv (p, 6); + x6 = chi2inv (p, 9); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", ... + p, x4, "-c", p, x5, "-m", p, x6, "-y") grid on - legend ({"β = 1, γ = 0.3", "β = 2, γ = 0.3", "β = 1, γ = 0.5", ... - "β = 3, γ = 0.5", "β = 5, γ = 0.5"}, "location", "southeast") - title ("Birnbaum-Saunders CDF") + ylim ([0, 8]) + legend ({"df = 1", "df = 2", "df = 3", ... + "df = 4", "df = 6", "df = 9"}, "location", "northwest") + title ("Chi-squared iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p + p = [-1 0 0.3934693402873666 1 2]; +***** assert (chi2inv (p, 2*ones (1,5)), [NaN 0 1 Inf NaN], 5*eps) +***** assert (chi2inv (p, 2), [NaN 0 1 Inf NaN], 5*eps) +***** assert (chi2inv (p, 2*[0 1 NaN 1 1]), [NaN 0 NaN Inf NaN], 5*eps) +***** assert (chi2inv ([p(1:2) NaN p(4:5)], 2), [NaN 0 NaN Inf NaN], 5*eps) +***** assert (chi2inv ([p, NaN], 2), [NaN 0 1 Inf NaN NaN], 5*eps) +***** assert (chi2inv (single ([p, NaN]), 2), single ([NaN 0 1 Inf NaN NaN]), 5*eps ("single")) +***** assert (chi2inv ([p, NaN], single (2)), single ([NaN 0 1 Inf NaN NaN]), 5*eps ("single")) +***** error chi2inv () +***** error chi2inv (1) +***** error chi2inv (1,2,3) +***** error ... + chi2inv (ones (3), ones (2)) +***** error ... + chi2inv (ones (2), ones (3)) +***** error chi2inv (i, 2) +***** error chi2inv (2, i) +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/dist_fun/logncdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/logncdf.m +***** demo + ## Plot various CDFs from the log-normal distribution + x = 0:0.01:3; + p1 = logncdf (x, 0, 1); + p2 = logncdf (x, 0, 0.5); + p3 = logncdf (x, 0, 0.25); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r") + grid on + legend ({"μ = 0, σ = 1", "μ = 0, σ = 0.5", "μ = 0, σ = 0.25"}, ... + "location", "southeast") + title ("Log-normal CDF") xlabel ("values in x") ylabel ("probability") ***** shared x, y - x = [-1, 0, 1, 2, Inf]; - y = [0, 0, 1/2, 0.76024993890652337, 1]; -***** assert (bisacdf (x, ones (1,5), ones (1,5)), y, eps) -***** assert (bisacdf (x, 1, 1), y, eps) -***** assert (bisacdf (x, 1, ones (1,5)), y, eps) -***** assert (bisacdf (x, ones (1,5), 1), y, eps) -***** assert (bisacdf (x, 1, 1), y, eps) -***** assert (bisacdf (x, 1, [1, 1, NaN, 1, 1]), [y(1:2), NaN, y(4:5)], eps) -***** assert (bisacdf (x, [1, 1, NaN, 1, 1], 1), [y(1:2), NaN, y(4:5)], eps) -***** assert (bisacdf ([x, NaN], 1, 1), [y, NaN], eps) -***** assert (bisacdf (single ([x, NaN]), 1, 1), single ([y, NaN]), eps ("single")) -***** assert (bisacdf ([x, NaN], 1, single (1)), single ([y, NaN]), eps ("single")) -***** assert (bisacdf ([x, NaN], single (1), 1), single ([y, NaN]), eps ("single")) -***** error bisacdf () -***** error bisacdf (1) -***** error bisacdf (1, 2) -***** error ... - bisacdf (1, 2, 3, 4, 5) -***** error bisacdf (1, 2, 3, "tail") -***** error bisacdf (1, 2, 3, 4) -***** error ... - bisacdf (ones (3), ones (2), ones(2)) -***** error ... - bisacdf (ones (2), ones (3), ones(2)) -***** error ... - bisacdf (ones (2), ones (2), ones(3)) -***** error bisacdf (i, 4, 3) -***** error bisacdf (1, i, 3) -***** error bisacdf (1, 4, i) -23 tests, 23 passed, 0 known failure, 0 skipped -[inst/dist_fun/jsupdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/jsupdf.m -***** error jsupdf () -***** error jsupdf (1, 2, 3, 4) -***** error ... - jsupdf (1, ones (2), ones (3)) -3 tests, 3 passed, 0 known failure, 0 skipped + x = [-1, 0, 1, e, Inf]; + y = [0, 0, 0.5, 1/2+1/2*erf(1/2), 1]; +***** assert (logncdf (x, zeros (1,5), sqrt(2)*ones (1,5)), y, eps) +***** assert (logncdf (x, zeros (1,5), sqrt(2)*ones (1,5), []), y, eps) +***** assert (logncdf (x, 0, sqrt(2)*ones (1,5)), y, eps) +***** assert (logncdf (x, zeros (1,5), sqrt(2)), y, eps) +***** assert (logncdf (x, [0 1 NaN 0 1], sqrt(2)), [0 0 NaN y(4:5)], eps) +***** assert (logncdf (x, 0, sqrt(2)*[0 NaN Inf 1 1]), [NaN NaN y(3:5)], eps) +***** assert (logncdf ([x(1:3) NaN x(5)], 0, sqrt(2)), [y(1:3) NaN y(5)], eps) +***** assert (logncdf ([x, NaN], 0, sqrt(2)), [y, NaN], eps) +***** assert (logncdf (single ([x, NaN]), 0, sqrt(2)), single ([y, NaN]), eps ("single")) +***** assert (logncdf ([x, NaN], single (0), sqrt(2)), single ([y, NaN]), eps ("single")) +***** assert (logncdf ([x, NaN], 0, single (sqrt(2))), single ([y, NaN]), eps ("single")) +***** error logncdf () +***** error logncdf (1,2,3,4,5,6,7) +***** error logncdf (1, 2, 3, 4, "uper") +***** error ... + logncdf (ones (3), ones (2), ones (2)) +***** error logncdf (2, 3, 4, [1, 2]) +***** error ... + [p, plo, pup] = logncdf (1, 2, 3) +***** error [p, plo, pup] = ... + logncdf (1, 2, 3, [1, 0; 0, 1], 0) +***** error [p, plo, pup] = ... + logncdf (1, 2, 3, [1, 0; 0, 1], 1.22) +***** error [p, plo, pup] = ... + logncdf (1, 2, 3, [1, 0; 0, 1], "alpha", "upper") +***** error logncdf (i, 2, 2) +***** error logncdf (2, i, 2) +***** error logncdf (2, 2, i) +***** error ... + [p, plo, pup] =logncdf (1, 2, 3, [1, 0; 0, -inf], 0.04) +24 tests, 24 passed, 0 known failure, 0 skipped +[inst/dist_fun/wienrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wienrnd.m +***** error wienrnd (0) +***** error wienrnd (1, 3, -50) +***** error wienrnd (5, 0) +***** error wienrnd (0.4, 3, 5) +***** error wienrnd ([1 4], 3, 5) +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/dist_fun/bisainv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/bisainv.m +***** demo + ## Plot various iCDFs from the Birnbaum-Saunders distribution + p = 0.001:0.001:0.999; + x1 = bisainv (p, 1, 0.5); + x2 = bisainv (p, 1, 1); + x3 = bisainv (p, 1, 2); + x4 = bisainv (p, 1, 5); + x5 = bisainv (p, 1, 10); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-m") + grid on + ylim ([0, 10]) + legend ({"β = 1, γ = 0.5", "β = 1, γ = 1", "β = 1, γ = 2", ... + "β = 1, γ = 5", "β = 1, γ = 10"}, "location", "northwest") + title ("Birnbaum-Saunders iCDF") + xlabel ("probability") + ylabel ("values in x") +***** demo + ## Plot various iCDFs from the Birnbaum-Saunders distribution + p = 0.001:0.001:0.999; + x1 = bisainv (p, 1, 0.3); + x2 = bisainv (p, 2, 0.3); + x3 = bisainv (p, 1, 0.5); + x4 = bisainv (p, 3, 0.5); + x5 = bisainv (p, 5, 0.5); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-m") + grid on + ylim ([0, 10]) + legend ({"β = 1, γ = 0.3", "β = 2, γ = 0.3", "β = 1, γ = 0.5", ... + "β = 3, γ = 0.5", "β = 5, γ = 0.5"}, "location", "northwest") + title ("Birnbaum-Saunders iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p, y, f + f = @(p,b,c) (b * (c * norminv (p) + sqrt (4 + (c * norminv(p))^2))^2) / 4; + p = [-1, 0, 1/4, 1/2, 1, 2]; + y = [NaN, 0, f(1/4, 1, 1), 1, Inf, NaN]; +***** assert (bisainv (p, ones (1,6), ones (1,6)), y) +***** assert (bisainv (p, 1, ones (1,6)), y) +***** assert (bisainv (p, ones (1,6), 1), y) +***** assert (bisainv (p, 1, 1), y) +***** assert (bisainv (p, 1, [1, 1, 1, NaN, 1, 1]), [y(1:3), NaN, y(5:6)]) +***** assert (bisainv (p, [1, 1, 1, NaN, 1, 1], 1), [y(1:3), NaN, y(5:6)]) +***** assert (bisainv ([p, NaN], 1, 1), [y, NaN]) +***** assert (bisainv (single ([p, NaN]), 1, 1), single ([y, NaN]), eps ("single")) +***** assert (bisainv ([p, NaN], 1, single (1)), single ([y, NaN]), eps ("single")) +***** assert (bisainv ([p, NaN], single (1), 1), single ([y, NaN]), eps ("single")) +***** error bisainv () +***** error bisainv (1) +***** error bisainv (1, 2) +***** error bisainv (1, 2, 3, 4) +***** error ... + bisainv (ones (3), ones (2), ones(2)) +***** error ... + bisainv (ones (2), ones (3), ones(2)) +***** error ... + bisainv (ones (2), ones (2), ones(3)) +***** error bisainv (i, 4, 3) +***** error bisainv (1, i, 3) +***** error bisainv (1, 4, i) +20 tests, 20 passed, 0 known failure, 0 skipped [inst/dist_fun/gprnd.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gprnd.m ***** assert (size (gprnd (0, 1, 0)), [1, 1]) @@ -22990,592 +18058,110 @@ ***** error ... gprnd (2, ones (2), 2, 3, 2) 56 tests, 56 passed, 0 known failure, 0 skipped -[inst/dist_fun/nbinrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nbinrnd.m -***** assert (size (nbinrnd (1, 0.5)), [1 1]) -***** assert (size (nbinrnd (1, 0.5 * ones (2,1))), [2, 1]) -***** assert (size (nbinrnd (1, 0.5 * ones (2,2))), [2, 2]) -***** assert (size (nbinrnd (ones (2,1), 0.5)), [2, 1]) -***** assert (size (nbinrnd (ones (2,2), 0.5)), [2, 2]) -***** assert (size (nbinrnd (1, 0.5, 3)), [3, 3]) -***** assert (size (nbinrnd (1, 0.5, [4, 1])), [4, 1]) -***** assert (size (nbinrnd (1, 0.5, 4, 1)), [4, 1]) -***** assert (size (nbinrnd (1, 0.5, 4, 1, 5)), [4, 1, 5]) -***** assert (size (nbinrnd (1, 0.5, 0, 1)), [0, 1]) -***** assert (size (nbinrnd (1, 0.5, 1, 0)), [1, 0]) -***** assert (size (nbinrnd (1, 0.5, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (nbinrnd (1, 0.5)), "double") -***** assert (class (nbinrnd (1, single (0.5))), "single") -***** assert (class (nbinrnd (1, single ([0.5, 0.5]))), "single") -***** assert (class (nbinrnd (single (1), 0.5)), "single") -***** assert (class (nbinrnd (single ([1, 1]), 0.5)), "single") -***** error nbinrnd () -***** error nbinrnd (1) -***** error ... - nbinrnd (ones (3), ones (2)) -***** error ... - nbinrnd (ones (2), ones (3)) -***** error nbinrnd (i, 2, 3) -***** error nbinrnd (1, i, 3) -***** error ... - nbinrnd (1, 2, -1) -***** error ... - nbinrnd (1, 2, 1.2) -***** error ... - nbinrnd (1, 2, ones (2)) -***** error ... - nbinrnd (1, 2, [2 -1 2]) -***** error ... - nbinrnd (1, 2, [2 0 2.5]) -***** error ... - nbinrnd (1, 2, 2, -1, 5) -***** error ... - nbinrnd (1, 2, 2, 1.5, 5) -***** error ... - nbinrnd (2, ones (2), 3) -***** error ... - nbinrnd (2, ones (2), [3, 2]) -***** error ... - nbinrnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/loglpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/loglpdf.m -***** demo - ## Plot various PDFs from the log-logistic distribution - x = 0.001:0.001:2; - y1 = loglpdf (x, log (1), 1/0.5); - y2 = loglpdf (x, log (1), 1); - y3 = loglpdf (x, log (1), 1/2); - y4 = loglpdf (x, log (1), 1/4); - y5 = loglpdf (x, log (1), 1/8); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c", x, y5, "-m") - grid on - ylim ([0,3]) - legend ({"σ = 2 (β = 0.5)", "σ = 1 (β = 1)", "σ = 0.5 (β = 2)", ... - "σ = 0.25 (β = 4)", "σ = 0.125 (β = 8)"}, "location", "northeast") - title ("Log-logistic PDF") - xlabel ("values in x") - ylabel ("density") - text (0.1, 2.8, "μ = 0 (α = 1), values of σ (β) as shown in legend") -***** shared out1, out2 - out1 = [0, 0, 1, 0.2500, 0.1111, 0.0625, 0.0400, 0.0278, 0]; - out2 = [0, 0, 0.0811, 0.0416, 0.0278, 0.0207, 0.0165, 0]; -***** assert (loglpdf ([-1,0,realmin,1:5,Inf], 0, 1), out1, 1e-4) -***** assert (loglpdf ([-1,0,realmin,1:5,Inf], 0, 1), out1, 1e-4) -***** assert (loglpdf ([-1:5,Inf], 1, 3), out2, 1e-4) -***** assert (class (loglpdf (single (1), 2, 3)), "single") -***** assert (class (loglpdf (1, single (2), 3)), "single") -***** assert (class (loglpdf (1, 2, single (3))), "single") -***** error loglpdf (1) -***** error loglpdf (1, 2) -***** error ... - loglpdf (1, ones (2), ones (3)) -***** error ... - loglpdf (ones (2), 1, ones (3)) -***** error ... - loglpdf (ones (2), ones (3), 1) -***** error loglpdf (i, 2, 3) -***** error loglpdf (1, i, 3) -***** error loglpdf (1, 2, i) -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/dist_fun/gpcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gpcdf.m +[inst/dist_fun/poisscdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/poisscdf.m ***** demo - ## Plot various CDFs from the generalized Pareto distribution - x = 0:0.001:5; - p1 = gpcdf (x, 1, 1, 0); - p2 = gpcdf (x, 5, 1, 0); - p3 = gpcdf (x, 20, 1, 0); - p4 = gpcdf (x, 1, 2, 0); - p5 = gpcdf (x, 5, 2, 0); - p6 = gpcdf (x, 20, 2, 0); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", ... - x, p4, "-c", x, p5, "-m", x, p6, "-k") + ## Plot various CDFs from the Poisson distribution + x = 0:20; + p1 = poisscdf (x, 1); + p2 = poisscdf (x, 4); + p3 = poisscdf (x, 10); + plot (x, p1, "*b", x, p2, "*g", x, p3, "*r") grid on - xlim ([0, 5]) - legend ({"k = 1, σ = 1, θ = 0", "k = 5, σ = 1, θ = 0", ... - "k = 20, σ = 1, θ = 0", "k = 1, σ = 2, θ = 0", ... - "k = 5, σ = 2, θ = 0", "k = 20, σ = 2, θ = 0"}, ... - "location", "northwest") - title ("Generalized Pareto CDF") - xlabel ("values in x") + ylim ([0, 1]) + legend ({"λ = 1", "λ = 4", "λ = 10"}, "location", "southeast") + title ("Poisson CDF") + xlabel ("values in x (number of occurences)") ylabel ("probability") -***** shared x, y1, y1u, y2, y2u, y3, y3u - x = [-Inf, -1, 0, 1/2, 1, Inf]; - y1 = [0, 0, 0, 0.3934693402873666, 0.6321205588285577, 1]; - y1u = [1, 1, 1, 0.6065306597126334, 0.3678794411714423, 0]; - y2 = [0, 0, 0, 1/3, 1/2, 1]; - y2u = [1, 1, 1, 2/3, 1/2, 0]; - y3 = [0, 0, 0, 1/2, 1, 1]; - y3u = [1, 1, 1, 1/2, 0, 0]; -***** assert (gpcdf (x, zeros (1,6), ones (1,6), zeros (1,6)), y1, eps) -***** assert (gpcdf (x, 0, 1, zeros (1,6)), y1, eps) -***** assert (gpcdf (x, 0, ones (1,6), 0), y1, eps) -***** assert (gpcdf (x, zeros (1,6), 1, 0), y1, eps) -***** assert (gpcdf (x, 0, 1, 0), y1, eps) -***** assert (gpcdf (x, 0, 1, [0, 0, 0, NaN, 0, 0]), [y1(1:3), NaN, y1(5:6)], eps) -***** assert (gpcdf (x, 0, [1, 1, 1, NaN, 1, 1], 0), [y1(1:3), NaN, y1(5:6)], eps) -***** assert (gpcdf (x, [0, 0, 0, NaN, 0, 0], 1, 0), [y1(1:3), NaN, y1(5:6)], eps) -***** assert (gpcdf ([x(1:3), NaN, x(5:6)], 0, 1, 0), [y1(1:3), NaN, y1(5:6)], eps) -***** assert (gpcdf (x, zeros (1,6), ones (1,6), zeros (1,6), "upper"), y1u, eps) -***** assert (gpcdf (x, 0, 1, zeros (1,6), "upper"), y1u, eps) -***** assert (gpcdf (x, 0, ones (1,6), 0, "upper"), y1u, eps) -***** assert (gpcdf (x, zeros (1,6), 1, 0, "upper"), y1u, eps) -***** assert (gpcdf (x, 0, 1, 0, "upper"), y1u, eps) -***** assert (gpcdf (x, ones (1,6), ones (1,6), zeros (1,6)), y2, eps) -***** assert (gpcdf (x, 1, 1, zeros (1,6)), y2, eps) -***** assert (gpcdf (x, 1, ones (1,6), 0), y2, eps) -***** assert (gpcdf (x, ones (1,6), 1, 0), y2, eps) -***** assert (gpcdf (x, 1, 1, 0), y2, eps) -***** assert (gpcdf (x, 1, 1, [0, 0, 0, NaN, 0, 0]), [y2(1:3), NaN, y2(5:6)], eps) -***** assert (gpcdf (x, 1, [1, 1, 1, NaN, 1, 1], 0), [y2(1:3), NaN, y2(5:6)], eps) -***** assert (gpcdf (x, [1, 1, 1, NaN, 1, 1], 1, 0), [y2(1:3), NaN, y2(5:6)], eps) -***** assert (gpcdf ([x(1:3), NaN, x(5:6)], 1, 1, 0), [y2(1:3), NaN, y2(5:6)], eps) -***** assert (gpcdf (x, ones (1,6), ones (1,6), zeros (1,6), "upper"), y2u, eps) -***** assert (gpcdf (x, 1, 1, zeros (1,6), "upper"), y2u, eps) -***** assert (gpcdf (x, 1, ones (1,6), 0, "upper"), y2u, eps) -***** assert (gpcdf (x, ones (1,6), 1, 0, "upper"), y2u, eps) -***** assert (gpcdf (x, 1, 1, 0, "upper"), y2u, eps) -***** assert (gpcdf (x, 1, 1, [0, 0, 0, NaN, 0, 0], "upper"), ... - [y2u(1:3), NaN, y2u(5:6)], eps) -***** assert (gpcdf (x, 1, [1, 1, 1, NaN, 1, 1], 0, "upper"), ... - [y2u(1:3), NaN, y2u(5:6)], eps) -***** assert (gpcdf (x, [1, 1, 1, NaN, 1, 1], 1, 0, "upper"), ... - [y2u(1:3), NaN, y2u(5:6)], eps) -***** assert (gpcdf ([x(1:3), NaN, x(5:6)], 1, 1, 0, "upper"), ... - [y2u(1:3), NaN, y2u(5:6)], eps) -***** assert (gpcdf (x, -ones (1,6), ones (1,6), zeros (1,6)), y3, eps) -***** assert (gpcdf (x, -1, 1, zeros (1,6)), y3, eps) -***** assert (gpcdf (x, -1, ones (1,6), 0), y3, eps) -***** assert (gpcdf (x, -ones (1,6), 1, 0), y3, eps) -***** assert (gpcdf (x, -1, 1, 0), y3, eps) -***** assert (gpcdf (x, -1, 1, [0, 0, 0, NaN, 0, 0]), [y3(1:3), NaN, y3(5:6)], eps) -***** assert (gpcdf (x, -1, [1, 1, 1, NaN, 1, 1], 0), [y3(1:3), NaN, y3(5:6)], eps) -***** assert (gpcdf (x, [-1, -1, -1, NaN, -1, -1], 1, 0), [y3(1:3), NaN, y3(5:6)], eps) -***** assert (gpcdf ([x(1:3), NaN, x(5:6)], -1, 1, 0), [y3(1:3), NaN, y3(5:6)], eps) -***** assert (gpcdf (x, -ones (1,6), ones (1,6), zeros (1,6), "upper"), y3u, eps) -***** assert (gpcdf (x, -1, 1, zeros (1,6), "upper"), y3u, eps) -***** assert (gpcdf (x, -1, ones (1,6), 0, "upper"), y3u, eps) -***** assert (gpcdf (x, -ones (1,6), 1, 0, "upper"), y3u, eps) -***** assert (gpcdf (x, -1, 1, 0, "upper"), y3u, eps) -***** assert (gpcdf (x, -1, 1, [0, 0, 0, NaN, 0, 0], "upper"), ... - [y3u(1:3), NaN, y3u(5:6)], eps) -***** assert (gpcdf (x, -1, [1, 1, 1, NaN, 1, 1], 0, "upper"), ... - [y3u(1:3), NaN, y3u(5:6)], eps) -***** assert (gpcdf (x, [-1, -1, -1, NaN, -1, -1], 1, 0, "upper"), ... - [y3u(1:3), NaN, y3u(5:6)], eps) -***** assert (gpcdf ([x(1:3), NaN, x(5:6)], -1, 1, 0, "upper"), ... - [y3u(1:3), NaN, y3u(5:6)], eps) -***** assert (gpcdf (single ([x, NaN]), 0, 1, 0), single ([y1, NaN]), eps("single")) -***** assert (gpcdf ([x, NaN], 0, 1, single (0)), single ([y1, NaN]), eps("single")) -***** assert (gpcdf ([x, NaN], 0, single (1), 0), single ([y1, NaN]), eps("single")) -***** assert (gpcdf ([x, NaN], single (0), 1, 0), single ([y1, NaN]), eps("single")) -***** assert (gpcdf (single ([x, NaN]), 1, 1, 0), single ([y2, NaN]), eps("single")) -***** assert (gpcdf ([x, NaN], 1, 1, single (0)), single ([y2, NaN]), eps("single")) -***** assert (gpcdf ([x, NaN], 1, single (1), 0), single ([y2, NaN]), eps("single")) -***** assert (gpcdf ([x, NaN], single (1), 1, 0), single ([y2, NaN]), eps("single")) -***** assert (gpcdf (single ([x, NaN]), -1, 1, 0), single ([y3, NaN]), eps("single")) -***** assert (gpcdf ([x, NaN], -1, 1, single (0)), single ([y3, NaN]), eps("single")) -***** assert (gpcdf ([x, NaN], -1, single (1), 0), single ([y3, NaN]), eps("single")) -***** assert (gpcdf ([x, NaN], single (-1), 1, 0), single ([y3, NaN]), eps("single")) -***** error gpcdf () -***** error gpcdf (1) -***** error gpcdf (1, 2) -***** error gpcdf (1, 2, 3) -***** error gpcdf (1, 2, 3, 4, "tail") -***** error gpcdf (1, 2, 3, 4, 5) -***** error ... - gpcdf (ones (3), ones (2), ones(2), ones(2)) -***** error ... - gpcdf (ones (2), ones (3), ones(2), ones(2)) -***** error ... - gpcdf (ones (2), ones (2), ones(3), ones(2)) -***** error ... - gpcdf (ones (2), ones (2), ones(2), ones(3)) -***** error gpcdf (i, 2, 3, 4) -***** error gpcdf (1, i, 3, 4) -***** error gpcdf (1, 2, i, 4) -***** error gpcdf (1, 2, 3, i) -76 tests, 76 passed, 0 known failure, 0 skipped -[inst/dist_fun/vmrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/vmrnd.m -***** assert (size (vmrnd (1, 1)), [1 1]) -***** assert (size (vmrnd (1, ones (2,1))), [2, 1]) -***** assert (size (vmrnd (1, ones (2,2))), [2, 2]) -***** assert (size (vmrnd (ones (2,1), 1)), [2, 1]) -***** assert (size (vmrnd (ones (2,2), 1)), [2, 2]) -***** assert (size (vmrnd (1, 1, 3)), [3, 3]) -***** assert (size (vmrnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (vmrnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (vmrnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (vmrnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (vmrnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (vmrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (vmrnd (1, 1)), "double") -***** assert (class (vmrnd (1, single (1))), "single") -***** assert (class (vmrnd (1, single ([1, 1]))), "single") -***** assert (class (vmrnd (single (1), 1)), "single") -***** assert (class (vmrnd (single ([1, 1]), 1)), "single") -***** error vmrnd () -***** error vmrnd (1) -***** error ... - vmrnd (ones (3), ones (2)) -***** error ... - vmrnd (ones (2), ones (3)) -***** error vmrnd (i, 2, 3) -***** error vmrnd (1, i, 3) -***** error ... - vmrnd (1, 2, -1) -***** error ... - vmrnd (1, 2, 1.2) -***** error ... - vmrnd (1, 2, ones (2)) -***** error ... - vmrnd (1, 2, [2 -1 2]) -***** error ... - vmrnd (1, 2, [2 0 2.5]) -***** error ... - vmrnd (1, 2, 2, -1, 5) -***** error ... - vmrnd (1, 2, 2, 1.5, 5) -***** error ... - vmrnd (2, ones (2), 3) -***** error ... - vmrnd (2, ones (2), [3, 2]) -***** error ... - vmrnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/logninv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/logninv.m -***** demo - ## Plot various iCDFs from the log-normal distribution - p = 0.001:0.001:0.999; - x1 = logninv (p, 0, 1); - x2 = logninv (p, 0, 0.5); - x3 = logninv (p, 0, 0.25); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r") - grid on - ylim ([0, 3]) - legend ({"μ = 0, σ = 1", "μ = 0, σ = 0.5", "μ = 0, σ = 0.25"}, ... - "location", "northwest") - title ("Log-normal iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p - p = [-1 0 0.5 1 2]; -***** assert (logninv (p, ones (1,5), ones (1,5)), [NaN 0 e Inf NaN]) -***** assert (logninv (p, 1, ones (1,5)), [NaN 0 e Inf NaN]) -***** assert (logninv (p, ones (1,5), 1), [NaN 0 e Inf NaN]) -***** assert (logninv (p, [1 1 NaN 0 1], 1), [NaN 0 NaN Inf NaN]) -***** assert (logninv (p, 1, [1 0 NaN Inf 1]), [NaN NaN NaN NaN NaN]) -***** assert (logninv ([p(1:2) NaN p(4:5)], 1, 2), [NaN 0 NaN Inf NaN]) -***** assert (logninv ([p, NaN], 1, 1), [NaN 0 e Inf NaN NaN]) -***** assert (logninv (single ([p, NaN]), 1, 1), single ([NaN 0 e Inf NaN NaN])) -***** assert (logninv ([p, NaN], single (1), 1), single ([NaN 0 e Inf NaN NaN])) -***** assert (logninv ([p, NaN], 1, single (1)), single ([NaN 0 e Inf NaN NaN])) -***** error logninv () -***** error logninv (1,2,3,4) -***** error logninv (ones (3), ones (2), ones (2)) -***** error logninv (ones (2), ones (3), ones (2)) -***** error logninv (ones (2), ones (2), ones (3)) -***** error logninv (i, 2, 2) -***** error logninv (2, i, 2) -***** error logninv (2, 2, i) -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/dist_fun/gevpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gevpdf.m -***** demo - ## Plot various PDFs from the generalized extreme value distribution - x = -1:0.001:10; - y1 = gevpdf (x, 1, 1, 1); - y2 = gevpdf (x, 0.5, 1, 1); - y3 = gevpdf (x, 1, 1, 5); - y4 = gevpdf (x, 1, 2, 5); - y5 = gevpdf (x, 1, 5, 5); - y6 = gevpdf (x, 1, 0.5, 5); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", ... - x, y4, "-c", x, y5, "-m", x, y6, "-k") - grid on - xlim ([-1, 10]) - ylim ([0, 1.1]) - legend ({"k = 1, σ = 1, μ = 1", "k = 0.5, σ = 1, μ = 1", ... - "k = 1, σ = 1, μ = 5", "k = 1, σ = 2, μ = 5", ... - "k = 1, σ = 5, μ = 5", "k = 1, σ = 0.5, μ = 5"}, ... - "location", "northeast") - title ("Generalized extreme value PDF") - xlabel ("values in x") - ylabel ("density") -***** test - x = 0:0.5:2.5; - sigma = 1:6; - k = 1; - mu = 0; - y = gevpdf (x, k, sigma, mu); - expected_y = [0.367879 0.143785 0.088569 0.063898 0.049953 0.040997]; - assert (y, expected_y, 0.001); -***** test - x = -0.5:0.5:2.5; - sigma = 0.5; - k = 1; - mu = 0; - y = gevpdf (x, k, sigma, mu); - expected_y = [0 0.735759 0.303265 0.159229 0.097350 0.065498 0.047027]; - assert (y, expected_y, 0.001); -***** test # check for continuity for k near 0 - x = 1; - sigma = 0.5; - k = -0.03:0.01:0.03; - mu = 0; - y = gevpdf (x, k, sigma, mu); - expected_y = [0.23820 0.23764 0.23704 0.23641 0.23576 0.23508 0.23438]; - assert (y, expected_y, 0.001); -***** error gevpdf () -***** error gevpdf (1) -***** error gevpdf (1, 2) -***** error gevpdf (1, 2, 3) -***** error ... - gevpdf (ones (3), ones (2), ones(2), ones(2)) -***** error ... - gevpdf (ones (2), ones (3), ones(2), ones(2)) -***** error ... - gevpdf (ones (2), ones (2), ones(3), ones(2)) -***** error ... - gevpdf (ones (2), ones (2), ones(2), ones(3)) -***** error gevpdf (i, 2, 3, 4) -***** error gevpdf (1, i, 3, 4) -***** error gevpdf (1, 2, i, 4) -***** error gevpdf (1, 2, 3, i) +***** shared x, y + x = [-1 0 1 2 Inf]; + y = [0, gammainc(1, (x(2:4) +1), "upper"), 1]; +***** assert (poisscdf (x, ones (1,5)), y) +***** assert (poisscdf (x, 1), y) +***** assert (poisscdf (x, [1 0 NaN 1 1]), [y(1) 1 NaN y(4:5)]) +***** assert (poisscdf ([x(1:2) NaN Inf x(5)], 1), [y(1:2) NaN 1 y(5)]) +***** assert (poisscdf ([x, NaN], 1), [y, NaN]) +***** assert (poisscdf (single ([x, NaN]), 1), single ([y, NaN]), eps ("single")) +***** assert (poisscdf ([x, NaN], single (1)), single ([y, NaN]), eps ("single")) +***** error poisscdf () +***** error poisscdf (1) +***** error poisscdf (1, 2, 3) +***** error poisscdf (1, 2, "tail") +***** error ... + poisscdf (ones (3), ones (2)) +***** error ... + poisscdf (ones (2), ones (3)) +***** error poisscdf (i, 2) +***** error poisscdf (2, i) 15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fun/nbininv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nbininv.m +[inst/dist_fun/ncx2inv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncx2inv.m ***** demo - ## Plot various iCDFs from the negative binomial distribution + ## Plot various iCDFs from the noncentral chi-squared distribution p = 0.001:0.001:0.999; - x1 = nbininv (p, 2, 0.15); - x2 = nbininv (p, 5, 0.2); - x3 = nbininv (p, 4, 0.4); - x4 = nbininv (p, 10, 0.3); - plot (p, x1, "-r", p, x2, "-g", p, x3, "-k", p, x4, "-m") + x1 = ncx2inv (p, 2, 1); + x2 = ncx2inv (p, 2, 2); + x3 = ncx2inv (p, 2, 3); + x4 = ncx2inv (p, 4, 1); + x5 = ncx2inv (p, 4, 2); + x6 = ncx2inv (p, 4, 3); + plot (p, x1, "-r", p, x2, "-g", p, x3, "-k", ... + p, x4, "-m", p, x5, "-c", p, x6, "-y") grid on - ylim ([0, 40]) - legend ({"r = 2, ps = 0.15", "r = 5, ps = 0.2", "r = 4, p = 0.4", ... - "r = 10, ps = 0.3"}, "location", "northwest") - title ("Negative binomial iCDF") + ylim ([0, 10]) + legend ({"df = 2, λ = 1", "df = 2, λ = 2", ... + "df = 2, λ = 3", "df = 4, λ = 1", ... + "df = 4, λ = 2", "df = 4, λ = 3"}, "location", "northwest") + title ("Noncentral chi-squared iCDF") xlabel ("probability") - ylabel ("values in x (number of failures)") -***** shared p - p = [-1 0 3/4 1 2]; -***** assert (nbininv (p, ones (1,5), 0.5*ones (1,5)), [NaN 0 1 Inf NaN]) -***** assert (nbininv (p, 1, 0.5*ones (1,5)), [NaN 0 1 Inf NaN]) -***** assert (nbininv (p, ones (1,5), 0.5), [NaN 0 1 Inf NaN]) -***** assert (nbininv (p, [1 0 NaN Inf 1], 0.5), [NaN NaN NaN NaN NaN]) -***** assert (nbininv (p, [1 0 1.5 Inf 1], 0.5), [NaN NaN 2 NaN NaN]) -***** assert (nbininv (p, 1, 0.5*[1 -Inf NaN Inf 1]), [NaN NaN NaN NaN NaN]) -***** assert (nbininv ([p(1:2) NaN p(4:5)], 1, 0.5), [NaN 0 NaN Inf NaN]) -***** assert (nbininv ([p, NaN], 1, 0.5), [NaN 0 1 Inf NaN NaN]) -***** assert (nbininv (single ([p, NaN]), 1, 0.5), single ([NaN 0 1 Inf NaN NaN])) -***** assert (nbininv ([p, NaN], single (1), 0.5), single ([NaN 0 1 Inf NaN NaN])) -***** assert (nbininv ([p, NaN], 1, single (0.5)), single ([NaN 0 1 Inf NaN NaN])) -***** shared y, tol - y = magic (3) + 1; - tol = 1; -***** assert (nbininv (nbincdf (1:10, 3, 0.1), 3, 0.1), 1:10, tol) -***** assert (nbininv (nbincdf (1:10, 3./(1:10), 0.1), 3./(1:10), 0.1), 1:10, tol) -***** assert (nbininv (nbincdf (y, 3./y, 1./y), 3./y, 1./y), y, tol) -***** error nbininv () -***** error nbininv (1) -***** error nbininv (1, 2) -***** error ... - nbininv (ones (3), ones (2), ones (2)) -***** error ... - nbininv (ones (2), ones (3), ones (2)) -***** error ... - nbininv (ones (2), ones (2), ones (3)) -***** error nbininv (i, 2, 2) -***** error nbininv (2, i, 2) -***** error nbininv (2, 2, i) -23 tests, 23 passed, 0 known failure, 0 skipped -[inst/dist_fun/gumbelcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gumbelcdf.m -***** demo - ## Plot various CDFs from the Gumbel distribution - x = -5:0.01:20; - p1 = gumbelcdf (x, 0.5, 2); - p2 = gumbelcdf (x, 1.0, 2); - p3 = gumbelcdf (x, 1.5, 3); - p4 = gumbelcdf (x, 3.0, 4); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") - grid on - legend ({"μ = 0.5, β = 2", "μ = 1.0, β = 2", ... - "μ = 1.5, β = 3", "μ = 3.0, β = 4"}, "location", "southeast") - title ("Gumbel CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y - x = [-Inf, 1, 2, Inf]; - y = [0, 0.3679, 0.6922, 1]; -***** assert (gumbelcdf (x, ones (1,4), ones (1,4)), y, 1e-4) -***** assert (gumbelcdf (x, 1, ones (1,4)), y, 1e-4) -***** assert (gumbelcdf (x, ones (1,4), 1), y, 1e-4) -***** assert (gumbelcdf (x, [0, -Inf, NaN, Inf], 1), [0, 1, NaN, NaN], 1e-4) -***** assert (gumbelcdf (x, 1, [Inf, NaN, -1, 0]), [NaN, NaN, NaN, NaN], 1e-4) -***** assert (gumbelcdf ([x(1:2), NaN, x(4)], 1, 1), [y(1:2), NaN, y(4)], 1e-4) -***** assert (gumbelcdf (x, "upper"), [1, 0.3078, 0.1266, 0], 1e-4) -***** assert (gumbelcdf ([x, NaN], 1, 1), [y, NaN], 1e-4) -***** assert (gumbelcdf (single ([x, NaN]), 1, 1), single ([y, NaN]), 1e-4) -***** assert (gumbelcdf ([x, NaN], single (1), 1), single ([y, NaN]), 1e-4) -***** assert (gumbelcdf ([x, NaN], 1, single (1)), single ([y, NaN]), 1e-4) -***** error gumbelcdf () -***** error gumbelcdf (1,2,3,4,5,6,7) -***** error gumbelcdf (1, 2, 3, 4, "uper") -***** error ... - gumbelcdf (ones (3), ones (2), ones (2)) -***** error gumbelcdf (2, 3, 4, [1, 2]) -***** error ... - [p, plo, pup] = gumbelcdf (1, 2, 3) -***** error [p, plo, pup] = ... - gumbelcdf (1, 2, 3, [1, 0; 0, 1], 0) -***** error [p, plo, pup] = ... - gumbelcdf (1, 2, 3, [1, 0; 0, 1], 1.22) -***** error [p, plo, pup] = ... - gumbelcdf (1, 2, 3, [1, 0; 0, 1], "alpha", "upper") -***** error gumbelcdf (i, 2, 2) -***** error gumbelcdf (2, i, 2) -***** error gumbelcdf (2, 2, i) -***** error ... - [p, plo, pup] = gumbelcdf (1, 2, 3, [1, 0; 0, -inf], 0.04) -24 tests, 24 passed, 0 known failure, 0 skipped -[inst/dist_fun/wblinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wblinv.m + ylabel ("values in x") ***** demo - ## Plot various iCDFs from the Weibull distribution + ## Compare the noncentral chi-squared CDF with LAMBDA = 2 to the + ## chi-squared CDF with the same number of degrees of freedom (4). + p = 0.001:0.001:0.999; - x1 = wblinv (p, 1, 0.5); - x2 = wblinv (p, 1, 1); - x3 = wblinv (p, 1, 1.5); - x4 = wblinv (p, 1, 5); - plot (p, x1, "-b", p, x2, "-r", p, x3, "-m", p, x4, "-g") - ylim ([0, 2.5]) + x1 = ncx2inv (p, 4, 2); + x2 = chi2inv (p, 4); + plot (p, x1, "-", p, x2, "-"); grid on - legend ({"λ = 1, k = 0.5", "λ = 1, k = 1", ... - "λ = 1, k = 1.5", "λ = 1, k = 5"}, "location", "northwest") - title ("Weibull iCDF") + ylim ([0, 10]) + legend ({"Noncentral χ^2(4,2)", "χ^2(4)"}, "location", "northwest") + title ("Noncentral chi-squared vs chi-squared quantile functions") xlabel ("probability") - ylabel ("x") -***** shared p - p = [-1 0 0.63212055882855778 1 2]; -***** assert (wblinv (p, ones (1,5), ones (1,5)), [NaN 0 1 Inf NaN], eps) -***** assert (wblinv (p, 1, ones (1,5)), [NaN 0 1 Inf NaN], eps) -***** assert (wblinv (p, ones (1,5), 1), [NaN 0 1 Inf NaN], eps) -***** assert (wblinv (p, [1 -1 NaN Inf 1], 1), [NaN NaN NaN NaN NaN]) -***** assert (wblinv (p, 1, [1 -1 NaN Inf 1]), [NaN NaN NaN NaN NaN]) -***** assert (wblinv ([p(1:2) NaN p(4:5)], 1, 1), [NaN 0 NaN Inf NaN]) -***** assert (wblinv ([p, NaN], 1, 1), [NaN 0 1 Inf NaN NaN], eps) -***** assert (wblinv (single ([p, NaN]), 1, 1), single ([NaN 0 1 Inf NaN NaN]), eps ("single")) -***** assert (wblinv ([p, NaN], single (1), 1), single ([NaN 0 1 Inf NaN NaN]), eps ("single")) -***** assert (wblinv ([p, NaN], 1, single (1)), single ([NaN 0 1 Inf NaN NaN]), eps ("single")) -***** error wblinv () -***** error wblinv (1,2,3,4) -***** error ... - wblinv (ones (3), ones (2), ones (2)) -***** error ... - wblinv (ones (2), ones (3), ones (2)) -***** error ... - wblinv (ones (2), ones (2), ones (3)) -***** error wblinv (i, 2, 2) -***** error wblinv (2, i, 2) -***** error wblinv (2, 2, i) -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/dist_fun/unifpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unifpdf.m -***** demo - ## Plot various PDFs from the continuous uniform distribution - x = 0:0.001:10; - y1 = unifpdf (x, 2, 5); - y2 = unifpdf (x, 3, 9); - plot (x, y1, "-b", x, y2, "-g") - grid on - xlim ([0, 10]) - ylim ([0, 0.4]) - legend ({"a = 2, b = 5", "a = 3, b = 9"}, "location", "northeast") - title ("Continuous uniform PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-1 0 0.5 1 2] + 1; - y = [0 1 1 1 0]; -***** assert (unifpdf (x, ones (1,5), 2*ones (1,5)), y) -***** assert (unifpdf (x, 1, 2*ones (1,5)), y) -***** assert (unifpdf (x, ones (1,5), 2), y) -***** assert (unifpdf (x, [2 NaN 1 1 1], 2), [NaN NaN y(3:5)]) -***** assert (unifpdf (x, 1, 2*[0 NaN 1 1 1]), [NaN NaN y(3:5)]) -***** assert (unifpdf ([x, NaN], 1, 2), [y, NaN]) -***** assert (unifpdf (x, 0, 1), [1 1 0 0 0]) -***** assert (unifpdf (single ([x, NaN]), 1, 2), single ([y, NaN])) -***** assert (unifpdf (single ([x, NaN]), single (1), 2), single ([y, NaN])) -***** assert (unifpdf ([x, NaN], 1, single (2)), single ([y, NaN])) -***** error unifpdf () -***** error unifpdf (1) -***** error unifpdf (1, 2) -***** error ... - unifpdf (ones (3), ones (2), ones (2)) -***** error ... - unifpdf (ones (2), ones (3), ones (2)) -***** error ... - unifpdf (ones (2), ones (2), ones (3)) -***** error unifpdf (i, 2, 2) -***** error unifpdf (2, i, 2) -***** error unifpdf (2, 2, i) -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/dist_fun/logncdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/logncdf.m -***** demo - ## Plot various CDFs from the log-normal distribution - x = 0:0.01:3; - p1 = logncdf (x, 0, 1); - p2 = logncdf (x, 0, 0.5); - p3 = logncdf (x, 0, 0.25); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r") - grid on - legend ({"μ = 0, σ = 1", "μ = 0, σ = 0.5", "μ = 0, σ = 0.25"}, ... - "location", "southeast") - title ("Log-normal CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y - x = [-1, 0, 1, e, Inf]; - y = [0, 0, 0.5, 1/2+1/2*erf(1/2), 1]; -***** assert (logncdf (x, zeros (1,5), sqrt(2)*ones (1,5)), y, eps) -***** assert (logncdf (x, zeros (1,5), sqrt(2)*ones (1,5), []), y, eps) -***** assert (logncdf (x, 0, sqrt(2)*ones (1,5)), y, eps) -***** assert (logncdf (x, zeros (1,5), sqrt(2)), y, eps) -***** assert (logncdf (x, [0 1 NaN 0 1], sqrt(2)), [0 0 NaN y(4:5)], eps) -***** assert (logncdf (x, 0, sqrt(2)*[0 NaN Inf 1 1]), [NaN NaN y(3:5)], eps) -***** assert (logncdf ([x(1:3) NaN x(5)], 0, sqrt(2)), [y(1:3) NaN y(5)], eps) -***** assert (logncdf ([x, NaN], 0, sqrt(2)), [y, NaN], eps) -***** assert (logncdf (single ([x, NaN]), 0, sqrt(2)), single ([y, NaN]), eps ("single")) -***** assert (logncdf ([x, NaN], single (0), sqrt(2)), single ([y, NaN]), eps ("single")) -***** assert (logncdf ([x, NaN], 0, single (sqrt(2))), single ([y, NaN]), eps ("single")) -***** error logncdf () -***** error logncdf (1,2,3,4,5,6,7) -***** error logncdf (1, 2, 3, 4, "uper") -***** error ... - logncdf (ones (3), ones (2), ones (2)) -***** error logncdf (2, 3, 4, [1, 2]) -***** error ... - [p, plo, pup] = logncdf (1, 2, 3) -***** error [p, plo, pup] = ... - logncdf (1, 2, 3, [1, 0; 0, 1], 0) -***** error [p, plo, pup] = ... - logncdf (1, 2, 3, [1, 0; 0, 1], 1.22) -***** error [p, plo, pup] = ... - logncdf (1, 2, 3, [1, 0; 0, 1], "alpha", "upper") -***** error logncdf (i, 2, 2) -***** error logncdf (2, i, 2) -***** error logncdf (2, 2, i) -***** error ... - [p, plo, pup] =logncdf (1, 2, 3, [1, 0; 0, -inf], 0.04) -24 tests, 24 passed, 0 known failure, 0 skipped + ylabel ("values in x") +***** test + x = [0,0.3443,0.7226,1.1440,1.6220,2.1770,2.8436,3.6854,4.8447,6.7701,Inf]; + assert (ncx2inv ([0:0.1:1], 2, 1), x, 1e-4); +***** test + x = [0,0.8295,1.6001,2.3708,3.1785,4.0598,5.0644,6.2765,7.8763,10.4199,Inf]; + assert (ncx2inv ([0:0.1:1], 2, 3), x, 1e-4); +***** test + x = [0,0.5417,1.3483,2.1796,3.0516,4.0003,5.0777,6.3726,8.0748,10.7686,Inf]; + assert (ncx2inv ([0:0.1:1], 1, 4), x, 1e-4); +***** test + x = [0.1808, 0.6456, 1.1842, 1.7650, 2.3760, 3.0105]; + assert (ncx2inv (0.05, [1, 2, 3, 4, 5, 6], 4), x, 1e-4); +***** test + x = [0.4887, 0.6699, 0.9012, 1.1842, 1.5164, 1.8927]; + assert (ncx2inv (0.05, 3, [1, 2, 3, 4, 5, 6]), x, 1e-4); +***** test + x = [1.3941, 1.6824, 2.0103, 2.3760, NaN, 3.2087]; + assert (ncx2inv (0.05, 5, [1, 2, 3, 4, -1, 6]), x, 1e-4); +***** test + assert (ncx2inv (0.996, 5, 8), 35.51298862765576, 2e-13); +***** error ncx2inv () +***** error ncx2inv (1) +***** error ncx2inv (1, 2) +***** error ... + ncx2inv (ones (3), ones (2), ones (2)) +***** error ... + ncx2inv (ones (2), ones (3), ones (2)) +***** error ... + ncx2inv (ones (2), ones (2), ones (3)) +***** error ncx2inv (i, 2, 2) +***** error ncx2inv (2, i, 2) +***** error ncx2inv (2, 2, i) +16 tests, 16 passed, 0 known failure, 0 skipped [inst/dist_fun/ncx2pdf.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncx2pdf.m ***** demo @@ -23642,256 +18228,463 @@ ***** error ncx2pdf (2, i, 2) ***** error ncx2pdf (2, 2, i) 16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fun/geocdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/geocdf.m -***** demo - ## Plot various CDFs from the geometric distribution - x = 0:10; - p1 = geocdf (x, 0.2); - p2 = geocdf (x, 0.5); - p3 = geocdf (x, 0.7); - plot (x, p1, "*b", x, p2, "*g", x, p3, "*r") - grid on - xlim ([0, 10]) - legend ({"ps = 0.2", "ps = 0.5", "ps = 0.7"}, "location", "southeast") - title ("Geometric CDF") - xlabel ("values in x (number of failures)") - ylabel ("probability") -***** test - p = geocdf ([1, 2, 3, 4], 0.25); - assert (p(1), 0.4375000000, 1e-14); - assert (p(2), 0.5781250000, 1e-14); - assert (p(3), 0.6835937500, 1e-14); - assert (p(4), 0.7626953125, 1e-14); -***** test - p = geocdf ([1, 2, 3, 4], 0.25, "upper"); - assert (p(1), 0.5625000000, 1e-14); - assert (p(2), 0.4218750000, 1e-14); - assert (p(3), 0.3164062500, 1e-14); - assert (p(4), 0.2373046875, 1e-14); -***** shared x, p - x = [-1 0 1 Inf]; - p = [0 0.5 0.75 1]; -***** assert (geocdf (x, 0.5*ones (1,4)), p) -***** assert (geocdf (x, 0.5), p) -***** assert (geocdf (x, 0.5*[-1 NaN 4 1]), [NaN NaN NaN p(4)]) -***** assert (geocdf ([x(1:2) NaN x(4)], 0.5), [p(1:2) NaN p(4)]) -***** assert (geocdf ([x, NaN], 0.5), [p, NaN]) -***** assert (geocdf (single ([x, NaN]), 0.5), single ([p, NaN])) -***** assert (geocdf ([x, NaN], single (0.5)), single ([p, NaN])) -***** error geocdf () -***** error geocdf (1) -***** error ... - geocdf (ones (3), ones (2)) -***** error ... - geocdf (ones (2), ones (3)) -***** error geocdf (i, 2) -***** error geocdf (2, i) -***** error geocdf (2, 3, "tail") -***** error geocdf (2, 3, 5) -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/dist_fun/cauchyinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/cauchyinv.m +[inst/dist_fun/wblrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wblrnd.m +***** assert (size (wblrnd (1, 1)), [1 1]) +***** assert (size (wblrnd (1, ones (2,1))), [2, 1]) +***** assert (size (wblrnd (1, ones (2,2))), [2, 2]) +***** assert (size (wblrnd (ones (2,1), 1)), [2, 1]) +***** assert (size (wblrnd (ones (2,2), 1)), [2, 2]) +***** assert (size (wblrnd (1, 1, 3)), [3, 3]) +***** assert (size (wblrnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (wblrnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (wblrnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (wblrnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (wblrnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (wblrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (wblrnd (1, 1)), "double") +***** assert (class (wblrnd (1, single (1))), "single") +***** assert (class (wblrnd (1, single ([1, 1]))), "single") +***** assert (class (wblrnd (single (1), 1)), "single") +***** assert (class (wblrnd (single ([1, 1]), 1)), "single") +***** error wblrnd () +***** error wblrnd (1) +***** error ... + wblrnd (ones (3), ones (2)) +***** error ... + wblrnd (ones (2), ones (3)) +***** error wblrnd (i, 2, 3) +***** error wblrnd (1, i, 3) +***** error ... + wblrnd (1, 2, -1) +***** error ... + wblrnd (1, 2, 1.2) +***** error ... + wblrnd (1, 2, ones (2)) +***** error ... + wblrnd (1, 2, [2 -1 2]) +***** error ... + wblrnd (1, 2, [2 0 2.5]) +***** error ... + wblrnd (1, 2, 2, -1, 5) +***** error ... + wblrnd (1, 2, 2, 1.5, 5) +***** error ... + wblrnd (2, ones (2), 3) +***** error ... + wblrnd (2, ones (2), [3, 2]) +***** error ... + wblrnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/raylinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/raylinv.m ***** demo - ## Plot various iCDFs from the Cauchy distribution + ## Plot various iCDFs from the Rayleigh distribution p = 0.001:0.001:0.999; - x1 = cauchyinv (p, 0, 0.5); - x2 = cauchyinv (p, 0, 1); - x3 = cauchyinv (p, 0, 2); - x4 = cauchyinv (p, -2, 1); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") + x1 = raylinv (p, 0.5); + x2 = raylinv (p, 1); + x3 = raylinv (p, 2); + x4 = raylinv (p, 3); + x5 = raylinv (p, 4); + plot (p, x1, "-b", p, x2, "g", p, x3, "-r", p, x4, "-m", p, x5, "-k") grid on - ylim ([-5, 5]) - legend ({"x0 = 0, γ = 0.5", "x0 = 0, γ = 1", ... - "x0 = 0, γ = 2", "x0 = -2, γ = 1"}, "location", "northwest") - title ("Cauchy iCDF") + ylim ([0, 10]) + legend ({"σ = 0,5", "σ = 1", "σ = 2", ... + "σ = 3", "σ = 4"}, "location", "northwest") + title ("Rayleigh iCDF") xlabel ("probability") ylabel ("values in x") -***** shared p - p = [-1 0 0.5 1 2]; -***** assert (cauchyinv (p, ones (1,5), 2 * ones (1,5)), [NaN -Inf 1 Inf NaN], eps) -***** assert (cauchyinv (p, 1, 2 * ones (1,5)), [NaN -Inf 1 Inf NaN], eps) -***** assert (cauchyinv (p, ones (1,5), 2), [NaN -Inf 1 Inf NaN], eps) -***** assert (cauchyinv (p, [1 -Inf NaN Inf 1], 2), [NaN NaN NaN NaN NaN]) -***** assert (cauchyinv (p, 1, 2 * [1 0 NaN Inf 1]), [NaN NaN NaN NaN NaN]) -***** assert (cauchyinv ([p(1:2) NaN p(4:5)], 1, 2), [NaN -Inf NaN Inf NaN]) -***** assert (cauchyinv ([p, NaN], 1, 2), [NaN -Inf 1 Inf NaN NaN], eps) -***** assert (cauchyinv (single ([p, NaN]), 1, 2), ... - single ([NaN -Inf 1 Inf NaN NaN]), eps ("single")) -***** assert (cauchyinv ([p, NaN], single (1), 2), ... - single ([NaN -Inf 1 Inf NaN NaN]), eps ("single")) -***** assert (cauchyinv ([p, NaN], 1, single (2)), ... - single ([NaN -Inf 1 Inf NaN NaN]), eps ("single")) -***** error cauchyinv () -***** error cauchyinv (1) -***** error ... - cauchyinv (1, 2) -***** error cauchyinv (1, 2, 3, 4) -***** error ... - cauchyinv (ones (3), ones (2), ones(2)) -***** error ... - cauchyinv (ones (2), ones (3), ones(2)) -***** error ... - cauchyinv (ones (2), ones (2), ones(3)) -***** error cauchyinv (i, 4, 3) -***** error cauchyinv (1, i, 3) -***** error cauchyinv (1, 4, i) -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/dist_fun/burrcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/burrcdf.m +***** test + p = 0:0.1:0.5; + sigma = 1:6; + x = raylinv (p, sigma); + expected_x = [0.0000, 0.9181, 2.0041, 3.3784, 5.0538, 7.0645]; + assert (x, expected_x, 0.001); +***** test + p = 0:0.1:0.5; + x = raylinv (p, 0.5); + expected_x = [0.0000, 0.2295, 0.3340, 0.4223, 0.5054, 0.5887]; + assert (x, expected_x, 0.001); +***** error raylinv () +***** error raylinv (1) +***** error ... + raylinv (ones (3), ones (2)) +***** error ... + raylinv (ones (2), ones (3)) +***** error raylinv (i, 2) +***** error raylinv (2, i) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/dist_fun/fcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/fcdf.m ***** demo - ## Plot various CDFs from the Burr type XII distribution - x = 0.001:0.001:5; - p1 = burrcdf (x, 1, 1, 1); - p2 = burrcdf (x, 1, 1, 2); - p3 = burrcdf (x, 1, 1, 3); - p4 = burrcdf (x, 1, 2, 1); - p5 = burrcdf (x, 1, 3, 1); - p6 = burrcdf (x, 1, 0.5, 2); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", ... - x, p4, "-c", x, p5, "-m", x, p6, "-k") + ## Plot various CDFs from the F distribution + x = 0.01:0.01:4; + p1 = fcdf (x, 1, 2); + p2 = fcdf (x, 2, 1); + p3 = fcdf (x, 5, 2); + p4 = fcdf (x, 10, 1); + p5 = fcdf (x, 100, 100); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-m") grid on - legend ({"λ = 1, c = 1, k = 1", "λ = 1, c = 1, k = 2", ... - "λ = 1, c = 1, k = 3", "λ = 1, c = 2, k = 1", ... - "λ = 1, c = 3, k = 1", "λ = 1, c = 0.5, k = 2"}, ... - "location", "southeast") - title ("Burr type XII CDF") + legend ({"df1 = 1, df2 = 2", "df1 = 2, df2 = 1", ... + "df1 = 5, df2 = 2", "df1 = 10, df2 = 1", ... + "df1 = 100, df2 = 100"}, "location", "southeast") + title ("F CDF") xlabel ("values in x") ylabel ("probability") ***** shared x, y - x = [-1, 0, 1, 2, Inf]; - y = [0, 0, 1/2, 2/3, 1]; -***** assert (burrcdf (x, ones(1,5), ones (1,5), ones (1,5)), y, eps) -***** assert (burrcdf (x, 1, 1, 1), y, eps) -***** assert (burrcdf (x, [1, 1, NaN, 1, 1], 1, 1), [y(1:2), NaN, y(4:5)], eps) -***** assert (burrcdf (x, 1, [1, 1, NaN, 1, 1], 1), [y(1:2), NaN, y(4:5)], eps) -***** assert (burrcdf (x, 1, 1, [1, 1, NaN, 1, 1]), [y(1:2), NaN, y(4:5)], eps) -***** assert (burrcdf ([x, NaN], 1, 1, 1), [y, NaN], eps) -***** assert (burrcdf (single ([x, NaN]), 1, 1, 1), single ([y, NaN]), eps("single")) -***** assert (burrcdf ([x, NaN], single (1), 1, 1), single ([y, NaN]), eps("single")) -***** assert (burrcdf ([x, NaN], 1, single (1), 1), single ([y, NaN]), eps("single")) -***** assert (burrcdf ([x, NaN], 1, 1, single (1)), single ([y, NaN]), eps("single")) -***** error burrcdf () -***** error burrcdf (1) -***** error burrcdf (1, 2) -***** error burrcdf (1, 2, 3) -***** error ... - burrcdf (1, 2, 3, 4, 5, 6) -***** error burrcdf (1, 2, 3, 4, "tail") -***** error burrcdf (1, 2, 3, 4, 5) -***** error ... - burrcdf (ones (3), ones (2), ones(2), ones(2)) -***** error ... - burrcdf (ones (2), ones (3), ones(2), ones(2)) -***** error ... - burrcdf (ones (2), ones (2), ones(3), ones(2)) -***** error ... - burrcdf (ones (2), ones (2), ones(2), ones(3)) -***** error burrcdf (i, 2, 3, 4) -***** error burrcdf (1, i, 3, 4) -***** error burrcdf (1, 2, i, 4) -***** error burrcdf (1, 2, 3, i) -25 tests, 25 passed, 0 known failure, 0 skipped -[inst/dist_fun/plinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/plinv.m + x = [-1, 0, 0.5, 1, 2, Inf]; + y = [0, 0, 1/3, 1/2, 2/3, 1]; +***** assert (fcdf (x, 2*ones (1,6), 2*ones (1,6)), y, eps) +***** assert (fcdf (x, 2, 2*ones (1,6)), y, eps) +***** assert (fcdf (x, 2*ones (1,6), 2), y, eps) +***** assert (fcdf (x, [0 NaN Inf 2 2 2], 2), [NaN NaN 0.1353352832366127 y(4:6)], eps) +***** assert (fcdf (x, 2, [0 NaN Inf 2 2 2]), [NaN NaN 0.3934693402873666 y(4:6)], eps) +***** assert (fcdf ([x(1:2) NaN x(4:6)], 2, 2), [y(1:2) NaN y(4:6)], eps) +***** assert (fcdf ([x, NaN], 2, 2), [y, NaN], eps) +***** assert (fcdf (single ([x, NaN]), 2, 2), single ([y, NaN]), eps ("single")) +***** assert (fcdf ([x, NaN], single (2), 2), single ([y, NaN]), eps ("single")) +***** assert (fcdf ([x, NaN], 2, single (2)), single ([y, NaN]), eps ("single")) +***** error fcdf () +***** error fcdf (1) +***** error fcdf (1, 2) +***** error fcdf (1, 2, 3, 4) +***** error fcdf (1, 2, 3, "tail") +***** error ... + fcdf (ones (3), ones (2), ones (2)) +***** error ... + fcdf (ones (2), ones (3), ones (2)) +***** error ... + fcdf (ones (2), ones (2), ones (3)) +***** error fcdf (i, 2, 2) +***** error fcdf (2, i, 2) +***** error fcdf (2, 2, i) +21 tests, 21 passed, 0 known failure, 0 skipped +[inst/dist_fun/ncfpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncfpdf.m ***** demo - ## Plot various iCDFs from the Piecewise linear distribution - p = 0.001:0.001:0.999; - x1 = [0, 1, 3, 4, 7, 10]; - Fx1 = [0, 0.2, 0.5, 0.6, 0.7, 1]; - x2 = [0, 2, 5, 6, 7, 8]; - Fx2 = [0, 0.1, 0.3, 0.6, 0.9, 1]; - data1 = plinv (p, x1, Fx1); - data2 = plinv (p, x2, Fx2); - plot (p, data1, "-b", p, data2, "-g") + ## Plot various PDFs from the noncentral F distribution + x = 0:0.01:5; + y1 = ncfpdf (x, 2, 5, 1); + y2 = ncfpdf (x, 2, 5, 2); + y3 = ncfpdf (x, 5, 10, 1); + y4 = ncfpdf (x, 10, 20, 10); + plot (x, y1, "-r", x, y2, "-g", x, y3, "-k", x, y4, "-m") grid on - legend ({"x1, Fx1", "x2, Fx2"}, "location", "northwest") - title ("Piecewise linear iCDF") - xlabel ("probability") - ylabel ("values in data") -***** test - p = 0:0.2:1; - data = plinv (p, [0, 1], [0, 1]); - assert (data, p); + xlim ([0, 5]) + ylim ([0, 0.8]) + legend ({"df1 = 2, df2 = 5, λ = 1", "df1 = 2, df2 = 5, λ = 2", ... + "df1 = 5, df2 = 10, λ = 1", "df1 = 10, df2 = 20, λ = 10"}, ... + "location", "northeast") + title ("Noncentral F PDF") + xlabel ("values in x") + ylabel ("density") +***** demo + ## Compare the noncentral F PDF with LAMBDA = 10 to the F PDF with the + ## same number of numerator and denominator degrees of freedom (5, 20) + + x = 0.01:0.1:10.01; + y1 = ncfpdf (x, 5, 20, 10); + y2 = fpdf (x, 5, 20); + plot (x, y1, "-", x, y2, "-"); + grid on + xlim ([0, 10]) + ylim ([0, 0.8]) + legend ({"Noncentral F(5,20,10)", "F(5,20)"}, "location", "northeast") + title ("Noncentral F vs F PDFs") + xlabel ("values in x") + ylabel ("density") +***** shared x1, df1, df2, lambda + x1 = [-Inf, 2, NaN, 4, Inf]; + df1 = [2, 0, -1, 1, 4]; + df2 = [2, 4, 5, 6, 8]; + lambda = [1, NaN, 3, -1, 2]; +***** assert (ncfpdf (x1, df1, df2, lambda), [0, NaN, NaN, NaN, NaN]); +***** assert (ncfpdf (x1, df1, df2, 1), [0, NaN, NaN, ... + 0.05607937264237208, NaN], 1e-14); +***** assert (ncfpdf (x1, df1, df2, 3), [0, NaN, NaN, ... + 0.080125760971946518, NaN], 1e-14); +***** assert (ncfpdf (x1, df1, df2, 2), [0, NaN, NaN, ... + 0.0715902008258656, NaN], 1e-14); +***** assert (ncfpdf (x1, 3, 5, lambda), [0, NaN, NaN, NaN, NaN]); +***** assert (ncfpdf (2, df1, df2, lambda), [0.1254046999837947, NaN, NaN, ... + NaN, 0.2152571783045893], 1e-14); +***** assert (ncfpdf (4, df1, df2, lambda), [0.05067089541001374, NaN, NaN, ... + NaN, 0.05560846335398539], 1e-14); +***** error ncfpdf () +***** error ncfpdf (1) +***** error ncfpdf (1, 2) +***** error ncfpdf (1, 2, 3) +***** error ... + ncfpdf (ones (3), ones (2), ones (2), ones (2)) +***** error ... + ncfpdf (ones (2), ones (3), ones (2), ones (2)) +***** error ... + ncfpdf (ones (2), ones (2), ones (3), ones (2)) +***** error ... + ncfpdf (ones (2), ones (2), ones (2), ones (3)) +***** error ncfpdf (i, 2, 2, 2) +***** error ncfpdf (2, i, 2, 2) +***** error ncfpdf (2, 2, i, 2) +***** error ncfpdf (2, 2, 2, i) +19 tests, 19 passed, 0 known failure, 0 skipped +[inst/dist_fun/exprnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/exprnd.m +***** assert (size (exprnd (2)), [1, 1]) +***** assert (size (exprnd (ones (2,1))), [2, 1]) +***** assert (size (exprnd (ones (2,2))), [2, 2]) +***** assert (size (exprnd (1, 3)), [3, 3]) +***** assert (size (exprnd (1, [4 1])), [4, 1]) +***** assert (size (exprnd (1, 4, 1)), [4, 1]) +***** assert (size (exprnd (1, 4, 1)), [4, 1]) +***** assert (size (exprnd (1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (exprnd (1, 0, 1)), [0, 1]) +***** assert (size (exprnd (1, 1, 0)), [1, 0]) +***** assert (size (exprnd (1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (exprnd (2)), "double") +***** assert (class (exprnd (single (2))), "single") +***** assert (class (exprnd (single ([2 2]))), "single") +***** error exprnd () +***** error exprnd (i) +***** error ... + exprnd (1, -1) +***** error ... + exprnd (1, 1.2) +***** error ... + exprnd (1, ones (2)) +***** error ... + exprnd (1, [2 -1 2]) +***** error ... + exprnd (1, [2 0 2.5]) +***** error ... + exprnd (ones (2), ones (2)) +***** error ... + exprnd (1, 2, -1, 5) +***** error ... + exprnd (1, 2, 1.5, 5) +***** error exprnd (ones (2,2), 3) +***** error exprnd (ones (2,2), [3, 2]) +***** error exprnd (ones (2,2), 2, 3) +27 tests, 27 passed, 0 known failure, 0 skipped +[inst/dist_fun/mnrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mnrnd.m ***** test - p = 0:0.2:1; - data = plinv (p, [0, 2], [0, 1]); - assert (data, 2 * p); + n = 10; + pk = [0.2, 0.5, 0.3]; + r = mnrnd (n, pk); + assert (size (r), size (pk)); + assert (all (r >= 0)); + assert (all (round (r) == r)); + assert (sum (r) == n); ***** test - p = 0:0.2:1; - data_out = 1:6; - data = plinv (p, [0, 1], [0, 0.5]); - assert (data, [0, 0.4, 0.8, NA, NA, NA]); + n = 10 * ones (3, 1); + pk = [0.2, 0.5, 0.3]; + r = mnrnd (n, pk); + assert (size (r), [length(n), length(pk)]); + assert (all (r >= 0)); + assert (all (round (r) == r)); + assert (all (sum (r, 2) == n)); ***** test - p = 0:0.2:1; - data_out = 1:6; - data = plinv (p, [0, 0.5], [0, 1]); - assert (data, [0:0.1:0.5]); -***** error plinv () -***** error plinv (1) -***** error plinv (1, 2) -***** error ... - plinv (1, [0, 1, 2], [0, 1]) -***** error ... - plinv (1, [0], [1]) -***** error ... - plinv (1, [0, 1, 2], [0, 1, 1.5]) -***** error ... - plinv (1, [0, 1, 2], [0, i, 1]) -***** error ... - plinv (i, [0, 1, 2], [0, 0.5, 1]) -***** error ... - plinv (1, [0, i, 2], [0, 0.5, 1]) -***** error ... - plinv (1, [0, 1, 2], [0, 0.5i, 1]) -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/dist_fun/nbincdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nbincdf.m + n = (1:2)'; + pk = [0.2, 0.5, 0.3; 0.1, 0.1, 0.8]; + r = mnrnd (n, pk); + assert (size (r), size (pk)); + assert (all (r >= 0)); + assert (all (round (r) == r)); + assert (all (sum (r, 2) == n)); +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/dist_fun/gpinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gpinv.m ***** demo - ## Plot various CDFs from the negative binomial distribution - x = 0:50; - p1 = nbincdf (x, 2, 0.15); - p2 = nbincdf (x, 5, 0.2); - p3 = nbincdf (x, 4, 0.4); - p4 = nbincdf (x, 10, 0.3); - plot (x, p1, "*r", x, p2, "*g", x, p3, "*k", x, p4, "*m") + ## Plot various iCDFs from the generalized Pareto distribution + p = 0.001:0.001:0.999; + x1 = gpinv (p, 1, 1, 0); + x2 = gpinv (p, 5, 1, 0); + x3 = gpinv (p, 20, 1, 0); + x4 = gpinv (p, 1, 2, 0); + x5 = gpinv (p, 5, 2, 0); + x6 = gpinv (p, 20, 2, 0); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", ... + p, x4, "-c", p, x5, "-m", p, x6, "-k") grid on - xlim ([0, 40]) - legend ({"r = 2, ps = 0.15", "r = 5, ps = 0.2", "r = 4, p = 0.4", ... - "r = 10, ps = 0.3"}, "location", "southeast") - title ("Negative binomial CDF") - xlabel ("values in x (number of failures)") - ylabel ("probability") + ylim ([0, 5]) + legend ({"k = 1, σ = 1, θ = 0", "k = 5, σ = 1, θ = 0", ... + "k = 20, σ = 1, θ = 0", "k = 1, σ = 2, θ = 0", ... + "k = 5, σ = 2, θ = 0", "k = 20, σ = 2, θ = 0"}, ... + "location", "southeast") + title ("Generalized Pareto iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p, y1, y2, y3 + p = [-1, 0, 1/2, 1, 2]; + y1 = [NaN, 0, 0.6931471805599453, Inf, NaN]; + y2 = [NaN, 0, 1, Inf, NaN]; + y3 = [NaN, 0, 1/2, 1, NaN]; +***** assert (gpinv (p, zeros (1,5), ones (1,5), zeros (1,5)), y1) +***** assert (gpinv (p, 0, 1, zeros (1,5)), y1) +***** assert (gpinv (p, 0, ones (1,5), 0), y1) +***** assert (gpinv (p, zeros (1,5), 1, 0), y1) +***** assert (gpinv (p, 0, 1, 0), y1) +***** assert (gpinv (p, 0, 1, [0, 0, NaN, 0, 0]), [y1(1:2), NaN, y1(4:5)]) +***** assert (gpinv (p, 0, [1, 1, NaN, 1, 1], 0), [y1(1:2), NaN, y1(4:5)]) +***** assert (gpinv (p, [0, 0, NaN, 0, 0], 1, 0), [y1(1:2), NaN, y1(4:5)]) +***** assert (gpinv ([p(1:2), NaN, p(4:5)], 0, 1, 0), [y1(1:2), NaN, y1(4:5)]) +***** assert (gpinv (p, ones (1,5), ones (1,5), zeros (1,5)), y2) +***** assert (gpinv (p, 1, 1, zeros (1,5)), y2) +***** assert (gpinv (p, 1, ones (1,5), 0), y2) +***** assert (gpinv (p, ones (1,5), 1, 0), y2) +***** assert (gpinv (p, 1, 1, 0), y2) +***** assert (gpinv (p, 1, 1, [0, 0, NaN, 0, 0]), [y2(1:2), NaN, y2(4:5)]) +***** assert (gpinv (p, 1, [1, 1, NaN, 1, 1], 0), [y2(1:2), NaN, y2(4:5)]) +***** assert (gpinv (p, [1, 1, NaN, 1, 1], 1, 0), [y2(1:2), NaN, y2(4:5)]) +***** assert (gpinv ([p(1:2), NaN, p(4:5)], 1, 1, 0), [y2(1:2), NaN, y2(4:5)]) +***** assert (gpinv (p, -ones (1,5), ones (1,5), zeros (1,5)), y3) +***** assert (gpinv (p, -1, 1, zeros (1,5)), y3) +***** assert (gpinv (p, -1, ones (1,5), 0), y3) +***** assert (gpinv (p, -ones (1,5), 1, 0), y3) +***** assert (gpinv (p, -1, 1, 0), y3) +***** assert (gpinv (p, -1, 1, [0, 0, NaN, 0, 0]), [y3(1:2), NaN, y3(4:5)]) +***** assert (gpinv (p, -1, [1, 1, NaN, 1, 1], 0), [y3(1:2), NaN, y3(4:5)]) +***** assert (gpinv (p, -[1, 1, NaN, 1, 1], 1, 0), [y3(1:2), NaN, y3(4:5)]) +***** assert (gpinv ([p(1:2), NaN, p(4:5)], -1, 1, 0), [y3(1:2), NaN, y3(4:5)]) +***** assert (gpinv (single ([p, NaN]), 0, 1, 0), single ([y1, NaN])) +***** assert (gpinv ([p, NaN], 0, 1, single (0)), single ([y1, NaN])) +***** assert (gpinv ([p, NaN], 0, single (1), 0), single ([y1, NaN])) +***** assert (gpinv ([p, NaN], single (0), 1, 0), single ([y1, NaN])) +***** assert (gpinv (single ([p, NaN]), 1, 1, 0), single ([y2, NaN])) +***** assert (gpinv ([p, NaN], 1, 1, single (0)), single ([y2, NaN])) +***** assert (gpinv ([p, NaN], 1, single (1), 0), single ([y2, NaN])) +***** assert (gpinv ([p, NaN], single (1), 1, 0), single ([y2, NaN])) +***** assert (gpinv (single ([p, NaN]), -1, 1, 0), single ([y3, NaN])) +***** assert (gpinv ([p, NaN], -1, 1, single (0)), single ([y3, NaN])) +***** assert (gpinv ([p, NaN], -1, single (1), 0), single ([y3, NaN])) +***** assert (gpinv ([p, NaN], single (-1), 1, 0), single ([y3, NaN])) +***** error gpinv () +***** error gpinv (1) +***** error gpinv (1, 2) +***** error gpinv (1, 2, 3) +***** error ... + gpinv (ones (3), ones (2), ones(2), ones(2)) +***** error ... + gpinv (ones (2), ones (3), ones(2), ones(2)) +***** error ... + gpinv (ones (2), ones (2), ones(3), ones(2)) +***** error ... + gpinv (ones (2), ones (2), ones(2), ones(3)) +***** error gpinv (i, 2, 3, 4) +***** error gpinv (1, i, 3, 4) +***** error gpinv (1, 2, i, 4) +***** error gpinv (1, 2, 3, i) +51 tests, 51 passed, 0 known failure, 0 skipped +[inst/dist_fun/iwishrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/iwishrnd.m +***** assert(size (iwishrnd (1,2,1)), [1, 1]); +***** assert(size (iwishrnd ([],2,1)), [1, 1]); +***** assert(size (iwishrnd ([3 1; 1 3], 2.00001, [], 1)), [2, 2]); +***** assert(size (iwishrnd (eye(2), 2, [], 3)), [2, 2, 3]); +***** error iwishrnd () +***** error iwishrnd (1) +***** error iwishrnd ([-3 1; 1 3],1) +***** error iwishrnd ([1; 1],1) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/dist_fun/vmpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/vmpdf.m +***** demo + ## Plot various PDFs from the von Mises distribution + x1 = [-pi:0.1:pi]; + y1 = vmpdf (x1, 0, 0.5); + y2 = vmpdf (x1, 0, 1); + y3 = vmpdf (x1, 0, 2); + y4 = vmpdf (x1, 0, 4); + plot (x1, y1, "-r", x1, y2, "-g", x1, y3, "-b", x1, y4, "-c") + grid on + xlim ([-pi, pi]) + ylim ([0, 0.8]) + legend ({"μ = 0, k = 0.5", "μ = 0, k = 1", ... + "μ = 0, k = 2", "μ = 0, k = 4"}, "location", "northwest") + title ("Von Mises PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y0, y1 + x = [-pi:pi/2:pi]; + y0 = [0.046245, 0.125708, 0.341710, 0.125708, 0.046245]; + y1 = [0.046245, 0.069817, 0.654958, 0.014082, 0.000039]; +***** assert (vmpdf (x, 0, 1), y0, 1e-5) +***** assert (vmpdf (x, zeros (1,5), ones (1,5)), y0, 1e-6) +***** assert (vmpdf (x, 0, [1 2 3 4 5]), y1, 1e-6) +***** assert (isa (vmpdf (single (pi), 0, 1), "single"), true) +***** assert (isa (vmpdf (pi, single (0), 1), "single"), true) +***** assert (isa (vmpdf (pi, 0, single (1)), "single"), true) +***** error vmpdf () +***** error vmpdf (1) +***** error vmpdf (1, 2) +***** error ... + vmpdf (ones (3), ones (2), ones (2)) +***** error ... + vmpdf (ones (2), ones (3), ones (2)) +***** error ... + vmpdf (ones (2), ones (2), ones (3)) +***** error vmpdf (i, 2, 2) +***** error vmpdf (2, i, 2) +***** error vmpdf (2, 2, i) +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_fun/hygepdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hygepdf.m +***** demo + ## Plot various PDFs from the hypergeometric distribution + x = 0:60; + y1 = hygepdf (x, 500, 50, 100); + y2 = hygepdf (x, 500, 60, 200); + y3 = hygepdf (x, 500, 70, 300); + plot (x, y1, "*b", x, y2, "*g", x, y3, "*r") + grid on + xlim ([0, 60]) + ylim ([0, 0.18]) + legend ({"m = 500, k = 50, μ = 100", "m = 500, k = 60, μ = 200", ... + "m = 500, k = 70, μ = 300"}, "location", "northeast") + title ("Hypergeometric PDF") + xlabel ("values in x (number of successes)") + ylabel ("density") ***** shared x, y - x = [-1 0 1 2 Inf]; - y = [0 1/2 3/4 7/8 1]; -***** assert (nbincdf (x, ones (1,5), 0.5*ones (1,5)), y) -***** assert (nbincdf (x, 1, 0.5*ones (1,5)), y) -***** assert (nbincdf (x, ones (1,5), 0.5), y) -***** assert (nbincdf (x, ones (1,5), 0.5, "upper"), 1 - y, eps) -***** assert (nbincdf ([x(1:3) 0 x(5)], [0 1 NaN 1.5 Inf], 0.5), ... - [NaN 1/2 NaN nbinpdf(0,1.5,0.5) NaN], eps) -***** assert (nbincdf (x, 1, 0.5*[-1 NaN 4 1 1]), [NaN NaN NaN y(4:5)]) -***** assert (nbincdf ([x(1:2) NaN x(4:5)], 1, 0.5), [y(1:2) NaN y(4:5)]) -***** assert (nbincdf ([x, NaN], 1, 0.5), [y, NaN]) -***** assert (nbincdf (single ([x, NaN]), 1, 0.5), single ([y, NaN])) -***** assert (nbincdf ([x, NaN], single (1), 0.5), single ([y, NaN])) -***** assert (nbincdf ([x, NaN], 1, single (0.5)), single ([y, NaN])) -***** error nbincdf () -***** error nbincdf (1) -***** error nbincdf (1, 2) -***** error nbincdf (1, 2, 3, 4) -***** error nbincdf (1, 2, 3, "some") -***** error ... - nbincdf (ones (3), ones (2), ones (2)) -***** error ... - nbincdf (ones (2), ones (3), ones (2)) -***** error ... - nbincdf (ones (2), ones (2), ones (3)) -***** error nbincdf (i, 2, 2) -***** error nbincdf (2, i, 2) -***** error nbincdf (2, 2, i) -22 tests, 22 passed, 0 known failure, 0 skipped + x = [-1 0 1 2 3]; + y = [0 1/6 4/6 1/6 0]; +***** assert (hygepdf (x, 4*ones (1,5), 2, 2), y, eps) +***** assert (hygepdf (x, 4, 2*ones (1,5), 2), y, eps) +***** assert (hygepdf (x, 4, 2, 2*ones (1,5)), y, eps) +***** assert (hygepdf (x, 4*[1 -1 NaN 1.1 1], 2, 2), [0 NaN NaN NaN 0], eps) +***** assert (hygepdf (x, 4, 2*[1 -1 NaN 1.1 1], 2), [0 NaN NaN NaN 0], eps) +***** assert (hygepdf (x, 4, 5, 2), [NaN NaN NaN NaN NaN], eps) +***** assert (hygepdf (x, 4, 2, 2*[1 -1 NaN 1.1 1]), [0 NaN NaN NaN 0], eps) +***** assert (hygepdf (x, 4, 2, 5), [NaN NaN NaN NaN NaN], eps) +***** assert (hygepdf ([x, NaN], 4, 2, 2), [y, NaN], eps) +***** assert (hygepdf (single ([x, NaN]), 4, 2, 2), single ([y, NaN]), eps("single")) +***** assert (hygepdf ([x, NaN], single (4), 2, 2), single ([y, NaN]), eps("single")) +***** assert (hygepdf ([x, NaN], 4, single (2), 2), single ([y, NaN]), eps("single")) +***** assert (hygepdf ([x, NaN], 4, 2, single (2)), single ([y, NaN]), eps("single")) +***** test + z = zeros(3,5); + z([4,5,6,8,9,12]) = [1, 0.5, 1/6, 0.5, 2/3, 1/6]; + assert (hygepdf (x, 4, [0, 1, 2], 2, "vectorexpand"), z, eps); + assert (hygepdf (x, 4, [0, 1, 2]', 2, "vectorexpand"), z, eps); + assert (hygepdf (x', 4, [0, 1, 2], 2, "vectorexpand"), z, eps); + assert (hygepdf (2, 4, [0 ,1, 2], 2, "vectorexpand"), z(:,4), eps); + assert (hygepdf (x, 4, 1, 2, "vectorexpand"), z(2,:), eps); + assert (hygepdf ([NaN, x], 4, [0 1 2]', 2, "vectorexpand"), [NaN(3,1), z], eps); +***** error hygepdf () +***** error hygepdf (1) +***** error hygepdf (1,2) +***** error hygepdf (1,2,3) +***** error ... + hygepdf (1, ones (3), ones (2), ones (2)) +***** error ... + hygepdf (1, ones (2), ones (3), ones (2)) +***** error ... + hygepdf (1, ones (2), ones (2), ones (3)) +***** error hygepdf (i, 2, 2, 2) +***** error hygepdf (2, i, 2, 2) +***** error hygepdf (2, 2, i, 2) +***** error hygepdf (2, 2, 2, i) +25 tests, 25 passed, 0 known failure, 0 skipped [inst/dist_fun/invgpdf.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/invgpdf.m ***** demo @@ -23980,126 +18773,576 @@ ***** error ... unifrnd (2, ones (2), 3, 2) 33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/loglrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/loglrnd.m -***** assert (size (loglrnd (1, 1)), [1 1]) -***** assert (size (loglrnd (1, ones (2,1))), [2, 1]) -***** assert (size (loglrnd (1, ones (2,2))), [2, 2]) -***** assert (size (loglrnd (ones (2,1), 1)), [2, 1]) -***** assert (size (loglrnd (ones (2,2), 1)), [2, 2]) -***** assert (size (loglrnd (1, 1, 3)), [3, 3]) -***** assert (size (loglrnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (loglrnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (loglrnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (loglrnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (loglrnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (loglrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (loglrnd (1, 1)), "double") -***** assert (class (loglrnd (1, single (1))), "single") -***** assert (class (loglrnd (1, single ([1, 1]))), "single") -***** assert (class (loglrnd (single (1), 1)), "single") -***** assert (class (loglrnd (single ([1, 1]), 1)), "single") -***** error loglrnd () -***** error loglrnd (1) -***** error ... - loglrnd (ones (3), ones (2)) -***** error ... - loglrnd (ones (2), ones (3)) -***** error loglrnd (i, 2, 3) -***** error loglrnd (1, i, 3) -***** error ... - loglrnd (1, 2, -1) -***** error ... - loglrnd (1, 2, 1.2) -***** error ... - loglrnd (1, 2, ones (2)) -***** error ... - loglrnd (1, 2, [2 -1 2]) -***** error ... - loglrnd (1, 2, [2 0 2.5]) -***** error ... - loglrnd (1, 2, 2, -1, 5) -***** error ... - loglrnd (1, 2, 2, 1.5, 5) -***** error ... - loglrnd (2, ones (2), 3) -***** error ... - loglrnd (2, ones (2), [3, 2]) -***** error ... - loglrnd (2, ones (2), 3, 2) +[inst/dist_fun/plcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/plcdf.m +***** demo + ## Plot various CDFs from the Piecewise linear distribution + data = 0:0.01:10; + x1 = [0, 1, 3, 4, 7, 10]; + Fx1 = [0, 0.2, 0.5, 0.6, 0.7, 1]; + x2 = [0, 2, 5, 6, 7, 8]; + Fx2 = [0, 0.1, 0.3, 0.6, 0.9, 1]; + p1 = plcdf (data, x1, Fx1); + p2 = plcdf (data, x2, Fx2); + plot (data, p1, "-b", data, p2, "g") + grid on + ylim ([0, 1]) + xlim ([0, 10]) + legend ({"x1, Fx1", "x2, Fx2"}, "location", "southeast") + title ("Piecewise linear CDF") + xlabel ("values in data") + ylabel ("probability") +***** test + data = 0:0.2:1; + p = plcdf (data, [0, 1], [0, 1]); + assert (p, data); +***** test + data = 0:0.2:1; + p = plcdf (data, [0, 2], [0, 1]); + assert (p, 0.5 * data); +***** test + data = 0:0.2:1; + p = plcdf (data, [0, 1], [0, 0.5]); + assert (p, 0.5 * data); +***** test + data = 0:0.2:1; + p = plcdf (data, [0, 0.5], [0, 1]); + assert (p, [0, 0.4, 0.8, 1, 1, 1]); +***** test + data = 0:0.2:1; + p = plcdf (data, [0, 1], [0, 1], "upper"); + assert (p, 1 - data); +***** error plcdf () +***** error plcdf (1) +***** error plcdf (1, 2) +***** error plcdf (1, 2, 3, "uper") +***** error plcdf (1, 2, 3, 4) +***** error ... + plcdf (1, [0, 1, 2], [0, 1]) +***** error ... + plcdf (1, [0], [1]) +***** error ... + plcdf (1, [0, 1, 2], [0, 1, 1.5]) +***** error ... + plcdf (1, [0, 1, 2], [0, i, 1]) +***** error ... + plcdf (i, [0, 1, 2], [0, 0.5, 1]) +***** error ... + plcdf (1, [0, i, 2], [0, 0.5, 1]) +***** error ... + plcdf (1, [0, 1, 2], [0, 0.5i, 1]) +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/dist_fun/burrcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/burrcdf.m +***** demo + ## Plot various CDFs from the Burr type XII distribution + x = 0.001:0.001:5; + p1 = burrcdf (x, 1, 1, 1); + p2 = burrcdf (x, 1, 1, 2); + p3 = burrcdf (x, 1, 1, 3); + p4 = burrcdf (x, 1, 2, 1); + p5 = burrcdf (x, 1, 3, 1); + p6 = burrcdf (x, 1, 0.5, 2); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", ... + x, p4, "-c", x, p5, "-m", x, p6, "-k") + grid on + legend ({"λ = 1, c = 1, k = 1", "λ = 1, c = 1, k = 2", ... + "λ = 1, c = 1, k = 3", "λ = 1, c = 2, k = 1", ... + "λ = 1, c = 3, k = 1", "λ = 1, c = 0.5, k = 2"}, ... + "location", "southeast") + title ("Burr type XII CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y + x = [-1, 0, 1, 2, Inf]; + y = [0, 0, 1/2, 2/3, 1]; +***** assert (burrcdf (x, ones(1,5), ones (1,5), ones (1,5)), y, eps) +***** assert (burrcdf (x, 1, 1, 1), y, eps) +***** assert (burrcdf (x, [1, 1, NaN, 1, 1], 1, 1), [y(1:2), NaN, y(4:5)], eps) +***** assert (burrcdf (x, 1, [1, 1, NaN, 1, 1], 1), [y(1:2), NaN, y(4:5)], eps) +***** assert (burrcdf (x, 1, 1, [1, 1, NaN, 1, 1]), [y(1:2), NaN, y(4:5)], eps) +***** assert (burrcdf ([x, NaN], 1, 1, 1), [y, NaN], eps) +***** assert (burrcdf (single ([x, NaN]), 1, 1, 1), single ([y, NaN]), eps("single")) +***** assert (burrcdf ([x, NaN], single (1), 1, 1), single ([y, NaN]), eps("single")) +***** assert (burrcdf ([x, NaN], 1, single (1), 1), single ([y, NaN]), eps("single")) +***** assert (burrcdf ([x, NaN], 1, 1, single (1)), single ([y, NaN]), eps("single")) +***** error burrcdf () +***** error burrcdf (1) +***** error burrcdf (1, 2) +***** error burrcdf (1, 2, 3) +***** error ... + burrcdf (1, 2, 3, 4, 5, 6) +***** error burrcdf (1, 2, 3, 4, "tail") +***** error burrcdf (1, 2, 3, 4, 5) +***** error ... + burrcdf (ones (3), ones (2), ones(2), ones(2)) +***** error ... + burrcdf (ones (2), ones (3), ones(2), ones(2)) +***** error ... + burrcdf (ones (2), ones (2), ones(3), ones(2)) +***** error ... + burrcdf (ones (2), ones (2), ones(2), ones(3)) +***** error burrcdf (i, 2, 3, 4) +***** error burrcdf (1, i, 3, 4) +***** error burrcdf (1, 2, i, 4) +***** error burrcdf (1, 2, 3, i) +25 tests, 25 passed, 0 known failure, 0 skipped +[inst/dist_fun/tlscdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tlscdf.m +***** demo + ## Plot various CDFs from the location-scale Student's T distribution + x = -8:0.01:8; + p1 = tlscdf (x, 0, 1, 1); + p2 = tlscdf (x, 0, 2, 2); + p3 = tlscdf (x, 3, 2, 5); + p4 = tlscdf (x, -1, 3, Inf); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-m") + grid on + xlim ([-8, 8]) + ylim ([0, 1]) + legend ({"mu = 0, sigma = 1, nu = 1", "mu = 0, sigma = 2, nu = 2", ... + "mu = 3, sigma = 2, nu = 5", 'mu = -1, sigma = 3, nu = \infty'}, ... + "location", "northwest") + title ("Location-scale Student's T CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x,y + x = [-Inf 0 1 Inf]; + y = [0 1/2 3/4 1]; +***** assert (tlscdf (x, 0, 1, ones (1,4)), y, eps) +***** assert (tlscdf (x, 0, 1, 1), y, eps) +***** assert (tlscdf (x, 0, 1, [0 1 NaN 1]), [NaN 1/2 NaN 1], eps) +***** assert (tlscdf ([x(1:2) NaN x(4)], 0, 1, 1), [y(1:2) NaN y(4)], eps) +***** assert (tlscdf (2, 0, 1, 3, "upper"), 0.0697, 1e-4) +***** assert (tlscdf (205, 0, 1, 5, "upper"), 2.6206e-11, 1e-14) +***** assert (tlscdf ([x, NaN], 0, 1, 1), [y, NaN], eps) +***** assert (tlscdf (single ([x, NaN]), 0, 1, 1), single ([y, NaN]), eps ("single")) +***** assert (tlscdf ([x, NaN], single (0), 1, 1), single ([y, NaN]), eps ("single")) +***** assert (tlscdf ([x, NaN], 0, single (1), 1), single ([y, NaN]), eps ("single")) +***** assert (tlscdf ([x, NaN], 0, 1, single (1)), single ([y, NaN]), eps ("single")) +***** error tlscdf () +***** error tlscdf (1) +***** error tlscdf (1, 2) +***** error tlscdf (1, 2, 3) +***** error tlscdf (1, 2, 3, 4, "uper") +***** error tlscdf (1, 2, 3, 4, 5) +***** error ... + tlscdf (ones (3), ones (2), 1, 1) +***** error ... + tlscdf (ones (3), 1, ones (2), 1) +***** error ... + tlscdf (ones (3), 1, 1, ones (2)) +***** error ... + tlscdf (ones (3), ones (2), 1, 1, "upper") +***** error ... + tlscdf (ones (3), 1, ones (2), 1, "upper") +***** error ... + tlscdf (ones (3), 1, 1, ones (2), "upper") +***** error tlscdf (i, 2, 1, 1) +***** error tlscdf (2, i, 1, 1) +***** error tlscdf (2, 1, i, 1) +***** error tlscdf (2, 1, 1, i) +27 tests, 27 passed, 0 known failure, 0 skipped +[inst/dist_fun/geornd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/geornd.m +***** assert (size (geornd (0.5)), [1, 1]) +***** assert (size (geornd (0.5*ones (2,1))), [2, 1]) +***** assert (size (geornd (0.5*ones (2,2))), [2, 2]) +***** assert (size (geornd (0.5, 3)), [3, 3]) +***** assert (size (geornd (0.5, [4 1])), [4, 1]) +***** assert (size (geornd (0.5, 4, 1)), [4, 1]) +***** assert (class (geornd (0.5)), "double") +***** assert (class (geornd (single (0.5))), "single") +***** assert (class (geornd (single ([0.5 0.5]))), "single") +***** assert (class (geornd (single (0))), "single") +***** assert (class (geornd (single (1))), "single") +***** error geornd () +***** error geornd (i) +***** error ... + geornd (1, -1) +***** error ... + geornd (1, 1.2) +***** error ... + geornd (1, ones (2)) +***** error ... + geornd (1, [2 -1 2]) +***** error ... + geornd (1, [2 0 2.5]) +***** error ... + geornd (ones (2), ones (2)) +***** error ... + geornd (1, 2, -1, 5) +***** error ... + geornd (1, 2, 1.5, 5) +***** error geornd (ones (2,2), 3) +***** error geornd (ones (2,2), [3, 2]) +***** error geornd (ones (2,2), 2, 3) +24 tests, 24 passed, 0 known failure, 0 skipped +[inst/dist_fun/gevpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gevpdf.m +***** demo + ## Plot various PDFs from the generalized extreme value distribution + x = -1:0.001:10; + y1 = gevpdf (x, 1, 1, 1); + y2 = gevpdf (x, 0.5, 1, 1); + y3 = gevpdf (x, 1, 1, 5); + y4 = gevpdf (x, 1, 2, 5); + y5 = gevpdf (x, 1, 5, 5); + y6 = gevpdf (x, 1, 0.5, 5); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", ... + x, y4, "-c", x, y5, "-m", x, y6, "-k") + grid on + xlim ([-1, 10]) + ylim ([0, 1.1]) + legend ({"k = 1, σ = 1, μ = 1", "k = 0.5, σ = 1, μ = 1", ... + "k = 1, σ = 1, μ = 5", "k = 1, σ = 2, μ = 5", ... + "k = 1, σ = 5, μ = 5", "k = 1, σ = 0.5, μ = 5"}, ... + "location", "northeast") + title ("Generalized extreme value PDF") + xlabel ("values in x") + ylabel ("density") +***** test + x = 0:0.5:2.5; + sigma = 1:6; + k = 1; + mu = 0; + y = gevpdf (x, k, sigma, mu); + expected_y = [0.367879 0.143785 0.088569 0.063898 0.049953 0.040997]; + assert (y, expected_y, 0.001); +***** test + x = -0.5:0.5:2.5; + sigma = 0.5; + k = 1; + mu = 0; + y = gevpdf (x, k, sigma, mu); + expected_y = [0 0.735759 0.303265 0.159229 0.097350 0.065498 0.047027]; + assert (y, expected_y, 0.001); +***** test # check for continuity for k near 0 + x = 1; + sigma = 0.5; + k = -0.03:0.01:0.03; + mu = 0; + y = gevpdf (x, k, sigma, mu); + expected_y = [0.23820 0.23764 0.23704 0.23641 0.23576 0.23508 0.23438]; + assert (y, expected_y, 0.001); +***** error gevpdf () +***** error gevpdf (1) +***** error gevpdf (1, 2) +***** error gevpdf (1, 2, 3) +***** error ... + gevpdf (ones (3), ones (2), ones(2), ones(2)) +***** error ... + gevpdf (ones (2), ones (3), ones(2), ones(2)) +***** error ... + gevpdf (ones (2), ones (2), ones(3), ones(2)) +***** error ... + gevpdf (ones (2), ones (2), ones(2), ones(3)) +***** error gevpdf (i, 2, 3, 4) +***** error gevpdf (1, i, 3, 4) +***** error gevpdf (1, 2, i, 4) +***** error gevpdf (1, 2, 3, i) +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_fun/laplacecdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/laplacecdf.m +***** demo + ## Plot various CDFs from the Laplace distribution + x = -10:0.01:10; + p1 = laplacecdf (x, 0, 1); + p2 = laplacecdf (x, 0, 2); + p3 = laplacecdf (x, 0, 4); + p4 = laplacecdf (x, -5, 4); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") + grid on + xlim ([-10, 10]) + legend ({"μ = 0, β = 1", "μ = 0, β = 2", ... + "μ = 0, β = 4", "μ = -5, β = 4"}, "location", "southeast") + title ("Laplace CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y + x = [-Inf, -log(2), 0, log(2), Inf]; + y = [0, 1/4, 1/2, 3/4, 1]; +***** assert (laplacecdf ([x, NaN], 0, 1), [y, NaN]) +***** assert (laplacecdf (x, 0, [-2, -1, 0, 1, 2]), [nan(1, 3), 0.75, 1]) +***** assert (laplacecdf (single ([x, NaN]), 0, 1), single ([y, NaN]), eps ("single")) +***** assert (laplacecdf ([x, NaN], single (0), 1), single ([y, NaN]), eps ("single")) +***** assert (laplacecdf ([x, NaN], 0, single (1)), single ([y, NaN]), eps ("single")) +***** error laplacecdf () +***** error laplacecdf (1) +***** error ... + laplacecdf (1, 2) +***** error ... + laplacecdf (1, 2, 3, 4, 5) +***** error laplacecdf (1, 2, 3, "tail") +***** error laplacecdf (1, 2, 3, 4) +***** error ... + laplacecdf (ones (3), ones (2), ones (2)) +***** error ... + laplacecdf (ones (2), ones (3), ones (2)) +***** error ... + laplacecdf (ones (2), ones (2), ones (3)) +***** error laplacecdf (i, 2, 2) +***** error laplacecdf (2, i, 2) +***** error laplacecdf (2, 2, i) +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/dist_fun/nbinrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nbinrnd.m +***** assert (size (nbinrnd (1, 0.5)), [1 1]) +***** assert (size (nbinrnd (1, 0.5 * ones (2,1))), [2, 1]) +***** assert (size (nbinrnd (1, 0.5 * ones (2,2))), [2, 2]) +***** assert (size (nbinrnd (ones (2,1), 0.5)), [2, 1]) +***** assert (size (nbinrnd (ones (2,2), 0.5)), [2, 2]) +***** assert (size (nbinrnd (1, 0.5, 3)), [3, 3]) +***** assert (size (nbinrnd (1, 0.5, [4, 1])), [4, 1]) +***** assert (size (nbinrnd (1, 0.5, 4, 1)), [4, 1]) +***** assert (size (nbinrnd (1, 0.5, 4, 1, 5)), [4, 1, 5]) +***** assert (size (nbinrnd (1, 0.5, 0, 1)), [0, 1]) +***** assert (size (nbinrnd (1, 0.5, 1, 0)), [1, 0]) +***** assert (size (nbinrnd (1, 0.5, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (nbinrnd (1, 0.5)), "double") +***** assert (class (nbinrnd (1, single (0.5))), "single") +***** assert (class (nbinrnd (1, single ([0.5, 0.5]))), "single") +***** assert (class (nbinrnd (single (1), 0.5)), "single") +***** assert (class (nbinrnd (single ([1, 1]), 0.5)), "single") +***** error nbinrnd () +***** error nbinrnd (1) +***** error ... + nbinrnd (ones (3), ones (2)) +***** error ... + nbinrnd (ones (2), ones (3)) +***** error nbinrnd (i, 2, 3) +***** error nbinrnd (1, i, 3) +***** error ... + nbinrnd (1, 2, -1) +***** error ... + nbinrnd (1, 2, 1.2) +***** error ... + nbinrnd (1, 2, ones (2)) +***** error ... + nbinrnd (1, 2, [2 -1 2]) +***** error ... + nbinrnd (1, 2, [2 0 2.5]) +***** error ... + nbinrnd (1, 2, 2, -1, 5) +***** error ... + nbinrnd (1, 2, 2, 1.5, 5) +***** error ... + nbinrnd (2, ones (2), 3) +***** error ... + nbinrnd (2, ones (2), [3, 2]) +***** error ... + nbinrnd (2, ones (2), 3, 2) 33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/unifinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unifinv.m +[inst/dist_fun/copularnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/copularnd.m +***** test + theta = 0.5; + r = copularnd ("Gaussian", theta); + assert (size (r), [1, 2]); + assert (all ((r >= 0) & (r <= 1))); +***** test + theta = 0.5; + df = 2; + r = copularnd ("t", theta, df); + assert (size (r), [1, 2]); + assert (all ((r >= 0) & (r <= 1))); +***** test + theta = 0.5; + r = copularnd ("Clayton", theta); + assert (size (r), [1, 2]); + assert (all ((r >= 0) & (r <= 1))); +***** test + theta = 0.5; + n = 2; + r = copularnd ("Clayton", theta, n); + assert (size (r), [n, 2]); + assert (all ((r >= 0) & (r <= 1))); +***** test + theta = [1; 2]; + n = 2; + d = 3; + r = copularnd ("Clayton", theta, n, d); + assert (size (r), [n, d]); + assert (all ((r >= 0) & (r <= 1))); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/dist_fun/geocdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/geocdf.m +***** demo + ## Plot various CDFs from the geometric distribution + x = 0:10; + p1 = geocdf (x, 0.2); + p2 = geocdf (x, 0.5); + p3 = geocdf (x, 0.7); + plot (x, p1, "*b", x, p2, "*g", x, p3, "*r") + grid on + xlim ([0, 10]) + legend ({"ps = 0.2", "ps = 0.5", "ps = 0.7"}, "location", "southeast") + title ("Geometric CDF") + xlabel ("values in x (number of failures)") + ylabel ("probability") +***** test + p = geocdf ([1, 2, 3, 4], 0.25); + assert (p(1), 0.4375000000, 1e-14); + assert (p(2), 0.5781250000, 1e-14); + assert (p(3), 0.6835937500, 1e-14); + assert (p(4), 0.7626953125, 1e-14); +***** test + p = geocdf ([1, 2, 3, 4], 0.25, "upper"); + assert (p(1), 0.5625000000, 1e-14); + assert (p(2), 0.4218750000, 1e-14); + assert (p(3), 0.3164062500, 1e-14); + assert (p(4), 0.2373046875, 1e-14); +***** shared x, p + x = [-1 0 1 Inf]; + p = [0 0.5 0.75 1]; +***** assert (geocdf (x, 0.5*ones (1,4)), p) +***** assert (geocdf (x, 0.5), p) +***** assert (geocdf (x, 0.5*[-1 NaN 4 1]), [NaN NaN NaN p(4)]) +***** assert (geocdf ([x(1:2) NaN x(4)], 0.5), [p(1:2) NaN p(4)]) +***** assert (geocdf ([x, NaN], 0.5), [p, NaN]) +***** assert (geocdf (single ([x, NaN]), 0.5), single ([p, NaN])) +***** assert (geocdf ([x, NaN], single (0.5)), single ([p, NaN])) +***** error geocdf () +***** error geocdf (1) +***** error ... + geocdf (ones (3), ones (2)) +***** error ... + geocdf (ones (2), ones (3)) +***** error geocdf (i, 2) +***** error geocdf (2, i) +***** error geocdf (2, 3, "tail") +***** error geocdf (2, 3, 5) +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/dist_fun/ricernd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ricernd.m +***** assert (size (ricernd (2, 1/2)), [1, 1]) +***** assert (size (ricernd (2 * ones (2, 1), 1/2)), [2, 1]) +***** assert (size (ricernd (2 * ones (2, 2), 1/2)), [2, 2]) +***** assert (size (ricernd (2, 1/2 * ones (2, 1))), [2, 1]) +***** assert (size (ricernd (1, 1/2 * ones (2, 2))), [2, 2]) +***** assert (size (ricernd (ones (2, 1), 1)), [2, 1]) +***** assert (size (ricernd (ones (2, 2), 1)), [2, 2]) +***** assert (size (ricernd (2, 1/2, 3)), [3, 3]) +***** assert (size (ricernd (1, 1, [4, 1])), [4, 1]) +***** assert (size (ricernd (1, 1, 4, 1)), [4, 1]) +***** assert (size (ricernd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (ricernd (1, 1, 0, 1)), [0, 1]) +***** assert (size (ricernd (1, 1, 1, 0)), [1, 0]) +***** assert (size (ricernd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (ricernd (1, 1)), "double") +***** assert (class (ricernd (1, single (0))), "single") +***** assert (class (ricernd (1, single ([0, 0]))), "single") +***** assert (class (ricernd (1, single (1), 2)), "single") +***** assert (class (ricernd (1, single ([1, 1]), 1, 2)), "single") +***** assert (class (ricernd (single (1), 1, 2)), "single") +***** assert (class (ricernd (single ([1, 1]), 1, 1, 2)), "single") +***** error ricernd () +***** error ricernd (1) +***** error ... + ricernd (ones (3), ones (2)) +***** error ... + ricernd (ones (2), ones (3)) +***** error ricernd (i, 2) +***** error ricernd (1, i) +***** error ... + ricernd (1, 1/2, -1) +***** error ... + ricernd (1, 1/2, 1.2) +***** error ... + ricernd (1, 1/2, ones (2)) +***** error ... + ricernd (1, 1/2, [2 -1 2]) +***** error ... + ricernd (1, 1/2, [2 0 2.5]) +***** error ... + ricernd (1, 1/2, 2, -1, 5) +***** error ... + ricernd (1, 1/2, 2, 1.5, 5) +***** error ... + ricernd (2, 1/2 * ones (2), 3) +***** error ... + ricernd (2, 1/2 * ones (2), [3, 2]) +***** error ... + ricernd (2, 1/2 * ones (2), 3, 2) +***** error ... + ricernd (2 * ones (2), 1/2, 3) +***** error ... + ricernd (2 * ones (2), 1/2, [3, 2]) +***** error ... + ricernd (2 * ones (2), 1/2, 3, 2) +40 tests, 40 passed, 0 known failure, 0 skipped +[inst/dist_fun/tinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tinv.m ***** demo - ## Plot various iCDFs from the continuous uniform distribution + ## Plot various iCDFs from the Student's T distribution p = 0.001:0.001:0.999; - x1 = unifinv (p, 2, 5); - x2 = unifinv (p, 3, 9); - plot (p, x1, "-b", p, x2, "-g") + x1 = tinv (p, 1); + x2 = tinv (p, 2); + x3 = tinv (p, 5); + x4 = tinv (p, Inf); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-m") grid on xlim ([0, 1]) - ylim ([0, 10]) - legend ({"a = 2, b = 5", "a = 3, b = 9"}, "location", "northwest") - title ("Continuous uniform iCDF") + ylim ([-5, 5]) + legend ({"df = 1", "df = 2", ... + "df = 5", 'df = \infty'}, "location", "northwest") + title ("Student's T iCDF") xlabel ("probability") ylabel ("values in x") ***** shared p p = [-1 0 0.5 1 2]; -***** assert (unifinv (p, ones (1,5), 2*ones (1,5)), [NaN 1 1.5 2 NaN]) -***** assert (unifinv (p, 0, 1), [NaN 1 1.5 2 NaN] - 1) -***** assert (unifinv (p, 1, 2*ones (1,5)), [NaN 1 1.5 2 NaN]) -***** assert (unifinv (p, ones (1,5), 2), [NaN 1 1.5 2 NaN]) -***** assert (unifinv (p, [1 2 NaN 1 1], 2), [NaN NaN NaN 2 NaN]) -***** assert (unifinv (p, 1, 2*[1 0 NaN 1 1]), [NaN NaN NaN 2 NaN]) -***** assert (unifinv ([p(1:2) NaN p(4:5)], 1, 2), [NaN 1 NaN 2 NaN]) -***** assert (unifinv ([p, NaN], 1, 2), [NaN 1 1.5 2 NaN NaN]) -***** assert (unifinv (single ([p, NaN]), 1, 2), single ([NaN 1 1.5 2 NaN NaN])) -***** assert (unifinv ([p, NaN], single (1), 2), single ([NaN 1 1.5 2 NaN NaN])) -***** assert (unifinv ([p, NaN], 1, single (2)), single ([NaN 1 1.5 2 NaN NaN])) -***** error unifinv () -***** error unifinv (1, 2) -***** error ... - unifinv (ones (3), ones (2), ones (2)) -***** error ... - unifinv (ones (2), ones (3), ones (2)) -***** error ... - unifinv (ones (2), ones (2), ones (3)) -***** error unifinv (i, 2, 2) -***** error unifinv (2, i, 2) -***** error unifinv (2, 2, i) -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/dist_fun/unidpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unidpdf.m +***** assert (tinv (p, ones (1,5)), [NaN -Inf 0 Inf NaN]) +***** assert (tinv (p, 1), [NaN -Inf 0 Inf NaN], eps) +***** assert (tinv (p, [1 0 NaN 1 1]), [NaN NaN NaN Inf NaN], eps) +***** assert (tinv ([p(1:2) NaN p(4:5)], 1), [NaN -Inf NaN Inf NaN]) +***** assert (tinv ([p, NaN], 1), [NaN -Inf 0 Inf NaN NaN], eps) +***** assert (tinv (single ([p, NaN]), 1), single ([NaN -Inf 0 Inf NaN NaN]), eps ("single")) +***** assert (tinv ([p, NaN], single (1)), single ([NaN -Inf 0 Inf NaN NaN]), eps ("single")) +***** error tinv () +***** error tinv (1) +***** error ... + tinv (ones (3), ones (2)) +***** error ... + tinv (ones (2), ones (3)) +***** error tinv (i, 2) +***** error tinv (2, i) +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_fun/vminv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/vminv.m ***** demo - ## Plot various PDFs from the discrete uniform distribution - x = 0:10; - y1 = unidpdf (x, 5); - y2 = unidpdf (x, 9); - plot (x, y1, "*b", x, y2, "*g") + ## Plot various iCDFs from the von Mises distribution + p1 = [0,0.005,0.01:0.01:0.1,0.15,0.2:0.1:0.8,0.85,0.9:0.01:0.99,0.995,1]; + x1 = vminv (p1, 0, 0.5); + x2 = vminv (p1, 0, 1); + x3 = vminv (p1, 0, 2); + x4 = vminv (p1, 0, 4); + plot (p1, x1, "-r", p1, x2, "-g", p1, x3, "-b", p1, x4, "-c") grid on - xlim ([0, 10]) - ylim ([0, 0.25]) - legend ({"N = 5", "N = 9"}, "location", "northeast") - title ("Descrete uniform PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-1 0 1 2 10 11]; - y = [0 0 0.1 0.1 0.1 0]; -***** assert (unidpdf (x, 10*ones (1,6)), y) -***** assert (unidpdf (x, 10), y) -***** assert (unidpdf (x, 10*[0 NaN 1 1 1 1]), [NaN NaN y(3:6)]) -***** assert (unidpdf ([x, NaN], 10), [y, NaN]) -***** assert (unidpdf (single ([x, NaN]), 10), single ([y, NaN])) -***** assert (unidpdf ([x, NaN], single (10)), single ([y, NaN])) -***** error unidpdf () -***** error unidpdf (1) -***** error ... - unidpdf (ones (3), ones (2)) -***** error ... - unidpdf (ones (2), ones (3)) -***** error unidpdf (i, 2) -***** error unidpdf (2, i) + ylim ([-pi, pi]) + legend ({"μ = 0, k = 0.5", "μ = 0, k = 1", ... + "μ = 0, k = 2", "μ = 0, k = 4"}, "location", "northwest") + title ("Von Mises iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared x, p0, p1 + x = [-pi:pi/2:pi]; + p0 = [0, 0.10975, 0.5, 0.89025, 1]; + p1 = [0, 0.03752, 0.5, 0.99622, 1]; +***** assert (vminv (p0, 0, 1), x, 5e-5) +***** assert (vminv (p0, zeros (1,5), ones (1,5)), x, 5e-5) +***** assert (vminv (p1, 0, [1 2 3 4 5]), x, [5e-5, 5e-4, 5e-5, 5e-4, 5e-5]) +***** error vminv () +***** error vminv (1) +***** error vminv (1, 2) +***** error ... + vminv (ones (3), ones (2), ones (2)) +***** error ... + vminv (ones (2), ones (3), ones (2)) +***** error ... + vminv (ones (2), ones (2), ones (3)) +***** error vminv (i, 2, 2) +***** error vminv (2, i, 2) +***** error vminv (2, 2, i) 12 tests, 12 passed, 0 known failure, 0 skipped [inst/dist_fun/geoinv.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/geoinv.m @@ -24136,6 +19379,58 @@ ***** error ... geoinv (2, i) 13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_fun/burrrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/burrrnd.m +***** assert (size (burrrnd (1, 1, 1)), [1 1]) +***** assert (size (burrrnd (ones (2,1), 1, 1)), [2, 1]) +***** assert (size (burrrnd (ones (2,2), 1, 1)), [2, 2]) +***** assert (size (burrrnd (1, ones (2,1), 1)), [2, 1]) +***** assert (size (burrrnd (1, ones (2,2), 1)), [2, 2]) +***** assert (size (burrrnd (1, 1, ones (2,1))), [2, 1]) +***** assert (size (burrrnd (1, 1, ones (2,2))), [2, 2]) +***** assert (size (burrrnd (1, 1, 1, 3)), [3, 3]) +***** assert (size (burrrnd (1, 1, 1, [4 1])), [4, 1]) +***** assert (size (burrrnd (1, 1, 1, 4, 1)), [4, 1]) +***** assert (class (burrrnd (1,1,1)), "double") +***** assert (class (burrrnd (single (1),1,1)), "single") +***** assert (class (burrrnd (single ([1 1]),1,1)), "single") +***** assert (class (burrrnd (1,single (1),1)), "single") +***** assert (class (burrrnd (1,single ([1 1]),1)), "single") +***** assert (class (burrrnd (1,1,single (1))), "single") +***** assert (class (burrrnd (1,1,single ([1 1]))), "single") +***** error burrrnd () +***** error burrrnd (1) +***** error burrrnd (1, 2) +***** error ... + burrrnd (ones (3), ones (2), ones (2)) +***** error ... + burrrnd (ones (2), ones (3), ones (2)) +***** error ... + burrrnd (ones (2), ones (2), ones (3)) +***** error burrrnd (i, 2, 3) +***** error burrrnd (1, i, 3) +***** error burrrnd (1, 2, i) +***** error ... + burrrnd (1, 2, 3, -1) +***** error ... + burrrnd (1, 2, 3, 1.2) +***** error ... + burrrnd (1, 2, 3, ones (2)) +***** error ... + burrrnd (1, 2, 3, [2 -1 2]) +***** error ... + burrrnd (1, 2, 3, [2 0 2.5]) +***** error ... + burrrnd (1, 2, 3, 2, -1, 5) +***** error ... + burrrnd (1, 2, 3, 2, 1.5, 5) +***** error ... + burrrnd (2, ones (2), 2, 3) +***** error ... + burrrnd (2, ones (2), 2, [3, 2]) +***** error ... + burrrnd (2, ones (2), 2, 3, 2) +36 tests, 36 passed, 0 known failure, 0 skipped [inst/dist_fun/hncdf.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/hncdf.m ***** demo @@ -24199,210 +19494,6 @@ ***** error hncdf (1, i, 3) ***** error hncdf (1, 2, i) 25 tests, 25 passed, 0 known failure, 0 skipped -[inst/dist_fun/laplacernd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/laplacernd.m -***** assert (size (laplacernd (1, 1)), [1 1]) -***** assert (size (laplacernd (1, ones (2,1))), [2, 1]) -***** assert (size (laplacernd (1, ones (2,2))), [2, 2]) -***** assert (size (laplacernd (ones (2,1), 1)), [2, 1]) -***** assert (size (laplacernd (ones (2,2), 1)), [2, 2]) -***** assert (size (laplacernd (1, 1, 3)), [3, 3]) -***** assert (size (laplacernd (1, 1, [4, 1])), [4, 1]) -***** assert (size (laplacernd (1, 1, 4, 1)), [4, 1]) -***** assert (size (laplacernd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (laplacernd (1, 1, 0, 1)), [0, 1]) -***** assert (size (laplacernd (1, 1, 1, 0)), [1, 0]) -***** assert (size (laplacernd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (laplacernd (1, 1)), "double") -***** assert (class (laplacernd (1, single (1))), "single") -***** assert (class (laplacernd (1, single ([1, 1]))), "single") -***** assert (class (laplacernd (single (1), 1)), "single") -***** assert (class (laplacernd (single ([1, 1]), 1)), "single") -***** error laplacernd () -***** error laplacernd (1) -***** error ... - laplacernd (ones (3), ones (2)) -***** error ... - laplacernd (ones (2), ones (3)) -***** error laplacernd (i, 2, 3) -***** error laplacernd (1, i, 3) -***** error ... - laplacernd (1, 2, -1) -***** error ... - laplacernd (1, 2, 1.2) -***** error ... - laplacernd (1, 2, ones (2)) -***** error ... - laplacernd (1, 2, [2 -1 2]) -***** error ... - laplacernd (1, 2, [2 0 2.5]) -***** error ... - laplacernd (1, 2, 2, -1, 5) -***** error ... - laplacernd (1, 2, 2, 1.5, 5) -***** error ... - laplacernd (2, ones (2), 3) -***** error ... - laplacernd (2, ones (2), [3, 2]) -***** error ... - laplacernd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/logirnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/logirnd.m -***** assert (size (logirnd (1, 1)), [1 1]) -***** assert (size (logirnd (1, ones (2,1))), [2, 1]) -***** assert (size (logirnd (1, ones (2,2))), [2, 2]) -***** assert (size (logirnd (ones (2,1), 1)), [2, 1]) -***** assert (size (logirnd (ones (2,2), 1)), [2, 2]) -***** assert (size (logirnd (1, 1, 3)), [3, 3]) -***** assert (size (logirnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (logirnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (logirnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (logirnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (logirnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (logirnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (logirnd (1, 1)), "double") -***** assert (class (logirnd (1, single (1))), "single") -***** assert (class (logirnd (1, single ([1, 1]))), "single") -***** assert (class (logirnd (single (1), 1)), "single") -***** assert (class (logirnd (single ([1, 1]), 1)), "single") -***** error logirnd () -***** error logirnd (1) -***** error ... - logirnd (ones (3), ones (2)) -***** error ... - logirnd (ones (2), ones (3)) -***** error logirnd (i, 2, 3) -***** error logirnd (1, i, 3) -***** error ... - logirnd (1, 2, -1) -***** error ... - logirnd (1, 2, 1.2) -***** error ... - logirnd (1, 2, ones (2)) -***** error ... - logirnd (1, 2, [2 -1 2]) -***** error ... - logirnd (1, 2, [2 0 2.5]) -***** error ... - logirnd (1, 2, 2, -1, 5) -***** error ... - logirnd (1, 2, 2, 1.5, 5) -***** error ... - logirnd (2, ones (2), 3) -***** error ... - logirnd (2, ones (2), [3, 2]) -***** error ... - logirnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/exppdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/exppdf.m -***** demo - ## Plot various PDFs from the exponential distribution - x = 0:0.01:5; - y1 = exppdf (x, 2/3); - y2 = exppdf (x, 1.0); - y3 = exppdf (x, 2.0); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r") - grid on - ylim ([0, 1.5]) - legend ({"μ = 2/3", "μ = 1", "μ = 2"}, "location", "northeast") - title ("Exponential PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x,y - x = [-1 0 0.5 1 Inf]; - y = gampdf (x, 1, 2); -***** assert (exppdf (x, 2*ones (1,5)), y) -***** assert (exppdf (x, 2*[1 0 NaN 1 1]), [y(1) NaN NaN y(4:5)]) -***** assert (exppdf ([x, NaN], 2), [y, NaN]) -***** assert (exppdf (single ([x, NaN]), 2), single ([y, NaN])) -***** assert (exppdf ([x, NaN], single (2)), single ([y, NaN])) -***** error exppdf () -***** error exppdf (1,2,3) -***** error ... - exppdf (ones (3), ones (2)) -***** error ... - exppdf (ones (2), ones (3)) -***** error exppdf (i, 2) -***** error exppdf (2, i) -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/dist_fun/raylpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/raylpdf.m -***** demo - ## Plot various PDFs from the Rayleigh distribution - x = 0:0.01:10; - y1 = raylpdf (x, 0.5); - y2 = raylpdf (x, 1); - y3 = raylpdf (x, 2); - y4 = raylpdf (x, 3); - y5 = raylpdf (x, 4); - plot (x, y1, "-b", x, y2, "g", x, y3, "-r", x, y4, "-m", x, y5, "-k") - grid on - ylim ([0, 1.25]) - legend ({"σ = 0,5", "σ = 1", "σ = 2", ... - "σ = 3", "σ = 4"}, "location", "northeast") - title ("Rayleigh PDF") - xlabel ("values in x") - ylabel ("density") -***** test - x = 0:0.5:2.5; - sigma = 1:6; - y = raylpdf (x, sigma); - expected_y = [0.0000, 0.1212, 0.1051, 0.0874, 0.0738, 0.0637]; - assert (y, expected_y, 0.001); -***** test - x = 0:0.5:2.5; - y = raylpdf (x, 0.5); - expected_y = [0.0000, 1.2131, 0.5413, 0.0667, 0.0027, 0.0000]; - assert (y, expected_y, 0.001); -***** error raylpdf () -***** error raylpdf (1) -***** error ... - raylpdf (ones (3), ones (2)) -***** error ... - raylpdf (ones (2), ones (3)) -***** error raylpdf (i, 2) -***** error raylpdf (2, i) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/dist_fun/unidcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unidcdf.m -***** demo - ## Plot various CDFs from the discrete uniform distribution - x = 0:10; - p1 = unidcdf (x, 5); - p2 = unidcdf (x, 9); - plot (x, p1, "*b", x, p2, "*g") - grid on - xlim ([0, 10]) - ylim ([0, 1]) - legend ({"N = 5", "N = 9"}, "location", "southeast") - title ("Discrete uniform CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y - x = [0 1 2.5 10 11]; - y = [0, 0.1 0.2 1.0 1.0]; -***** assert (unidcdf (x, 10*ones (1,5)), y) -***** assert (unidcdf (x, 10*ones (1,5), "upper"), 1 - y) -***** assert (unidcdf (x, 10), y) -***** assert (unidcdf (x, 10, "upper"), 1 - y) -***** assert (unidcdf (x, 10*[0 1 NaN 1 1]), [NaN 0.1 NaN y(4:5)]) -***** assert (unidcdf ([x(1:2) NaN Inf x(5)], 10), [y(1:2) NaN 1 y(5)]) -***** assert (unidcdf ([x, NaN], 10), [y, NaN]) -***** assert (unidcdf (single ([x, NaN]), 10), single ([y, NaN])) -***** assert (unidcdf ([x, NaN], single (10)), single ([y, NaN])) -***** error unidcdf () -***** error unidcdf (1) -***** error unidcdf (1, 2, 3) -***** error unidcdf (1, 2, "tail") -***** error ... - unidcdf (ones (3), ones (2)) -***** error ... - unidcdf (ones (2), ones (3)) -***** error unidcdf (i, 2) -***** error unidcdf (2, i) -17 tests, 17 passed, 0 known failure, 0 skipped [inst/dist_fun/nakapdf.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nakapdf.m ***** demo @@ -24450,50 +19541,558 @@ ***** error nakapdf (1, i, 3) ***** error nakapdf (1, 4, i) 17 tests, 17 passed, 0 known failure, 0 skipped -[inst/dist_fun/finv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/finv.m +[inst/dist_fun/chi2rnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/chi2rnd.m +***** assert (size (chi2rnd (2)), [1, 1]) +***** assert (size (chi2rnd (ones (2,1))), [2, 1]) +***** assert (size (chi2rnd (ones (2,2))), [2, 2]) +***** assert (size (chi2rnd (1, 3)), [3, 3]) +***** assert (size (chi2rnd (1, [4 1])), [4, 1]) +***** assert (size (chi2rnd (1, 4, 1)), [4, 1]) +***** assert (size (chi2rnd (1, 4, 1)), [4, 1]) +***** assert (size (chi2rnd (1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (chi2rnd (1, 0, 1)), [0, 1]) +***** assert (size (chi2rnd (1, 1, 0)), [1, 0]) +***** assert (size (chi2rnd (1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (chi2rnd (2)), "double") +***** assert (class (chi2rnd (single (2))), "single") +***** assert (class (chi2rnd (single ([2 2]))), "single") +***** error chi2rnd () +***** error chi2rnd (i) +***** error ... + chi2rnd (1, -1) +***** error ... + chi2rnd (1, 1.2) +***** error ... + chi2rnd (1, ones (2)) +***** error ... + chi2rnd (1, [2 -1 2]) +***** error ... + chi2rnd (1, [2 0 2.5]) +***** error ... + chi2rnd (ones (2), ones (2)) +***** error ... + chi2rnd (1, 2, -1, 5) +***** error ... + chi2rnd (1, 2, 1.5, 5) +***** error chi2rnd (ones (2,2), 3) +***** error chi2rnd (ones (2,2), [3, 2]) +***** error chi2rnd (ones (2,2), 2, 3) +27 tests, 27 passed, 0 known failure, 0 skipped +[inst/dist_fun/gamrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gamrnd.m +***** assert (size (gamrnd (1, 1)), [1 1]) +***** assert (size (gamrnd (1, ones (2,1))), [2, 1]) +***** assert (size (gamrnd (1, ones (2,2))), [2, 2]) +***** assert (size (gamrnd (ones (2,1), 1)), [2, 1]) +***** assert (size (gamrnd (ones (2,2), 1)), [2, 2]) +***** assert (size (gamrnd (1, 1, 3)), [3, 3]) +***** assert (size (gamrnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (gamrnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (gamrnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (gamrnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (gamrnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (gamrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (gamrnd (1, 1)), "double") +***** assert (class (gamrnd (1, single (1))), "single") +***** assert (class (gamrnd (1, single ([1, 1]))), "single") +***** assert (class (gamrnd (single (1), 1)), "single") +***** assert (class (gamrnd (single ([1, 1]), 1)), "single") +***** error gamrnd () +***** error gamrnd (1) +***** error ... + gamrnd (ones (3), ones (2)) +***** error ... + gamrnd (ones (2), ones (3)) +***** error gamrnd (i, 2, 3) +***** error gamrnd (1, i, 3) +***** error ... + gamrnd (1, 2, -1) +***** error ... + gamrnd (1, 2, 1.2) +***** error ... + gamrnd (1, 2, ones (2)) +***** error ... + gamrnd (1, 2, [2 -1 2]) +***** error ... + gamrnd (1, 2, [2 0 2.5]) +***** error ... + gamrnd (1, 2, 2, -1, 5) +***** error ... + gamrnd (1, 2, 2, 1.5, 5) +***** error ... + gamrnd (2, ones (2), 3) +***** error ... + gamrnd (2, ones (2), [3, 2]) +***** error ... + gamrnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/betapdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/betapdf.m ***** demo - ## Plot various iCDFs from the F distribution + ## Plot various PDFs from the Beta distribution + x = 0.001:0.001:0.999; + y1 = betapdf (x, 0.5, 0.5); + y2 = betapdf (x, 5, 1); + y3 = betapdf (x, 1, 3); + y4 = betapdf (x, 2, 2); + y5 = betapdf (x, 2, 5); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c", x, y5, "-m") + grid on + ylim ([0, 2.5]) + legend ({"α = β = 0.5", "α = 5, β = 1", "α = 1, β = 3", ... + "α = 2, β = 2", "α = 2, β = 5"}, "location", "north") + title ("Beta PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-1 0 0.5 1 2]; + y = [0 2 1 0 0]; +***** assert (betapdf (x, ones (1, 5), 2 * ones (1, 5)), y) +***** assert (betapdf (x, 1, 2 * ones (1, 5)), y) +***** assert (betapdf (x, ones (1, 5), 2), y) +***** assert (betapdf (x, [0 NaN 1 1 1], 2), [NaN NaN y(3:5)]) +***** assert (betapdf (x, 1, 2 * [0 NaN 1 1 1]), [NaN NaN y(3:5)]) +***** assert (betapdf ([x, NaN], 1, 2), [y, NaN]) +***** assert (betapdf (single ([x, NaN]), 1, 2), single ([y, NaN])) +***** assert (betapdf ([x, NaN], single (1), 2), single ([y, NaN])) +***** assert (betapdf ([x, NaN], 1, single (2)), single ([y, NaN])) +***** test + x = rand (10,1); + y = 1 ./ (pi * sqrt (x .* (1 - x))); + assert (betapdf (x, 1/2, 1/2), y, 1e-12); +***** assert (betapdf (0.5, 1000, 1000), 35.678, 1e-3) +***** error betapdf () +***** error betapdf (1) +***** error betapdf (1,2) +***** error betapdf (1,2,3,4) +***** error ... + betapdf (ones (3), ones (2), ones (2)) +***** error ... + betapdf (ones (2), ones (3), ones (2)) +***** error ... + betapdf (ones (2), ones (2), ones (3)) +***** error betapdf (i, 2, 2) +***** error betapdf (2, i, 2) +***** error betapdf (2, 2, i) +21 tests, 21 passed, 0 known failure, 0 skipped +[inst/dist_fun/ncfinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncfinv.m +***** demo + ## Plot various iCDFs from the noncentral F distribution p = 0.001:0.001:0.999; - x1 = finv (p, 1, 1); - x2 = finv (p, 2, 1); - x3 = finv (p, 5, 2); - x4 = finv (p, 10, 1); - x5 = finv (p, 100, 100); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-m") + x1 = ncfinv (p, 2, 5, 1); + x2 = ncfinv (p, 2, 5, 2); + x3 = ncfinv (p, 5, 10, 1); + x4 = ncfinv (p, 10, 20, 10); + plot (p, x1, "-r", p, x2, "-g", p, x3, "-k", p, x4, "-m") grid on - ylim ([0, 4]) - legend ({"df1 = 1, df2 = 2", "df1 = 2, df2 = 1", ... - "df1 = 5, df2 = 2", "df1 = 10, df2 = 1", ... - "df1 = 100, df2 = 100"}, "location", "northwest") - title ("F iCDF") + ylim ([0, 5]) + legend ({"df1 = 2, df2 = 5, λ = 1", "df1 = 2, df2 = 5, λ = 2", ... + "df1 = 5, df2 = 10, λ = 1", "df1 = 10, df2 = 20, λ = 10"}, ... + "location", "northwest") + title ("Noncentral F iCDF") + xlabel ("probability") + ylabel ("values in x") +***** demo + ## Compare the noncentral F iCDF with LAMBDA = 10 to the F iCDF with the + ## same number of numerator and denominator degrees of freedom (5, 20) + + p = 0.001:0.001:0.999; + x1 = ncfinv (p, 5, 20, 10); + x2 = finv (p, 5, 20); + plot (p, x1, "-", p, x2, "-"); + grid on + ylim ([0, 10]) + legend ({"Noncentral F(5,20,10)", "F(5,20)"}, "location", "northwest") + title ("Noncentral F vs F quantile functions") + xlabel ("probability") + ylabel ("values in x") +***** test + x = [0,0.1775,0.3864,0.6395,0.9564,1.3712,1.9471,2.8215,4.3679,8.1865,Inf]; + assert (ncfinv ([0:0.1:1], 2, 3, 1), x, 1e-4); +***** test + x = [0,0.7492,1.3539,2.0025,2.7658,3.7278,5.0324,6.9826,10.3955,18.7665,Inf]; + assert (ncfinv ([0:0.1:1], 2, 3, 5), x, 1e-4); +***** test + x = [0,0.2890,0.8632,1.5653,2.4088,3.4594,4.8442,6.8286,10.0983,17.3736,Inf]; + assert (ncfinv ([0:0.1:1], 1, 4, 3), x, 1e-4); +***** test + x = [0.078410, 0.212716, 0.288618, 0.335752, 0.367963, 0.391460]; + assert (ncfinv (0.05, [1, 2, 3, 4, 5, 6], 10, 3), x, 1e-6); +***** test + x = [0.2574, 0.2966, 0.3188, 0.3331, 0.3432, 0.3507]; + assert (ncfinv (0.05, 5, [1, 2, 3, 4, 5, 6], 3), x, 1e-4); +***** test + x = [1.6090, 1.8113, 1.9215, 1.9911, NaN, 2.0742]; + assert (ncfinv (0.05, 1, [1, 2, 3, 4, -1, 6], 10), x, 1e-4); +***** test + assert (ncfinv (0.996, 3, 5, 8), 58.0912074080671, 2e-13); +***** error ncfinv () +***** error ncfinv (1) +***** error ncfinv (1, 2) +***** error ncfinv (1, 2, 3) +***** error ... + ncfinv (ones (3), ones (2), ones (2), ones (2)) +***** error ... + ncfinv (ones (2), ones (3), ones (2), ones (2)) +***** error ... + ncfinv (ones (2), ones (2), ones (3), ones (2)) +***** error ... + ncfinv (ones (2), ones (2), ones (2), ones (3)) +***** error ncfinv (i, 2, 2, 2) +***** error ncfinv (2, i, 2, 2) +***** error ncfinv (2, 2, i, 2) +***** error ncfinv (2, 2, 2, i) +19 tests, 19 passed, 0 known failure, 0 skipped +[inst/dist_fun/normcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/normcdf.m +***** demo + ## Plot various CDFs from the normal distribution + x = -5:0.01:5; + p1 = normcdf (x, 0, 0.5); + p2 = normcdf (x, 0, 1); + p3 = normcdf (x, 0, 2); + p4 = normcdf (x, -2, 0.8); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") + grid on + xlim ([-5, 5]) + legend ({"μ = 0, σ = 0.5", "μ = 0, σ = 1", ... + "μ = 0, σ = 2", "μ = -2, σ = 0.8"}, "location", "southeast") + title ("Normal CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y + x = [-Inf 1 2 Inf]; + y = [0, 0.5, 1/2*(1+erf(1/sqrt(2))), 1]; +***** assert (normcdf (x, ones (1,4), ones (1,4)), y) +***** assert (normcdf (x, 1, ones (1,4)), y) +***** assert (normcdf (x, ones (1,4), 1), y) +***** assert (normcdf (x, [0, -Inf, NaN, Inf], 1), [0, 1, NaN, NaN]) +***** assert (normcdf (x, 1, [Inf, NaN, -1, 0]), [NaN, NaN, NaN, 1]) +***** assert (normcdf ([x(1:2), NaN, x(4)], 1, 1), [y(1:2), NaN, y(4)]) +***** assert (normcdf (x, "upper"), [1, 0.1587, 0.0228, 0], 1e-4) +***** assert (normcdf ([x, NaN], 1, 1), [y, NaN]) +***** assert (normcdf (single ([x, NaN]), 1, 1), single ([y, NaN]), eps ("single")) +***** assert (normcdf ([x, NaN], single (1), 1), single ([y, NaN]), eps ("single")) +***** assert (normcdf ([x, NaN], 1, single (1)), single ([y, NaN]), eps ("single")) +***** error normcdf () +***** error normcdf (1,2,3,4,5,6,7) +***** error normcdf (1, 2, 3, 4, "uper") +***** error ... + normcdf (ones (3), ones (2), ones (2)) +***** error normcdf (2, 3, 4, [1, 2]) +***** error ... + [p, plo, pup] = normcdf (1, 2, 3) +***** error [p, plo, pup] = ... + normcdf (1, 2, 3, [1, 0; 0, 1], 0) +***** error [p, plo, pup] = ... + normcdf (1, 2, 3, [1, 0; 0, 1], 1.22) +***** error [p, plo, pup] = ... + normcdf (1, 2, 3, [1, 0; 0, 1], "alpha", "upper") +***** error normcdf (i, 2, 2) +***** error normcdf (2, i, 2) +***** error normcdf (2, 2, i) +***** error ... + [p, plo, pup] =normcdf (1, 2, 3, [1, 0; 0, -inf], 0.04) +24 tests, 24 passed, 0 known failure, 0 skipped +[inst/dist_fun/tlsinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tlsinv.m +***** demo + ## Plot various iCDFs from the location-scale Student's T distribution + p = 0.001:0.001:0.999; + x1 = tlsinv (p, 0, 1, 1); + x2 = tlsinv (p, 0, 2, 2); + x3 = tlsinv (p, 3, 2, 5); + x4 = tlsinv (p, -1, 3, Inf); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-m") + grid on + xlim ([0, 1]) + ylim ([-8, 8]) + legend ({"mu = 0, sigma = 1, nu = 1", "mu = 0, sigma = 2, nu = 2", ... + "mu = 3, sigma = 2, nu = 5", 'mu = -1, sigma = 3, nu = \infty'}, ... + "location", "southeast") + title ("Location-scale Student's T iCDF") xlabel ("probability") ylabel ("values in x") ***** shared p p = [-1 0 0.5 1 2]; -***** assert (finv (p, 2*ones (1,5), 2*ones (1,5)), [NaN 0 1 Inf NaN]) -***** assert (finv (p, 2, 2*ones (1,5)), [NaN 0 1 Inf NaN]) -***** assert (finv (p, 2*ones (1,5), 2), [NaN 0 1 Inf NaN]) -***** assert (finv (p, [2 -Inf NaN Inf 2], 2), [NaN NaN NaN NaN NaN]) -***** assert (finv (p, 2, [2 -Inf NaN Inf 2]), [NaN NaN NaN NaN NaN]) -***** assert (finv ([p(1:2) NaN p(4:5)], 2, 2), [NaN 0 NaN Inf NaN]) -***** assert (finv ([p, NaN], 2, 2), [NaN 0 1 Inf NaN NaN]) -***** assert (finv (single ([p, NaN]), 2, 2), single ([NaN 0 1 Inf NaN NaN])) -***** assert (finv ([p, NaN], single (2), 2), single ([NaN 0 1 Inf NaN NaN])) -***** assert (finv ([p, NaN], 2, single (2)), single ([NaN 0 1 Inf NaN NaN])) -***** error finv () -***** error finv (1) -***** error finv (1,2) -***** error ... - finv (ones (3), ones (2), ones (2)) -***** error ... - finv (ones (2), ones (3), ones (2)) -***** error ... - finv (ones (2), ones (2), ones (3)) -***** error finv (i, 2, 2) -***** error finv (2, i, 2) -***** error finv (2, 2, i) -19 tests, 19 passed, 0 known failure, 0 skipped +***** assert (tlsinv (p, 0, 1, ones (1,5)), [NaN -Inf 0 Inf NaN]) +***** assert (tlsinv (p, 0, 1, 1), [NaN -Inf 0 Inf NaN], eps) +***** assert (tlsinv (p, 0, 1, [1 0 NaN 1 1]), [NaN NaN NaN Inf NaN], eps) +***** assert (tlsinv ([p(1:2) NaN p(4:5)], 0, 1, 1), [NaN -Inf NaN Inf NaN]) +***** assert (class (tlsinv ([p, NaN], 0, 1, 1)), "double") +***** assert (class (tlsinv (single ([p, NaN]), 0, 1, 1)), "single") +***** assert (class (tlsinv ([p, NaN], single (0), 1, 1)), "single") +***** assert (class (tlsinv ([p, NaN], 0, single (1), 1)), "single") +***** assert (class (tlsinv ([p, NaN], 0, 1, single (1))), "single") +***** error tlsinv () +***** error tlsinv (1) +***** error tlsinv (1, 2) +***** error tlsinv (1, 2, 3) +***** error ... + tlsinv (ones (3), ones (2), 1, 1) +***** error ... + tlsinv (ones (2), 1, ones (3), 1) +***** error ... + tlsinv (ones (2), 1, 1, ones (3)) +***** error tlsinv (i, 2, 3, 4) +***** error tlsinv (2, i, 3, 4) +***** error tlsinv (2, 2, i, 4) +***** error tlsinv (2, 2, 3, i) +20 tests, 20 passed, 0 known failure, 0 skipped +[inst/dist_fun/lognpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/lognpdf.m +***** demo + ## Plot various PDFs from the log-normal distribution + x = 0:0.01:5; + y1 = lognpdf (x, 0, 1); + y2 = lognpdf (x, 0, 0.5); + y3 = lognpdf (x, 0, 0.25); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r") + grid on + ylim ([0, 2]) + legend ({"μ = 0, σ = 1", "μ = 0, σ = 0.5", "μ = 0, σ = 0.25"}, ... + "location", "northeast") + title ("Log-normal PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-1 0 e Inf]; + y = [0, 0, 1/(e*sqrt(2*pi)) * exp(-1/2), 0]; +***** assert (lognpdf (x, zeros (1,4), ones (1,4)), y, eps) +***** assert (lognpdf (x, 0, ones (1,4)), y, eps) +***** assert (lognpdf (x, zeros (1,4), 1), y, eps) +***** assert (lognpdf (x, [0 1 NaN 0], 1), [0 0 NaN y(4)], eps) +***** assert (lognpdf (x, 0, [0 NaN Inf 1]), [NaN NaN NaN y(4)], eps) +***** assert (lognpdf ([x, NaN], 0, 1), [y, NaN], eps) +***** assert (lognpdf (single ([x, NaN]), 0, 1), single ([y, NaN]), eps ("single")) +***** assert (lognpdf ([x, NaN], single (0), 1), single ([y, NaN]), eps ("single")) +***** assert (lognpdf ([x, NaN], 0, single (1)), single ([y, NaN]), eps ("single")) +***** error lognpdf () +***** error lognpdf (1,2,3,4) +***** error lognpdf (ones (3), ones (2), ones (2)) +***** error lognpdf (ones (2), ones (3), ones (2)) +***** error lognpdf (ones (2), ones (2), ones (3)) +***** error lognpdf (i, 2, 2) +***** error lognpdf (2, i, 2) +***** error lognpdf (2, 2, i) +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/dist_fun/nakarnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nakarnd.m +***** assert (size (nakarnd (1, 1)), [1 1]) +***** assert (size (nakarnd (1, ones (2,1))), [2, 1]) +***** assert (size (nakarnd (1, ones (2,2))), [2, 2]) +***** assert (size (nakarnd (ones (2,1), 1)), [2, 1]) +***** assert (size (nakarnd (ones (2,2), 1)), [2, 2]) +***** assert (size (nakarnd (1, 1, 3)), [3, 3]) +***** assert (size (nakarnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (nakarnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (nakarnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (nakarnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (nakarnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (nakarnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (nakarnd (1, 1)), "double") +***** assert (class (nakarnd (1, single (1))), "single") +***** assert (class (nakarnd (1, single ([1, 1]))), "single") +***** assert (class (nakarnd (single (1), 1)), "single") +***** assert (class (nakarnd (single ([1, 1]), 1)), "single") +***** error nakarnd () +***** error nakarnd (1) +***** error ... + nakarnd (ones (3), ones (2)) +***** error ... + nakarnd (ones (2), ones (3)) +***** error nakarnd (i, 2, 3) +***** error nakarnd (1, i, 3) +***** error ... + nakarnd (1, 2, -1) +***** error ... + nakarnd (1, 2, 1.2) +***** error ... + nakarnd (1, 2, ones (2)) +***** error ... + nakarnd (1, 2, [2 -1 2]) +***** error ... + nakarnd (1, 2, [2 0 2.5]) +***** error ... + nakarnd (1, 2, 2, -1, 5) +***** error ... + nakarnd (1, 2, 2, 1.5, 5) +***** error ... + nakarnd (2, ones (2), 3) +***** error ... + nakarnd (2, ones (2), [3, 2]) +***** error ... + nakarnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/mvncdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mvncdf.m +***** demo + mu = [1, -1]; + Sigma = [0.9, 0.4; 0.4, 0.3]; + [X1, X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); + X = [X1(:), X2(:)]; + p = mvncdf (X, mu, Sigma); + Z = reshape (p, 25, 25); + surf (X1, X2, Z); + title ("Bivariate Normal Distribution"); + ylabel "X1" + xlabel "X2" +***** demo + mu = [0, 0]; + Sigma = [0.25, 0.3; 0.3, 1]; + p = mvncdf ([0 0], [1 1], mu, Sigma); + x1 = -3:.2:3; + x2 = -3:.2:3; + [X1, X2] = meshgrid (x1, x2); + X = [X1(:), X2(:)]; + p = mvnpdf (X, mu, Sigma); + p = reshape (p, length (x2), length (x1)); + contour (x1, x2, p, [0.0001, 0.001, 0.01, 0.05, 0.15, 0.25, 0.35]); + xlabel ("x"); + ylabel ("p"); + title ("Probability over Rectangular Region"); + line ([0, 0, 1, 1, 0], [1, 0, 0, 1, 1], "Linestyle", "--", "Color", "k"); +***** test + fD = (-2:2)'; + X = repmat (fD, 1, 4); + p = mvncdf (X); + assert (p, [0; 0.0006; 0.0625; 0.5011; 0.9121], ones (5, 1) * 1e-4); +***** test + mu = [1, -1]; + Sigma = [0.9, 0.4; 0.4, 0.3]; + [X1,X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); + X = [X1(:), X2(:)]; + p = mvncdf (X, mu, Sigma); + p_out = [0.00011878988774500, 0.00034404112322371, ... + 0.00087682502191813, 0.00195221905058185, ... + 0.00378235566873474, 0.00638175749734415, ... + 0.00943764224329656, 0.01239164888125426, ... + 0.01472750274376648, 0.01623228313374828]'; + assert (p([1:10]), p_out, 1e-16); +***** test + mu = [1, -1]; + Sigma = [0.9, 0.4; 0.4, 0.3]; + [X1,X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); + X = [X1(:), X2(:)]; + p = mvncdf (X, mu, Sigma); + p_out = [0.8180695783608276, 0.8854485749482751, ... + 0.9308108777385832, 0.9579855743025508, ... + 0.9722897881414742, 0.9788150170059926, ... + 0.9813597788804785, 0.9821977956568989, ... + 0.9824283794464095, 0.9824809345614861]'; + assert (p([616:625]), p_out, 2e-16); +***** test + mu = [0, 0]; + Sigma = [0.25, 0.3; 0.3, 1]; + [p, err] = mvncdf ([0 0], [1 1], mu, Sigma); + assert (p, 0.2097424404755626, 1e-16); + assert (err, 1e-08); +***** test + x = [1 2]; + mu = [0.5 1.5]; + sigma = [1.0 0.5; 0.5 1.0]; + p = mvncdf (x, mu, sigma); + assert (p, 0.546244443857090, 1e-15); +***** test + x = [1 2]; + mu = [0.5 1.5]; + sigma = [1.0 0.5; 0.5 1.0]; + a = [-inf 0]; + p = mvncdf (a, x, mu, sigma); + assert (p, 0.482672935215631, 1e-15); +***** error p = mvncdf (randn (25,26), [], eye (26)); +***** error p = mvncdf (randn (25,8), [], eye (9)); +***** error p = mvncdf (randn (25,4), randn (25,5), [], eye (4)); +***** error p = mvncdf (randn (25,4), randn (25,4), [2, 3; 2, 3], eye (4)); +***** error p = mvncdf (randn (25,4), randn (25,4), ones (1, 5), eye (4)); +***** error p = mvncdf ([-inf 0], [1, 2], [0.5 1.5], [1.0 0.5; 0.5 1.0], option); +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/dist_fun/gppdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gppdf.m +***** demo + ## Plot various PDFs from the generalized Pareto distribution + x = 0:0.001:5; + y1 = gppdf (x, 1, 1, 0); + y2 = gppdf (x, 5, 1, 0); + y3 = gppdf (x, 20, 1, 0); + y4 = gppdf (x, 1, 2, 0); + y5 = gppdf (x, 5, 2, 0); + y6 = gppdf (x, 20, 2, 0); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", ... + x, y4, "-c", x, y5, "-m", x, y6, "-k") + grid on + xlim ([0, 5]) + ylim ([0, 1]) + legend ({"k = 1, σ = 1, θ = 0", "k = 5, σ = 1, θ = 0", ... + "k = 20, σ = 1, θ = 0", "k = 1, σ = 2, θ = 0", ... + "k = 5, σ = 2, θ = 0", "k = 20, σ = 2, θ = 0"}, ... + "location", "northeast") + title ("Generalized Pareto PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y1, y2, y3 + x = [-Inf, -1, 0, 1/2, 1, Inf]; + y1 = [0, 0, 1, 0.6065306597126334, 0.36787944117144233, 0]; + y2 = [0, 0, 1, 4/9, 1/4, 0]; + y3 = [0, 0, 1, 1, 1, 0]; +***** assert (gppdf (x, zeros (1,6), ones (1,6), zeros (1,6)), y1, eps) +***** assert (gppdf (x, 0, 1, zeros (1,6)), y1, eps) +***** assert (gppdf (x, 0, ones (1,6), 0), y1, eps) +***** assert (gppdf (x, zeros (1,6), 1, 0), y1, eps) +***** assert (gppdf (x, 0, 1, 0), y1, eps) +***** assert (gppdf (x, 0, 1, [0, 0, 0, NaN, 0, 0]), [y1(1:3), NaN, y1(5:6)]) +***** assert (gppdf (x, 0, [1, 1, 1, NaN, 1, 1], 0), [y1(1:3), NaN, y1(5:6)]) +***** assert (gppdf (x, [0, 0, 0, NaN, 0, 0], 1, 0), [y1(1:3), NaN, y1(5:6)]) +***** assert (gppdf ([x(1:3), NaN, x(5:6)], 0, 1, 0), [y1(1:3), NaN, y1(5:6)]) +***** assert (gppdf (x, ones (1,6), ones (1,6), zeros (1,6)), y2, eps) +***** assert (gppdf (x, 1, 1, zeros (1,6)), y2, eps) +***** assert (gppdf (x, 1, ones (1,6), 0), y2, eps) +***** assert (gppdf (x, ones (1,6), 1, 0), y2, eps) +***** assert (gppdf (x, 1, 1, 0), y2, eps) +***** assert (gppdf (x, 1, 1, [0, 0, 0, NaN, 0, 0]), [y2(1:3), NaN, y2(5:6)]) +***** assert (gppdf (x, 1, [1, 1, 1, NaN, 1, 1], 0), [y2(1:3), NaN, y2(5:6)]) +***** assert (gppdf (x, [1, 1, 1, NaN, 1, 1], 1, 0), [y2(1:3), NaN, y2(5:6)]) +***** assert (gppdf ([x(1:3), NaN, x(5:6)], 1, 1, 0), [y2(1:3), NaN, y2(5:6)]) +***** assert (gppdf (x, -ones (1,6), ones (1,6), zeros (1,6)), y3, eps) +***** assert (gppdf (x, -1, 1, zeros (1,6)), y3, eps) +***** assert (gppdf (x, -1, ones (1,6), 0), y3, eps) +***** assert (gppdf (x, -ones (1,6), 1, 0), y3, eps) +***** assert (gppdf (x, -1, 1, 0), y3, eps) +***** assert (gppdf (x, -1, 1, [0, 0, 0, NaN, 0, 0]), [y3(1:3), NaN, y3(5:6)]) +***** assert (gppdf (x, -1, [1, 1, 1, NaN, 1, 1], 0), [y3(1:3), NaN, y3(5:6)]) +***** assert (gppdf (x, [-1, -1, -1, NaN, -1, -1], 1, 0), [y3(1:3), NaN, y3(5:6)]) +***** assert (gppdf ([x(1:3), NaN, x(5:6)], -1, 1, 0), [y3(1:3), NaN, y3(5:6)]) +***** assert (gppdf (single ([x, NaN]), 0, 1, 0), single ([y1, NaN])) +***** assert (gppdf ([x, NaN], 0, 1, single (0)), single ([y1, NaN])) +***** assert (gppdf ([x, NaN], 0, single (1), 0), single ([y1, NaN])) +***** assert (gppdf ([x, NaN], single (0), 1, 0), single ([y1, NaN])) +***** assert (gppdf (single ([x, NaN]), 1, 1, 0), single ([y2, NaN])) +***** assert (gppdf ([x, NaN], 1, 1, single (0)), single ([y2, NaN])) +***** assert (gppdf ([x, NaN], 1, single (1), 0), single ([y2, NaN])) +***** assert (gppdf ([x, NaN], single (1), 1, 0), single ([y2, NaN])) +***** assert (gppdf (single ([x, NaN]), -1, 1, 0), single ([y3, NaN])) +***** assert (gppdf ([x, NaN], -1, 1, single (0)), single ([y3, NaN])) +***** assert (gppdf ([x, NaN], -1, single (1), 0), single ([y3, NaN])) +***** assert (gppdf ([x, NaN], single (-1), 1, 0), single ([y3, NaN])) +***** error gpcdf () +***** error gpcdf (1) +***** error gpcdf (1, 2) +***** error gpcdf (1, 2, 3) +***** error ... + gpcdf (ones (3), ones (2), ones(2), ones(2)) +***** error ... + gpcdf (ones (2), ones (3), ones(2), ones(2)) +***** error ... + gpcdf (ones (2), ones (2), ones(3), ones(2)) +***** error ... + gpcdf (ones (2), ones (2), ones(2), ones(3)) +***** error gpcdf (i, 2, 3, 4) +***** error gpcdf (1, i, 3, 4) +***** error gpcdf (1, 2, i, 4) +***** error gpcdf (1, 2, 3, i) +51 tests, 51 passed, 0 known failure, 0 skipped [inst/dist_fun/triinv.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/triinv.m ***** demo @@ -24547,382 +20146,54 @@ ***** error triinv (1, 2, i, 4) ***** error triinv (1, 2, 3, i) 26 tests, 26 passed, 0 known failure, 0 skipped -[inst/dist_fun/tpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/tpdf.m -***** demo - ## Plot various PDFs from the Student's T distribution - x = -5:0.01:5; - y1 = tpdf (x, 1); - y2 = tpdf (x, 2); - y3 = tpdf (x, 5); - y4 = tpdf (x, Inf); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-m") - grid on - xlim ([-5, 5]) - ylim ([0, 0.41]) - legend ({"df = 1", "df = 2", ... - "df = 5", 'df = \infty'}, "location", "northeast") - title ("Student's T PDF") - xlabel ("values in x") - ylabel ("density") -***** test - x = rand (10,1); - y = 1./(pi * (1 + x.^2)); - assert (tpdf (x, 1), y, 5*eps); -***** shared x, y - x = [-Inf 0 0.5 1 Inf]; - y = 1./(pi * (1 + x.^2)); -***** assert (tpdf (x, ones (1,5)), y, eps) -***** assert (tpdf (x, 1), y, eps) -***** assert (tpdf (x, [0 NaN 1 1 1]), [NaN NaN y(3:5)], eps) -***** assert (tpdf (x, Inf), normpdf (x)) -***** assert (tpdf ([x, NaN], 1), [y, NaN], eps) -***** assert (tpdf (single ([x, NaN]), 1), single ([y, NaN]), eps ("single")) -***** assert (tpdf ([x, NaN], single (1)), single ([y, NaN]), eps ("single")) -***** error tpdf () -***** error tpdf (1) -***** error ... - tpdf (ones (3), ones (2)) -***** error ... - tpdf (ones (2), ones (3)) -***** error tpdf (i, 2) -***** error tpdf (2, i) -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/dist_fun/binopdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/binopdf.m -***** demo - ## Plot various PDFs from the binomial distribution - x = 0:40; - y1 = binopdf (x, 20, 0.5); - y2 = binopdf (x, 20, 0.7); - y3 = binopdf (x, 40, 0.5); - plot (x, y1, "*b", x, y2, "*g", x, y3, "*r") - grid on - ylim ([0, 0.25]) - legend ({"n = 20, ps = 0.5", "n = 20, ps = 0.7", ... - "n = 40, ps = 0.5"}, "location", "northeast") - title ("Binomial PDF") - xlabel ("values in x (number of successes)") - ylabel ("density") -***** shared x, y - x = [-1 0 1 2 3]; - y = [0 1/4 1/2 1/4 0]; -***** assert (binopdf (x, 2 * ones (1, 5), 0.5 * ones (1, 5)), y, eps) -***** assert (binopdf (x, 2, 0.5 * ones (1, 5)), y, eps) -***** assert (binopdf (x, 2 * ones (1, 5), 0.5), y, eps) -***** assert (binopdf (x, 2 * [0 -1 NaN 1.1 1], 0.5), [0 NaN NaN NaN 0]) -***** assert (binopdf (x, 2, 0.5 * [0 -1 NaN 3 1]), [0 NaN NaN NaN 0]) -***** assert (binopdf ([x, NaN], 2, 0.5), [y, NaN], eps) -***** assert (binopdf (cat (3, x, x), 2, 0.5), cat (3, y, y), eps) -***** assert (binopdf (1, 1, 1), 1) -***** assert (binopdf (0, 3, 0), 1) -***** assert (binopdf (2, 2, 1), 1) -***** assert (binopdf (1, 2, 1), 0) -***** assert (binopdf (0, 1.1, 0), NaN) -***** assert (binopdf (1, 2, -1), NaN) -***** assert (binopdf (1, 2, 1.5), NaN) -***** assert (binopdf ([], 1, 1), []) -***** assert (binopdf (1, [], 1), []) -***** assert (binopdf (1, 1, []), []) -***** assert (binopdf (ones (1, 0), 2, .5), ones(1, 0)) -***** assert (binopdf (ones (0, 1), 2, .5), ones(0, 1)) -***** assert (binopdf (ones (0, 1, 2), 2, .5), ones(0, 1, 2)) -***** assert (binopdf (1, ones (0, 1, 2), .5), ones(0, 1, 2)) -***** assert (binopdf (1, 2, ones (0, 1, 2)), ones(0, 1, 2)) -***** assert (binopdf (ones (1, 0, 2), 2, .5), ones(1, 0, 2)) -***** assert (binopdf (ones (1, 2, 0), 2, .5), ones(1, 2, 0)) -***** assert (binopdf (ones (0, 1, 2), NaN, .5), ones(0, 1, 2)) -***** assert (binopdf (ones (0, 1, 2), 2, NaN), ones(0, 1, 2)) -***** assert (binopdf (single ([x, NaN]), 2, 0.5), single ([y, NaN])) -***** assert (binopdf ([x, NaN], single (2), 0.5), single ([y, NaN])) -***** assert (binopdf ([x, NaN], 2, single (0.5)), single ([y, NaN])) -***** error binopdf () -***** error binopdf (1) -***** error binopdf (1, 2) -***** error binopdf (1, 2, 3, 4) -***** error ... - binopdf (ones (3), ones (2), ones (2)) -***** error ... - binopdf (ones (2), ones (3), ones (2)) -***** error ... - binopdf (ones (2), ones (2), ones (3)) -***** error binopdf (i, 2, 2) -***** error binopdf (2, i, 2) -***** error binopdf (2, 2, i) -39 tests, 39 passed, 0 known failure, 0 skipped -[inst/dist_fun/geopdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/geopdf.m -***** demo - ## Plot various PDFs from the geometric distribution - x = 0:10; - y1 = geopdf (x, 0.2); - y2 = geopdf (x, 0.5); - y3 = geopdf (x, 0.7); - plot (x, y1, "*b", x, y2, "*g", x, y3, "*r") - grid on - ylim ([0, 0.8]) - legend ({"ps = 0.2", "ps = 0.5", "ps = 0.7"}, "location", "northeast") - title ("Geometric PDF") - xlabel ("values in x (number of failures)") - ylabel ("density") -***** shared x, y - x = [-1 0 1 Inf]; - y = [0, 1/2, 1/4, NaN]; -***** assert (geopdf (x, 0.5*ones (1,4)), y) -***** assert (geopdf (x, 0.5), y) -***** assert (geopdf (x, 0.5*[-1 NaN 4 1]), [NaN NaN NaN y(4)]) -***** assert (geopdf ([x, NaN], 0.5), [y, NaN]) -***** assert (geopdf (single ([x, NaN]), 0.5), single ([y, NaN]), 5*eps ("single")) -***** assert (geopdf ([x, NaN], single (0.5)), single ([y, NaN]), 5*eps ("single")) -***** error geopdf () -***** error geopdf (1) -***** error geopdf (1,2,3) -***** error geopdf (ones (3), ones (2)) -***** error geopdf (ones (2), ones (3)) -***** error geopdf (i, 2) -***** error geopdf (2, i) -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_fun/normpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/normpdf.m -***** demo - ## Plot various PDFs from the normal distribution - x = -5:0.01:5; - y1 = normpdf (x, 0, 0.5); - y2 = normpdf (x, 0, 1); - y3 = normpdf (x, 0, 2); - y4 = normpdf (x, -2, 0.8); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") - grid on - xlim ([-5, 5]) - ylim ([0, 0.9]) - legend ({"μ = 0, σ = 0.5", "μ = 0, σ = 1", ... - "μ = 0, σ = 2", "μ = -2, σ = 0.8"}, "location", "northeast") - title ("Normal PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-Inf, 1, 2, Inf]; - y = 1 / sqrt (2 * pi) * exp (-(x - 1) .^ 2 / 2); -***** assert (normpdf (x, ones (1,4), ones (1,4)), y, eps) -***** assert (normpdf (x, 1, ones (1,4)), y, eps) -***** assert (normpdf (x, ones (1,4), 1), y, eps) -***** assert (normpdf (x, [0 -Inf NaN Inf], 1), [y(1) NaN NaN NaN], eps) -***** assert (normpdf (x, 1, [Inf NaN -1 0]), [NaN NaN NaN NaN], eps) -***** assert (normpdf ([x, NaN], 1, 1), [y, NaN], eps) -***** assert (normpdf (single ([x, NaN]), 1, 1), single ([y, NaN]), eps ("single")) -***** assert (normpdf ([x, NaN], single (1), 1), single ([y, NaN]), eps ("single")) -***** assert (normpdf ([x, NaN], 1, single (1)), single ([y, NaN]), eps ("single")) -***** error normpdf () -***** error ... - normpdf (ones (3), ones (2), ones (2)) -***** error ... - normpdf (ones (2), ones (3), ones (2)) -***** error ... - normpdf (ones (2), ones (2), ones (3)) -***** error normpdf (i, 2, 2) -***** error normpdf (2, i, 2) -***** error normpdf (2, 2, i) -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fun/mnrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/mnrnd.m -***** test - n = 10; - pk = [0.2, 0.5, 0.3]; - r = mnrnd (n, pk); - assert (size (r), size (pk)); - assert (all (r >= 0)); - assert (all (round (r) == r)); - assert (sum (r) == n); -***** test - n = 10 * ones (3, 1); - pk = [0.2, 0.5, 0.3]; - r = mnrnd (n, pk); - assert (size (r), [length(n), length(pk)]); - assert (all (r >= 0)); - assert (all (round (r) == r)); - assert (all (sum (r, 2) == n)); -***** test - n = (1:2)'; - pk = [0.2, 0.5, 0.3; 0.1, 0.1, 0.8]; - r = mnrnd (n, pk); - assert (size (r), size (pk)); - assert (all (r >= 0)); - assert (all (round (r) == r)); - assert (all (sum (r, 2) == n)); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/dist_fun/ncfpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncfpdf.m -***** demo - ## Plot various PDFs from the noncentral F distribution - x = 0:0.01:5; - y1 = ncfpdf (x, 2, 5, 1); - y2 = ncfpdf (x, 2, 5, 2); - y3 = ncfpdf (x, 5, 10, 1); - y4 = ncfpdf (x, 10, 20, 10); - plot (x, y1, "-r", x, y2, "-g", x, y3, "-k", x, y4, "-m") - grid on - xlim ([0, 5]) - ylim ([0, 0.8]) - legend ({"df1 = 2, df2 = 5, λ = 1", "df1 = 2, df2 = 5, λ = 2", ... - "df1 = 5, df2 = 10, λ = 1", "df1 = 10, df2 = 20, λ = 10"}, ... - "location", "northeast") - title ("Noncentral F PDF") - xlabel ("values in x") - ylabel ("density") -***** demo - ## Compare the noncentral F PDF with LAMBDA = 10 to the F PDF with the - ## same number of numerator and denominator degrees of freedom (5, 20) - - x = 0.01:0.1:10.01; - y1 = ncfpdf (x, 5, 20, 10); - y2 = fpdf (x, 5, 20); - plot (x, y1, "-", x, y2, "-"); - grid on - xlim ([0, 10]) - ylim ([0, 0.8]) - legend ({"Noncentral F(5,20,10)", "F(5,20)"}, "location", "northeast") - title ("Noncentral F vs F PDFs") - xlabel ("values in x") - ylabel ("density") -***** shared x1, df1, df2, lambda - x1 = [-Inf, 2, NaN, 4, Inf]; - df1 = [2, 0, -1, 1, 4]; - df2 = [2, 4, 5, 6, 8]; - lambda = [1, NaN, 3, -1, 2]; -***** assert (ncfpdf (x1, df1, df2, lambda), [0, NaN, NaN, NaN, NaN]); -***** assert (ncfpdf (x1, df1, df2, 1), [0, NaN, NaN, ... - 0.05607937264237208, NaN], 1e-14); -***** assert (ncfpdf (x1, df1, df2, 3), [0, NaN, NaN, ... - 0.080125760971946518, NaN], 1e-14); -***** assert (ncfpdf (x1, df1, df2, 2), [0, NaN, NaN, ... - 0.0715902008258656, NaN], 1e-14); -***** assert (ncfpdf (x1, 3, 5, lambda), [0, NaN, NaN, NaN, NaN]); -***** assert (ncfpdf (2, df1, df2, lambda), [0.1254046999837947, NaN, NaN, ... - NaN, 0.2152571783045893], 1e-14); -***** assert (ncfpdf (4, df1, df2, lambda), [0.05067089541001374, NaN, NaN, ... - NaN, 0.05560846335398539], 1e-14); -***** error ncfpdf () -***** error ncfpdf (1) -***** error ncfpdf (1, 2) -***** error ncfpdf (1, 2, 3) -***** error ... - ncfpdf (ones (3), ones (2), ones (2), ones (2)) -***** error ... - ncfpdf (ones (2), ones (3), ones (2), ones (2)) -***** error ... - ncfpdf (ones (2), ones (2), ones (3), ones (2)) -***** error ... - ncfpdf (ones (2), ones (2), ones (2), ones (3)) -***** error ncfpdf (i, 2, 2, 2) -***** error ncfpdf (2, i, 2, 2) -***** error ncfpdf (2, 2, i, 2) -***** error ncfpdf (2, 2, 2, i) -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/dist_fun/gamcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gamcdf.m -***** demo - ## Plot various CDFs from the Gamma distribution - x = 0:0.01:20; - p1 = gamcdf (x, 1, 2); - p2 = gamcdf (x, 2, 2); - p3 = gamcdf (x, 3, 2); - p4 = gamcdf (x, 5, 1); - p5 = gamcdf (x, 9, 0.5); - p6 = gamcdf (x, 7.5, 1); - p7 = gamcdf (x, 0.5, 1); - plot (x, p1, "-r", x, p2, "-g", x, p3, "-y", x, p4, "-m", ... - x, p5, "-k", x, p6, "-b", x, p7, "-c") - grid on - legend ({"α = 1, β = 2", "α = 2, β = 2", "α = 3, β = 2", ... - "α = 5, β = 1", "α = 9, β = 0.5", "α = 7.5, β = 1", ... - "α = 0.5, β = 1"}, "location", "southeast") - title ("Gamma CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y, u - x = [-1, 0, 0.5, 1, 2, Inf]; - y = [0, gammainc(x(2:end), 1)]; - u = [0, NaN, NaN, 1, 0.1353352832366127, 0]; -***** assert (gamcdf (x, ones (1,6), ones (1,6)), y, eps) -***** assert (gamcdf (x, ones (1,6), ones (1,6), []), y, eps) -***** assert (gamcdf (x, 1, ones (1,6)), y, eps) -***** assert (gamcdf (x, ones (1,6), 1), y, eps) -***** assert (gamcdf (x, [0, -Inf, NaN, Inf, 1, 1], 1), [1, NaN, NaN, 0, y(5:6)], eps) -***** assert (gamcdf (x, [0, -Inf, NaN, Inf, 1, 1], 1, "upper"), u, eps) -***** assert (gamcdf (x, 1, [0, -Inf, NaN, Inf, 1, 1]), [NaN, NaN, NaN, 0, y(5:6)], eps) -***** assert (gamcdf ([x(1:2), NaN, x(4:6)], 1, 1), [y(1:2), NaN, y(4:6)], eps) -***** assert (gamcdf ([x, NaN], 1, 1), [y, NaN]) -***** assert (gamcdf (single ([x, NaN]), 1, 1), single ([y, NaN]), eps ("single")) -***** assert (gamcdf ([x, NaN], single (1), 1), single ([y, NaN]), eps ("single")) -***** assert (gamcdf ([x, NaN], 1, single (1)), single ([y, NaN]), eps ("single")) -***** error gamcdf () -***** error gamcdf (1) -***** error gamcdf (1, 2, 3, 4, 5, 6, 7) -***** error gamcdf (1, 2, 3, "uper") -***** error gamcdf (1, 2, 3, 4, 5, "uper") -***** error gamcdf (2, 3, 4, [1, 2]) -***** error ... - [p, plo, pup] = gamcdf (1, 2, 3) -***** error ... - [p, plo, pup] = gamcdf (1, 2, 3, "upper") -***** error [p, plo, pup] = ... - gamcdf (1, 2, 3, [1, 0; 0, 1], 0) -***** error [p, plo, pup] = ... - gamcdf (1, 2, 3, [1, 0; 0, 1], 1.22) -***** error [p, plo, pup] = ... - gamcdf (1, 2, 3, [1, 0; 0, 1], "alpha", "upper") -***** error ... - gamcdf (ones (3), ones (2), ones (2)) -***** error ... - gamcdf (ones (2), ones (3), ones (2)) -***** error ... - gamcdf (ones (2), ones (2), ones (3)) -***** error gamcdf (i, 2, 2) -***** error gamcdf (2, i, 2) -***** error gamcdf (2, 2, i) -***** error ... - [p, plo, pup] = gamcdf (1, 2, 3, [1, 0; 0, -inf], 0.04) -30 tests, 30 passed, 0 known failure, 0 skipped -[inst/dist_fun/invginv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/invginv.m -***** demo - ## Plot various iCDFs from the inverse Gaussian distribution - p = 0.001:0.001:0.999; - x1 = invginv (p, 1, 0.2); - x2 = invginv (p, 1, 1); - x3 = invginv (p, 1, 3); - x4 = invginv (p, 3, 0.2); - x5 = invginv (p, 3, 1); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-y") - grid on - ylim ([0, 3]) - legend ({"μ = 1, σ = 0.2", "μ = 1, σ = 1", "μ = 1, σ = 3", ... - "μ = 3, σ = 0.2", "μ = 3, σ = 1"}, "location", "northwest") - title ("Inverse Gaussian iCDF") - xlabel ("probability") - ylabel ("x") -***** shared p, x - p = [0, 0.3829, 0.6827, 1]; - x = [0, 0.5207, 1.0376, Inf]; -***** assert (invginv (p, 1, 1), x, 1e-4); -***** assert (invginv (p, 1, ones (1,4)), x, 1e-4); -***** assert (invginv (p, 1, [-1, 0, 1, 1]), [NaN, NaN, x(3:4)], 1e-4) -***** assert (invginv (p, [-1, 0, 1, 1], 1), [NaN, NaN, x(3:4)], 1e-4) -***** assert (class (invginv (single ([p, NaN]), 0, 1)), "single") -***** assert (class (invginv ([p, NaN], single (0), 1)), "single") -***** assert (class (invginv ([p, NaN], 0, single (1))), "single") -***** error invginv (1) -***** error invginv (1, 2) -***** error ... - invginv (1, ones (2), ones (3)) -***** error ... - invginv (ones (2), 1, ones (3)) -***** error ... - invginv (ones (2), ones (3), 1) -***** error invginv (i, 2, 3) -***** error invginv (1, i, 3) -***** error invginv (1, 2, i) -15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_fun/vmrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/vmrnd.m +***** assert (size (vmrnd (1, 1)), [1 1]) +***** assert (size (vmrnd (1, ones (2,1))), [2, 1]) +***** assert (size (vmrnd (1, ones (2,2))), [2, 2]) +***** assert (size (vmrnd (ones (2,1), 1)), [2, 1]) +***** assert (size (vmrnd (ones (2,2), 1)), [2, 2]) +***** assert (size (vmrnd (1, 1, 3)), [3, 3]) +***** assert (size (vmrnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (vmrnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (vmrnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (vmrnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (vmrnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (vmrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (vmrnd (1, 1)), "double") +***** assert (class (vmrnd (1, single (1))), "single") +***** assert (class (vmrnd (1, single ([1, 1]))), "single") +***** assert (class (vmrnd (single (1), 1)), "single") +***** assert (class (vmrnd (single ([1, 1]), 1)), "single") +***** error vmrnd () +***** error vmrnd (1) +***** error ... + vmrnd (ones (3), ones (2)) +***** error ... + vmrnd (ones (2), ones (3)) +***** error vmrnd (i, 2, 3) +***** error vmrnd (1, i, 3) +***** error ... + vmrnd (1, 2, -1) +***** error ... + vmrnd (1, 2, 1.2) +***** error ... + vmrnd (1, 2, ones (2)) +***** error ... + vmrnd (1, 2, [2 -1 2]) +***** error ... + vmrnd (1, 2, [2 0 2.5]) +***** error ... + vmrnd (1, 2, 2, -1, 5) +***** error ... + vmrnd (1, 2, 2, 1.5, 5) +***** error ... + vmrnd (2, ones (2), 3) +***** error ... + vmrnd (2, ones (2), [3, 2]) +***** error ... + vmrnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped [inst/dist_fun/laplacepdf.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/laplacepdf.m ***** demo @@ -24964,1975 +20235,2329 @@ ***** error laplacepdf (1, i, 3) ***** error laplacepdf (1, 2, i) 15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fun/burrrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/burrrnd.m -***** assert (size (burrrnd (1, 1, 1)), [1 1]) -***** assert (size (burrrnd (ones (2,1), 1, 1)), [2, 1]) -***** assert (size (burrrnd (ones (2,2), 1, 1)), [2, 2]) -***** assert (size (burrrnd (1, ones (2,1), 1)), [2, 1]) -***** assert (size (burrrnd (1, ones (2,2), 1)), [2, 2]) -***** assert (size (burrrnd (1, 1, ones (2,1))), [2, 1]) -***** assert (size (burrrnd (1, 1, ones (2,2))), [2, 2]) -***** assert (size (burrrnd (1, 1, 1, 3)), [3, 3]) -***** assert (size (burrrnd (1, 1, 1, [4 1])), [4, 1]) -***** assert (size (burrrnd (1, 1, 1, 4, 1)), [4, 1]) -***** assert (class (burrrnd (1,1,1)), "double") -***** assert (class (burrrnd (single (1),1,1)), "single") -***** assert (class (burrrnd (single ([1 1]),1,1)), "single") -***** assert (class (burrrnd (1,single (1),1)), "single") -***** assert (class (burrrnd (1,single ([1 1]),1)), "single") -***** assert (class (burrrnd (1,1,single (1))), "single") -***** assert (class (burrrnd (1,1,single ([1 1]))), "single") -***** error burrrnd () -***** error burrrnd (1) -***** error burrrnd (1, 2) -***** error ... - burrrnd (ones (3), ones (2), ones (2)) -***** error ... - burrrnd (ones (2), ones (3), ones (2)) -***** error ... - burrrnd (ones (2), ones (2), ones (3)) -***** error burrrnd (i, 2, 3) -***** error burrrnd (1, i, 3) -***** error burrrnd (1, 2, i) -***** error ... - burrrnd (1, 2, 3, -1) -***** error ... - burrrnd (1, 2, 3, 1.2) -***** error ... - burrrnd (1, 2, 3, ones (2)) -***** error ... - burrrnd (1, 2, 3, [2 -1 2]) -***** error ... - burrrnd (1, 2, 3, [2 0 2.5]) -***** error ... - burrrnd (1, 2, 3, 2, -1, 5) -***** error ... - burrrnd (1, 2, 3, 2, 1.5, 5) -***** error ... - burrrnd (2, ones (2), 2, 3) -***** error ... - burrrnd (2, ones (2), 2, [3, 2]) -***** error ... - burrrnd (2, ones (2), 2, 3, 2) +[inst/nanmin.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/nanmin.m +***** assert (nanmin ([2 4 NaN 7]), 2) +***** assert (nanmin ([2 4 NaN Inf]), 2) +***** assert (nanmin ([1 NaN 3; NaN 5 6; 7 8 NaN]), [1, 5, 3]) +***** assert (nanmin ([1 NaN 3; NaN 5 6; 7 8 NaN]'), [1, 5, 7]) +***** assert (nanmin (single ([1 NaN 3; NaN 5 6; 7 8 NaN])), single ([1 5 3])) +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/dist_wrap/mle.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/mle.m +***** error mle (ones (2)) +***** error mle ("text") +***** error mle ([1, 2, 3, i, 5]) +***** error ... + mle ([1:50], "distribution") +***** error ... + mle ([1:50], "censoring", logical ([1,0,1,0])) +***** error ... + mle ([1:50], "frequency", [1,0,1,0]) +***** error ... + mle ([1 0 1 0], "frequency", [-1 1 0 0]) +***** error ... + mle ([1 0 1 0], "distribution", "nbin", "frequency", [-1 1 0 0]) +***** error mle ([1:50], "alpha", [0.05, 0.01]) +***** error mle ([1:50], "alpha", 1) +***** error mle ([1:50], "alpha", -1) +***** error mle ([1:50], "alpha", i) +***** error ... + mle ([1:50], "ntrials", -1) +***** error ... + mle ([1:50], "ntrials", [20, 50]) +***** error ... + mle ([1:50], "ntrials", [20.3]) +***** error ... + mle ([1:50], "ntrials", 3i) +***** error ... + mle ([1:50], "options", 4) +***** error ... + mle ([1:50], "options", struct ("x", 3)) +***** error mle ([1:50], "NAME", "value") +***** error ... + mle ([1 0 1 0], "distribution", "bernoulli", "censoring", [1 1 0 0]) +***** error ... + mle ([1 2 1 0], "distribution", "bernoulli") +***** error ... + mle ([1 0 1 0], "distribution", "beta", "censoring", [1 1 0 0]) +***** error ... + mle ([1 0 1 0], "distribution", "bino", "censoring", [1 1 0 0]) +***** error ... + mle ([1 0 1 0], "distribution", "bino") +***** error ... + mle ([1 0 1 0], "distribution", "geo", "censoring", [1 1 0 0]) +***** error ... + mle ([1 0 1 0], "distribution", "gev", "censoring", [1 1 0 0]) +***** error ... + mle ([1 0 1 0], "distribution", "gp", "censoring", [1 1 0 0]) +***** error ... + mle ([1 0 -1 0], "distribution", "gp") +***** error ... + mle ([1 0 1 0], "distribution", "hn", "censoring", [1 1 0 0]) +***** error ... + mle ([1 0 -1 0], "distribution", "hn") +***** error ... + mle ([1 0 1 0], "distribution", "nbin", "censoring", [1 1 0 0]) +***** error ... + mle ([1 0 1 0], "distribution", "poisson", "censoring", [1 1 0 0]) +***** error ... + mle ([1 0 1 0], "distribution", "unid", "censoring", [1 1 0 0]) +***** error ... + mle ([1 0 1 0], "distribution", "unif", "censoring", [1 1 0 0]) +***** error mle ([1:50], "distribution", "value") +***** error ... + mle ([1 0 1 0], "distribution", "unif", "censoring", [1 1 0 0]) 36 tests, 36 passed, 0 known failure, 0 skipped -[inst/dist_fun/gumbelinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/gumbelinv.m -***** demo - ## Plot various iCDFs from the Gumbel distribution - p = 0.001:0.001:0.999; - x1 = gumbelinv (p, 0.5, 2); - x2 = gumbelinv (p, 1.0, 2); - x3 = gumbelinv (p, 1.5, 3); - x4 = gumbelinv (p, 3.0, 4); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") - grid on - ylim ([-5, 20]) - legend ({"μ = 0.5, β = 2", "μ = 1.0, β = 2", ... - "μ = 1.5, β = 3", "μ = 3.0, β = 4"}, "location", "northwest") - title ("Gumbel iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p, x - p = [0, 0.05, 0.5 0.95]; - x = [-Inf, -1.0972, 0.3665, 2.9702]; -***** assert (gumbelinv (p), x, 1e-4) -***** assert (gumbelinv (p, zeros (1,4), ones (1,4)), x, 1e-4) -***** assert (gumbelinv (p, 0, ones (1,4)), x, 1e-4) -***** assert (gumbelinv (p, zeros (1,4), 1), x, 1e-4) -***** assert (gumbelinv (p, [0, -Inf, NaN, Inf], 1), [-Inf, Inf, NaN, -Inf], 1e-4) -***** assert (gumbelinv (p, 0, [Inf, NaN, -1, 0]), [-Inf, NaN, NaN, NaN], 1e-4) -***** assert (gumbelinv ([p(1:2), NaN, p(4)], 0, 1), [x(1:2), NaN, x(4)], 1e-4) -***** assert (gumbelinv ([p, NaN], 0, 1), [x, NaN], 1e-4) -***** assert (gumbelinv (single ([p, NaN]), 0, 1), single ([x, NaN]), 1e-4) -***** assert (gumbelinv ([p, NaN], single (0), 1), single ([x, NaN]), 1e-4) -***** assert (gumbelinv ([p, NaN], 0, single (1)), single ([x, NaN]), 1e-4) -***** error gumbelinv () -***** error gumbelinv (1,2,3,4,5,6) -***** error ... - gumbelinv (ones (3), ones (2), ones (2)) -***** error ... - [p, plo, pup] = gumbelinv (2, 3, 4, [1, 2]) -***** error ... - [p, plo, pup] = gumbelinv (1, 2, 3) -***** error [p, plo, pup] = ... - gumbelinv (1, 2, 3, [1, 0; 0, 1], 0) -***** error [p, plo, pup] = ... - gumbelinv (1, 2, 3, [1, 0; 0, 1], 1.22) -***** error gumbelinv (i, 2, 2) -***** error gumbelinv (2, i, 2) -***** error gumbelinv (2, 2, i) -***** error ... - [p, plo, pup] = gumbelinv (1, 2, 3, [-1, 10; -Inf, -Inf], 0.04) -22 tests, 22 passed, 0 known failure, 0 skipped -[inst/dist_fun/ricecdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ricecdf.m -***** demo - ## Plot various CDFs from the Rician distribution - x = 0:0.01:10; - p1 = ricecdf (x, 0, 1); - p2 = ricecdf (x, 0.5, 1); - p3 = ricecdf (x, 1, 1); - p4 = ricecdf (x, 2, 1); - p5 = ricecdf (x, 4, 1); - plot (x, p1, "-b", x, p2, "g", x, p3, "-r", x, p4, "-m", x, p5, "-k") - grid on - ylim ([0, 1]) - xlim ([0, 8]) - legend ({"s = 0, σ = 1", "s = 0.5, σ = 1", "s = 1, σ = 1", ... - "s = 2, σ = 1", "s = 4, σ = 1"}, "location", "southeast") - title ("Rician CDF") - xlabel ("values in x") - ylabel ("probability") -***** demo - ## Plot various CDFs from the Rician distribution - x = 0:0.01:10; - p1 = ricecdf (x, 0, 0.5); - p2 = ricecdf (x, 0, 2); - p3 = ricecdf (x, 0, 3); - p4 = ricecdf (x, 2, 2); - p5 = ricecdf (x, 4, 2); - plot (x, p1, "-b", x, p2, "g", x, p3, "-r", x, p4, "-m", x, p5, "-k") - grid on - ylim ([0, 1]) - xlim ([0, 8]) - legend ({"ν = 0, σ = 0.5", "ν = 0, σ = 2", "ν = 0, σ = 3", ... - "ν = 2, σ = 2", "ν = 4, σ = 2"}, "location", "southeast") - title ("Rician CDF") - xlabel ("values in x") - ylabel ("probability") +[inst/dist_wrap/fitdist.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/fitdist.m ***** test - x = 0:0.5:2.5; - s = 1:6; - p = ricecdf (x, s, 1); - expected_p = [0.0000, 0.0179, 0.0108, 0.0034, 0.0008, 0.0001]; - assert (p, expected_p, 0.001); + x = betarnd (1, 1, 100, 1); + pd = fitdist (x, "Beta"); + [phat, pci] = betafit (x); + assert ([pd.a, pd.b], phat); + assert (paramci (pd), pci); ***** test - x = 0:0.5:2.5; - sigma = 1:6; - p = ricecdf (x, 1, sigma); - expected_p = [0.0000, 0.0272, 0.0512, 0.0659, 0.0754, 0.0820]; - assert (p, expected_p, 0.001); + x1 = betarnd (1, 1, 100, 1); + x2 = betarnd (5, 2, 100, 1); + pd = fitdist ([x1; x2], "Beta", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = betafit (x1); + assert ([pd(1).a, pd(1).b], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = betafit (x2); + assert ([pd(2).a, pd(2).b], phat); + assert (paramci (pd(2)), pci); ***** test - x = 0:0.5:2.5; - p = ricecdf (x, 0, 1); - expected_p = [0.0000, 0.1175, 0.3935, 0.6753, 0.8647, 0.9561]; - assert (p, expected_p, 0.001); + N = 1; + x = binornd (N, 0.5, 100, 1); + pd = fitdist (x, "binomial"); + [phat, pci] = binofit (sum (x), numel (x)); + assert ([pd.N, pd.p], [N, phat]); + assert (paramci (pd), pci); ***** test - x = 0:0.5:2.5; - p = ricecdf (x, 1, 1); - expected_p = [0.0000, 0.0735, 0.2671, 0.5120, 0.7310, 0.8791]; - assert (p, expected_p, 0.001); -***** shared x, p - x = [-1, 0, 1, 2, Inf]; - p = [0, 0, 0.26712019620318, 0.73098793996409, 1]; -***** assert (ricecdf (x, 1, 1), p, 1e-14) -***** assert (ricecdf (x, 1, 1, "upper"), 1 - p, 1e-14) -***** error ricecdf () -***** error ricecdf (1) -***** error ricecdf (1, 2) -***** error ricecdf (1, 2, 3, "uper") -***** error ricecdf (1, 2, 3, 4) -***** error ... - ricecdf (ones (3), ones (2), ones (2)) -***** error ... - ricecdf (ones (2), ones (3), ones (2)) -***** error ... - ricecdf (ones (2), ones (2), ones (3)) -***** error ricecdf (i, 2, 3) -***** error ricecdf (2, i, 3) -***** error ricecdf (2, 2, i) -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/dist_fun/wblcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wblcdf.m -***** demo - ## Plot various CDFs from the Weibull distribution - x = 0:0.001:2.5; - p1 = wblcdf (x, 1, 0.5); - p2 = wblcdf (x, 1, 1); - p3 = wblcdf (x, 1, 1.5); - p4 = wblcdf (x, 1, 5); - plot (x, p1, "-b", x, p2, "-r", x, p3, "-m", x, p4, "-g") - grid on - legend ({"λ = 1, k = 0.5", "λ = 1, k = 1", ... - "λ = 1, k = 1.5", "λ = 1, k = 5"}, "location", "southeast") - title ("Weibull CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y - x = [-1 0 0.5 1 Inf]; - y = [0, 1-exp(-x(2:4)), 1]; -***** assert (wblcdf (x, ones (1,5), ones (1,5)), y) -***** assert (wblcdf (x, ones (1,5), ones (1,5), "upper"), 1 - y) -***** assert (wblcdf (x, "upper"), 1 - y) -***** assert (wblcdf (x, 1, ones (1,5)), y) -***** assert (wblcdf (x, ones (1,5), 1), y) -***** assert (wblcdf (x, [0 1 NaN Inf 1], 1), [NaN 0 NaN 0 1]) -***** assert (wblcdf (x, [0 1 NaN Inf 1], 1, "upper"), 1 - [NaN 0 NaN 0 1]) -***** assert (wblcdf (x, 1, [0 1 NaN Inf 1]), [NaN 0 NaN y(4:5)]) -***** assert (wblcdf (x, 1, [0 1 NaN Inf 1], "upper"), 1 - [NaN 0 NaN y(4:5)]) -***** assert (wblcdf ([x(1:2) NaN x(4:5)], 1, 1), [y(1:2) NaN y(4:5)]) -***** assert (wblcdf ([x(1:2) NaN x(4:5)], 1, 1, "upper"), 1 - [y(1:2) NaN y(4:5)]) -***** assert (wblcdf ([x, NaN], 1, 1), [y, NaN]) -***** assert (wblcdf (single ([x, NaN]), 1, 1), single ([y, NaN])) -***** assert (wblcdf ([x, NaN], single (1), 1), single ([y, NaN])) -***** assert (wblcdf ([x, NaN], 1, single (1)), single ([y, NaN])) -***** error wblcdf () -***** error wblcdf (1,2,3,4,5,6,7) -***** error wblcdf (1, 2, 3, 4, "uper") -***** error ... - wblcdf (ones (3), ones (2), ones (2)) -***** error wblcdf (2, 3, 4, [1, 2]) -***** error ... - [p, plo, pup] = wblcdf (1, 2, 3) -***** error [p, plo, pup] = ... - wblcdf (1, 2, 3, [1, 0; 0, 1], 0) -***** error [p, plo, pup] = ... - wblcdf (1, 2, 3, [1, 0; 0, 1], 1.22) -***** error [p, plo, pup] = ... - wblcdf (1, 2, 3, [1, 0; 0, 1], "alpha", "upper") -***** error wblcdf (i, 2, 2) -***** error wblcdf (2, i, 2) -***** error wblcdf (2, 2, i) -***** error ... - [p, plo, pup] =wblcdf (1, 2, 3, [1, 0; 0, -inf], 0.04) -28 tests, 28 passed, 0 known failure, 0 skipped -[inst/dist_fun/geornd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/geornd.m -***** assert (size (geornd (0.5)), [1, 1]) -***** assert (size (geornd (0.5*ones (2,1))), [2, 1]) -***** assert (size (geornd (0.5*ones (2,2))), [2, 2]) -***** assert (size (geornd (0.5, 3)), [3, 3]) -***** assert (size (geornd (0.5, [4 1])), [4, 1]) -***** assert (size (geornd (0.5, 4, 1)), [4, 1]) -***** assert (class (geornd (0.5)), "double") -***** assert (class (geornd (single (0.5))), "single") -***** assert (class (geornd (single ([0.5 0.5]))), "single") -***** assert (class (geornd (single (0))), "single") -***** assert (class (geornd (single (1))), "single") -***** error geornd () -***** error geornd (i) -***** error ... - geornd (1, -1) -***** error ... - geornd (1, 1.2) -***** error ... - geornd (1, ones (2)) -***** error ... - geornd (1, [2 -1 2]) -***** error ... - geornd (1, [2 0 2.5]) -***** error ... - geornd (ones (2), ones (2)) -***** error ... - geornd (1, 2, -1, 5) -***** error ... - geornd (1, 2, 1.5, 5) -***** error geornd (ones (2,2), 3) -***** error geornd (ones (2,2), [3, 2]) -***** error geornd (ones (2,2), 2, 3) -24 tests, 24 passed, 0 known failure, 0 skipped -[inst/dist_fun/vmcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/vmcdf.m -***** demo - ## Plot various CDFs from the von Mises distribution - x1 = [-pi:0.1:pi]; - p1 = vmcdf (x1, 0, 0.5); - p2 = vmcdf (x1, 0, 1); - p3 = vmcdf (x1, 0, 2); - p4 = vmcdf (x1, 0, 4); - plot (x1, p1, "-r", x1, p2, "-g", x1, p3, "-b", x1, p4, "-c") - grid on - xlim ([-pi, pi]) - legend ({"μ = 0, k = 0.5", "μ = 0, k = 1", ... - "μ = 0, k = 2", "μ = 0, k = 4"}, "location", "northwest") - title ("Von Mises CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, p0, p1 - x = [-pi:pi/2:pi]; - p0 = [0, 0.10975, 0.5, 0.89025, 1]; - p1 = [0, 0.03752, 0.5, 0.99622, 1]; -***** assert (vmcdf (x, 0, 1), p0, 1e-5) -***** assert (vmcdf (x, 0, 1, "upper"), 1 - p0, 1e-5) -***** assert (vmcdf (x, zeros (1,5), ones (1,5)), p0, 1e-5) -***** assert (vmcdf (x, zeros (1,5), ones (1,5), "upper"), 1 - p0, 1e-5) -***** assert (vmcdf (x, 0, [1 2 3 4 5]), p1, 1e-5) -***** assert (vmcdf (x, 0, [1 2 3 4 5], "upper"), 1 - p1, 1e-5) -***** assert (isa (vmcdf (single (pi), 0, 1), "single"), true) -***** assert (isa (vmcdf (pi, single (0), 1), "single"), true) -***** assert (isa (vmcdf (pi, 0, single (1)), "single"), true) -***** error vmcdf () -***** error vmcdf (1) -***** error vmcdf (1, 2) -***** error vmcdf (1, 2, 3, "tail") -***** error vmcdf (1, 2, 3, 4) -***** error ... - vmcdf (ones (3), ones (2), ones (2)) -***** error ... - vmcdf (ones (2), ones (3), ones (2)) -***** error ... - vmcdf (ones (2), ones (2), ones (3)) -***** error vmcdf (i, 2, 2) -***** error vmcdf (2, i, 2) -***** error vmcdf (2, 2, i) -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/dist_fun/ncfrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/ncfrnd.m -***** assert (size (ncfrnd (1, 1, 1)), [1 1]) -***** assert (size (ncfrnd (1, ones (2,1), 1)), [2, 1]) -***** assert (size (ncfrnd (1, ones (2,2), 1)), [2, 2]) -***** assert (size (ncfrnd (ones (2,1), 1, 1)), [2, 1]) -***** assert (size (ncfrnd (ones (2,2), 1, 1)), [2, 2]) -***** assert (size (ncfrnd (1, 1, 1, 3)), [3, 3]) -***** assert (size (ncfrnd (1, 1, 1, [4, 1])), [4, 1]) -***** assert (size (ncfrnd (1, 1, 1, 4, 1)), [4, 1]) -***** assert (size (ncfrnd (1, 1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (ncfrnd (1, 1, 1, 0, 1)), [0, 1]) -***** assert (size (ncfrnd (1, 1, 1, 1, 0)), [1, 0]) -***** assert (size (ncfrnd (1, 1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (ncfrnd (1, 1, 1)), "double") -***** assert (class (ncfrnd (1, single (1), 1)), "single") -***** assert (class (ncfrnd (1, 1, single (1))), "single") -***** assert (class (ncfrnd (1, single ([1, 1]), 1)), "single") -***** assert (class (ncfrnd (1, 1, single ([1, 1]))), "single") -***** assert (class (ncfrnd (single (1), 1, 1)), "single") -***** assert (class (ncfrnd (single ([1, 1]), 1, 1)), "single") -***** error ncfrnd () -***** error ncfrnd (1) -***** error ncfrnd (1, 2) -***** error ... - ncfrnd (ones (3), ones (2), ones (2)) -***** error ... - ncfrnd (ones (2), ones (3), ones (2)) -***** error ... - ncfrnd (ones (2), ones (2), ones (3)) -***** error ncfrnd (i, 2, 3) -***** error ncfrnd (1, i, 3) -***** error ncfrnd (1, 2, i) -***** error ... - ncfrnd (1, 2, 3, -1) -***** error ... - ncfrnd (1, 2, 3, 1.2) -***** error ... - ncfrnd (1, 2, 3, ones (2)) -***** error ... - ncfrnd (1, 2, 3, [2 -1 2]) -***** error ... - ncfrnd (1, 2, 3, [2 0 2.5]) -***** error ... - ncfrnd (1, 2, 3, 2, -1, 5) -***** error ... - ncfrnd (1, 2, 3, 2, 1.5, 5) -***** error ... - ncfrnd (2, ones (2), 2, 3) -***** error ... - ncfrnd (2, ones (2), 2, [3, 2]) -***** error ... - ncfrnd (2, ones (2), 2, 3, 2) -38 tests, 38 passed, 0 known failure, 0 skipped -[inst/dist_fun/unidinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/unidinv.m -***** demo - ## Plot various iCDFs from the discrete uniform distribution - p = 0.001:0.001:0.999; - x1 = unidinv (p, 5); - x2 = unidinv (p, 9); - plot (p, x1, "-b", p, x2, "-g") - grid on - xlim ([0, 1]) - ylim ([0, 10]) - legend ({"N = 5", "N = 9"}, "location", "northwest") - title ("Discrete uniform iCDF") - xlabel ("probability") - ylabel ("values in x") + N = 3; + x = binornd (N, 0.4, 100, 1); + pd = fitdist (x, "binomial", "ntrials", N); + [phat, pci] = binofit (sum (x), numel (x) * N); + assert ([pd.N, pd.p], [N, phat]); + assert (paramci (pd), pci); +***** test + N = 1; + x1 = binornd (N, 0.5, 100, 1); + x2 = binornd (N, 0.7, 100, 1); + pd = fitdist ([x1; x2], "binomial", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = binofit (sum (x1), numel (x1)); + assert ([pd(1).N, pd(1).p], [N, phat]); + assert (paramci (pd(1)), pci); + [phat, pci] = binofit (sum (x2), numel (x2)); + assert ([pd(2).N, pd(2).p], [N, phat]); + assert (paramci (pd(2)), pci); +***** test + N = 5; + x1 = binornd (N, 0.5, 100, 1); + x2 = binornd (N, 0.8, 100, 1); + pd = fitdist ([x1; x2], "binomial", "ntrials", N, ... + "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = binofit (sum (x1), numel (x1) * N); + assert ([pd(1).N, pd(1).p], [N, phat]); + assert (paramci (pd(1)), pci); + [phat, pci] = binofit (sum (x2), numel (x2) * N); + assert ([pd(2).N, pd(2).p], [N, phat]); + assert (paramci (pd(2)), pci); +***** test + x = bisarnd (1, 1, 100, 1); + pd = fitdist (x, "BirnbaumSaunders"); + [phat, pci] = bisafit (x); + assert ([pd.beta, pd.gamma], phat); + assert (paramci (pd), pci); +***** test + x1 = bisarnd (1, 1, 100, 1); + x2 = bisarnd (5, 2, 100, 1); + pd = fitdist ([x1; x2], "bisa", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = bisafit (x1); + assert ([pd(1).beta, pd(1).gamma], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = bisafit (x2); + assert ([pd(2).beta, pd(2).gamma], phat); + assert (paramci (pd(2)), pci); +***** test + x = exprnd (1, 100, 1); + pd = fitdist (x, "exponential"); + [muhat, muci] = expfit (x); + assert ([pd.mu], muhat); + assert (paramci (pd), muci); +***** test + x1 = exprnd (1, 100, 1); + x2 = exprnd (5, 100, 1); + pd = fitdist ([x1; x2], "exponential", "By", [ones(100,1); 2*ones(100,1)]); + [muhat, muci] = expfit (x1); + assert ([pd(1).mu], muhat); + assert (paramci (pd(1)), muci); + [muhat, muci] = expfit (x2); + assert ([pd(2).mu], muhat); + assert (paramci (pd(2)), muci); +***** test + x = evrnd (1, 1, 100, 1); + pd = fitdist (x, "ev"); + [phat, pci] = evfit (x); + assert ([pd.mu, pd.sigma], phat); + assert (paramci (pd), pci); +***** test + x1 = evrnd (1, 1, 100, 1); + x2 = evrnd (5, 2, 100, 1); + pd = fitdist ([x1; x2], "extremevalue", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = evfit (x1); + assert ([pd(1).mu, pd(1).sigma], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = evfit (x2); + assert ([pd(2).mu, pd(2).sigma], phat); + assert (paramci (pd(2)), pci); +***** test + x = gamrnd (1, 1, 100, 1); + pd = fitdist (x, "Gamma"); + [phat, pci] = gamfit (x); + assert ([pd.a, pd.b], phat); + assert (paramci (pd), pci); +***** test + x1 = gamrnd (1, 1, 100, 1); + x2 = gamrnd (5, 2, 100, 1); + pd = fitdist ([x1; x2], "Gamma", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = gamfit (x1); + assert ([pd(1).a, pd(1).b], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = gamfit (x2); + assert ([pd(2).a, pd(2).b], phat); + assert (paramci (pd(2)), pci); +***** test + rand ("seed", 4); # for reproducibility + x = gevrnd (-0.5, 1, 2, 1000, 1); + pd = fitdist (x, "generalizedextremevalue"); + [phat, pci] = gevfit (x); + assert ([pd.k, pd.sigma, pd.mu], phat); + assert (paramci (pd), pci); +***** test + rand ("seed", 5); # for reproducibility + x1 = gevrnd (-0.5, 1, 2, 1000, 1); + rand ("seed", 9); # for reproducibility + x2 = gevrnd (0, 1, -4, 1000, 1); + pd = fitdist ([x1; x2], "gev", "By", [ones(1000,1); 2*ones(1000,1)]); + [phat, pci] = gevfit (x1); + assert ([pd(1).k, pd(1).sigma, pd(1).mu], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = gevfit (x2); + assert ([pd(2).k, pd(2).sigma, pd(2).mu], phat); + assert (paramci (pd(2)), pci); +***** test + x = gprnd (1, 1, 1, 100, 1); + pd = fitdist (x, "GeneralizedPareto"); + [phat, pci] = gpfit (x, 1); + assert ([pd.k, pd.sigma, pd.theta], phat); + assert (paramci (pd), pci); +***** test + x = gprnd (1, 1, 2, 100, 1); + pd = fitdist (x, "GeneralizedPareto", "theta", 2); + [phat, pci] = gpfit (x, 2); + assert ([pd.k, pd.sigma, pd.theta], phat); + assert (paramci (pd), pci); +***** test + x1 = gprnd (1, 1, 1, 100, 1); + x2 = gprnd (0, 2, 1, 100, 1); + pd = fitdist ([x1; x2], "gp", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = gpfit (x1, 1); + assert ([pd(1).k, pd(1).sigma, pd(1).theta], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = gpfit (x2, 1); + assert ([pd(2).k, pd(2).sigma, pd(2).theta], phat); + assert (paramci (pd(2)), pci); +***** test + x1 = gprnd (3, 2, 2, 100, 1); + x2 = gprnd (2, 3, 2, 100, 1); + pd = fitdist ([x1; x2], "GeneralizedPareto", "theta", 2, ... + "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = gpfit (x1, 2); + assert ([pd(1).k, pd(1).sigma, pd(1).theta], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = gpfit (x2, 2); + assert ([pd(2).k, pd(2).sigma, pd(2).theta], phat); + assert (paramci (pd(2)), pci); +***** test + x = hnrnd (0, 1, 100, 1); + pd = fitdist (x, "HalfNormal"); + [phat, pci] = hnfit (x, 0); + assert ([pd.mu, pd.sigma], phat); + assert (paramci (pd), pci); +***** test + x = hnrnd (1, 1, 100, 1); + pd = fitdist (x, "HalfNormal", "mu", 1); + [phat, pci] = hnfit (x, 1); + assert ([pd.mu, pd.sigma], phat); + assert (paramci (pd), pci); +***** test + x1 = hnrnd (0, 1, 100, 1); + x2 = hnrnd (0, 2, 100, 1); + pd = fitdist ([x1; x2], "HalfNormal", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = hnfit (x1, 0); + assert ([pd(1).mu, pd(1).sigma], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = hnfit (x2, 0); + assert ([pd(2).mu, pd(2).sigma], phat); + assert (paramci (pd(2)), pci); +***** test + x1 = hnrnd (2, 1, 100, 1); + x2 = hnrnd (2, 2, 100, 1); + pd = fitdist ([x1; x2], "HalfNormal", "mu", 2, ... + "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = hnfit (x1, 2); + assert ([pd(1).mu, pd(1).sigma], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = hnfit (x2, 2); + assert ([pd(2).mu, pd(2).sigma], phat); + assert (paramci (pd(2)), pci); +***** test + x = invgrnd (1, 1, 100, 1); + pd = fitdist (x, "InverseGaussian"); + [phat, pci] = invgfit (x); + assert ([pd.mu, pd.lambda], phat); + assert (paramci (pd), pci); +***** test + x1 = invgrnd (1, 1, 100, 1); + x2 = invgrnd (5, 2, 100, 1); + pd = fitdist ([x1; x2], "InverseGaussian", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = invgfit (x1); + assert ([pd(1).mu, pd(1).lambda], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = invgfit (x2); + assert ([pd(2).mu, pd(2).lambda], phat); + assert (paramci (pd(2)), pci); +***** test + x = logirnd (1, 1, 100, 1); + pd = fitdist (x, "logistic"); + [phat, pci] = logifit (x); + assert ([pd.mu, pd.sigma], phat); + assert (paramci (pd), pci); +***** test + x1 = logirnd (1, 1, 100, 1); + x2 = logirnd (5, 2, 100, 1); + pd = fitdist ([x1; x2], "logistic", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = logifit (x1); + assert ([pd(1).mu, pd(1).sigma], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = logifit (x2); + assert ([pd(2).mu, pd(2).sigma], phat); + assert (paramci (pd(2)), pci); +***** test + x = loglrnd (1, 1, 100, 1); + pd = fitdist (x, "loglogistic"); + [phat, pci] = loglfit (x); + assert ([pd.mu, pd.sigma], phat); + assert (paramci (pd), pci); +***** test + x1 = loglrnd (1, 1, 100, 1); + x2 = loglrnd (5, 2, 100, 1); + pd = fitdist ([x1; x2], "loglogistic", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = loglfit (x1); + assert ([pd(1).mu, pd(1).sigma], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = loglfit (x2); + assert ([pd(2).mu, pd(2).sigma], phat); + assert (paramci (pd(2)), pci); +***** test + x = lognrnd (1, 1, 100, 1); + pd = fitdist (x, "lognormal"); + [phat, pci] = lognfit (x); + assert ([pd.mu, pd.sigma], phat); + assert (paramci (pd), pci); +***** test + x1 = lognrnd (1, 1, 100, 1); + x2 = lognrnd (5, 2, 100, 1); + pd = fitdist ([x1; x2], "lognormal", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = lognfit (x1); + assert ([pd(1).mu, pd(1).sigma], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = lognfit (x2); + assert ([pd(2).mu, pd(2).sigma], phat); + assert (paramci (pd(2)), pci); +***** test + x = nakarnd (2, 0.5, 100, 1); + pd = fitdist (x, "Nakagami"); + [phat, pci] = nakafit (x); + assert ([pd.mu, pd.omega], phat); + assert (paramci (pd), pci); +***** test + x1 = nakarnd (2, 0.5, 100, 1); + x2 = nakarnd (5, 0.8, 100, 1); + pd = fitdist ([x1; x2], "Nakagami", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = nakafit (x1); + assert ([pd(1).mu, pd(1).omega], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = nakafit (x2); + assert ([pd(2).mu, pd(2).omega], phat); + assert (paramci (pd(2)), pci); +***** test + randp ("seed", 123); + randg ("seed", 321); + x = nbinrnd (2, 0.5, 100, 1); + pd = fitdist (x, "negativebinomial"); + [phat, pci] = nbinfit (x); + assert ([pd.R, pd.P], phat); + assert (paramci (pd), pci); +***** test + randp ("seed", 345); + randg ("seed", 543); + x1 = nbinrnd (2, 0.5, 100, 1); + randp ("seed", 432); + randg ("seed", 234); + x2 = nbinrnd (5, 0.8, 100, 1); + pd = fitdist ([x1; x2], "nbin", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = nbinfit (x1); + assert ([pd(1).R, pd(1).P], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = nbinfit (x2); + assert ([pd(2).R, pd(2).P], phat); + assert (paramci (pd(2)), pci); +***** test + x = normrnd (1, 1, 100, 1); + pd = fitdist (x, "normal"); + [muhat, sigmahat, muci, sigmaci] = normfit (x); + assert ([pd.mu, pd.sigma], [muhat, sigmahat]); + assert (paramci (pd), [muci, sigmaci]); +***** test + x1 = normrnd (1, 1, 100, 1); + x2 = normrnd (5, 2, 100, 1); + pd = fitdist ([x1; x2], "normal", "By", [ones(100,1); 2*ones(100,1)]); + [muhat, sigmahat, muci, sigmaci] = normfit (x1); + assert ([pd(1).mu, pd(1).sigma], [muhat, sigmahat]); + assert (paramci (pd(1)), [muci, sigmaci]); + [muhat, sigmahat, muci, sigmaci] = normfit (x2); + assert ([pd(2).mu, pd(2).sigma], [muhat, sigmahat]); + assert (paramci (pd(2)), [muci, sigmaci]); +***** test + x = poissrnd (1, 100, 1); + pd = fitdist (x, "poisson"); + [phat, pci] = poissfit (x); + assert (pd.lambda, phat); + assert (paramci (pd), pci); +***** test + x1 = poissrnd (1, 100, 1); + x2 = poissrnd (5, 100, 1); + pd = fitdist ([x1; x2], "poisson", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = poissfit (x1); + assert (pd(1).lambda, phat); + assert (paramci (pd(1)), pci); + [phat, pci] = poissfit (x2); + assert (pd(2).lambda, phat); + assert (paramci (pd(2)), pci); +***** test + x = raylrnd (1, 100, 1); + pd = fitdist (x, "rayleigh"); + [phat, pci] = raylfit (x); + assert (pd.sigma, phat); + assert (paramci (pd), pci); +***** test + x1 = raylrnd (1, 100, 1); + x2 = raylrnd (5, 100, 1); + pd = fitdist ([x1; x2], "rayleigh", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = raylfit (x1); + assert ( pd(1).sigma, phat); + assert (paramci (pd(1)), pci); + [phat, pci] = raylfit (x2); + assert (pd(2).sigma, phat); + assert (paramci (pd(2)), pci); +***** test + x = ricernd (1, 1, 100, 1); + pd = fitdist (x, "rician"); + [phat, pci] = ricefit (x); + assert ([pd.s, pd.sigma], phat); + assert (paramci (pd), pci); +***** test + x1 = ricernd (1, 1, 100, 1); + x2 = ricernd (5, 2, 100, 1); + pd = fitdist ([x1; x2], "rician", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = ricefit (x1); + assert ([pd(1).s, pd(1).sigma], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = ricefit (x2); + assert ([pd(2).s, pd(2).sigma], phat); + assert (paramci (pd(2)), pci); +***** warning ... + fitdist ([1 2 3 4 5], "Stable"); +***** test + x = tlsrnd (0, 1, 1, 100, 1); + pd = fitdist (x, "tlocationscale"); + [phat, pci] = tlsfit (x); + assert ([pd.mu, pd.sigma, pd.nu], phat); + assert (paramci (pd), pci); +***** test + x1 = tlsrnd (0, 1, 1, 100, 1); + x2 = tlsrnd (5, 2, 1, 100, 1); + pd = fitdist ([x1; x2], "tlocationscale", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = tlsfit (x1); + assert ([pd(1).mu, pd(1).sigma, pd(1).nu], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = tlsfit (x2); + assert ([pd(2).mu, pd(2).sigma, pd(2).nu], phat); + assert (paramci (pd(2)), pci); +***** test + x = [1 2 3 4 5]; + pd = fitdist (x, "weibull"); + [phat, pci] = wblfit (x); + assert ([pd.lambda, pd.k], phat); + assert (paramci (pd), pci); +***** test + x = [1 2 3 4 5 6 7 8 9 10]; + pd = fitdist (x, "weibull", "By", [1 1 1 1 1 2 2 2 2 2]); + [phat, pci] = wblfit (x(1:5)); + assert ([pd(1).lambda, pd(1).k], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = wblfit (x(6:10)); + assert ([pd(2).lambda, pd(2).k], phat); + assert (paramci (pd(2)), pci); +***** error fitdist (1) +***** error fitdist (1, ["as";"sd"]) +***** error fitdist (1, "some") +***** error ... + fitdist (ones (2), "normal") +***** error ... + fitdist ([i, 2, 3], "normal") +***** error ... + fitdist (["a", "s", "d"], "normal") +***** error ... + fitdist ([1, 2, 3], "normal", "By") +***** error ... + fitdist ([1, 2, 3], "normal", "By", [1, 2]) +***** error ... + fitdist ([1, 2, 3], "normal", "Censoring", [1, 2]) +***** error ... + fitdist ([1, 2, 3], "normal", "frequency", [1, 2]) +***** error ... + fitdist ([1, 2, 3], "negativebinomial", "frequency", [1, -2, 3]) +***** error ... + fitdist ([1, 2, 3], "normal", "alpha", [1, 2]) +***** error ... + fitdist ([1, 2, 3], "normal", "alpha", i) +***** error ... + fitdist ([1, 2, 3], "normal", "alpha", -0.5) +***** error ... + fitdist ([1, 2, 3], "normal", "alpha", 1.5) +***** error ... + fitdist ([1, 2, 3], "normal", "ntrials", [1, 2]) +***** error ... + fitdist ([1, 2, 3], "normal", "ntrials", 0) +***** error ... + fitdist ([1, 2, 3], "normal", "options", 0) +***** error ... + fitdist ([1, 2, 3], "normal", "options", struct ("options", 1)) +***** warning fitdist ([1, 2, 3], "kernel", "kernel", "normal"); +***** warning fitdist ([1, 2, 3], "kernel", "support", "positive"); +***** warning fitdist ([1, 2, 3], "kernel", "width", 1); +***** error ... + fitdist ([1, 2, 3], "normal", "param", struct ("options", 1)) +***** error ... + [pdca, gn, gl] = fitdist ([1, 2, 3], "normal"); +***** error ... + fitdist ([1, 2, 3], "generalizedpareto", "theta", 2); +***** error ... + fitdist ([1, 2, 3], "halfnormal", "mu", 2); +75 tests, 75 passed, 0 known failure, 0 skipped +[inst/dist_wrap/pdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/pdf.m +***** shared x + x = [1:5]; +***** assert (pdf ("Beta", x, 5, 2), betapdf (x, 5, 2)) +***** assert (pdf ("beta", x, 5, 2), betapdf (x, 5, 2)) +***** assert (pdf ("Binomial", x, 5, 2), binopdf (x, 5, 2)) +***** assert (pdf ("bino", x, 5, 2), binopdf (x, 5, 2)) +***** assert (pdf ("Birnbaum-Saunders", x, 5, 2), bisapdf (x, 5, 2)) +***** assert (pdf ("bisa", x, 5, 2), bisapdf (x, 5, 2)) +***** assert (pdf ("Burr", x, 5, 2, 2), burrpdf (x, 5, 2, 2)) +***** assert (pdf ("burr", x, 5, 2, 2), burrpdf (x, 5, 2, 2)) +***** assert (pdf ("Cauchy", x, 5, 2), cauchypdf (x, 5, 2)) +***** assert (pdf ("cauchy", x, 5, 2), cauchypdf (x, 5, 2)) +***** assert (pdf ("Chi-squared", x, 5), chi2pdf (x, 5)) +***** assert (pdf ("chi2", x, 5), chi2pdf (x, 5)) +***** assert (pdf ("Extreme Value", x, 5, 2), evpdf (x, 5, 2)) +***** assert (pdf ("ev", x, 5, 2), evpdf (x, 5, 2)) +***** assert (pdf ("Exponential", x, 5), exppdf (x, 5)) +***** assert (pdf ("exp", x, 5), exppdf (x, 5)) +***** assert (pdf ("F-Distribution", x, 5, 2), fpdf (x, 5, 2)) +***** assert (pdf ("f", x, 5, 2), fpdf (x, 5, 2)) +***** assert (pdf ("Gamma", x, 5, 2), gampdf (x, 5, 2)) +***** assert (pdf ("gam", x, 5, 2), gampdf (x, 5, 2)) +***** assert (pdf ("Geometric", x, 5), geopdf (x, 5)) +***** assert (pdf ("geo", x, 5), geopdf (x, 5)) +***** assert (pdf ("Generalized Extreme Value", x, 5, 2, 2), gevpdf (x, 5, 2, 2)) +***** assert (pdf ("gev", x, 5, 2, 2), gevpdf (x, 5, 2, 2)) +***** assert (pdf ("Generalized Pareto", x, 5, 2, 2), gppdf (x, 5, 2, 2)) +***** assert (pdf ("gp", x, 5, 2, 2), gppdf (x, 5, 2, 2)) +***** assert (pdf ("Gumbel", x, 5, 2), gumbelpdf (x, 5, 2)) +***** assert (pdf ("gumbel", x, 5, 2), gumbelpdf (x, 5, 2)) +***** assert (pdf ("Half-normal", x, 5, 2), hnpdf (x, 5, 2)) +***** assert (pdf ("hn", x, 5, 2), hnpdf (x, 5, 2)) +***** assert (pdf ("Hypergeometric", x, 5, 2, 2), hygepdf (x, 5, 2, 2)) +***** assert (pdf ("hyge", x, 5, 2, 2), hygepdf (x, 5, 2, 2)) +***** assert (pdf ("Inverse Gaussian", x, 5, 2), invgpdf (x, 5, 2)) +***** assert (pdf ("invg", x, 5, 2), invgpdf (x, 5, 2)) +***** assert (pdf ("Laplace", x, 5, 2), laplacepdf (x, 5, 2)) +***** assert (pdf ("laplace", x, 5, 2), laplacepdf (x, 5, 2)) +***** assert (pdf ("Logistic", x, 5, 2), logipdf (x, 5, 2)) +***** assert (pdf ("logi", x, 5, 2), logipdf (x, 5, 2)) +***** assert (pdf ("Log-Logistic", x, 5, 2), loglpdf (x, 5, 2)) +***** assert (pdf ("logl", x, 5, 2), loglpdf (x, 5, 2)) +***** assert (pdf ("Lognormal", x, 5, 2), lognpdf (x, 5, 2)) +***** assert (pdf ("logn", x, 5, 2), lognpdf (x, 5, 2)) +***** assert (pdf ("Nakagami", x, 5, 2), nakapdf (x, 5, 2)) +***** assert (pdf ("naka", x, 5, 2), nakapdf (x, 5, 2)) +***** assert (pdf ("Negative Binomial", x, 5, 2), nbinpdf (x, 5, 2)) +***** assert (pdf ("nbin", x, 5, 2), nbinpdf (x, 5, 2)) +***** assert (pdf ("Noncentral F-Distribution", x, 5, 2, 2), ncfpdf (x, 5, 2, 2)) +***** assert (pdf ("ncf", x, 5, 2, 2), ncfpdf (x, 5, 2, 2)) +***** assert (pdf ("Noncentral Student T", x, 5, 2), nctpdf (x, 5, 2)) +***** assert (pdf ("nct", x, 5, 2), nctpdf (x, 5, 2)) +***** assert (pdf ("Noncentral Chi-Squared", x, 5, 2), ncx2pdf (x, 5, 2)) +***** assert (pdf ("ncx2", x, 5, 2), ncx2pdf (x, 5, 2)) +***** assert (pdf ("Normal", x, 5, 2), normpdf (x, 5, 2)) +***** assert (pdf ("norm", x, 5, 2), normpdf (x, 5, 2)) +***** assert (pdf ("Poisson", x, 5), poisspdf (x, 5)) +***** assert (pdf ("poiss", x, 5), poisspdf (x, 5)) +***** assert (pdf ("Rayleigh", x, 5), raylpdf (x, 5)) +***** assert (pdf ("rayl", x, 5), raylpdf (x, 5)) +***** assert (pdf ("Rician", x, 5, 1), ricepdf (x, 5, 1)) +***** assert (pdf ("rice", x, 5, 1), ricepdf (x, 5, 1)) +***** assert (pdf ("Student T", x, 5), tpdf (x, 5)) +***** assert (pdf ("t", x, 5), tpdf (x, 5)) +***** assert (pdf ("location-scale T", x, 5, 1, 2), tlspdf (x, 5, 1, 2)) +***** assert (pdf ("tls", x, 5, 1, 2), tlspdf (x, 5, 1, 2)) +***** assert (pdf ("Triangular", x, 5, 2, 2), tripdf (x, 5, 2, 2)) +***** assert (pdf ("tri", x, 5, 2, 2), tripdf (x, 5, 2, 2)) +***** assert (pdf ("Discrete Uniform", x, 5), unidpdf (x, 5)) +***** assert (pdf ("unid", x, 5), unidpdf (x, 5)) +***** assert (pdf ("Uniform", x, 5, 2), unifpdf (x, 5, 2)) +***** assert (pdf ("unif", x, 5, 2), unifpdf (x, 5, 2)) +***** assert (pdf ("Von Mises", x, 5, 2), vmpdf (x, 5, 2)) +***** assert (pdf ("vm", x, 5, 2), vmpdf (x, 5, 2)) +***** assert (pdf ("Weibull", x, 5, 2), wblpdf (x, 5, 2)) +***** assert (pdf ("wbl", x, 5, 2), wblpdf (x, 5, 2)) +***** error pdf (1) +***** error pdf ({"beta"}) +***** error pdf ("beta", {[1 2 3 4 5]}) +***** error pdf ("beta", "text") +***** error pdf ("beta", 1+i) +***** error ... + pdf ("Beta", x, "a", 2) +***** error ... + pdf ("Beta", x, 5, "") +***** error ... + pdf ("Beta", x, 5, {2}) +***** error pdf ("chi2", x) +***** error pdf ("Beta", x, 5) +***** error pdf ("Burr", x, 5) +***** error pdf ("Burr", x, 5, 2) +86 tests, 86 passed, 0 known failure, 0 skipped +[inst/dist_wrap/icdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/icdf.m ***** shared p - p = [-1 0 0.5 1 2]; -***** assert (unidinv (p, 10*ones (1,5)), [NaN NaN 5 10 NaN], eps) -***** assert (unidinv (p, 10), [NaN NaN 5 10 NaN], eps) -***** assert (unidinv (p, 10*[0 1 NaN 1 1]), [NaN NaN NaN 10 NaN], eps) -***** assert (unidinv ([p(1:2) NaN p(4:5)], 10), [NaN NaN NaN 10 NaN], eps) -***** assert (unidinv ([p, NaN], 10), [NaN NaN 5 10 NaN NaN], eps) -***** assert (unidinv (single ([p, NaN]), 10), single ([NaN NaN 5 10 NaN NaN]), eps) -***** assert (unidinv ([p, NaN], single (10)), single ([NaN NaN 5 10 NaN NaN]), eps) -***** error unidinv () -***** error unidinv (1) -***** error ... - unidinv (ones (3), ones (2)) -***** error ... - unidinv (ones (2), ones (3)) -***** error unidinv (i, 2) -***** error unidinv (2, i) -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_fun/wblrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/wblrnd.m -***** assert (size (wblrnd (1, 1)), [1 1]) -***** assert (size (wblrnd (1, ones (2,1))), [2, 1]) -***** assert (size (wblrnd (1, ones (2,2))), [2, 2]) -***** assert (size (wblrnd (ones (2,1), 1)), [2, 1]) -***** assert (size (wblrnd (ones (2,2), 1)), [2, 2]) -***** assert (size (wblrnd (1, 1, 3)), [3, 3]) -***** assert (size (wblrnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (wblrnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (wblrnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (wblrnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (wblrnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (wblrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (wblrnd (1, 1)), "double") -***** assert (class (wblrnd (1, single (1))), "single") -***** assert (class (wblrnd (1, single ([1, 1]))), "single") -***** assert (class (wblrnd (single (1), 1)), "single") -***** assert (class (wblrnd (single ([1, 1]), 1)), "single") -***** error wblrnd () -***** error wblrnd (1) -***** error ... - wblrnd (ones (3), ones (2)) -***** error ... - wblrnd (ones (2), ones (3)) -***** error wblrnd (i, 2, 3) -***** error wblrnd (1, i, 3) -***** error ... - wblrnd (1, 2, -1) -***** error ... - wblrnd (1, 2, 1.2) -***** error ... - wblrnd (1, 2, ones (2)) -***** error ... - wblrnd (1, 2, [2 -1 2]) -***** error ... - wblrnd (1, 2, [2 0 2.5]) -***** error ... - wblrnd (1, 2, 2, -1, 5) -***** error ... - wblrnd (1, 2, 2, 1.5, 5) -***** error ... - wblrnd (2, ones (2), 3) -***** error ... - wblrnd (2, ones (2), [3, 2]) -***** error ... - wblrnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/nakainv.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/nakainv.m -***** demo - ## Plot various iCDFs from the Nakagami distribution - p = 0.001:0.001:0.999; - x1 = nakainv (p, 0.5, 1); - x2 = nakainv (p, 1, 1); - x3 = nakainv (p, 1, 2); - x4 = nakainv (p, 1, 3); - x5 = nakainv (p, 2, 1); - x6 = nakainv (p, 2, 2); - x7 = nakainv (p, 5, 1); - plot (p, x1, "-r", p, x2, "-g", p, x3, "-y", p, x4, "-m", ... - p, x5, "-k", p, x6, "-b", p, x7, "-c") - grid on - ylim ([0, 3]) - legend ({"μ = 0.5, ω = 1", "μ = 1, ω = 1", "μ = 1, ω = 2", ... - "μ = 1, ω = 3", "μ = 2, ω = 1", "μ = 2, ω = 2", ... - "μ = 5, ω = 1"}, "location", "northwest") - title ("Nakagami iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p, y - p = [-Inf, -1, 0, 1/2, 1, 2, Inf]; - y = [NaN, NaN, 0, 0.83255461115769769, Inf, NaN, NaN]; -***** assert (nakainv (p, ones (1,7), ones (1,7)), y, eps) -***** assert (nakainv (p, 1, 1), y, eps) -***** assert (nakainv (p, [1, 1, 1, NaN, 1, 1, 1], 1), [y(1:3), NaN, y(5:7)], eps) -***** assert (nakainv (p, 1, [1, 1, 1, NaN, 1, 1, 1]), [y(1:3), NaN, y(5:7)], eps) -***** assert (nakainv ([p, NaN], 1, 1), [y, NaN], eps) -***** assert (nakainv (single ([p, NaN]), 1, 1), single ([y, NaN])) -***** assert (nakainv ([p, NaN], single (1), 1), single ([y, NaN])) -***** assert (nakainv ([p, NaN], 1, single (1)), single ([y, NaN])) -***** error nakainv () -***** error nakainv (1) -***** error nakainv (1, 2) -***** error ... - nakainv (ones (3), ones (2), ones(2)) -***** error ... - nakainv (ones (2), ones (3), ones(2)) -***** error ... - nakainv (ones (2), ones (2), ones(3)) -***** error nakainv (i, 4, 3) -***** error nakainv (1, i, 3) -***** error nakainv (1, 4, i) -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/dist_fun/laplacecdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/laplacecdf.m -***** demo - ## Plot various CDFs from the Laplace distribution - x = -10:0.01:10; - p1 = laplacecdf (x, 0, 1); - p2 = laplacecdf (x, 0, 2); - p3 = laplacecdf (x, 0, 4); - p4 = laplacecdf (x, -5, 4); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") - grid on - xlim ([-10, 10]) - legend ({"μ = 0, β = 1", "μ = 0, β = 2", ... - "μ = 0, β = 4", "μ = -5, β = 4"}, "location", "southeast") - title ("Laplace CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y - x = [-Inf, -log(2), 0, log(2), Inf]; - y = [0, 1/4, 1/2, 3/4, 1]; -***** assert (laplacecdf ([x, NaN], 0, 1), [y, NaN]) -***** assert (laplacecdf (x, 0, [-2, -1, 0, 1, 2]), [nan(1, 3), 0.75, 1]) -***** assert (laplacecdf (single ([x, NaN]), 0, 1), single ([y, NaN]), eps ("single")) -***** assert (laplacecdf ([x, NaN], single (0), 1), single ([y, NaN]), eps ("single")) -***** assert (laplacecdf ([x, NaN], 0, single (1)), single ([y, NaN]), eps ("single")) -***** error laplacecdf () -***** error laplacecdf (1) -***** error ... - laplacecdf (1, 2) -***** error ... - laplacecdf (1, 2, 3, 4, 5) -***** error laplacecdf (1, 2, 3, "tail") -***** error laplacecdf (1, 2, 3, 4) -***** error ... - laplacecdf (ones (3), ones (2), ones (2)) -***** error ... - laplacecdf (ones (2), ones (3), ones (2)) -***** error ... - laplacecdf (ones (2), ones (2), ones (3)) -***** error laplacecdf (i, 2, 2) -***** error laplacecdf (2, i, 2) -***** error laplacecdf (2, 2, i) -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/dist_fun/betacdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fun/betacdf.m -***** demo - ## Plot various CDFs from the Beta distribution - x = 0:0.005:1; - p1 = betacdf (x, 0.5, 0.5); - p2 = betacdf (x, 5, 1); - p3 = betacdf (x, 1, 3); - p4 = betacdf (x, 2, 2); - p5 = betacdf (x, 2, 5); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-m") - grid on - legend ({"α = β = 0.5", "α = 5, β = 1", "α = 1, β = 3", ... - "α = 2, β = 2", "α = 2, β = 5"}, "location", "northwest") - title ("Beta CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y, x1, x2 - x = [-1 0 0.5 1 2]; - y = [0 0 0.75 1 1]; -***** assert (betacdf (x, ones (1, 5), 2 * ones (1, 5)), y) -***** assert (betacdf (x, 1, 2 * ones (1, 5)), y) -***** assert (betacdf (x, ones (1, 5), 2), y) -***** assert (betacdf (x, [0 1 NaN 1 1], 2), [NaN 0 NaN 1 1]) -***** assert (betacdf (x, 1, 2 * [0 1 NaN 1 1]), [NaN 0 NaN 1 1]) -***** assert (betacdf ([x(1:2) NaN x(4:5)], 1, 2), [y(1:2) NaN y(4:5)]) - x1 = [0.1:0.2:0.9]; -***** assert (betacdf (x1, 2, 2), [0.028, 0.216, 0.5, 0.784, 0.972], 1e-14); -***** assert (betacdf (x1, 2, 2, "upper"), 1 - [0.028, 0.216, 0.5, 0.784, 0.972],... - 1e-14); - x2 = [1, 2, 3]; -***** assert (betacdf (0.5, x2, x2), [0.5, 0.5, 0.5], 1e-14); -***** assert (betacdf ([x, NaN], 1, 2), [y, NaN]) -***** assert (betacdf (single ([x, NaN]), 1, 2), single ([y, NaN])) -***** assert (betacdf ([x, NaN], single (1), 2), single ([y, NaN])) -***** assert (betacdf ([x, NaN], 1, single (2)), single ([y, NaN])) -***** error betacdf () -***** error betacdf (1) -***** error betacdf (1, 2) -***** error betacdf (1, 2, 3, 4, 5) -***** error betacdf (1, 2, 3, "tail") -***** error betacdf (1, 2, 3, 4) -***** error ... - betacdf (ones (3), ones (2), ones (2)) -***** error ... - betacdf (ones (2), ones (3), ones (2)) -***** error ... - betacdf (ones (2), ones (2), ones (3)) -***** error betacdf (i, 2, 2) -***** error betacdf (2, i, 2) -***** error betacdf (2, 2, i) -25 tests, 25 passed, 0 known failure, 0 skipped -[inst/clusterdata.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/clusterdata.m -***** demo - randn ("seed", 1) # for reproducibility - r1 = randn (10, 2) * 0.25 + 1; - randn ("seed", 5) # for reproducibility - r2 = randn (20, 2) * 0.5 - 1; - X = [r1; r2]; - - wnl = warning ("off", "Octave:linkage_savemem", "local"); - T = clusterdata (X, "linkage", "ward", "MaxClust", 2); - scatter (X(:,1), X(:,2), 36, T, "filled"); -***** error ... - clusterdata () -***** error ... - clusterdata (1) -***** error clusterdata ([1 1], "Bogus", 1) -***** error clusterdata ([1 1], "Depth", 1) -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/procrustes.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/procrustes.m -***** demo - ## Create some random points in two dimensions - n = 10; - randn ("seed", 1); - X = normrnd (0, 1, [n, 2]); - - ## Those same points, rotated, scaled, translated, plus some noise - S = [0.5, -sqrt(3)/2; sqrt(3)/2, 0.5]; # rotate 60 degrees - Y = normrnd (0.5*X*S + 2, 0.05, n, 2); - - ## Conform Y to X, plot original X and Y, and transformed Y - [d, Z] = procrustes (X, Y); - plot (X(:,1), X(:,2), "rx", Y(:,1), Y(:,2), "b.", Z(:,1), Z(:,2), "bx"); -***** demo - ## Find Procrustes distance and plot superimposed shape - - X = [40 88; 51 88; 35 78; 36 75; 39 72; 44 71; 48 71; 52 74; 55 77]; - Y = [36 43; 48 42; 31 26; 33 28; 37 30; 40 31; 45 30; 48 28; 51 24]; - plot (X(:,1),X(:,2),"x"); - hold on - plot (Y(:,1),Y(:,2),"o"); - xlim ([0 100]); - ylim ([0 100]); - legend ("Target shape (X)", "Source shape (Y)"); - [d, Z] = procrustes (X, Y) - plot (Z(:,1), Z(:,2), "s"); - legend ("Target shape (X)", "Source shape (Y)", "Transformed shape (Z)"); - hold off -***** demo - ## Apply Procrustes transformation to larger set of points - - ## Create matrices with landmark points for two triangles - X = [5, 0; 5, 5; 8, 5]; # target - Y = [0, 0; 1, 0; 1, 1]; # source - - ## Create a matrix with more points on the source triangle - Y_mp = [linspace(Y(1,1),Y(2,1),10)', linspace(Y(1,2),Y(2,2),10)'; ... - linspace(Y(2,1),Y(3,1),10)', linspace(Y(2,2),Y(3,2),10)'; ... - linspace(Y(3,1),Y(1,1),10)', linspace(Y(3,2),Y(1,2),10)']; - - ## Plot both shapes, including the larger set of points for the source shape - plot ([X(:,1); X(1,1)], [X(:,2); X(1,2)], "bx-"); - hold on - plot ([Y(:,1); Y(1,1)], [Y(:,2); Y(1,2)], "ro-", "MarkerFaceColor", "r"); - plot (Y_mp(:,1), Y_mp(:,2), "ro"); - xlim ([-1 10]); - ylim ([-1 6]); - legend ("Target shape (X)", "Source shape (Y)", ... - "More points on Y", "Location", "northwest"); - hold off - - ## Obtain the Procrustes transformation - [d, Z, transform] = procrustes (X, Y) - - ## Use the Procrustes transformation to superimpose the more points (Y_mp) - ## on the source shape onto the target shape, and then visualize the results. - Z_mp = transform.b * Y_mp * transform.T + transform.c(1,:); - figure - plot ([X(:,1); X(1,1)], [X(:,2); X(1,2)], "bx-"); - hold on - plot ([Y(:,1); Y(1,1)], [Y(:,2); Y(1,2)], "ro-", "MarkerFaceColor", "r"); - plot (Y_mp(:,1), Y_mp(:,2), "ro"); - xlim ([-1 10]); - ylim ([-1 6]); - plot ([Z(:,1); Z(1,1)],[Z(:,2); Z(1,2)],"ks-","MarkerFaceColor","k"); - plot (Z_mp(:,1),Z_mp(:,2),"ks"); - legend ("Target shape (X)", "Source shape (Y)", ... - "More points on Y", "Transformed source shape (Z)", ... - "Transformed additional points", "Location", "northwest"); - hold off -***** demo - ## Compare shapes without reflection - - T = [33, 93; 33, 87; 33, 80; 31, 72; 32, 65; 32, 58; 30, 72; ... - 28, 72; 25, 69; 22, 64; 23, 59; 26, 57; 30, 57]; - S = [48, 83; 48, 77; 48, 70; 48, 65; 49, 59; 49, 56; 50, 66; ... - 52, 66; 56, 65; 58, 61; 57, 57; 54, 56; 51, 55]; - plot (T(:,1), T(:,2), "x-"); - hold on - plot (S(:,1), S(:,2), "o-"); - legend ("Target shape (d)", "Source shape (b)"); - hold off - d_false = procrustes (T, S, "reflection", false); - printf ("Procrustes distance without reflection: %f\n", d_false); - d_true = procrustes (T, S, "reflection", true); - printf ("Procrustes distance with reflection: %f\n", d_true); - d_best = procrustes (T, S, "reflection", "best"); - printf ("Procrustes distance with best fit: %f\n", d_true); -***** error procrustes (); -***** error procrustes (1, 2, 3, 4, 5, 6); -***** error ... - procrustes (ones (2, 2, 2), ones (2, 2, 2)); -***** error ... - procrustes ([1, 2; -3, 4; 2, 3], [1, 2; -3, 4; 2, 3+i]); -***** error ... - procrustes ([1, 2; -3, 4; 2, 3], [1, 2; -3, 4; 2, NaN]); -***** error ... - procrustes ([1, 2; -3, 4; 2, 3], [1, 2; -3, 4; 2, Inf]); -***** error ... - procrustes (ones (10 ,3), ones (11, 3)); -***** error ... - procrustes (ones (10 ,3), ones (10, 4)); -***** error ... - procrustes (ones (10 ,3), ones (10, 3), "reflection"); -***** error ... - procrustes (ones (10 ,3), ones (10, 3), true); -***** error ... - procrustes (ones (10 ,3), ones (10, 3), "scaling", 0); -***** error ... - procrustes (ones (10 ,3), ones (10, 3), "scaling", [true true]); -***** error ... - procrustes (ones (10 ,3), ones (10, 3), "reflection", 1); -***** error ... - procrustes (ones (10 ,3), ones (10, 3), "reflection", "some"); -***** error ... - procrustes (ones (10 ,3), ones (10, 3), "param1", "some"); -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/cl_multinom.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cl_multinom.m -***** demo - CL = cl_multinom ([27; 43; 19; 11], 10000, 0.05) -***** error cl_multinom (); -***** error cl_multinom (1, 2, 3, 4, 5); -***** error ... - cl_multinom (1, 2, 3, 4); -***** error ... - cl_multinom (1, 2, 3, "some string"); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/anovan.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/anovan.m -***** demo - - # Two-sample unpaired test on independent samples (equivalent to Student's - # t-test). Note that the absolute value of t-statistic can be obtained by - # taking the square root of the reported F statistic. In this example, - # t = sqrt (1.44) = 1.20. - - score = [54 23 45 54 45 43 34 65 77 46 65]'; - gender = {"male" "male" "male" "male" "male" "female" "female" "female" ... - "female" "female" "female"}'; - - [P, ATAB, STATS] = anovan (score, gender, "display", "on", "varnames", "gender"); -***** demo - - # Two-sample paired test on dependent or matched samples equivalent to a - # paired t-test. As for the first example, the t-statistic can be obtained by - # taking the square root of the reported F statistic. Note that the interaction - # between treatment x subject was dropped from the full model by assigning - # subject as a random factor ('). - - score = [4.5 5.6; 3.7 6.4; 5.3 6.4; 5.4 6.0; 3.9 5.7]'; - treatment = {"before" "after"; "before" "after"; "before" "after"; - "before" "after"; "before" "after"}'; - subject = {"GS" "GS"; "JM" "JM"; "HM" "HM"; "JW" "JW"; "PS" "PS"}'; - - [P, ATAB, STATS] = anovan (score(:), {treatment(:), subject(:)}, ... - "model", "full", "random", 2, "sstype", 2, ... - "varnames", {"treatment", "subject"}, ... - "display", "on"); -***** demo - - # One-way ANOVA on the data from a study on the strength of structural beams, - # in Hogg and Ledolter (1987) Engineering Statistics. New York: MacMillan - - strength = [82 86 79 83 84 85 86 87 74 82 ... - 78 75 76 77 79 79 77 78 82 79]'; - alloy = {"st","st","st","st","st","st","st","st", ... - "al1","al1","al1","al1","al1","al1", ... - "al2","al2","al2","al2","al2","al2"}'; - - [P, ATAB, STATS] = anovan (strength, alloy, "display", "on", ... - "varnames", "alloy"); -***** demo - - # One-way repeated measures ANOVA on the data from a study on the number of - # words recalled by 10 subjects for three time condtions, in Loftus & Masson - # (1994) Psychon Bull Rev. 1(4):476-490, Table 2. Note that the interaction - # between seconds x subject was dropped from the full model by assigning - # subject as a random factor ('). - - words = [10 13 13; 6 8 8; 11 14 14; 22 23 25; 16 18 20; ... - 15 17 17; 1 1 4; 12 15 17; 9 12 12; 8 9 12]; - seconds = [1 2 5; 1 2 5; 1 2 5; 1 2 5; 1 2 5; ... - 1 2 5; 1 2 5; 1 2 5; 1 2 5; 1 2 5;]; - subject = [ 1 1 1; 2 2 2; 3 3 3; 4 4 4; 5 5 5; ... - 6 6 6; 7 7 7; 8 8 8; 9 9 9; 10 10 10]; - - [P, ATAB, STATS] = anovan (words(:), {seconds(:), subject(:)}, ... - "model", "full", "random", 2, "sstype", 2, ... - "display", "on", "varnames", {"seconds", "subject"}); -***** demo - - # Balanced two-way ANOVA with interaction on the data from a study of popcorn - # brands and popper types, in Hogg and Ledolter (1987) Engineering Statistics. - # New York: MacMillan - - popcorn = [5.5, 4.5, 3.5; 5.5, 4.5, 4.0; 6.0, 4.0, 3.0; ... - 6.5, 5.0, 4.0; 7.0, 5.5, 5.0; 7.0, 5.0, 4.5]; - brands = {"Gourmet", "National", "Generic"; ... - "Gourmet", "National", "Generic"; ... - "Gourmet", "National", "Generic"; ... - "Gourmet", "National", "Generic"; ... - "Gourmet", "National", "Generic"; ... - "Gourmet", "National", "Generic"}; - popper = {"oil", "oil", "oil"; "oil", "oil", "oil"; "oil", "oil", "oil"; ... - "air", "air", "air"; "air", "air", "air"; "air", "air", "air"}; - - [P, ATAB, STATS] = anovan (popcorn(:), {brands(:), popper(:)}, ... - "display", "on", "model", "full", ... - "varnames", {"brands", "popper"}); -***** demo - - # Unbalanced two-way ANOVA (2x2) on the data from a study on the effects of - # gender and having a college degree on salaries of company employees, - # in Maxwell, Delaney and Kelly (2018): Chapter 7, Table 15 - - salary = [24 26 25 24 27 24 27 23 15 17 20 16, ... - 25 29 27 19 18 21 20 21 22 19]'; - gender = {"f" "f" "f" "f" "f" "f" "f" "f" "f" "f" "f" "f"... - "m" "m" "m" "m" "m" "m" "m" "m" "m" "m"}'; - degree = [1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0]'; - - [P, ATAB, STATS] = anovan (salary, {gender, degree}, "model", "full", ... - "sstype", 3, "display", "on", "varnames", ... - {"gender", "degree"}); -***** demo - - # Unbalanced two-way ANOVA (3x2) on the data from a study of the effect of - # adding sugar and/or milk on the tendency of coffee to make people babble, - # in from Navarro (2019): 16.10 - - sugar = {"real" "fake" "fake" "real" "real" "real" "none" "none" "none" ... - "fake" "fake" "fake" "real" "real" "real" "none" "none" "fake"}'; - milk = {"yes" "no" "no" "yes" "yes" "no" "yes" "yes" "yes" ... - "no" "no" "yes" "no" "no" "no" "no" "no" "yes"}'; - babble = [4.6 4.4 3.9 5.6 5.1 5.5 3.9 3.5 3.7... - 5.6 4.7 5.9 6.0 5.4 6.6 5.8 5.3 5.7]'; - - [P, ATAB, STATS] = anovan (babble, {sugar, milk}, "model", "full", ... - "sstype", 3, "display", "on", ... - "varnames", {"sugar", "milk"}); -***** demo - - # Unbalanced three-way ANOVA (3x2x2) on the data from a study of the effects - # of three different drugs, biofeedback and diet on patient blood pressure, - # adapted* from Maxwell, Delaney and Kelly (2018): Chapter 8, Table 12 - # * Missing values introduced to make the sample sizes unequal to test the - # calculation of different types of sums-of-squares - - drug = {"X" "X" "X" "X" "X" "X" "X" "X" "X" "X" "X" "X" ... - "X" "X" "X" "X" "X" "X" "X" "X" "X" "X" "X" "X"; - "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" ... - "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "Y"; - "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" ... - "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z" "Z"}; - feedback = [1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0; - 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0; - 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0]; - diet = [0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1; - 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1; - 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1]; - BP = [170 175 165 180 160 158 161 173 157 152 181 190 ... - 173 194 197 190 176 198 164 190 169 164 176 175; - 186 194 201 215 219 209 164 166 159 182 187 174 ... - 189 194 217 206 199 195 171 173 196 199 180 NaN; - 180 187 199 170 204 194 162 184 183 156 180 173 ... - 202 228 190 206 224 204 205 199 170 160 NaN NaN]; - - [P, ATAB, STATS] = anovan (BP(:), {drug(:), feedback(:), diet(:)}, ... - "model", "full", "sstype", 3, ... - "display", "on", ... - "varnames", {"drug", "feedback", "diet"}); -***** demo - - # Balanced three-way ANOVA (2x2x2) with one of the factors being a blocking - # factor. The data is from a randomized block design study on the effects - # of antioxidant treatment on glutathione-S-transferase (GST) levels in - # different mouse strains, from Festing (2014), ILAR Journal, 55(3):427-476. - # Note that all interactions involving block were dropped from the full model - # by assigning block as a random factor ('). - - measurement = [444 614 423 625 408 856 447 719 ... - 764 831 586 782 609 1002 606 766]'; - strain= {"NIH","NIH","BALB/C","BALB/C","A/J","A/J","129/Ola","129/Ola", ... - "NIH","NIH","BALB/C","BALB/C","A/J","A/J","129/Ola","129/Ola"}'; - treatment={"C" "T" "C" "T" "C" "T" "C" "T" "C" "T" "C" "T" "C" "T" "C" "T"}'; - block = [1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2]'; - - [P, ATAB, STATS] = anovan (measurement/10, {strain, treatment, block}, ... - "sstype", 2, "model", "full", "random", 3, ... - "display", "on", ... - "varnames", {"strain", "treatment", "block"}); -***** demo - - # One-way ANCOVA on data from a study of the additive effects of species - # and temperature on chirpy pulses of crickets, from Stitch, The Worst Stats - # Text eveR - - pulse = [67.9 65.1 77.3 78.7 79.4 80.4 85.8 86.6 87.5 89.1 ... - 98.6 100.8 99.3 101.7 44.3 47.2 47.6 49.6 50.3 51.8 ... - 60 58.5 58.9 60.7 69.8 70.9 76.2 76.1 77 77.7 84.7]'; - temp = [20.8 20.8 24 24 24 24 26.2 26.2 26.2 26.2 28.4 ... - 29 30.4 30.4 17.2 18.3 18.3 18.3 18.9 18.9 20.4 ... - 21 21 22.1 23.5 24.2 25.9 26.5 26.5 26.5 28.6]'; - species = {"ex" "ex" "ex" "ex" "ex" "ex" "ex" "ex" "ex" "ex" "ex" ... - "ex" "ex" "ex" "niv" "niv" "niv" "niv" "niv" "niv" "niv" ... - "niv" "niv" "niv" "niv" "niv" "niv" "niv" "niv" "niv" "niv"}; - - [P, ATAB, STATS] = anovan (pulse, {species, temp}, "model", "linear", ... - "continuous", 2, "sstype", "h", "display", "on", ... - "varnames", {"species", "temp"}); -***** demo - - # Factorial ANCOVA on data from a study of the effects of treatment and - # exercise on stress reduction score after adjusting for age. Data from R - # datarium package). - - score = [95.6 82.2 97.2 96.4 81.4 83.6 89.4 83.8 83.3 85.7 ... - 97.2 78.2 78.9 91.8 86.9 84.1 88.6 89.8 87.3 85.4 ... - 81.8 65.8 68.1 70.0 69.9 75.1 72.3 70.9 71.5 72.5 ... - 84.9 96.1 94.6 82.5 90.7 87.0 86.8 93.3 87.6 92.4 ... - 100. 80.5 92.9 84.0 88.4 91.1 85.7 91.3 92.3 87.9 ... - 91.7 88.6 75.8 75.7 75.3 82.4 80.1 86.0 81.8 82.5]'; - treatment = {"yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" ... - "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" ... - "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" ... - "no" "no" "no" "no" "no" "no" "no" "no" "no" "no" ... - "no" "no" "no" "no" "no" "no" "no" "no" "no" "no" ... - "no" "no" "no" "no" "no" "no" "no" "no" "no" "no"}'; - exercise = {"lo" "lo" "lo" "lo" "lo" "lo" "lo" "lo" "lo" "lo" ... - "mid" "mid" "mid" "mid" "mid" "mid" "mid" "mid" "mid" "mid" ... - "hi" "hi" "hi" "hi" "hi" "hi" "hi" "hi" "hi" "hi" ... - "lo" "lo" "lo" "lo" "lo" "lo" "lo" "lo" "lo" "lo" ... - "mid" "mid" "mid" "mid" "mid" "mid" "mid" "mid" "mid" "mid" ... - "hi" "hi" "hi" "hi" "hi" "hi" "hi" "hi" "hi" "hi"}'; - age = [59 65 70 66 61 65 57 61 58 55 62 61 60 59 55 57 60 63 62 57 ... - 58 56 57 59 59 60 55 53 55 58 68 62 61 54 59 63 60 67 60 67 ... - 75 54 57 62 65 60 58 61 65 57 56 58 58 58 52 53 60 62 61 61]'; - - [P, ATAB, STATS] = anovan (score, {treatment, exercise, age}, ... - "model", [1 0 0; 0 1 0; 0 0 1; 1 1 0], ... - "continuous", 3, "sstype", "h", "display", "on", ... - "varnames", {"treatment", "exercise", "age"}); -***** demo - - # Unbalanced one-way ANOVA with custom, orthogonal contrasts. The statistics - # relating to the contrasts are shown in the table of model parameters, and - # can be retrieved from the STATS.coeffs output. - - dv = [ 8.706 10.362 11.552 6.941 10.983 10.092 6.421 14.943 15.931 ... - 22.968 18.590 16.567 15.944 21.637 14.492 17.965 18.851 22.891 ... - 22.028 16.884 17.252 18.325 25.435 19.141 21.238 22.196 18.038 ... - 22.628 31.163 26.053 24.419 32.145 28.966 30.207 29.142 33.212 ... - 25.694 ]'; - g = [1 1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 3 3 3 ... - 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5]'; - C = [ 0.4001601 0.3333333 0.5 0.0 - 0.4001601 0.3333333 -0.5 0.0 - 0.4001601 -0.6666667 0.0 0.0 - -0.6002401 0.0000000 0.0 0.5 - -0.6002401 0.0000000 0.0 -0.5]; - - [P,ATAB, STATS] = anovan (dv, g, "contrasts", C, "varnames", "score", ... - "alpha", 0.05, "display", "on"); -***** demo - - # One-way ANOVA with the linear model fit by weighted least squares to - # account for heteroskedasticity. In this example, the variance appears - # proportional to the outcome, so weights have been estimated by initially - # fitting the model without weights and regressing the absolute residuals on - # the fitted values. Although this data could have been analysed by Welch's - # ANOVA test, the approach here can generalize to ANOVA models with more than - # one factor. - - g = [1, 1, 1, 1, 1, 1, 1, 1, ... - 2, 2, 2, 2, 2, 2, 2, 2, ... - 3, 3, 3, 3, 3, 3, 3, 3]'; - y = [13, 16, 16, 7, 11, 5, 1, 9, ... - 10, 25, 66, 43, 47, 56, 6, 39, ... - 11, 39, 26, 35, 25, 14, 24, 17]'; - - [P,ATAB,STATS] = anovan(y, g, "display", "off"); - fitted = STATS.X * STATS.coeffs(:,1); # fitted values - b = polyfit (fitted, abs (STATS.resid), 1); - v = polyval (b, fitted); # Variance as a function of the fitted values - figure("Name", "Regression of the absolute residuals on the fitted values"); - plot (fitted, abs (STATS.resid),'ob');hold on; plot(fitted,v,'-r'); hold off; - xlabel("Fitted values"); ylabel("Absolute residuals"); - - [P,ATAB,STATS] = anovan (y, g, "weights", v.^-1); + p = [0.05:0.05:0.5]; +***** assert (icdf ("Beta", p, 5, 2), betainv (p, 5, 2)) +***** assert (icdf ("beta", p, 5, 2), betainv (p, 5, 2)) +***** assert (icdf ("Binomial", p, 5, 2), binoinv (p, 5, 2)) +***** assert (icdf ("bino", p, 5, 2), binoinv (p, 5, 2)) +***** assert (icdf ("Birnbaum-Saunders", p, 5, 2), bisainv (p, 5, 2)) +***** assert (icdf ("bisa", p, 5, 2), bisainv (p, 5, 2)) +***** assert (icdf ("Burr", p, 5, 2, 2), burrinv (p, 5, 2, 2)) +***** assert (icdf ("burr", p, 5, 2, 2), burrinv (p, 5, 2, 2)) +***** assert (icdf ("Cauchy", p, 5, 2), cauchyinv (p, 5, 2)) +***** assert (icdf ("cauchy", p, 5, 2), cauchyinv (p, 5, 2)) +***** assert (icdf ("Chi-squared", p, 5), chi2inv (p, 5)) +***** assert (icdf ("chi2", p, 5), chi2inv (p, 5)) +***** assert (icdf ("Extreme Value", p, 5, 2), evinv (p, 5, 2)) +***** assert (icdf ("ev", p, 5, 2), evinv (p, 5, 2)) +***** assert (icdf ("Exponential", p, 5), expinv (p, 5)) +***** assert (icdf ("exp", p, 5), expinv (p, 5)) +***** assert (icdf ("F-Distribution", p, 5, 2), finv (p, 5, 2)) +***** assert (icdf ("f", p, 5, 2), finv (p, 5, 2)) +***** assert (icdf ("Gamma", p, 5, 2), gaminv (p, 5, 2)) +***** assert (icdf ("gam", p, 5, 2), gaminv (p, 5, 2)) +***** assert (icdf ("Geometric", p, 5), geoinv (p, 5)) +***** assert (icdf ("geo", p, 5), geoinv (p, 5)) +***** assert (icdf ("Generalized Extreme Value", p, 5, 2, 2), gevinv (p, 5, 2, 2)) +***** assert (icdf ("gev", p, 5, 2, 2), gevinv (p, 5, 2, 2)) +***** assert (icdf ("Generalized Pareto", p, 5, 2, 2), gpinv (p, 5, 2, 2)) +***** assert (icdf ("gp", p, 5, 2, 2), gpinv (p, 5, 2, 2)) +***** assert (icdf ("Gumbel", p, 5, 2), gumbelinv (p, 5, 2)) +***** assert (icdf ("gumbel", p, 5, 2), gumbelinv (p, 5, 2)) +***** assert (icdf ("Half-normal", p, 5, 2), hninv (p, 5, 2)) +***** assert (icdf ("hn", p, 5, 2), hninv (p, 5, 2)) +***** assert (icdf ("Hypergeometric", p, 5, 2, 2), hygeinv (p, 5, 2, 2)) +***** assert (icdf ("hyge", p, 5, 2, 2), hygeinv (p, 5, 2, 2)) +***** assert (icdf ("Inverse Gaussian", p, 5, 2), invginv (p, 5, 2)) +***** assert (icdf ("invg", p, 5, 2), invginv (p, 5, 2)) +***** assert (icdf ("Laplace", p, 5, 2), laplaceinv (p, 5, 2)) +***** assert (icdf ("laplace", p, 5, 2), laplaceinv (p, 5, 2)) +***** assert (icdf ("Logistic", p, 5, 2), logiinv (p, 5, 2)) +***** assert (icdf ("logi", p, 5, 2), logiinv (p, 5, 2)) +***** assert (icdf ("Log-Logistic", p, 5, 2), loglinv (p, 5, 2)) +***** assert (icdf ("logl", p, 5, 2), loglinv (p, 5, 2)) +***** assert (icdf ("Lognormal", p, 5, 2), logninv (p, 5, 2)) +***** assert (icdf ("logn", p, 5, 2), logninv (p, 5, 2)) +***** assert (icdf ("Nakagami", p, 5, 2), nakainv (p, 5, 2)) +***** assert (icdf ("naka", p, 5, 2), nakainv (p, 5, 2)) +***** assert (icdf ("Negative Binomial", p, 5, 2), nbininv (p, 5, 2)) +***** assert (icdf ("nbin", p, 5, 2), nbininv (p, 5, 2)) +***** assert (icdf ("Noncentral F-Distribution", p, 5, 2, 2), ncfinv (p, 5, 2, 2)) +***** assert (icdf ("ncf", p, 5, 2, 2), ncfinv (p, 5, 2, 2)) +***** assert (icdf ("Noncentral Student T", p, 5, 2), nctinv (p, 5, 2)) +***** assert (icdf ("nct", p, 5, 2), nctinv (p, 5, 2)) +***** assert (icdf ("Noncentral Chi-Squared", p, 5, 2), ncx2inv (p, 5, 2)) +***** assert (icdf ("ncx2", p, 5, 2), ncx2inv (p, 5, 2)) +***** assert (icdf ("Normal", p, 5, 2), norminv (p, 5, 2)) +***** assert (icdf ("norm", p, 5, 2), norminv (p, 5, 2)) +***** assert (icdf ("Poisson", p, 5), poissinv (p, 5)) +***** assert (icdf ("poiss", p, 5), poissinv (p, 5)) +***** assert (icdf ("Rayleigh", p, 5), raylinv (p, 5)) +***** assert (icdf ("rayl", p, 5), raylinv (p, 5)) +***** assert (icdf ("Rician", p, 5, 1), riceinv (p, 5, 1)) +***** assert (icdf ("rice", p, 5, 1), riceinv (p, 5, 1)) +***** assert (icdf ("Student T", p, 5), tinv (p, 5)) +***** assert (icdf ("t", p, 5), tinv (p, 5)) +***** assert (icdf ("location-scale T", p, 5, 1, 2), tlsinv (p, 5, 1, 2)) +***** assert (icdf ("tls", p, 5, 1, 2), tlsinv (p, 5, 1, 2)) +***** assert (icdf ("Triangular", p, 5, 2, 2), triinv (p, 5, 2, 2)) +***** assert (icdf ("tri", p, 5, 2, 2), triinv (p, 5, 2, 2)) +***** assert (icdf ("Discrete Uniform", p, 5), unidinv (p, 5)) +***** assert (icdf ("unid", p, 5), unidinv (p, 5)) +***** assert (icdf ("Uniform", p, 5, 2), unifinv (p, 5, 2)) +***** assert (icdf ("unif", p, 5, 2), unifinv (p, 5, 2)) +***** assert (icdf ("Von Mises", p, 5, 2), vminv (p, 5, 2)) +***** assert (icdf ("vm", p, 5, 2), vminv (p, 5, 2)) +***** assert (icdf ("Weibull", p, 5, 2), wblinv (p, 5, 2)) +***** assert (icdf ("wbl", p, 5, 2), wblinv (p, 5, 2)) +***** error icdf (1) +***** error icdf ({"beta"}) +***** error icdf ("beta", {[1 2 3 4 5]}) +***** error icdf ("beta", "text") +***** error icdf ("beta", 1+i) +***** error ... + icdf ("Beta", p, "a", 2) +***** error ... + icdf ("Beta", p, 5, "") +***** error ... + icdf ("Beta", p, 5, {2}) +***** error icdf ("chi2", p) +***** error icdf ("Beta", p, 5) +***** error icdf ("Burr", p, 5) +***** error icdf ("Burr", p, 5, 2) +86 tests, 86 passed, 0 known failure, 0 skipped +[inst/dist_wrap/random.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/random.m +***** assert (size (random ("Beta", 5, 2, 2, 10)), size (betarnd (5, 2, 2, 10))) +***** assert (size (random ("beta", 5, 2, 2, 10)), size (betarnd (5, 2, 2, 10))) +***** assert (size (random ("Binomial", 5, 2, [10, 20])), size (binornd (5, 2, 10, 20))) +***** assert (size (random ("bino", 5, 2, [10, 20])), size (binornd (5, 2, 10, 20))) +***** assert (size (random ("Birnbaum-Saunders", 5, 2, [10, 20])), size (bisarnd (5, 2, 10, 20))) +***** assert (size (random ("bisa", 5, 2, [10, 20])), size (bisarnd (5, 2, 10, 20))) +***** assert (size (random ("Burr", 5, 2, 2, [10, 20])), size (burrrnd (5, 2, 2, 10, 20))) +***** assert (size (random ("burr", 5, 2, 2, [10, 20])), size (burrrnd (5, 2, 2, 10, 20))) +***** assert (size (random ("Cauchy", 5, 2, [10, 20])), size (cauchyrnd (5, 2, 10, 20))) +***** assert (size (random ("cauchy", 5, 2, [10, 20])), size (cauchyrnd (5, 2, 10, 20))) +***** assert (size (random ("Chi-squared", 5, [10, 20])), size (chi2rnd (5, 10, 20))) +***** assert (size (random ("chi2", 5, [10, 20])), size (chi2rnd (5, 10, 20))) +***** assert (size (random ("Extreme Value", 5, 2, [10, 20])), size (evrnd (5, 2, 10, 20))) +***** assert (size (random ("ev", 5, 2, [10, 20])), size (evrnd (5, 2, 10, 20))) +***** assert (size (random ("Exponential", 5, [10, 20])), size (exprnd (5, 10, 20))) +***** assert (size (random ("exp", 5, [10, 20])), size (exprnd (5, 10, 20))) +***** assert (size (random ("F-Distribution", 5, 2, [10, 20])), size (frnd (5, 2, 10, 20))) +***** assert (size (random ("f", 5, 2, [10, 20])), size (frnd (5, 2, 10, 20))) +***** assert (size (random ("Gamma", 5, 2, [10, 20])), size (gamrnd (5, 2, 10, 20))) +***** assert (size (random ("gam", 5, 2, [10, 20])), size (gamrnd (5, 2, 10, 20))) +***** assert (size (random ("Geometric", 5, [10, 20])), size (geornd (5, 10, 20))) +***** assert (size (random ("geo", 5, [10, 20])), size (geornd (5, 10, 20))) +***** assert (size (random ("Generalized Extreme Value", 5, 2, 2, [10, 20])), size (gevrnd (5, 2, 2, 10, 20))) +***** assert (size (random ("gev", 5, 2, 2, [10, 20])), size (gevrnd (5, 2, 2, 10, 20))) +***** assert (size (random ("Generalized Pareto", 5, 2, 2, [10, 20])), size (gprnd (5, 2, 2, 10, 20))) +***** assert (size (random ("gp", 5, 2, 2, [10, 20])), size (gprnd (5, 2, 2, 10, 20))) +***** assert (size (random ("Gumbel", 5, 2, [10, 20])), size (gumbelrnd (5, 2, 10, 20))) +***** assert (size (random ("gumbel", 5, 2, [10, 20])), size (gumbelrnd (5, 2, 10, 20))) +***** assert (size (random ("Half-normal", 5, 2, [10, 20])), size (hnrnd (5, 2, 10, 20))) +***** assert (size (random ("hn", 5, 2, [10, 20])), size (hnrnd (5, 2, 10, 20))) +***** assert (size (random ("Hypergeometric", 5, 2, 2, [10, 20])), size (hygernd (5, 2, 2, 10, 20))) +***** assert (size (random ("hyge", 5, 2, 2, [10, 20])), size (hygernd (5, 2, 2, 10, 20))) +***** assert (size (random ("Inverse Gaussian", 5, 2, [10, 20])), size (invgrnd (5, 2, 10, 20))) +***** assert (size (random ("invg", 5, 2, [10, 20])), size (invgrnd (5, 2, 10, 20))) +***** assert (size (random ("Laplace", 5, 2, [10, 20])), size (laplacernd (5, 2, 10, 20))) +***** assert (size (random ("laplace", 5, 2, [10, 20])), size (laplacernd (5, 2, 10, 20))) +***** assert (size (random ("Logistic", 5, 2, [10, 20])), size (logirnd (5, 2, 10, 20))) +***** assert (size (random ("logi", 5, 2, [10, 20])), size (logirnd (5, 2, 10, 20))) +***** assert (size (random ("Log-Logistic", 5, 2, [10, 20])), size (loglrnd (5, 2, 10, 20))) +***** assert (size (random ("logl", 5, 2, [10, 20])), size (loglrnd (5, 2, 10, 20))) +***** assert (size (random ("Lognormal", 5, 2, [10, 20])), size (lognrnd (5, 2, 10, 20))) +***** assert (size (random ("logn", 5, 2, [10, 20])), size (lognrnd (5, 2, 10, 20))) +***** assert (size (random ("Nakagami", 5, 2, [10, 20])), size (nakarnd (5, 2, 10, 20))) +***** assert (size (random ("naka", 5, 2, [10, 20])), size (nakarnd (5, 2, 10, 20))) +***** assert (size (random ("Negative Binomial", 5, 2, [10, 20])), size (nbinrnd (5, 2, 10, 20))) +***** assert (size (random ("nbin", 5, 2, [10, 20])), size (nbinrnd (5, 2, 10, 20))) +***** assert (size (random ("Noncentral F-Distribution", 5, 2, 2, [10, 20])), size (ncfrnd (5, 2, 2, 10, 20))) +***** assert (size (random ("ncf", 5, 2, 2, [10, 20])), size (ncfrnd (5, 2, 2, 10, 20))) +***** assert (size (random ("Noncentral Student T", 5, 2, [10, 20])), size (nctrnd (5, 2, 10, 20))) +***** assert (size (random ("nct", 5, 2, [10, 20])), size (nctrnd (5, 2, 10, 20))) +***** assert (size (random ("Noncentral Chi-Squared", 5, 2, [10, 20])), size (ncx2rnd (5, 2, 10, 20))) +***** assert (size (random ("ncx2", 5, 2, [10, 20])), size (ncx2rnd (5, 2, 10, 20))) +***** assert (size (random ("Normal", 5, 2, [10, 20])), size (normrnd (5, 2, 10, 20))) +***** assert (size (random ("norm", 5, 2, [10, 20])), size (normrnd (5, 2, 10, 20))) +***** assert (size (random ("Poisson", 5, [10, 20])), size (poissrnd (5, 10, 20))) +***** assert (size (random ("poiss", 5, [10, 20])), size (poissrnd (5, 10, 20))) +***** assert (size (random ("Rayleigh", 5, [10, 20])), size (raylrnd (5, 10, 20))) +***** assert (size (random ("rayl", 5, [10, 20])), size (raylrnd (5, 10, 20))) +***** assert (size (random ("Rician", 5, 1, [10, 20])), size (ricernd (5, 1, 10, 20))) +***** assert (size (random ("rice", 5, 1, [10, 20])), size (ricernd (5, 1, 10, 20))) +***** assert (size (random ("Student T", 5, [10, 20])), size (trnd (5, 10, 20))) +***** assert (size (random ("t", 5, [10, 20])), size (trnd (5, 10, 20))) +***** assert (size (random ("location-scale T", 5, 1, 2, [10, 20])), size (tlsrnd (5, 1, 2, 10, 20))) +***** assert (size (random ("tls", 5, 1, 2, [10, 20])), size (tlsrnd (5, 1, 2, 10, 20))) +***** assert (size (random ("Triangular", 5, 2, 2, [10, 20])), size (trirnd (5, 2, 2, 10, 20))) +***** assert (size (random ("tri", 5, 2, 2, [10, 20])), size (trirnd (5, 2, 2, 10, 20))) +***** assert (size (random ("Discrete Uniform", 5, [10, 20])), size (unidrnd (5, 10, 20))) +***** assert (size (random ("unid", 5, [10, 20])), size (unidrnd (5, 10, 20))) +***** assert (size (random ("Uniform", 5, 2, [10, 20])), size (unifrnd (5, 2, 10, 20))) +***** assert (size (random ("unif", 5, 2, [10, 20])), size (unifrnd (5, 2, 10, 20))) +***** assert (size (random ("Von Mises", 5, 2, [10, 20])), size (vmrnd (5, 2, 10, 20))) +***** assert (size (random ("vm", 5, 2, [10, 20])), size (vmrnd (5, 2, 10, 20))) +***** assert (size (random ("Weibull", 5, 2, [10, 20])), size (wblrnd (5, 2, 10, 20))) +***** assert (size (random ("wbl", 5, 2, [10, 20])), size (wblrnd (5, 2, 10, 20))) +***** error random (1) +***** error random ({"beta"}) +***** error ... + random ("Beta", "a", 2) +***** error ... + random ("Beta", 5, "") +***** error ... + random ("Beta", 5, {2}) +***** error ... + random ("Beta", "a", 2, 2, 10) +***** error ... + random ("Beta", 5, "", 2, 10) +***** error ... + random ("Beta", 5, {2}, 2, 10) +***** error ... + random ("Beta", 5, "", 2, 10) +***** error random ("chi2") +***** error random ("Beta", 5) +***** error random ("Burr", 5) +***** error random ("Burr", 5, 2) +87 tests, 87 passed, 0 known failure, 0 skipped +[inst/dist_wrap/makedist.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/makedist.m ***** test - score = [54 23 45 54 45 43 34 65 77 46 65]'; - gender = {'male' 'male' 'male' 'male' 'male' 'female' 'female' 'female' ... - 'female' 'female' 'female'}'; - - [P, T, STATS] = anovan (score,gender,'display','off'); - assert (P(1), 0.2612876773271042, 1e-09); # compared to p calculated by MATLAB anovan - assert (sqrt(T{2,6}), abs(1.198608733288208), 1e-09); # compared to abs(t) calculated from sqrt(F) by MATLAB anovan - assert (P(1), 0.2612876773271047, 1e-09); # compared to p calculated by MATLAB ttest2 - assert (sqrt(T{2,6}), abs(-1.198608733288208), 1e-09); # compared to abs(t) calculated by MATLAB ttest2 + pd = makedist ("beta"); + assert (class (pd), "BetaDistribution"); + assert (pd.a, 1); + assert (pd.b, 1); ***** test - score = [4.5 5.6; 3.7 6.4; 5.3 6.4; 5.4 6.0; 3.9 5.7]'; - treatment = {'before' 'after'; 'before' 'after'; 'before' 'after'; - 'before' 'after'; 'before' 'after'}'; - subject = {'GS' 'GS'; 'JM' 'JM'; 'HM' 'HM'; 'JW' 'JW'; 'PS' 'PS'}'; - - [P, ATAB, STATS] = anovan (score(:),{treatment(:),subject(:)},'display','off','sstype',2); - assert (P(1), 0.016004356735364, 1e-09); # compared to p calculated by MATLAB anovan - assert (sqrt(ATAB{2,6}), abs(4.00941576558195), 1e-09); # compared to abs(t) calculated from sqrt(F) by MATLAB anovan - assert (P(1), 0.016004356735364, 1e-09); # compared to p calculated by MATLAB ttest2 - assert (sqrt(ATAB{2,6}), abs(-4.00941576558195), 1e-09); # compared to abs(t) calculated by MATLAB ttest2 + pd = makedist ("beta", "a", 5); + assert (pd.a, 5); + assert (pd.b, 1); ***** test - strength = [82 86 79 83 84 85 86 87 74 82 ... - 78 75 76 77 79 79 77 78 82 79]'; - alloy = {'st','st','st','st','st','st','st','st', ... - 'al1','al1','al1','al1','al1','al1', ... - 'al2','al2','al2','al2','al2','al2'}'; - - [P, ATAB, STATS] = anovan (strength,{alloy},'display','off'); - assert (P(1), 0.000152643638830491, 1e-09); - assert (ATAB{2,6}, 15.4, 1e-09); + pd = makedist ("beta", "b", 5); + assert (pd.a, 1); + assert (pd.b, 5); ***** test - words = [10 13 13; 6 8 8; 11 14 14; 22 23 25; 16 18 20; ... - 15 17 17; 1 1 4; 12 15 17; 9 12 12; 8 9 12]; - subject = [ 1 1 1; 2 2 2; 3 3 3; 4 4 4; 5 5 5; ... - 6 6 6; 7 7 7; 8 8 8; 9 9 9; 10 10 10]; - seconds = [1 2 5; 1 2 5; 1 2 5; 1 2 5; 1 2 5; ... - 1 2 5; 1 2 5; 1 2 5; 1 2 5; 1 2 5;]; - - [P, ATAB, STATS] = anovan (words(:),{seconds(:),subject(:)},'model','full','random',2,'sstype',2,'display','off'); - assert (P(1), 1.51865926758752e-07, 1e-09); - assert (ATAB{2,2}, 52.2666666666667, 1e-09); - assert (ATAB{3,2}, 942.533333333333, 1e-09); - assert (ATAB{4,2}, 11.0666666666667, 1e-09); + pd = makedist ("beta", "a", 3, "b", 5); + assert (pd.a, 3); + assert (pd.b, 5); ***** test - popcorn = [5.5, 4.5, 3.5; 5.5, 4.5, 4.0; 6.0, 4.0, 3.0; ... - 6.5, 5.0, 4.0; 7.0, 5.5, 5.0; 7.0, 5.0, 4.5]; - brands = {'Gourmet', 'National', 'Generic'; ... - 'Gourmet', 'National', 'Generic'; ... - 'Gourmet', 'National', 'Generic'; ... - 'Gourmet', 'National', 'Generic'; ... - 'Gourmet', 'National', 'Generic'; ... - 'Gourmet', 'National', 'Generic'}; - popper = {'oil', 'oil', 'oil'; 'oil', 'oil', 'oil'; 'oil', 'oil', 'oil'; ... - 'air', 'air', 'air'; 'air', 'air', 'air'; 'air', 'air', 'air'}; - - [P, ATAB, STATS] = anovan (popcorn(:),{brands(:),popper(:)},'display','off','model','full'); - assert (P(1), 7.67895738278171e-07, 1e-09); - assert (P(2), 0.000100373896304998, 1e-09); - assert (P(3), 0.746215396636649, 1e-09); - assert (ATAB{2,6}, 56.7, 1e-09); - assert (ATAB{3,6}, 32.4, 1e-09); - assert (ATAB{4,6}, 0.29999999999997, 1e-09); + pd = makedist ("binomial"); + assert (class (pd), "BinomialDistribution"); + assert (pd.N, 1); + assert (pd.p, 0.5); ***** test - salary = [24 26 25 24 27 24 27 23 15 17 20 16, ... - 25 29 27 19 18 21 20 21 22 19]'; - gender = {'f' 'f' 'f' 'f' 'f' 'f' 'f' 'f' 'f' 'f' 'f' 'f'... - 'm' 'm' 'm' 'm' 'm' 'm' 'm' 'm' 'm' 'm'}'; - degree = [1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0]'; - - [P, ATAB, STATS] = anovan (salary,{gender,degree},'model','full','sstype',1,'display','off'); - assert (P(1), 0.747462549227232, 1e-09); - assert (P(2), 1.03809316857694e-08, 1e-09); - assert (P(3), 0.523689833702691, 1e-09); - assert (ATAB{2,2}, 0.296969696969699, 1e-09); - assert (ATAB{3,2}, 272.391841491841, 1e-09); - assert (ATAB{4,2}, 1.17482517482512, 1e-09); - assert (ATAB{5,2}, 50.0000000000001, 1e-09); - [P, ATAB, STATS] = anovan (salary,{degree,gender},'model','full','sstype',1,'display','off'); - assert (P(1), 2.53445097305047e-08, 1e-09); - assert (P(2), 0.00388133678528749, 1e-09); - assert (P(3), 0.523689833702671, 1e-09); - assert (ATAB{2,2}, 242.227272727273, 1e-09); - assert (ATAB{3,2}, 30.4615384615384, 1e-09); - assert (ATAB{4,2}, 1.17482517482523, 1e-09); - assert (ATAB{5,2}, 50.0000000000001, 1e-09); - [P, ATAB, STATS] = anovan (salary,{gender,degree},'model','full','sstype',2,'display','off'); - assert (P(1), 0.00388133678528743, 1e-09); - assert (P(2), 1.03809316857694e-08, 1e-09); - assert (P(3), 0.523689833702691, 1e-09); - assert (ATAB{2,2}, 30.4615384615385, 1e-09); - assert (ATAB{3,2}, 272.391841491841, 1e-09); - assert (ATAB{4,2}, 1.17482517482512, 1e-09); - assert (ATAB{5,2}, 50.0000000000001, 1e-09); - [P, ATAB, STATS] = anovan (salary,{gender,degree},'model','full','sstype',3,'display','off'); - assert (P(1), 0.00442898146583742, 1e-09); - assert (P(2), 1.30634252053587e-08, 1e-09); - assert (P(3), 0.523689833702691, 1e-09); - assert (ATAB{2,2}, 29.3706293706294, 1e-09); - assert (ATAB{3,2}, 264.335664335664, 1e-09); - assert (ATAB{4,2}, 1.17482517482512, 1e-09); - assert (ATAB{5,2}, 50.0000000000001, 1e-09); + pd = makedist ("binomial", "N", 5); + assert (pd.N, 5); + assert (pd.p, 0.5); ***** test - sugar = {'real' 'fake' 'fake' 'real' 'real' 'real' 'none' 'none' 'none' ... - 'fake' 'fake' 'fake' 'real' 'real' 'real' 'none' 'none' 'fake'}'; - milk = {'yes' 'no' 'no' 'yes' 'yes' 'no' 'yes' 'yes' 'yes' ... - 'no' 'no' 'yes' 'no' 'no' 'no' 'no' 'no' 'yes'}'; - babble = [4.6 4.4 3.9 5.6 5.1 5.5 3.9 3.5 3.7... - 5.6 4.7 5.9 6.0 5.4 6.6 5.8 5.3 5.7]'; - - [P, ATAB, STATS] = anovan (babble,{sugar,milk},'model','full','sstype',1,'display','off'); - assert (P(1), 0.0108632139833963, 1e-09); - assert (P(2), 0.0810606976703546, 1e-09); - assert (P(3), 0.00175433329935627, 1e-09); - assert (ATAB{2,2}, 3.55752380952381, 1e-09); - assert (ATAB{3,2}, 0.956108477471702, 1e-09); - assert (ATAB{4,2}, 5.94386771300448, 1e-09); - assert (ATAB{5,2}, 3.1625, 1e-09); - [P, ATAB, STATS] = anovan (babble,{milk,sugar},'model','full','sstype',1,'display','off'); - assert (P(1), 0.0373333189297505, 1e-09); - assert (P(2), 0.017075098787169, 1e-09); - assert (P(3), 0.00175433329935627, 1e-09); - assert (ATAB{2,2}, 1.444, 1e-09); - assert (ATAB{3,2}, 3.06963228699552, 1e-09); - assert (ATAB{4,2}, 5.94386771300448, 1e-09); - assert (ATAB{5,2}, 3.1625, 1e-09); - [P, ATAB, STATS] = anovan (babble,{sugar,milk},'model','full','sstype',2,'display','off'); - assert (P(1), 0.017075098787169, 1e-09); - assert (P(2), 0.0810606976703546, 1e-09); - assert (P(3), 0.00175433329935627, 1e-09); - assert (ATAB{2,2}, 3.06963228699552, 1e-09); - assert (ATAB{3,2}, 0.956108477471702, 1e-09); - assert (ATAB{4,2}, 5.94386771300448, 1e-09); - assert (ATAB{5,2}, 3.1625, 1e-09); - [P, ATAB, STATS] = anovan (babble,{sugar,milk},'model','full','sstype',3,'display','off'); - assert (P(1), 0.0454263063473954, 1e-09); - assert (P(2), 0.0746719907091438, 1e-09); - assert (P(3), 0.00175433329935627, 1e-09); - assert (ATAB{2,2}, 2.13184977578476, 1e-09); - assert (ATAB{3,2}, 1.00413461538462, 1e-09); - assert (ATAB{4,2}, 5.94386771300448, 1e-09); - assert (ATAB{5,2}, 3.1625, 1e-09); + pd = makedist ("binomial", "p", 0.2); + assert (pd.N, 1); + assert (pd.p, 0.2); ***** test - drug = {'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' ... - 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X'; - 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' ... - 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y'; - 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' ... - 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z'}; - feedback = [1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0; - 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0; - 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0]; - diet = [0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1; - 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1; - 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1]; - BP = [170 175 165 180 160 158 161 173 157 152 181 190 ... - 173 194 197 190 176 198 164 190 169 164 176 175; - 186 194 201 215 219 209 164 166 159 182 187 174 ... - 189 194 217 206 199 195 171 173 196 199 180 NaN; - 180 187 199 170 204 194 162 184 183 156 180 173 ... - 202 228 190 206 224 204 205 199 170 160 NaN NaN]; - - [P, ATAB, STATS] = anovan (BP(:),{drug(:),feedback(:),diet(:)},'model','full','sstype', 1,'display','off'); - assert (P(1), 7.02561843825325e-05, 1e-09); - assert (P(2), 0.000425806013389362, 1e-09); - assert (P(3), 6.16780773446401e-07, 1e-09); - assert (P(4), 0.261347622678438, 1e-09); - assert (P(5), 0.0542278432357043, 1e-09); - assert (P(6), 0.590353225626655, 1e-09); - assert (P(7), 0.0861628249564267, 1e-09); - assert (ATAB{2,2}, 3614.70355731226, 1e-09); - assert (ATAB{3,2}, 2227.46639771024, 1e-09); - assert (ATAB{4,2}, 5008.25614451819, 1e-09); - assert (ATAB{5,2}, 437.066007908781, 1e-09); - assert (ATAB{6,2}, 976.180770397332, 1e-09); - assert (ATAB{7,2}, 46.616653365254, 1e-09); - assert (ATAB{8,2}, 814.345251396648, 1e-09); - assert (ATAB{9,2}, 9065.8, 1e-09); - [P, ATAB, STATS] = anovan (BP(:),{drug(:),feedback(:),diet(:)},'model','full','sstype',2,'display','off'); - assert (P(1), 9.4879638470754e-05, 1e-09); - assert (P(2), 0.00124177666315809, 1e-09); - assert (P(3), 6.86162012732911e-07, 1e-09); - assert (P(4), 0.260856132341256, 1e-09); - assert (P(5), 0.0523758623892078, 1e-09); - assert (P(6), 0.590353225626655, 1e-09); - assert (P(7), 0.0861628249564267, 1e-09); - assert (ATAB{2,2}, 3481.72176560122, 1e-09); - assert (ATAB{3,2}, 1837.08812970469, 1e-09); - assert (ATAB{4,2}, 4957.20277938622, 1e-09); - assert (ATAB{5,2}, 437.693674777847, 1e-09); - assert (ATAB{6,2}, 988.431929811402, 1e-09); - assert (ATAB{7,2}, 46.616653365254, 1e-09); - assert (ATAB{8,2}, 814.345251396648, 1e-09); - assert (ATAB{9,2}, 9065.8, 1e-09); - [P, ATAB, STATS] = anovan (BP(:),{drug(:),feedback(:),diet(:)},'model','full','sstype', 3,'display','off'); - assert (P(1), 0.000106518678028207, 1e-09); - assert (P(2), 0.00125371366571508, 1e-09); - assert (P(3), 5.30813260778464e-07, 1e-09); - assert (P(4), 0.308353667232981, 1e-09); - assert (P(5), 0.0562901327343161, 1e-09); - assert (P(6), 0.599091042141092, 1e-09); - assert (P(7), 0.0861628249564267, 1e-09); - assert (ATAB{2,2}, 3430.88156424581, 1e-09); - assert (ATAB{3,2}, 1833.68031496063, 1e-09); - assert (ATAB{4,2}, 5080.48346456693, 1e-09); - assert (ATAB{5,2}, 382.07709497207, 1e-09); - assert (ATAB{6,2}, 963.037988826813, 1e-09); - assert (ATAB{7,2}, 44.4519685039322, 1e-09); - assert (ATAB{8,2}, 814.345251396648, 1e-09); - assert (ATAB{9,2}, 9065.8, 1e-09); + pd = makedist ("binomial", "N", 3, "p", 0.3); + assert (pd.N, 3); + assert (pd.p, 0.3); ***** test - measurement = [444 614 423 625 408 856 447 719 ... - 764 831 586 782 609 1002 606 766]'; - strain= {'NIH','NIH','BALB/C','BALB/C','A/J','A/J','129/Ola','129/Ola', ... - 'NIH','NIH','BALB/C','BALB/C','A/J','A/J','129/Ola','129/Ola'}'; - treatment={'C' 'T' 'C' 'T' 'C' 'T' 'C' 'T' 'C' 'T' 'C' 'T' 'C' 'T' 'C' 'T'}'; - block = [1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2]'; - - [P, ATAB, STATS] = anovan (measurement/10,{strain,treatment,block},'model','full','random',3,'display','off'); - assert (P(1), 0.0914352969909372, 1e-09); - assert (P(2), 5.04077373924908e-05, 1e-09); - assert (P(4), 0.0283196918836667, 1e-09); - assert (ATAB{2,2}, 286.132500000002, 1e-09); - assert (ATAB{3,2}, 2275.29, 1e-09); - assert (ATAB{4,2}, 1242.5625, 1e-09); - assert (ATAB{5,2}, 495.905000000001, 1e-09); - assert (ATAB{6,2}, 207.007499999999, 1e-09); + pd = makedist ("birnbaumsaunders"); + assert (class (pd), "BirnbaumSaundersDistribution"); + assert (pd.beta, 1); + assert (pd.gamma, 1); ***** test - pulse = [67.9 65.1 77.3 78.7 79.4 80.4 85.8 86.6 87.5 89.1 ... - 98.6 100.8 99.3 101.7 44.3 47.2 47.6 49.6 50.3 51.8 ... - 60 58.5 58.9 60.7 69.8 70.9 76.2 76.1 77 77.7 84.7]'; - temp = [20.8 20.8 24 24 24 24 26.2 26.2 26.2 26.2 28.4 ... - 29 30.4 30.4 17.2 18.3 18.3 18.3 18.9 18.9 20.4 ... - 21 21 22.1 23.5 24.2 25.9 26.5 26.5 26.5 28.6]'; - species = {'ex' 'ex' 'ex' 'ex' 'ex' 'ex' 'ex' 'ex' 'ex' 'ex' 'ex' ... - 'ex' 'ex' 'ex' 'niv' 'niv' 'niv' 'niv' 'niv' 'niv' 'niv' ... - 'niv' 'niv' 'niv' 'niv' 'niv' 'niv' 'niv' 'niv' 'niv' 'niv'}; - - [P, ATAB, STATS] = anovan (pulse,{species,temp},'model','linear','continuous',2,'sstype','h','display','off'); - assert (P(1), 6.27153318786007e-14, 1e-09); - assert (P(2), 2.48773241196644e-25, 1e-09); - assert (ATAB{2,2}, 598.003953318404, 1e-09); - assert (ATAB{3,2}, 4376.08256843712, 1e-09); - assert (ATAB{4,2}, 89.3498685376726, 1e-09); - assert (ATAB{2,6}, 187.399388123951, 1e-09); - assert (ATAB{3,6}, 1371.35413763454, 1e-09); + pd = makedist ("birnbaumsaunders", "beta", 5); + assert (pd.beta, 5); + assert (pd.gamma, 1); ***** test - score = [95.6 82.2 97.2 96.4 81.4 83.6 89.4 83.8 83.3 85.7 ... - 97.2 78.2 78.9 91.8 86.9 84.1 88.6 89.8 87.3 85.4 ... - 81.8 65.8 68.1 70.0 69.9 75.1 72.3 70.9 71.5 72.5 ... - 84.9 96.1 94.6 82.5 90.7 87.0 86.8 93.3 87.6 92.4 ... - 100. 80.5 92.9 84.0 88.4 91.1 85.7 91.3 92.3 87.9 ... - 91.7 88.6 75.8 75.7 75.3 82.4 80.1 86.0 81.8 82.5]'; - treatment = {'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' ... - 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' ... - 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' 'yes' ... - 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' ... - 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' ... - 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no' 'no'}'; - exercise = {'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' ... - 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' ... - 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' ... - 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' 'lo' ... - 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' 'mid' ... - 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi' 'hi'}'; - age = [59 65 70 66 61 65 57 61 58 55 62 61 60 59 55 57 60 63 62 57 ... - 58 56 57 59 59 60 55 53 55 58 68 62 61 54 59 63 60 67 60 67 ... - 75 54 57 62 65 60 58 61 65 57 56 58 58 58 52 53 60 62 61 61]'; - - [P, ATAB, STATS] = anovan (score,{treatment,exercise,age},'model','full','continuous',3,'sstype','h','display','off'); - assert (P(5), 0.9245630968248468, 1e-09); - assert (P(6), 0.791115159521822, 1e-09); - assert (P(7), 0.9296668751457956, 1e-09); - [P, ATAB, STATS] = anovan (score,{treatment,exercise,age},'model',[1 0 0; 0 1 0; 0 0 1; 1 1 0],'continuous',3,'sstype','h','display','off'); - assert (P(1), 0.00158132928938933, 1e-09); - assert (P(2), 2.12537505039986e-07, 1e-09); - assert (P(3), 0.00390292555160047, 1e-09); - assert (P(4), 0.0164086580775543, 1e-09); - assert (ATAB{2,6}, 11.0956027650549, 1e-09); - assert (ATAB{3,6}, 20.8195665467178, 1e-09); - assert (ATAB{4,6}, 9.10966630720186, 1e-09); - assert (ATAB{5,6}, 4.4457923698584, 1e-09); + pd = makedist ("birnbaumsaunders", "gamma", 5); + assert (pd.beta, 1); + assert (pd.gamma, 5); ***** test - dv = [ 8.706 10.362 11.552 6.941 10.983 10.092 6.421 14.943 15.931 ... - 22.968 18.590 16.567 15.944 21.637 14.492 17.965 18.851 22.891 ... - 22.028 16.884 17.252 18.325 25.435 19.141 21.238 22.196 18.038 ... - 22.628 31.163 26.053 24.419 32.145 28.966 30.207 29.142 33.212 ... - 25.694 ]'; - g = [1 1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5]'; - C = [ 0.4001601 0.3333333 0.5 0.0 - 0.4001601 0.3333333 -0.5 0.0 - 0.4001601 -0.6666667 0.0 0.0 - -0.6002401 0.0000000 0.0 0.5 - -0.6002401 0.0000000 0.0 -0.5]; - - [P,ATAB,STATS] = anovan (dv,g,'contrasts',{C},'display','off'); - assert (STATS.coeffs(1,1), 19.4001, 1e-04); - assert (STATS.coeffs(2,1), -9.3297, 1e-04); - assert (STATS.coeffs(3,1), -5.0000, 1e-04); - assert (STATS.coeffs(4,1), -8.0000, 1e-04); - assert (STATS.coeffs(5,1), -8.0000, 1e-04); - assert (STATS.coeffs(1,2), 0.4831, 1e-04); - assert (STATS.coeffs(2,2), 0.9694, 1e-04); - assert (STATS.coeffs(3,2), 1.3073, 1e-04); - assert (STATS.coeffs(4,2), 1.6411, 1e-04); - assert (STATS.coeffs(5,2), 1.4507, 1e-04); - assert (STATS.coeffs(1,5), 40.161, 1e-03); - assert (STATS.coeffs(2,5), -9.624, 1e-03); - assert (STATS.coeffs(3,5), -3.825, 1e-03); - assert (STATS.coeffs(4,5), -4.875, 1e-03); - assert (STATS.coeffs(5,5), -5.515, 1e-03); - assert (STATS.coeffs(2,6), 5.74e-11, 1e-12); - assert (STATS.coeffs(3,6), 0.000572, 1e-06); - assert (STATS.coeffs(4,6), 2.86e-05, 1e-07); - assert (STATS.coeffs(5,6), 4.44e-06, 1e-08); -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/vartest2.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/vartest2.m -***** error vartest2 (); -***** error vartest2 (ones (20,1)); -***** error ... - vartest2 (rand (20,1), 5); -***** error ... - vartest2 (rand (20,1), rand (25,1)*2, "alpha", 0); -***** error ... - vartest2 (rand (20,1), rand (25,1)*2, "alpha", 1.2); -***** error ... - vartest2 (rand (20,1), rand (25,1)*2, "alpha", "some"); -***** error ... - vartest2 (rand (20,1), rand (25,1)*2, "alpha", [0.05, 0.001]); -***** error ... - vartest2 (rand (20,1), rand (25,1)*2, "tail", [0.05, 0.001]); -***** error ... - vartest2 (rand (20,1), rand (25,1)*2, "tail", "some"); -***** error ... - vartest2 (rand (20,1), rand (25,1)*2, "dim", 3); -***** error ... - vartest2 (rand (20,1), rand (25,1)*2, "alpha", 0.001, "dim", 3); -***** error ... - vartest2 (rand (20,1), rand (25,1)*2, "some", 3); -***** error ... - vartest2 (rand (20,1), rand (25,1)*2, "some"); + pd = makedist ("birnbaumsaunders", "beta", 3, "gamma", 5); + assert (pd.beta, 3); + assert (pd.gamma, 5); ***** test - load carsmall - [h, pval, ci, stat] = vartest2 (MPG(Model_Year==82), MPG(Model_Year==76)); - assert (h, 0); - assert (pval, 0.6288022362718455, 1e-13); - assert (ci, [0.4139; 1.7193], 1e-4); - assert (stat.fstat, 0.8384, 1e-4); - assert (stat.df1, 30); - assert (stat.df2, 33); -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/dcov.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dcov.m -***** demo - base=@(x) (x- min(x))./(max(x)-min(x)); - N = 5e2; - x = randn (N,1); x = base (x); - z = randn (N,1); z = base (z); - # Linear relations - cy = [1 0.55 0.3 0 -0.3 -0.55 -1]; - ly = x .* cy; - ly(:,[1:3 5:end]) = base (ly(:,[1:3 5:end])); - # Correlated Gaussian - cz = 1 - abs (cy); - gy = base ( ly + cz.*z); - # Shapes - sx = repmat (x,1,7); - sy = zeros (size (ly)); - v = 2 * rand (size(x,1),2) - 1; - sx(:,1) = v(:,1); sy(:,1) = cos(2*pi*sx(:,1)) + 0.5*v(:,2).*exp(-sx(:,1).^2/0.5); - R =@(d) [cosd(d) sind(d); -sind(d) cosd(d)]; - tmp = R(35) * v.'; - sx(:,2) = tmp(1,:); sy(:,2) = tmp(2,:); - tmp = R(45) * v.'; - sx(:,3) = tmp(1,:); sy(:,3) = tmp(2,:); - sx(:,4) = v(:,1); sy(:,4) = sx(:,4).^2 + 0.5*v(:,2); - sx(:,5) = v(:,1); sy(:,5) = 3*sign(v(:,2)).*(sx(:,5)).^2 + v(:,2); - sx(:,6) = cos (2*pi*v(:,1)) + 0.5*(x-0.5); - sy(:,6) = sin (2*pi*v(:,1)) + 0.5*(z-0.5); - sx(:,7) = x + sign(v(:,1)); sy(:,7) = z + sign(v(:,2)); - sy = base (sy); - sx = base (sx); - # scaled shape - sc = 1/3; - ssy = (sy-0.5) * sc + 0.5; - n = size (ly,2); - ym = 1.2; - xm = 0.5; - fmt={'horizontalalignment','center'}; - ff = "% .2f"; - figure (1) - for i=1:n - subplot(4,n,i); - plot (x, gy(:,i), '.b'); - axis tight - axis off - text (xm,ym,sprintf (ff, dcov (x,gy(:,i))),fmt{:}) - - subplot(4,n,i+n); - plot (x, ly(:,i), '.b'); - axis tight - axis off - text (xm,ym,sprintf (ff, dcov (x,ly(:,i))),fmt{:}) - - subplot(4,n,i+2*n); - plot (sx(:,i), sy(:,i), '.b'); - axis tight - axis off - text (xm,ym,sprintf (ff, dcov (sx(:,i),sy(:,i))),fmt{:}) - v = axis (); - - subplot(4,n,i+3*n); - plot (sx(:,i), ssy(:,i), '.b'); - axis (v) - axis off - text (xm,ym,sprintf (ff, dcov (sx(:,i),ssy(:,i))),fmt{:}) - endfor -***** error dcov (randn (30, 5), randn (25,5)) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/evalclusters.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/evalclusters.m -***** error evalclusters () -***** error evalclusters ([1 1;0 1]) -***** error evalclusters ([1 1;0 1], "kmeans") -***** error <'x' must be a numeric*> evalclusters ("abc", "kmeans", "gap") -***** error evalclusters ([1 1;0 1], "xxx", "gap") -***** error evalclusters ([1 1;0 1], [1 2], "gap") -***** error evalclusters ([1 1;0 1], 1.2, "gap") -***** error evalclusters ([1 1;0 1], [1; 2], 123) -***** error evalclusters ([1 1;0 1], [1; 2], "xxx") -***** error <'KList' can be empty*> evalclusters ([1 1;0 1], "kmeans", "gap") -***** error evalclusters ([1 1;0 1], [1; 2], "gap", 1) -***** error evalclusters ([1 1;0 1], [1; 2], "gap", 1, 1) -***** error evalclusters ([1 1;0 1], [1; 2], "gap", "xxx", 1) -***** error <'KList'*> evalclusters ([1 1;0 1], [1; 2], "gap", "KList", [-1 0]) -***** error <'KList'*> evalclusters ([1 1;0 1], [1; 2], "gap", "KList", [1 .5]) -***** error <'KList'*> evalclusters ([1 1;0 1], [1; 2], "gap", "KList", [1 1; 1 1]) -***** error evalclusters ([1 1;0 1], [1; 2], "gap", ... - "distance", "a") -***** error evalclusters ([1 1;0 1], [1; 2], "daviesbouldin", ... - "distance", "a") -***** error evalclusters ([1 1;0 1], [1; 2], "gap", ... - "clusterpriors", "equal") -***** error evalclusters ([1 1;0 1], [1; 2], ... - "silhouette", "clusterpriors", "xxx") -***** error <'clust' must be a clustering*> evalclusters ([1 1;0 1], [1; 2], "gap") + pd = makedist ("burr"); + assert (class (pd), "BurrDistribution"); + assert (pd.alpha, 1); + assert (pd.c, 1); + assert (pd.k, 1); ***** test - load fisheriris; - eva = evalclusters(meas, "kmeans", "calinskiharabasz", "KList", [1:6]); - assert(isa(eva, "CalinskiHarabaszEvaluation")); - assert(eva.NumObservations, 150); - assert(eva.OptimalK, 3); - assert(eva.InspectedK, [1 2 3 4 5 6]); -22 tests, 22 passed, 0 known failure, 0 skipped -[inst/crossval.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/crossval.m + pd = makedist ("burr", "k", 5); + assert (pd.alpha, 1); + assert (pd.c, 1); + assert (pd.k, 5); ***** test - load fisheriris - y = meas(:, 1); - X = [ones(size(y)) meas(:, 2:4)]; - f = @(X1, y1, X2, y2) meansq (y2 - X2*regress(y1, X1)); - results0 = crossval (f, X, y); - results1 = crossval (f, X, y, 'KFold', 10); - folds = 5; - results2 = crossval (f, X, y, 'KFold', folds); - results3 = crossval (f, X, y, 'Partition', cvpartition (numel (y), 'KFold', folds)); - results4 = crossval (f, X, y, 'LeaveOut', 1); - mcreps = 2; n_holdout = 20; - results5 = crossval (f, X, y, 'HoldOut', n_holdout, 'mcreps', mcreps); - - ## ensure equal representation of iris species in the training set -- tends - ## to slightly reduce cross-validation mean square error - results6 = crossval (f, X, y, 'KFold', 5, 'stratify', grp2idx(species)); - - assert (results0, results1, 2e-15); - assert (results2, results3, 5e-17); - assert (size(results4), [1 numel(y)]); - assert (mean(results4), 0.1018, 1e-4); - assert (size(results5), [mcreps 1]); -warning: strmatch is obsolete; use strncmp or strcmp instead -1 test, 1 passed, 0 known failure, 0 skipped -[inst/rangesearch.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/rangesearch.m -***** demo - ## Generate 1000 random 2D points from each of five distinct multivariate - ## normal distributions that form five separate classes - N = 1000; - d = 10; - randn ("seed", 5); - X1 = mvnrnd (d * [0, 0], eye (2), 1000); - randn ("seed", 6); - X2 = mvnrnd (d * [1, 1], eye (2), 1000); - randn ("seed", 7); - X3 = mvnrnd (d * [-1, -1], eye (2), 1000); - randn ("seed", 8); - X4 = mvnrnd (d * [1, -1], eye (2), 1000); - randn ("seed", 8); - X5 = mvnrnd (d * [-1, 1], eye (2), 1000); - X = [X1; X2; X3; X4; X5]; - - ## For each point in X, find the points in X that are within a radius d - ## away from the points in X. - Idx = rangesearch (X, X, d, "NSMethod", "exhaustive"); - - ## Select the first point in X (corresponding to the first class) and find - ## its nearest neighbors within the radius d. Display these points in - ## one color and the remaining points in a different color. - x = X(1,:); - nearestPoints = X (Idx{1},:); - nonNearestIdx = true (size (X, 1), 1); - nonNearestIdx(Idx{1}) = false; - - scatter (X(nonNearestIdx,1), X(nonNearestIdx,2)) - hold on - scatter (nearestPoints(:,1),nearestPoints(:,2)) - scatter (x(1), x(2), "black", "filled") - hold off - - ## Select the last point in X (corresponding to the fifth class) and find - ## its nearest neighbors within the radius d. Display these points in - ## one color and the remaining points in a different color. - x = X(end,:); - nearestPoints = X (Idx{1},:); - nonNearestIdx = true (size (X, 1), 1); - nonNearestIdx(Idx{1}) = false; - - figure - scatter (X(nonNearestIdx,1), X(nonNearestIdx,2)) - hold on - scatter (nearestPoints(:,1),nearestPoints(:,2)) - scatter (x(1), x(2), "black", "filled") - hold off -***** shared x, y, X, Y - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = [2, 3, 4; 1, 4, 3]; - X = [1, 2, 3, 4; 2, 3, 4, 5; 3, 4, 5, 6]; - Y = [1, 2, 2, 3; 2, 3, 3, 4]; + pd = makedist ("burr", "c", 5); + assert (pd.alpha, 1); + assert (pd.c, 5); + assert (pd.k, 1); +***** test + pd = makedist ("burr", "alpha", 3, "c", 5); + assert (pd.alpha, 3); + assert (pd.c, 5); + assert (pd.k, 1); +***** test + pd = makedist ("burr", "k", 3, "c", 5); + assert (pd.alpha, 1); + assert (pd.c, 5); + assert (pd.k, 3); +***** test + pd = makedist ("exponential"); + assert (class (pd), "ExponentialDistribution"); + assert (pd.mu, 1); +***** test + pd = makedist ("exponential", "mu", 5); + assert (pd.mu, 5); +***** test + pd = makedist ("extremevalue"); + assert (class (pd), "ExtremeValueDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); +***** test + pd = makedist ("extremevalue", "mu", 5); + assert (class (pd), "ExtremeValueDistribution"); + assert (pd.mu, 5); + assert (pd.sigma, 1); +***** test + pd = makedist ("ev", "sigma", 5); + assert (class (pd), "ExtremeValueDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 5); +***** test + pd = makedist ("ev", "mu", -3, "sigma", 5); + assert (class (pd), "ExtremeValueDistribution"); + assert (pd.mu, -3); + assert (pd.sigma, 5); +***** test + pd = makedist ("gamma"); + assert (class (pd), "GammaDistribution"); + assert (pd.a, 1); + assert (pd.b, 1); +***** test + pd = makedist ("gamma", "a", 5); + assert (pd.a, 5); + assert (pd.b, 1); +***** test + pd = makedist ("gamma", "b", 5); + assert (pd.a, 1); + assert (pd.b, 5); +***** test + pd = makedist ("gamma", "a", 3, "b", 5); + assert (pd.a, 3); + assert (pd.b, 5); +***** test + pd = makedist ("GeneralizedExtremeValue"); + assert (class (pd), "GeneralizedExtremeValueDistribution"); + assert (pd.k, 0); + assert (pd.sigma, 1); + assert (pd.mu, 0); +***** test + pd = makedist ("GeneralizedExtremeValue", "k", 5); + assert (pd.k, 5); + assert (pd.sigma, 1); + assert (pd.mu, 0); +***** test + pd = makedist ("GeneralizedExtremeValue", "sigma", 5); + assert (pd.k, 0); + assert (pd.sigma, 5); + assert (pd.mu, 0); +***** test + pd = makedist ("GeneralizedExtremeValue", "k", 3, "sigma", 5); + assert (pd.k, 3); + assert (pd.sigma, 5); + assert (pd.mu, 0); +***** test + pd = makedist ("GeneralizedExtremeValue", "mu", 3, "sigma", 5); + assert (pd.k, 0); + assert (pd.sigma, 5); + assert (pd.mu, 3); +***** test + pd = makedist ("GeneralizedPareto"); + assert (class (pd), "GeneralizedParetoDistribution"); + assert (pd.k, 1); + assert (pd.sigma, 1); + assert (pd.theta, 1); +***** test + pd = makedist ("GeneralizedPareto", "k", 5); + assert (pd.k, 5); + assert (pd.sigma, 1); + assert (pd.theta, 1); +***** test + pd = makedist ("GeneralizedPareto", "sigma", 5); + assert (pd.k, 1); + assert (pd.sigma, 5); + assert (pd.theta, 1); +***** test + pd = makedist ("GeneralizedPareto", "k", 3, "sigma", 5); + assert (pd.k, 3); + assert (pd.sigma, 5); + assert (pd.theta, 1); +***** test + pd = makedist ("GeneralizedPareto", "theta", 3, "sigma", 5); + assert (pd.k, 1); + assert (pd.sigma, 5); + assert (pd.theta, 3); +***** test + pd = makedist ("HalfNormal"); + assert (class (pd), "HalfNormalDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); +***** test + pd = makedist ("HalfNormal", "mu", 5); + assert (pd.mu, 5); + assert (pd.sigma, 1); +***** test + pd = makedist ("HalfNormal", "sigma", 5); + assert (pd.mu, 0); + assert (pd.sigma, 5); +***** test + pd = makedist ("HalfNormal", "mu", 3, "sigma", 5); + assert (pd.mu, 3); + assert (pd.sigma, 5); +***** test + pd = makedist ("InverseGaussian"); + assert (class (pd), "InverseGaussianDistribution"); + assert (pd.mu, 1); + assert (pd.lambda, 1); +***** test + pd = makedist ("InverseGaussian", "mu", 5); + assert (pd.mu, 5); + assert (pd.lambda, 1); +***** test + pd = makedist ("InverseGaussian", "lambda", 5); + assert (pd.mu, 1); + assert (pd.lambda, 5); +***** test + pd = makedist ("InverseGaussian", "mu", 3, "lambda", 5); + assert (pd.mu, 3); + assert (pd.lambda, 5); +***** test + pd = makedist ("logistic"); + assert (class (pd), "LogisticDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); +***** test + pd = makedist ("logistic", "mu", 5); + assert (pd.mu, 5); + assert (pd.sigma, 1); +***** test + pd = makedist ("logistic", "sigma", 5); + assert (pd.mu, 0); + assert (pd.sigma, 5); +***** test + pd = makedist ("logistic", "mu", 3, "sigma", 5); + assert (pd.mu, 3); + assert (pd.sigma, 5); +***** test + pd = makedist ("loglogistic"); + assert (class (pd), "LoglogisticDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); +***** test + pd = makedist ("loglogistic", "mu", 5); + assert (pd.mu, 5); + assert (pd.sigma, 1); +***** test + pd = makedist ("loglogistic", "sigma", 5); + assert (pd.mu, 0); + assert (pd.sigma, 5); +***** test + pd = makedist ("loglogistic", "mu", 3, "sigma", 5); + assert (pd.mu, 3); + assert (pd.sigma, 5); +***** test + pd = makedist ("Lognormal"); + assert (class (pd), "LognormalDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); +***** test + pd = makedist ("Lognormal", "mu", 5); + assert (pd.mu, 5); + assert (pd.sigma, 1); +***** test + pd = makedist ("Lognormal", "sigma", 5); + assert (pd.mu, 0); + assert (pd.sigma, 5); +***** test + pd = makedist ("Lognormal", "mu", -3, "sigma", 5); + assert (pd.mu, -3); + assert (pd.sigma, 5); +***** test + pd = makedist ("Loguniform"); + assert (class (pd), "LoguniformDistribution"); + assert (pd.Lower, 1); + assert (pd.Upper, 4); +***** test + pd = makedist ("Loguniform", "Lower", 2); + assert (pd.Lower, 2); + assert (pd.Upper, 4); +***** test + pd = makedist ("Loguniform", "Lower", 1, "Upper", 3); + assert (pd.Lower, 1); + assert (pd.Upper, 3); +***** test + pd = makedist ("Multinomial"); + assert (class (pd), "MultinomialDistribution"); + assert (pd.Probabilities, [0.5, 0.5]); +***** test + pd = makedist ("Multinomial", "Probabilities", [0.2, 0.3, 0.1, 0.4]); + assert (class (pd), "MultinomialDistribution"); + assert (pd.Probabilities, [0.2, 0.3, 0.1, 0.4]); +***** test + pd = makedist ("Nakagami"); + assert (class (pd), "NakagamiDistribution"); + assert (pd.mu, 1); + assert (pd.omega, 1); +***** test + pd = makedist ("Nakagami", "mu", 5); + assert (class (pd), "NakagamiDistribution"); + assert (pd.mu, 5); + assert (pd.omega, 1); +***** test + pd = makedist ("Nakagami", "omega", 0.3); + assert (class (pd), "NakagamiDistribution"); + assert (pd.mu, 1); + assert (pd.omega, 0.3); +***** test + pd = makedist ("NegativeBinomial"); + assert (class (pd), "NegativeBinomialDistribution"); + assert (pd.R, 1); + assert (pd.P, 0.5); +***** test + pd = makedist ("NegativeBinomial", "R", 5); + assert (class (pd), "NegativeBinomialDistribution"); + assert (pd.R, 5); + assert (pd.P, 0.5); +***** test + pd = makedist ("NegativeBinomial", "p", 0.3); + assert (class (pd), "NegativeBinomialDistribution"); + assert (pd.R, 1); + assert (pd.P, 0.3); +***** test + pd = makedist ("Normal"); + assert (class (pd), "NormalDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); +***** test + pd = makedist ("Normal", "mu", 5); + assert (class (pd), "NormalDistribution"); + assert (pd.mu, 5); + assert (pd.sigma, 1); +***** test + pd = makedist ("Normal", "sigma", 5); + assert (class (pd), "NormalDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 5); +***** test + pd = makedist ("Normal", "mu", -3, "sigma", 5); + assert (class (pd), "NormalDistribution"); + assert (pd.mu, -3); + assert (pd.sigma, 5); +***** test + pd = makedist ("PiecewiseLinear"); + assert (class (pd), "PiecewiseLinearDistribution"); + assert (pd.x, [0; 1]); + assert (pd.Fx, [0; 1]); +***** test + pd = makedist ("PiecewiseLinear", "x", [0, 1, 2], "Fx", [0, 0.5, 1]); + assert (pd.x, [0; 1; 2]); + assert (pd.Fx, [0; 0.5; 1]); +***** test + pd = makedist ("Poisson"); + assert (class (pd), "PoissonDistribution"); + assert (pd.lambda, 1); +***** test + pd = makedist ("Poisson", "lambda", 5); + assert (pd.lambda, 5); +***** test + pd = makedist ("Rayleigh"); + assert (class (pd), "RayleighDistribution"); + assert (pd.sigma, 1); +***** test + pd = makedist ("Rayleigh", "sigma", 5); + assert (pd.sigma, 5); +***** test + pd = makedist ("Rician"); + assert (class (pd), "RicianDistribution"); + assert (pd.s, 1); + assert (pd.sigma, 1); +***** test + pd = makedist ("Rician", "s", 3); + assert (pd.s, 3); + assert (pd.sigma, 1); ***** test - [idx, D] = rangesearch (x, y, 4); - assert (idx, {[1, 4, 2]; [1, 4]}); - assert (D, {[1.7321, 3.3166, 3.4641]; [2, 3.4641]}, 1e-4); + pd = makedist ("Rician", "sigma", 3); + assert (pd.s, 1); + assert (pd.sigma, 3); ***** test - [idx, D] = rangesearch (x, y, 4, "NSMethod", "exhaustive"); - assert (idx, {[1, 4, 2]; [1, 4]}); - assert (D, {[1.7321, 3.3166, 3.4641]; [2, 3.4641]}, 1e-4); + pd = makedist ("Rician", "s", 2, "sigma", 3); + assert (pd.s, 2); + assert (pd.sigma, 3); +***** warning + pd = makedist ("stable"); + assert (class (pd), "double"); + assert (isempty (pd), true); ***** test - [idx, D] = rangesearch (x, y, 4, "NSMethod", "kdtree"); - assert (idx, {[1, 4, 2]; [1, 4]}); - assert (D, {[1.7321, 3.3166, 3.4641]; [2, 3.4641]}, 1e-4); + pd = makedist ("tlocationscale"); + assert (class (pd), "tLocationScaleDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); + assert (pd.nu, 5); ***** test - [idx, D] = rangesearch (x, y, 4, "SortIndices", true); - assert (idx, {[1, 4, 2]; [1, 4]}); - assert (D, {[1.7321, 3.3166, 3.4641]; [2, 3.4641]}, 1e-4); + pd = makedist ("tlocationscale", "mu", 5); + assert (pd.mu, 5); + assert (pd.sigma, 1); + assert (pd.nu, 5); ***** test - [idx, D] = rangesearch (x, y, 4, "SortIndices", false); - assert (idx, {[1, 2, 4]; [1, 4]}); - assert (D, {[1.7321, 3.4641, 3.3166]; [2, 3.4641]}, 1e-4); + pd = makedist ("tlocationscale", "sigma", 2); + assert (pd.mu, 0); + assert (pd.sigma, 2); + assert (pd.nu, 5); ***** test - [idx, D] = rangesearch (x, y, 4, "NSMethod", "exhaustive", ... - "SortIndices", false); - assert (idx, {[1, 2, 4]; [1, 4]}); - assert (D, {[1.7321, 3.4641, 3.3166]; [2, 3.4641]}, 1e-4); + pd = makedist ("tlocationscale", "mu", 5, "sigma", 2); + assert (pd.mu, 5); + assert (pd.sigma, 2); + assert (pd.nu, 5); ***** test - eucldist = @(v,m) sqrt(sumsq(repmat(v,rows(m),1)-m,2)); - [idx, D] = rangesearch (x, y, 4, "Distance", eucldist); - assert (idx, {[1, 4, 2]; [1, 4]}); - assert (D, {[1.7321, 3.3166, 3.4641]; [2, 3.4641]}, 1e-4); + pd = makedist ("tlocationscale", "nu", 1, "sigma", 2); + assert (pd.mu, 0); + assert (pd.sigma, 2); + assert (pd.nu, 1); ***** test - eucldist = @(v,m) sqrt(sumsq(repmat(v,rows(m),1)-m,2)); - [idx, D] = rangesearch (x, y, 4, "Distance", eucldist, ... - "NSMethod", "exhaustive"); - assert (idx, {[1, 4, 2]; [1, 4]}); - assert (D, {[1.7321, 3.3166, 3.4641]; [2, 3.4641]}, 1e-4); + pd = makedist ("tlocationscale", "mu", -2, "sigma", 3, "nu", 1); + assert (pd.mu, -2); + assert (pd.sigma, 3); + assert (pd.nu, 1); ***** test - [idx, D] = rangesearch (x, y, 1.5, "Distance", "seuclidean", ... - "NSMethod", "exhaustive"); - assert (idx, {[1, 4, 2]; [1, 4]}); - assert (D, {[0.6024, 1.0079, 1.2047]; [0.6963, 1.2047]}, 1e-4); + pd = makedist ("Triangular"); + assert (class (pd), "TriangularDistribution"); + assert (pd.A, 0); + assert (pd.B, 0.5); + assert (pd.C, 1); ***** test - [idx, D] = rangesearch (x, y, 1.5, "Distance", "seuclidean", ... - "NSMethod", "exhaustive", "SortIndices", false); - assert (idx, {[1, 2, 4]; [1, 4]}); - assert (D, {[0.6024, 1.2047, 1.0079]; [0.6963, 1.2047]}, 1e-4); + pd = makedist ("Triangular", "A", -2); + assert (pd.A, -2); + assert (pd.B, 0.5); + assert (pd.C, 1); ***** test - [idx, D] = rangesearch (X, Y, 4); - assert (idx, {[1, 2]; [1, 2, 3]}); - assert (D, {[1.4142, 3.1623]; [1.4142, 1.4142, 3.1623]}, 1e-4); + pd = makedist ("Triangular", "A", 0.5, "B", 0.9); + assert (pd.A, 0.5); + assert (pd.B, 0.9); + assert (pd.C, 1); ***** test - [idx, D] = rangesearch (X, Y, 2); - assert (idx, {[1]; [1, 2]}); - assert (D, {[1.4142]; [1.4142, 1.4142]}, 1e-4); + pd = makedist ("Triangular", "A", 1, "B", 2, "C", 5); + assert (pd.A, 1); + assert (pd.B, 2); + assert (pd.C, 5); ***** test - eucldist = @(v,m) sqrt(sumsq(repmat(v,rows(m),1)-m,2)); - [idx, D] = rangesearch (X, Y, 4, "Distance", eucldist); - assert (idx, {[1, 2]; [1, 2, 3]}); - assert (D, {[1.4142, 3.1623]; [1.4142, 1.4142, 3.1623]}, 1e-4); + pd = makedist ("Uniform"); + assert (class (pd), "UniformDistribution"); + assert (pd.Lower, 0); + assert (pd.Upper, 1); ***** test - [idx, D] = rangesearch (X, Y, 4, "SortIndices", false); - assert (idx, {[1, 2]; [1, 2, 3]}); - assert (D, {[1.4142, 3.1623]; [1.4142, 1.4142, 3.1623]}, 1e-4); + pd = makedist ("Uniform", "Lower", -2); + assert (pd.Lower, -2); + assert (pd.Upper, 1); ***** test - [idx, D] = rangesearch (X, Y, 4, "Distance", "seuclidean", ... - "NSMethod", "exhaustive"); - assert (idx, {[1, 2]; [1, 2, 3]}); - assert (D, {[1.4142, 3.1623]; [1.4142, 1.4142, 3.1623]}, 1e-4); -***** error rangesearch (1) -***** error ... - rangesearch (ones (4, 5), ones (4)) -***** error ... - rangesearch (ones (4, 2), ones (3, 2), 1, "Distance", "euclidean", "some", "some") -***** error ... - rangesearch (ones (4, 5), ones (1, 5), 1, "scale", ones (1, 5), "P", 3) -***** error ... - rangesearch (ones (4, 5), ones (1, 5), 1, "P",-2) -***** error ... - rangesearch (ones (4, 5), ones (1, 5), 1, "scale", ones(4,5), "distance", "euclidean") -***** error ... - rangesearch (ones (4, 5), ones (1, 5), 1, "cov", ["some" "some"]) -***** error ... - rangesearch (ones (4, 5), ones (1, 5), 1, "cov", ones(4,5), "distance", "euclidean") -***** error ... - rangesearch (ones (4, 5), ones (1, 5), 1, "bucketsize", -1) -***** error ... - rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "cosine") -***** error ... - rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "mahalanobis") -***** error ... - rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "correlation") -***** error ... - rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "seuclidean") -***** error ... - rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "spearman") -***** error ... - rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "hamming") -***** error ... - rangesearch (ones (4, 5), ones (1, 5), 1, "NSmethod", "kdtree", "distance", "jaccard") -31 tests, 31 passed, 0 known failure, 0 skipped -[inst/mcnemar_test.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/mcnemar_test.m + pd = makedist ("Uniform", "Lower", 1, "Upper", 3); + assert (pd.Lower, 1); + assert (pd.Upper, 3); ***** test - [h, pval, chisq] = mcnemar_test ([101,121;59,33]); - assert (h, 1); - assert (pval, 3.8151e-06, 1e-10); - assert (chisq, 21.356, 1e-3); + pd = makedist ("Weibull"); + assert (class (pd), "WeibullDistribution"); + assert (pd.lambda, 1); + assert (pd.k, 1); ***** test - [h, pval, chisq] = mcnemar_test ([59,6;16,80]); - assert (h, 1); - assert (pval, 0.034690, 1e-6); - assert (isempty (chisq), true); + pd = makedist ("Weibull", "lambda", 3); + assert (pd.lambda, 3); + assert (pd.k, 1); ***** test - [h, pval, chisq] = mcnemar_test ([59,6;16,80], 0.01); + pd = makedist ("Weibull", "lambda", 3, "k", 2); + assert (pd.lambda, 3); + assert (pd.k, 2); +***** error makedist (1) +***** error makedist (["as";"sd"]) +***** error makedist ("some") +***** error ... + makedist ("Beta", "a") +***** error ... + makedist ("Beta", "a", 1, "Q", 23) +***** error ... + makedist ("Binomial", "N", 1, "Q", 23) +***** error ... + makedist ("BirnbaumSaunders", "N", 1) +***** error ... + makedist ("Burr", "lambda", 1, "sdfs", 34) +***** error ... + makedist ("extremevalue", "mu", 1, "sdfs", 34) +***** error ... + makedist ("exponential", "mu", 1, "sdfs", 34) +***** error ... + makedist ("Gamma", "k", 1, "sdfs", 34) +***** error ... + makedist ("GeneralizedExtremeValue", "k", 1, "sdfs", 34) +***** error ... + makedist ("GeneralizedPareto", "k", 1, "sdfs", 34) +***** error ... + makedist ("HalfNormal", "k", 1, "sdfs", 34) +***** error ... + makedist ("InverseGaussian", "k", 1, "sdfs", 34) +***** error ... + makedist ("Logistic", "k", 1, "sdfs", 34) +***** error ... + makedist ("Loglogistic", "k", 1, "sdfs", 34) +***** error ... + makedist ("Lognormal", "k", 1, "sdfs", 34) +***** error ... + makedist ("Loguniform", "k", 1, "sdfs", 34) +***** error ... + makedist ("Multinomial", "k", 1, "sdfs", 34) +***** error ... + makedist ("Nakagami", "mu", 1, "sdfs", 34) +***** error ... + makedist ("NegativeBinomial", "mu", 1, "sdfs", 34) +***** error ... + makedist ("Normal", "mu", 1, "sdfs", 34) +***** error ... + makedist ("PiecewiseLinear", "mu", 1, "sdfs", 34) +***** error ... + makedist ("Poisson", "mu", 1, "sdfs", 34) +***** error ... + makedist ("Rayleigh", "mu", 1, "sdfs", 34) +***** error ... + makedist ("Rician", "mu", 1, "sdfs", 34) +***** error ... + makedist ("Stable", "mu", 1, "sdfs", 34) +***** error ... + makedist ("tLocationScale", "mu", 1, "sdfs", 34) +***** error ... + makedist ("Triangular", "mu", 1, "sdfs", 34) +***** error ... + makedist ("Uniform", "mu", 1, "sdfs", 34) +***** error ... + makedist ("Weibull", "mu", 1, "sdfs", 34) +131 tests, 131 passed, 0 known failure, 0 skipped +[inst/dist_wrap/cdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_wrap/cdf.m +***** shared x + x = [1:5]; +***** assert (cdf ("Beta", x, 5, 2), betacdf (x, 5, 2)) +***** assert (cdf ("beta", x, 5, 2, "upper"), betacdf (x, 5, 2, "upper")) +***** assert (cdf ("Binomial", x, 5, 2), binocdf (x, 5, 2)) +***** assert (cdf ("bino", x, 5, 2, "upper"), binocdf (x, 5, 2, "upper")) +***** assert (cdf ("Birnbaum-Saunders", x, 5, 2), bisacdf (x, 5, 2)) +***** assert (cdf ("bisa", x, 5, 2, "upper"), bisacdf (x, 5, 2, "upper")) +***** assert (cdf ("Burr", x, 5, 2, 2), burrcdf (x, 5, 2, 2)) +***** assert (cdf ("burr", x, 5, 2, 2, "upper"), burrcdf (x, 5, 2, 2, "upper")) +***** assert (cdf ("Cauchy", x, 5, 2), cauchycdf (x, 5, 2)) +***** assert (cdf ("cauchy", x, 5, 2, "upper"), cauchycdf (x, 5, 2, "upper")) +***** assert (cdf ("Chi-squared", x, 5), chi2cdf (x, 5)) +***** assert (cdf ("chi2", x, 5, "upper"), chi2cdf (x, 5, "upper")) +***** assert (cdf ("Extreme Value", x, 5, 2), evcdf (x, 5, 2)) +***** assert (cdf ("ev", x, 5, 2, "upper"), evcdf (x, 5, 2, "upper")) +***** assert (cdf ("Exponential", x, 5), expcdf (x, 5)) +***** assert (cdf ("exp", x, 5, "upper"), expcdf (x, 5, "upper")) +***** assert (cdf ("F-Distribution", x, 5, 2), fcdf (x, 5, 2)) +***** assert (cdf ("f", x, 5, 2, "upper"), fcdf (x, 5, 2, "upper")) +***** assert (cdf ("Gamma", x, 5, 2), gamcdf (x, 5, 2)) +***** assert (cdf ("gam", x, 5, 2, "upper"), gamcdf (x, 5, 2, "upper")) +***** assert (cdf ("Geometric", x, 5), geocdf (x, 5)) +***** assert (cdf ("geo", x, 5, "upper"), geocdf (x, 5, "upper")) +***** assert (cdf ("Generalized Extreme Value", x, 5, 2, 2), gevcdf (x, 5, 2, 2)) +***** assert (cdf ("gev", x, 5, 2, 2, "upper"), gevcdf (x, 5, 2, 2, "upper")) +***** assert (cdf ("Generalized Pareto", x, 5, 2, 2), gpcdf (x, 5, 2, 2)) +***** assert (cdf ("gp", x, 5, 2, 2, "upper"), gpcdf (x, 5, 2, 2, "upper")) +***** assert (cdf ("Gumbel", x, 5, 2), gumbelcdf (x, 5, 2)) +***** assert (cdf ("gumbel", x, 5, 2, "upper"), gumbelcdf (x, 5, 2, "upper")) +***** assert (cdf ("Half-normal", x, 5, 2), hncdf (x, 5, 2)) +***** assert (cdf ("hn", x, 5, 2, "upper"), hncdf (x, 5, 2, "upper")) +***** assert (cdf ("Hypergeometric", x, 5, 2, 2), hygecdf (x, 5, 2, 2)) +***** assert (cdf ("hyge", x, 5, 2, 2, "upper"), hygecdf (x, 5, 2, 2, "upper")) +***** assert (cdf ("Inverse Gaussian", x, 5, 2), invgcdf (x, 5, 2)) +***** assert (cdf ("invg", x, 5, 2, "upper"), invgcdf (x, 5, 2, "upper")) +***** assert (cdf ("Laplace", x, 5, 2), laplacecdf (x, 5, 2)) +***** assert (cdf ("laplace", x, 5, 2, "upper"), laplacecdf (x, 5, 2, "upper")) +***** assert (cdf ("Logistic", x, 5, 2), logicdf (x, 5, 2)) +***** assert (cdf ("logi", x, 5, 2, "upper"), logicdf (x, 5, 2, "upper")) +***** assert (cdf ("Log-Logistic", x, 5, 2), loglcdf (x, 5, 2)) +***** assert (cdf ("logl", x, 5, 2, "upper"), loglcdf (x, 5, 2, "upper")) +***** assert (cdf ("Lognormal", x, 5, 2), logncdf (x, 5, 2)) +***** assert (cdf ("logn", x, 5, 2, "upper"), logncdf (x, 5, 2, "upper")) +***** assert (cdf ("Nakagami", x, 5, 2), nakacdf (x, 5, 2)) +***** assert (cdf ("naka", x, 5, 2, "upper"), nakacdf (x, 5, 2, "upper")) +***** assert (cdf ("Negative Binomial", x, 5, 2), nbincdf (x, 5, 2)) +***** assert (cdf ("nbin", x, 5, 2, "upper"), nbincdf (x, 5, 2, "upper")) +***** assert (cdf ("Noncentral F-Distribution", x, 5, 2, 2), ncfcdf (x, 5, 2, 2)) +***** assert (cdf ("ncf", x, 5, 2, 2, "upper"), ncfcdf (x, 5, 2, 2, "upper")) +***** assert (cdf ("Noncentral Student T", x, 5, 2), nctcdf (x, 5, 2)) +***** assert (cdf ("nct", x, 5, 2, "upper"), nctcdf (x, 5, 2, "upper")) +***** assert (cdf ("Noncentral Chi-Squared", x, 5, 2), ncx2cdf (x, 5, 2)) +***** assert (cdf ("ncx2", x, 5, 2, "upper"), ncx2cdf (x, 5, 2, "upper")) +***** assert (cdf ("Normal", x, 5, 2), normcdf (x, 5, 2)) +***** assert (cdf ("norm", x, 5, 2, "upper"), normcdf (x, 5, 2, "upper")) +***** assert (cdf ("Poisson", x, 5), poisscdf (x, 5)) +***** assert (cdf ("poiss", x, 5, "upper"), poisscdf (x, 5, "upper")) +***** assert (cdf ("Rayleigh", x, 5), raylcdf (x, 5)) +***** assert (cdf ("rayl", x, 5, "upper"), raylcdf (x, 5, "upper")) +***** assert (cdf ("Rician", x, 5, 1), ricecdf (x, 5, 1)) +***** assert (cdf ("rice", x, 5, 1, "upper"), ricecdf (x, 5, 1, "upper")) +***** assert (cdf ("Student T", x, 5), tcdf (x, 5)) +***** assert (cdf ("t", x, 5, "upper"), tcdf (x, 5, "upper")) +***** assert (cdf ("location-scale T", x, 5, 1, 2), tlscdf (x, 5, 1, 2)) +***** assert (cdf ("tls", x, 5, 1, 2, "upper"), tlscdf (x, 5, 1, 2, "upper")) +***** assert (cdf ("Triangular", x, 5, 2, 2), tricdf (x, 5, 2, 2)) +***** assert (cdf ("tri", x, 5, 2, 2, "upper"), tricdf (x, 5, 2, 2, "upper")) +***** assert (cdf ("Discrete Uniform", x, 5), unidcdf (x, 5)) +***** assert (cdf ("unid", x, 5, "upper"), unidcdf (x, 5, "upper")) +***** assert (cdf ("Uniform", x, 5, 2), unifcdf (x, 5, 2)) +***** assert (cdf ("unif", x, 5, 2, "upper"), unifcdf (x, 5, 2, "upper")) +***** assert (cdf ("Von Mises", x, 5, 2), vmcdf (x, 5, 2)) +***** assert (cdf ("vm", x, 5, 2, "upper"), vmcdf (x, 5, 2, "upper")) +***** assert (cdf ("Weibull", x, 5, 2), wblcdf (x, 5, 2)) +***** assert (cdf ("wbl", x, 5, 2, "upper"), wblcdf (x, 5, 2, "upper")) +***** error cdf (1) +***** error cdf ({"beta"}) +***** error cdf ("beta", {[1 2 3 4 5]}) +***** error cdf ("beta", "text") +***** error cdf ("beta", 1+i) +***** error ... + cdf ("Beta", x, "a", 2) +***** error ... + cdf ("Beta", x, 5, "") +***** error ... + cdf ("Beta", x, 5, {2}) +***** error cdf ("chi2", x) +***** error cdf ("Beta", x, 5) +***** error cdf ("Burr", x, 5) +***** error cdf ("Burr", x, 5, 2) +86 tests, 86 passed, 0 known failure, 0 skipped +[inst/hotelling_t2test.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/hotelling_t2test.m +***** error hotelling_t2test (); +***** error ... + hotelling_t2test (1); +***** error ... + hotelling_t2test (ones(2,2,2)); +***** error ... + hotelling_t2test (ones(20,2), [0, 0], "alpha", 1); +***** error ... + hotelling_t2test (ones(20,2), [0, 0], "alpha", -0.2); +***** error ... + hotelling_t2test (ones(20,2), [0, 0], "alpha", "a"); +***** error ... + hotelling_t2test (ones(20,2), [0, 0], "alpha", [0.01, 0.05]); +***** error ... + hotelling_t2test (ones(20,2), [0, 0], "name", 0.01); +***** error ... + hotelling_t2test (ones(20,1), [0, 0]); +***** error ... + hotelling_t2test (ones(4,5), [0, 0, 0, 0, 0]); +***** error ... + hotelling_t2test (ones(20,5), [0, 0, 0, 0]); +***** test + randn ("seed", 1); + x = randn (50000, 5); + [h, pval, stats] = hotelling_t2test (x); assert (h, 0); - assert (pval, 0.034690, 1e-6); - assert (isempty (chisq), true); + assert (stats.df1, 5); + assert (stats.df2, 49995); ***** test - [h, pval, chisq] = mcnemar_test ([59,6;16,80], "mid-p"); + randn ("seed", 1); + x = randn (50000, 5); + [h, pval, stats] = hotelling_t2test (x, ones (1, 5) * 10); assert (h, 1); - assert (pval, 0.034690, 1e-6); - assert (isempty (chisq), true); + assert (stats.df1, 5); + assert (stats.df2, 49995); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/fillmissing.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/fillmissing.m +***** assert (fillmissing ([1 2 3], "constant", 99), [1 2 3]) +***** assert (fillmissing ([1 2 NaN], "constant", 99), [1 2 99]) +***** assert (fillmissing ([NaN 2 NaN], "constant", 99), [99 2 99]) +***** assert (fillmissing ([1 2 3]', "constant", 99), [1 2 3]') +***** assert (fillmissing ([1 2 NaN]', "constant", 99), [1 2 99]') +***** assert (fillmissing ([1 2 3; 4 5 6], "constant", 99), [1 2 3; 4 5 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "constant", 99), [1 2 99; 4 99 6]) +***** assert (fillmissing ([NaN 2 NaN; 4 NaN 6], "constant", [97, 98, 99]), [97 2 99; 4 98 6]) ***** test - [h, pval, chisq] = mcnemar_test ([59,6;16,80], "asymptotic"); - assert (h, 1); - assert (pval, 0.033006, 1e-6); - assert (chisq, 4.5455, 1e-4); + x = cat (3, [1, 2, NaN; 4, NaN, 6], [NaN, 2, 3; 4, 5, NaN]); + y = cat (3, [1, 2, 99; 4, 99, 6], [99, 2, 3; 4, 5, 99]); + assert (fillmissing (x, "constant", 99), y); + y = cat (3, [1, 2, 96; 4, 95, 6], [97, 2, 3; 4, 5, 99]); + assert (fillmissing (x, "constant", [94:99]), y); + assert (fillmissing (x, "constant", [94:99]'), y); + assert (fillmissing (x, "constant", permute ([94:99], [1 3 2])), y); + assert (fillmissing (x, "constant", [94, 96, 98; 95, 97, 99]), y); + assert (fillmissing (x, "constant", [94:99], 1), y); + y = cat (3, [1, 2, 96; 4, 97, 6], [98, 2, 3; 4, 5, 99]); + assert (fillmissing (x, "constant", [96:99], 2), y); + y = cat (3, [1, 2, 98; 4, 97, 6], [94, 2, 3; 4, 5, 99]); + assert (fillmissing (x, "constant", [94:99], 3), y); + y = cat (3, [1, 2, 92; 4, 91, 6], [94, 2, 3; 4, 5, 99]); + assert (fillmissing (x, "constant", [88:99], 99), y); ***** test - [h, pval, chisq] = mcnemar_test ([59,6;16,80], "exact"); - assert (h, 0); - assert (pval, 0.052479, 1e-6); - assert (isempty (chisq), true); + x = reshape([1:24],4,3,2); + x([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = NaN; + y = x; + y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [94 95 95 96 96 97 97 98 99 99]; + assert (fillmissing (x, "constant", [94:99], 1), y); + y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [92 93 94 92 95 97 99 98 97 98]; + assert (fillmissing (x, "constant", [92:99], 2), y); + y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [88 93 94 96 99 89 91 94 97 98]; + assert (fillmissing (x, "constant", [88:99], 3), y); + y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [76 81 82 84 87 89 91 94 97 98]; + assert (fillmissing (x, "constant", [76:99], 99), y); +***** assert (fillmissing ([1 2 3], "constant", 99, "endvalues", 88), [1 2 3]) +***** assert (fillmissing ([1 NaN 3], "constant", 99, "endvalues", 88), [1 99 3]) +***** assert (fillmissing ([1 2 NaN], "constant", 99, "endvalues", 88), [1 2 88]) +***** assert (fillmissing ([NaN 2 3], "constant", 99, "endvalues", 88), [88 2 3]) +***** assert (fillmissing ([NaN NaN 3], "constant", 99, "endvalues", 88), [88 88 3]) +***** assert (fillmissing ([1 NaN NaN], "constant", 99, "endvalues", 88), [1 88 88]) +***** assert (fillmissing ([NaN 2 NaN], "constant", 99, "endvalues", 88), [88 2 88]) +***** assert (fillmissing ([NaN 2 NaN]', "constant", 99, "endvalues", 88), [88 2 88]') +***** assert (fillmissing ([1 NaN 3 NaN 5], "constant", 99, "endvalues", 88), [1 99 3 99 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "constant", 99, "endvalues", 88), [1 99 99 99 5]) +***** assert (fillmissing ([NaN NaN NaN NaN 5], "constant", 99, "endvalues", 88), [88 88 88 88 5]) +***** assert (fillmissing ([1 NaN 3 4 NaN], "constant", 99, "endvalues", 88), [1 99 3 4 88]) +***** assert (fillmissing ([1 NaN 3 4 NaN], "constant", 99, 1, "endvalues", 88), [1 88 3 4 88]) +***** assert (fillmissing ([1 NaN 3 4 NaN], "constant", 99, 1, "endvalues", "extrap"), [1 99 3 4 99]) ***** test - [h, pval, chisq] = mcnemar_test ([59,6;16,80], "corrected"); - assert (h, 0); - assert (pval, 0.055009, 1e-6); - assert (chisq, 3.6818, 1e-4); + x = reshape ([1:24], 3, 4, 2); + y = x; + x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; + y([1,2,5,6,10,13,16,18,19,20,21,22])= 88; y([8])=99; + assert (fillmissing (x, "constant", 99, "endvalues", 88), y); + assert (fillmissing (x, "constant", 99, 1, "endvalues", 88), y); + y = x; y([1,2,5,8,10,13,16,19,22])= 88; y([6,18,20,21])=99; + assert (fillmissing (x, "constant", 99, 2, "endvalues", 88), y); + y(y==99) = 88; + assert (fillmissing (x, "constant", 99, 3, "endvalues", 88), y); + assert (fillmissing (x, "constant", 99, 4, "endvalues", 88), y); + assert (fillmissing (x, "constant", 99, 99, "endvalues", 88), y); + y([8]) = 94; + assert (fillmissing (x, "constant", [92:99], 1, "endvalues", 88), y); + y([6,8,18,20,21]) = [96,88,99,98,99]; + assert (fillmissing (x, "constant", [94:99], 2, "endvalues", 88), y); + y = x; y(isnan(y)) = 88; + assert (fillmissing (x, "constant", [88:99], 3, "endvalues", 88), y); + y = x; y(isnan(y)) = [82,82,83,83,94,85,86,87,87,88,88,88,89]; + assert (fillmissing (x, "constant", [92:99], 1, "endvalues", [82:89]), y); + y = x; y(isnan(y)) = [84,85,85,96,85,84,87,87,99,87,98,99,87]; + assert (fillmissing (x, "constant", [94:99], 2, "endvalues", [84:89]), y); + y = x; y(isnan(y)) = [68,69,72,73,75,77,68,71,73,74,75,76,77]; + assert (fillmissing (x, "constant", [88:99], 3, "endvalues", [68:79]), y); + assert (fillmissing (x, "constant", [88:93;94:99]', 3, "endvalues", [68:73;74:79]'), y) ***** test - [h, pval, chisq] = mcnemar_test ([59,6;16,80], 0.1, "corrected"); - assert (h, 1); - assert (pval, 0.055009, 1e-6); - assert (chisq, 3.6818, 1e-4); -***** error mcnemar_test (59, 6, 16, 80) -***** error mcnemar_test (ones (3, 3)) -***** error ... - mcnemar_test ([59,6;16,-80]) -***** error ... - mcnemar_test ([59,6;16,4.5]) -***** error ... - mcnemar_test ([59,6;16,80], {""}) -***** error ... - mcnemar_test ([59,6;16,80], -0.2) -***** error ... - mcnemar_test ([59,6;16,80], [0.05, 0.1]) -***** error ... - mcnemar_test ([59,6;16,80], 1) -***** error ... - mcnemar_test ([59,6;16,80], "") -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/monotone_smooth.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/monotone_smooth.m -***** error ... - monotone_smooth (1) -***** error ... - monotone_smooth ("char", 1) -***** error ... - monotone_smooth ({1,2,3}, 1) -***** error ... - monotone_smooth (ones(20,3), 1) -***** error ... - monotone_smooth (1, "char") -***** error ... - monotone_smooth (1, {1,2,3}) -***** error ... - monotone_smooth (1, ones(20,3)) -***** error monotone_smooth (ones (10,1), ones(10,1), [1, 2]) -***** error monotone_smooth (ones (10,1), ones(10,1), {2}) -***** error monotone_smooth (ones (10,1), ones(10,1), "char") -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/harmmean.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/harmmean.m + x = reshape([1:24],4,3,2); + x([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = NaN; + y = x; + y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [94 95 95 96 96 97 97 98 99 99]; + assert (fillmissing (x, "constant", [94:99], 1), y); + y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [92 93 94 92 95 97 99 98 97 98]; + assert (fillmissing (x, "constant", [92:99], 2), y); + y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [88 93 94 96 99 89 91 94 97 98]; + assert (fillmissing (x, "constant", [88:99], 3), y); + y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [76 81 82 84 87 89 91 94 97 98]; + assert (fillmissing (x, "constant", [76:99], 99), y); +***** assert (fillmissing ([1 2 3], "previous"), [1 2 3]) +***** assert (fillmissing ([1 2 3], "next"), [1 2 3]) +***** assert (fillmissing ([1 2 3]', "previous"), [1 2 3]') +***** assert (fillmissing ([1 2 3]', "next"), [1 2 3]') +***** assert (fillmissing ([1 2 NaN], "previous"), [1 2 2]) +***** assert (fillmissing ([1 2 NaN], "next"), [1 2 NaN]) +***** assert (fillmissing ([NaN 2 NaN], "previous"), [NaN 2 2]) +***** assert (fillmissing ([NaN 2 NaN], "next"), [2 2 NaN]) +***** assert (fillmissing ([1 NaN 3], "previous"), [1 1 3]) +***** assert (fillmissing ([1 NaN 3], "next"), [1 3 3]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "previous", 1), [1 2 NaN; 4 2 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "previous", 2), [1 2 2; 4 4 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "previous", 3), [1 2 NaN; 4 NaN 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "next", 1), [1 2 6; 4 NaN 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "next", 2), [1 2 NaN; 4 6 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "next", 3), [1 2 NaN; 4 NaN 6]) ***** test - x = [0:10]; - y = [x;x+5;x+10]; - assert (harmmean (x), 0); - m = [0 8.907635160795225 14.30854471766802]; - assert (harmmean (y, 2), m', 4e-14); - assert (harmmean (y, "all"), 0); - y(2,4) = NaN; - m(2) = 9.009855936313949; - assert (harmmean (y, 2), [0 NaN m(3)]', 4e-14); - assert (harmmean (y', "omitnan"), m, 4e-14); - z = y + 20; - assert (harmmean (z, "all"), NaN); - assert (harmmean (z, "all", "includenan"), NaN); - assert (harmmean (z, "all", "omitnan"), 29.1108719858295, 4e-14); - m = [24.59488458841874 NaN 34.71244385944397]; - assert (harmmean (z'), m, 4e-14); - assert (harmmean (z', "includenan"), m, 4e-14); - m(2) = 29.84104075528277; - assert (harmmean (z', "omitnan"), m, 4e-14); - assert (harmmean (z, 2, "omitnan"), m', 4e-14); + x = reshape([1:24],4,3,2); + x([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = NaN; + y = x; + y([1, 6, 7, 9, 14, 19, 22, 23]) = [2 8 8 10 15 20 24 24]; + assert (fillmissing (x, "next", 1), y); + y = x; + y([1, 6, 7, 14, 16]) = [5, 10, 11, 18, 20]; + assert (fillmissing (x, "next", 2), y); + y = x; + y([1, 6, 9, 12]) = [13 18 21 24]; + assert (fillmissing (x, "next", 3), y); + assert (fillmissing (x, "next", 99), x); + y = x; + y([6, 7, 12, 14, 16, 19, 22, 23]) = [5 5 11 13 15 18 21 21]; + assert (fillmissing (x, "previous", 1), y); + y = x; + y([6, 7, 9, 12, 19, 22, 23]) = [2 3 5 8 15 18 15]; + assert (fillmissing (x, "previous", 2), y); + y = x; + y([14, 16, 22, 23]) = [2 4 10 11]; + assert (fillmissing (x, "previous", 3), y); + assert (fillmissing (x, "previous", 99), x); +***** assert (fillmissing ([1 2 3], "constant", 0, "endvalues", "previous"), [1 2 3]) +***** assert (fillmissing ([1 2 3], "constant", 0, "endvalues", "next"), [1 2 3]) +***** assert (fillmissing ([1 NaN 3], "constant", 0, "endvalues", "previous"), [1 0 3]) +***** assert (fillmissing ([1 NaN 3], "constant", 0, "endvalues", "next"), [1 0 3]) +***** assert (fillmissing ([1 2 NaN], "constant", 0, "endvalues", "previous"), [1 2 2]) +***** assert (fillmissing ([1 2 NaN], "constant", 0, "endvalues", "next"), [1 2 NaN]) +***** assert (fillmissing ([1 NaN NaN], "constant", 0, "endvalues", "previous"), [1 1 1]) +***** assert (fillmissing ([1 NaN NaN], "constant", 0, "endvalues", "next"), [1 NaN NaN]) +***** assert (fillmissing ([NaN 2 3], "constant", 0, "endvalues", "previous"), [NaN 2 3]) +***** assert (fillmissing ([NaN 2 3], "constant", 0, "endvalues", "next"), [2 2 3]) +***** assert (fillmissing ([NaN NaN 3], "constant", 0, "endvalues", "previous"), [NaN NaN 3]) +***** assert (fillmissing ([NaN NaN 3], "constant", 0, "endvalues", "next"), [3 3 3]) +***** assert (fillmissing ([NaN NaN NaN], "constant", 0, "endvalues", "previous"), [NaN NaN NaN]) +***** assert (fillmissing ([NaN NaN NaN], "constant", 0, "endvalues", "next"), [NaN NaN NaN]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, "endvalues", "previous"), [NaN 2 0 4 4]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, "endvalues", "next"), [2 2 0 4 NaN]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 1, "endvalues", "previous"), [NaN 2 NaN 4 NaN]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 1, "endvalues", "next"), [NaN 2 NaN 4 NaN]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 2, "endvalues", "previous"), [NaN 2 0 4 4]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 2, "endvalues", "next"), [2 2 0 4 NaN]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 3, "endvalues", "previous"), [NaN 2 NaN 4 NaN]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 3, "endvalues", "next"), [NaN 2 NaN 4 NaN]) ***** test - x = repmat ([1:20;6:25], [5 2 6 3]); - assert (size (harmmean (x, [3 2])), [10 1 1 3]); - assert (size (harmmean (x, [1 2])), [1 1 6 3]); - assert (size (harmmean (x, [1 2 4])), [1 1 6]); - assert (size (harmmean (x, [1 4 3])), [1 40]); - assert (size (harmmean (x, [1 2 3 4])), [1 1]); + x = reshape ([1:24], 3, 4, 2); + x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; + y = x; + y([5,6,8,18])=[4,4,0,17]; + assert (fillmissing (x, "constant", 0, "endvalues", "previous"), y); + assert (fillmissing (x, "constant", 0, 1, "endvalues", "previous"), y); + y = x; + y([6,10,18,20,21])=[0,7,0,0,0]; + assert (fillmissing (x, "constant", 0, 2, "endvalues", "previous"), y); + y = x; + y([16,19,21])=[4,7,9]; + assert (fillmissing (x, "constant", 0, 3, "endvalues", "previous"), y); + assert (fillmissing (x, "constant", 0, 4, "endvalues", "previous"), x); + assert (fillmissing (x, "constant", 0, 99, "endvalues", "previous"), x); + y = x; + y([1,2,8,10,13,16,22])=[3,3,0,11,14,17,23]; + assert (fillmissing (x, "constant", 0, "endvalues", "next"), y); + assert (fillmissing (x, "constant", 0, 1, "endvalues", "next"), y); + y = x; + y([1,2,5,6,8,18,20,21])=[4,11,11,0,11,0,0,0]; + assert (fillmissing (x, "constant", 0, 2, "endvalues", "next"), y); + y = x; + y([2,5])=[14,17]; + assert (fillmissing (x, "constant", 0, 3, "endvalues", "next"), y); + assert (fillmissing (x, "constant", 0, 4, "endvalues", "next"), x); + assert (fillmissing (x, "constant", 0, 99, "endvalues", "next"), x); +***** assert (fillmissing ([1 2 3], "nearest"), [1 2 3]) +***** assert (fillmissing ([1 2 3]', "nearest"), [1 2 3]') +***** assert (fillmissing ([1 2 NaN], "nearest"), [1 2 2]) +***** assert (fillmissing ([NaN 2 NaN], "nearest"), [2 2 2]) +***** assert (fillmissing ([1 NaN 3], "nearest"), [1 3 3]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "nearest", 1), [1 2 6; 4 2 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "nearest", 2), [1 2 2; 4 6 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "nearest", 3), [1 2 NaN; 4 NaN 6]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "nearest"), [1 3 3 5 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "nearest", "samplepoints", [0 1 2 3 4]), [1 3 3 5 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "nearest", "samplepoints", [0.5 1 2 3 5]), [1 1 3 3 5]) ***** test - x = repmat ([1:20;6:25], [5 2 6 3]); - m = repmat ([5.559045930488016;13.04950789021461], [5 1 1 3]); - assert (harmmean (x, [3 2]), m, 4e-14); - x(2,5,6,3) = NaN; - m(2,3) = NaN; - assert (harmmean (x, [3 2]), m, 4e-14); - m(2,3) = 13.06617961315406; - assert (harmmean (x, [3 2], "omitnan"), m, 4e-14); -***** error harmmean ("char") -***** error harmmean ([1 -1 3]) -***** error ... - harmmean (repmat ([1:20;6:25], [5 2 6 3 5]), -1) -***** error ... - harmmean (repmat ([1:20;6:25], [5 2 6 3 5]), 0) -***** error ... - harmmean (repmat ([1:20;6:25], [5 2 6 3 5]), [1 1]) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/ztest.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ztest.m -***** error ztest (); -***** error ... - ztest ([1, 2, 3, 4], 2, -0.5); -***** error ... - ztest ([1, 2, 3, 4], 1, 2, "alpha", 0); -***** error ... - ztest ([1, 2, 3, 4], 1, 2, "alpha", 1.2); -***** error ... - ztest ([1, 2, 3, 4], 1, 2, "alpha", "val"); -***** error ... - ztest ([1, 2, 3, 4], 1, 2, "tail", "val"); -***** error ... - ztest ([1, 2, 3, 4], 1, 2, "alpha", 0.01, "tail", "val"); -***** error ... - ztest ([1, 2, 3, 4], 1, 2, "dim", 3); -***** error ... - ztest ([1, 2, 3, 4], 1, 2, "alpha", 0.01, "tail", "both", "dim", 3); -***** error ... - ztest ([1, 2, 3, 4], 1, 2, "alpha", 0.01, "tail", "both", "badoption", 3); + x = reshape([1:24],4,3,2); + x([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = NaN; + y = x; + y([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = [2 5 8 10 11 15 15 20 21 24]; + assert (fillmissing (x, "nearest", 1), y); + y = x; + y([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = [5 10 11 5 8 18 20 15 18 15]; + assert (fillmissing (x, "nearest", 2), y); + y = x; + y([1, 6, 9, 12, 14, 16, 22, 23]) = [13 18 21 24 2 4 10 11]; + assert (fillmissing (x, "nearest", 3), y); + assert (fillmissing (x, "nearest", 99), x); +***** assert (fillmissing ([1 2 3], "constant", 0, "endvalues", "nearest"), [1 2 3]) +***** assert (fillmissing ([1 NaN 3], "constant", 0, "endvalues", "nearest"), [1 0 3]) +***** assert (fillmissing ([1 2 NaN], "constant", 0, "endvalues", "nearest"), [1 2 2]) +***** assert (fillmissing ([1 NaN NaN], "constant", 0, "endvalues", "nearest"), [1 1 1]) +***** assert (fillmissing ([NaN 2 3], "constant", 0, "endvalues", "nearest"), [2 2 3]) +***** assert (fillmissing ([NaN NaN 3], "constant", 0, "endvalues", "nearest"), [3 3 3]) +***** assert (fillmissing ([NaN NaN NaN], "constant", 0, "endvalues", "nearest"), [NaN NaN NaN]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, "endvalues", "nearest"), [2 2 0 4 4]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 1, "endvalues", "nearest"), [NaN 2 NaN 4 NaN]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 2, "endvalues", "nearest"), [2 2 0 4 4]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 3, "endvalues", "nearest"), [NaN 2 NaN 4 NaN]) ***** test - load carsmall - [h, pval, ci] = ztest (MPG, mean (MPG, "omitnan"), std (MPG, "omitnan")); - assert (h, 0); - assert (pval, 1, 1e-14); - assert (ci, [22.094; 25.343], 1e-3); + x = reshape ([1:24], 3, 4, 2); + x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; + y = x; + y([1,2,5,6,8,10,13,16,18,22])=[3 3 4 4 0 11 14 17 17 23]; + assert (fillmissing (x, "constant", 0, "endvalues", "nearest"), y); + assert (fillmissing (x, "constant", 0, 1, "endvalues", "nearest"), y); + y = x; + y([1,2,5,6,8,10,18,20,21])=[4 11 11 0 11 7 0 0 0]; + assert (fillmissing (x, "constant", 0, 2, "endvalues", "nearest"), y); + y = x; + y([2,5,16,19,21])=[14 17 4 7 9]; + assert (fillmissing (x, "constant", 0, 3, "endvalues", "nearest"), y); + assert (fillmissing (x, "constant", 0, 99, "endvalues", "nearest"), x); +***** assert (fillmissing ([1 2 3], "linear"), [1 2 3]) +***** assert (fillmissing ([1 2 3]', "linear"), [1 2 3]') +***** assert (fillmissing ([1 2 NaN], "linear"), [1 2 3]) +***** assert (fillmissing ([NaN 2 NaN], "linear"), [NaN 2 NaN]) +***** assert (fillmissing ([1 NaN 3], "linear"), [1 2 3]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "linear", 1), [1 2 NaN; 4 NaN 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "linear", 2), [1 2 3; 4 5 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "linear", 3), [1 2 NaN; 4 NaN 6]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "linear"), [1 2 3 4 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "linear", "samplepoints", [0 1 2 3 4]), [1 2 3 4 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "linear", "samplepoints", [0 1.5 2 5 14]), [1 2.5 3 3.5 5], eps) ***** test - load carsmall - [h, pval, ci] = ztest (MPG, 26, 8); - assert (h, 1); - assert (pval, 0.00568359158544743, 1e-14); - assert (ci, [22.101; 25.335], 1e-3); + x = reshape([1:24],4,3,2); + x([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = NaN; + assert (fillmissing (x, "linear", 1), reshape([1:24],4,3,2)); + y = reshape([1:24],4,3,2); + y([1 9 14 19 22 23]) = NaN; + assert (fillmissing (x, "linear", 2), y); + y = reshape([1:24],4,3,2); + y([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = NaN; + assert (fillmissing (x, "linear", 3), y); + assert (fillmissing (x, "linear", 99), x); +***** assert (fillmissing ([1 2 3], "linear", "endvalues", 0), [1 2 3]) +***** assert (fillmissing ([1 NaN 3], "linear", "endvalues", 0), [1 2 3]) +***** assert (fillmissing ([1 2 NaN], "linear", "endvalues", 0), [1 2 0]) +***** assert (fillmissing ([1 NaN NaN], "linear", "endvalues", 0), [1 0 0]) +***** assert (fillmissing ([NaN 2 3], "linear", "endvalues", 0), [0 2 3]) +***** assert (fillmissing ([NaN NaN 3], "linear", "endvalues", 0), [0 0 3]) +***** assert (fillmissing ([NaN NaN NaN], "linear", "endvalues", 0), [0 0 0]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "linear", "endvalues", 0), [0 2 3 4 0]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "linear", 1, "endvalues", 0), [0 2 0 4 0]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "linear", 2, "endvalues", 0), [0 2 3 4 0]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "linear", 3, "endvalues", 0), [0 2 0 4 0]) ***** test - load carsmall - [h, pval, ci] = ztest (MPG, 26, 4); - assert (h, 1); - assert (pval, 3.184168011941316e-08, 1e-14); - assert (ci, [22.909; 24.527], 1e-3); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/pca.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/pca.m -***** shared COEFF,SCORE,latent,tsquare,m,x,R,V,lambda,i,S,F + x = reshape ([1:24], 3, 4, 2); + x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; + y = x; + y([1,2,5,6,10,13,16,18,19,20,21,22])=0; y(8)=8; + assert (fillmissing (x, "linear", "endvalues", 0), y); + assert (fillmissing (x, "linear", 1, "endvalues", 0), y); + y = x; + y([1,2,5,8,10,13,16,19,22])=0; y([6,18,20,21])=[6,18,20,21]; + assert (fillmissing (x, "linear", 2, "endvalues", 0), y); + y = x; + y(isnan(y))=0; + assert (fillmissing (x, "linear", 3, "endvalues", 0), y); + assert (fillmissing (x, "linear", 99, "endvalues", 0), y); +***** assert (fillmissing ([1 2 3], "constant", 99, "endvalues", "linear"), [1 2 3]) +***** assert (fillmissing ([1 NaN 3], "constant", 99, "endvalues", "linear"), [1 99 3]) +***** assert (fillmissing ([1 NaN 3 NaN], "constant", 99, "endvalues", "linear"), [1 99 3 4]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 99, "endvalues", "linear"), [1 2 99 4 5]) +***** assert (fillmissing ([NaN 2 NaN NaN], "constant", 99, "endvalues", "linear"), [NaN 2 NaN NaN]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 99, "endvalues", "linear", "samplepoints", [1 2 3 4 5]), [1 2 99 4 5]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 99, "endvalues", "linear", "samplepoints", [0 2 3 4 10]), [0 2 99 4 10]) + x = reshape ([1:24], 3, 4, 2); + x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; + y = x; + y([1,6,10,18,20,21]) = [2.5, 5, 8.5, 17.25, 21, 21.75]; + assert (fillmissing (x, "linear", 2, "samplepoints", [2 4 8 10]), y, eps); + y([1,6,10,18,20,21]) = [2.5, 4.5, 8.5, 17.25, 21.5, 21.75]; + assert (fillmissing (x, "spline", 2, "samplepoints", [2 4 8 10]), y, eps); + y([1,6,10,18,20,21]) = [2.5, 4.559386973180077, 8.5, 17.25, 21.440613026819925, 21.75]; + assert (fillmissing (x, "pchip", 2, "samplepoints", [2 4 8 10]), y, 10*eps); +***** test <60965> + x = reshape ([1:24], 3, 4, 2); + x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; + y = x; + y([1,6,10,18,20,21]) = [2.5, 4.609523809523809, 8.5, 17.25, 21.390476190476186, 21.75]; + assert (fillmissing (x, "makima", 2, "samplepoints", [2 4 8 10]), y, 10*eps); +!!!!! known bug: https://octave.org/testfailure/?60965 +interp1: invalid METHOD 'makima' +***** assert (fillmissing ([1 2 3], "constant", 99, "endvalues", "spline"), [1 2 3]) +***** assert (fillmissing ([1 NaN 3], "constant", 99, "endvalues", "spline"), [1 99 3]) +***** assert (fillmissing ([1 NaN 3 NaN], "constant", 99, "endvalues", "spline"), [1 99 3 4]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 99, "endvalues", "spline"), [1 2 99 4 5]) +***** assert (fillmissing ([NaN 2 NaN NaN], "constant", 99, "endvalues", "spline"), [NaN 2 NaN NaN]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 99, "endvalues", "spline", "samplepoints", [1 2 3 4 5]), [1 2 99 4 5]) +***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 99, "endvalues", "spline", "samplepoints", [0 2 3 4 10]), [0 2 99 4 10]) +***** assert (fillmissing ([1 2 3], "movmean", 1), [1 2 3]) +***** assert (fillmissing ([1 2 NaN], "movmean", 1), [1 2 NaN]) +***** assert (fillmissing ([1 2 3], "movmean", 2), [1 2 3]) +***** assert (fillmissing ([1 2 3], "movmean", [1 0]), [1 2 3]) +***** assert (fillmissing ([1 2 3]', "movmean", 2), [1 2 3]') +***** assert (fillmissing ([1 2 NaN], "movmean", 2), [1 2 2]) +***** assert (fillmissing ([1 2 NaN], "movmean", [1 0]), [1 2 2]) +***** assert (fillmissing ([1 2 NaN], "movmean", [1 0]'), [1 2 2]) +***** assert (fillmissing ([NaN 2 NaN], "movmean", 2), [NaN 2 2]) +***** assert (fillmissing ([NaN 2 NaN], "movmean", [1 0]), [NaN 2 2]) +***** assert (fillmissing ([NaN 2 NaN], "movmean", [0 1]), [2 2 NaN]) +***** assert (fillmissing ([NaN 2 NaN], "movmean", [0 1.1]), [2 2 NaN]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "movmean", [3 0]), [1 1 3 2 5]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "movmean", 3, 1), [1 2 6; 4 2 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "movmean", 3, 2), [1 2 2; 4 5 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "movmean", 3, 3), [1 2 NaN; 4 NaN 6]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "movmean", 99), [1 3 3 3 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "movmean", 99, 1), [1 NaN 3 NaN 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5]', "movmean", 99, 1), [1 3 3 3 5]') +***** assert (fillmissing ([1 NaN 3 NaN 5], "movmean", 99, 2), [1 3 3 3 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5]', "movmean", 99, 2), [1 NaN 3 NaN 5]') +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", 3, "samplepoints", [1 2 3 4 5]), [1 1 NaN 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", [1 1], "samplepoints", [1 2 3 4 5]), [1 1 NaN 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", [1.5 1.5], "samplepoints", [1 2 3 4 5]), [1 1 NaN 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", 4, "samplepoints", [1 2 3 4 5]), [1 1 1 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", [2 2], "samplepoints", [1 2 3 4 5]), [1 1 3 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", 4.0001, "samplepoints", [1 2 3 4 5]), [1 1 3 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", 3, "samplepoints", [1.5 2 3 4 5]), [1 1 1 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", 3, "samplepoints", [1 2 3 4 4.5]), [1 1 NaN 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", 3, "samplepoints", [1.5 2 3 4 4.5]), [1 1 1 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", [1.5 1.5], "samplepoints", [1.5 2 3 4 5]), [1 1 1 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", [1.5 1.5], "samplepoints", [1 2 3 4 4.5]), [1 1 5 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", [1.5 1.5], "samplepoints", [1.5 2 3 4 4.5]), [1 1 3 5 5]) ***** test - x=[7 4 3 - 4 1 8 - 6 3 5 - 8 6 1 - 8 5 7 - 7 2 9 - 5 3 3 - 9 5 8 - 7 4 5 - 8 2 2]; - R = corrcoef (x); - [V, lambda] = eig (R); - [~, i] = sort(diag(lambda), "descend"); #arrange largest PC first - S = V(:, i) * diag(sqrt(diag(lambda)(i))); -***** assert(diag(S(:, 1:2)*S(:, 1:2)'), [0.8662; 0.8420; 0.9876], 1E-4); #contribution of first 2 PCs to each original variable - B = V(:, i) * diag( 1./ sqrt(diag(lambda)(i))); - F = zscore(x)*B; - [COEFF,SCORE,latent,tsquare] = pca(zscore(x, 1)); -***** assert(tsquare,sumsq(F, 2),1E4*eps); + x = reshape ([1:24], 3, 4, 2); + x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; + y = x; + y([2,5,8,10,13,16,18,22]) = [3,4,8,11,14,17,17,23]; + assert (fillmissing (x, "movmean", 3), y); + assert (fillmissing (x, "movmean", [1 1]), y); + assert (fillmissing (x, "movmean", 3, "endvalues", "extrap"), y); + assert (fillmissing (x, "movmean", 3, "samplepoints", [1 2 3]), y); + y = x; + y([1,6,8,10,18,20,21]) = [4,6,11,7,15,20,24]; + assert (fillmissing (x, "movmean", 3, 2), y); + assert (fillmissing (x, "movmean", [1 1], 2), y); + assert (fillmissing (x, "movmean", 3, 2, "endvalues", "extrap"), y); + assert (fillmissing (x, "movmean", 3, 2, "samplepoints", [1 2 3 4]), y); + y([1,18]) = NaN; y(6) = 9; + assert (fillmissing (x, "movmean", 3, 2, "samplepoints", [0 2 3 4]), y); + y = x; + y([1,2,5,6,10,13,16,18,19,20,21,22]) = 99; y(8) = 8; + assert (fillmissing (x, "movmean", 3, "endvalues", 99), y); + y = x; + y([1,2,5,8,10,13,16,19,22]) = 99; y([6,18,20,21]) = [6,15,20,24]; + assert (fillmissing (x, "movmean", 3, 2, "endvalues", 99), y); +***** assert (fillmissing ([1 2 3], "movmedian", 1), [1 2 3]) +***** assert (fillmissing ([1 2 NaN], "movmedian", 1), [1 2 NaN]) +***** assert (fillmissing ([1 2 3], "movmedian", 2), [1 2 3]) +***** assert (fillmissing ([1 2 3], "movmedian", [1 0]), [1 2 3]) +***** assert (fillmissing ([1 2 3]', "movmedian", 2), [1 2 3]') +***** assert (fillmissing ([1 2 NaN], "movmedian", 2), [1 2 2]) +***** assert (fillmissing ([1 2 NaN], "movmedian", [1 0]), [1 2 2]) +***** assert (fillmissing ([1 2 NaN], "movmedian", [1 0]'), [1 2 2]) +***** assert (fillmissing ([NaN 2 NaN], "movmedian", 2), [NaN 2 2]) +***** assert (fillmissing ([NaN 2 NaN], "movmedian", [1 0]), [NaN 2 2]) +***** assert (fillmissing ([NaN 2 NaN], "movmedian", [0 1]), [2 2 NaN]) +***** assert (fillmissing ([NaN 2 NaN], "movmedian", [0 1.1]), [2 2 NaN]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "movmedian", [3 0]), [1 1 3 2 5]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "movmedian", 3, 1), [1 2 6; 4 2 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "movmedian", 3, 2), [1 2 2; 4 5 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "movmedian", 3, 3), [1 2 NaN; 4 NaN 6]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "movmedian", 99), [1 3 3 3 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "movmedian", 99, 1), [1 NaN 3 NaN 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5]', "movmedian", 99, 1), [1 3 3 3 5]') +***** assert (fillmissing ([1 NaN 3 NaN 5], "movmedian", 99, 2), [1 3 3 3 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5]', "movmedian", 99, 2), [1 NaN 3 NaN 5]') +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", 3, "samplepoints", [1 2 3 4 5]), [1 1 NaN 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", [1 1], "samplepoints", [1 2 3 4 5]), [1 1 NaN 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", [1.5 1.5], "samplepoints", [1 2 3 4 5]), [1 1 NaN 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", 4, "samplepoints", [1 2 3 4 5]), [1 1 1 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", [2 2], "samplepoints", [1 2 3 4 5]), [1 1 3 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", 4.0001, "samplepoints", [1 2 3 4 5]), [1 1 3 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", 3, "samplepoints", [1.5 2 3 4 5]), [1 1 1 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", 3, "samplepoints", [1 2 3 4 4.5]), [1 1 NaN 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", 3, "samplepoints", [1.5 2 3 4 4.5]), [1 1 1 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", [1.5 1.5], "samplepoints", [1.5 2 3 4 5]), [1 1 1 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", [1.5 1.5], "samplepoints", [1 2 3 4 4.5]), [1 1 5 5 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", [1.5 1.5], "samplepoints", [1.5 2 3 4 4.5]), [1 1 3 5 5]) ***** test - x=[1,2,3;2,1,3]'; - [COEFF,SCORE,latent,tsquare] = pca(x, "Economy", false); - m=[sqrt(2),sqrt(2);sqrt(2),-sqrt(2);-2*sqrt(2),0]/2; - m(:,1) = m(:,1)*sign(COEFF(1,1)); - m(:,2) = m(:,2)*sign(COEFF(1,2)); -***** assert(COEFF,m(1:2,:),10*eps); -***** assert(SCORE,-m,10*eps); -***** assert(latent,[1.5;.5],10*eps); -***** assert(tsquare,[4;4;4]/3,10*eps); - [COEFF,SCORE,latent,tsquare] = pca(x, "Economy", false, "weights", [1 2 1], "variableweights", "variance"); -***** assert(COEFF, [0.632455532033676 -0.632455532033676; 0.741619848709566 0.741619848709566], 10*eps); -***** assert(SCORE, [-0.622019449426284 0.959119380657905; -0.505649896847432 -0.505649896847431; 1.633319243121148 0.052180413036957], 10*eps); -***** assert(latent, [1.783001790889027; 0.716998209110974], 10*eps); -***** xtest assert(tsquare, [1.5; 0.5; 1.5], 10*eps); #currently, [4; 2; 4]/3 is actually returned; see comments above -!!!!! known failure -ASSERT errors for: assert (tsquare,[1.5; 0.5; 1.5],10 * eps) - - Location | Observed | Expected | Reason - (1) 1.3333 1.5 Abs err 0.16667 exceeds tol 2.2204e-15 by 0.2 - (2) 0.66667 0.5 Abs err 0.16667 exceeds tol 2.2204e-15 by 0.2 - (3) 1.3333 1.5 Abs err 0.16667 exceeds tol 2.2204e-15 by 0.2 + x = reshape ([1:24], 3, 4, 2); + x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; + y = x; + y([2 5 8 10 13 16 18 22]) = [3 4 8 11 14 17 17 23]; + assert (fillmissing (x, "movmedian", 3), y); + assert (fillmissing (x, "movmedian", [1 1]), y); + assert (fillmissing (x, "movmedian", 3, "endvalues", "extrap"), y); + assert (fillmissing (x, "movmedian", 3, "samplepoints", [1 2 3]), y); + y = x; + y([1 6 8 10 18 20 21]) = [4 6 11 7 15 20 24]; + assert (fillmissing (x, "movmedian", 3, 2), y); + assert (fillmissing (x, "movmedian", [1 1], 2), y); + assert (fillmissing (x, "movmedian", 3, 2, "endvalues", "extrap"), y); + assert (fillmissing (x, "movmedian", 3, 2, "samplepoints", [1 2 3 4]), y); + y([1,18]) = NaN; y(6) = 9; + assert (fillmissing (x, "movmedian", 3, 2, "samplepoints", [0 2 3 4]), y); + y = x; + y([1,2,5,6,10,13,16,18,19,20,21,22]) = 99; y(8) = 8; + assert (fillmissing (x, "movmedian", 3, "endvalues", 99), y); + y = x; + y([1,2,5,8,10,13,16,19,22]) = 99; y([6,18,20,21]) = [6,15,20,24]; + assert (fillmissing (x, "movmedian", 3, 2, "endvalues", 99), y); +***** assert (fillmissing ([1 2 3], @(x,y,z) x+y+z, 2), [1 2 3]) +***** assert (fillmissing ([1 2 NaN], @(x,y,z) x+y+z, 1), [1 2 NaN]) +***** assert (fillmissing ([1 2 3], @(x,y,z) x+y+z, 2), [1 2 3]) +***** assert (fillmissing ([1 2 3], @(x,y,z) x+y+z, [1 0]), [1 2 3]) +***** assert (fillmissing ([1 2 3]', @(x,y,z) x+y+z, 2), [1 2 3]') +***** assert (fillmissing ([1 2 NaN], @(x,y,z) x+y+z, 2), [1 2 7]) +***** assert (fillmissing ([1 2 NaN], @(x,y,z) x+y+z, [1 0]), [1 2 7]) +***** assert (fillmissing ([1 2 NaN], @(x,y,z) x+y+z, [1 0]'), [1 2 7]) +***** assert (fillmissing ([NaN 2 NaN], @(x,y,z) x+y+z, 2), [5 2 7]) +***** assert (fillmissing ([NaN 2 NaN], @(x,y,z) x+y+z, [1 0]), [NaN 2 7]) +***** assert (fillmissing ([NaN 2 NaN], @(x,y,z) x+y+z, [0 1]), [5 2 NaN]) +***** assert (fillmissing ([NaN 2 NaN], @(x,y,z) x+y+z, [0 1.1]), [5 2 NaN]) +***** assert (fillmissing ([1 2 NaN NaN 3 4], @(x,y,z) x+y+z, 2),[1 2 7 12 3 4]) +***** assert (fillmissing ([1 2 NaN NaN 3 4], @(x,y,z) x+y+z, 0.5),[1 2 NaN NaN 3 4]) +***** function A = testfcn (x,y,z) + if isempty (y) + A = z; + elseif (numel (y) == 1) + A = repelem (x(1), numel(z)); + else + A = interp1 (y, x, z, "linear","extrap"); + endif +***** endfunction +***** assert (fillmissing ([1 NaN 3 NaN 5], @testfcn, [3 0]), [1 1 3 NaN 5]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], @testfcn, 3, 1), [1 2 6; 4 2 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], @testfcn, 3, 2), [1 2 2; 4 5 6]) +***** assert (fillmissing ([1 2 NaN; 4 NaN 6], @testfcn, 3, 3), [1 2 NaN; 4 NaN 6]) +***** assert (fillmissing ([1 NaN 3 NaN 5], @testfcn, 99), [1 2 3 4 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5], @testfcn, 99, 1), [1 NaN 3 NaN 5]) ##known not-compatible. matlab bug ML2022a: [1 1 3 1 5] +***** assert (fillmissing ([1 NaN 3 NaN 5]', @testfcn, 99, 1), [1 2 3 4 5]') +***** assert (fillmissing ([1 NaN 3 NaN 5], @testfcn, 99, 2), [1 2 3 4 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5]', @testfcn, 99, 2), [1 NaN 3 NaN 5]') ##known not-compatible. matlab bug ML2022a: [1 1 3 1 5]' +***** assert (fillmissing ([1 NaN 3 NaN 5], @testfcn, 99, 3), [1 NaN 3 NaN 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5]', @testfcn, 99, 3), [1 NaN 3 NaN 5]') +***** assert (fillmissing ([1 NaN NaN NaN 5], @testfcn, 3, "samplepoints", [1 2 3 4 5]), [1 2 3 4 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], @testfcn, [1 1], "samplepoints", [1 2 3 4 5]), [1 2 3 4 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], @testfcn, [1.5 1.5], "samplepoints", [1 2 3 4 5]), [1 2 3 4 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], @testfcn, 4, "samplepoints", [1 2 3 4 5]), [1 2 3 4 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], @testfcn, [2 2], "samplepoints", [1 2 3 4 5]), [1 2 3 4 5]) +***** assert (fillmissing ([1 NaN NaN NaN 5], @testfcn, 3, "samplepoints", [1 2 2.5 3 3.5]), [1 2.6 3.4 4.2 5], 10*eps) +***** assert (fillmissing ([NaN NaN 3 NaN 5], @testfcn, 99, 1), [NaN NaN 3 NaN 5]) ##known not-compatible. matlab bug ML2022a: [1 1 3 1 5] ***** test - x=x'; - [COEFF,SCORE,latent,tsquare] = pca(x, "Economy", false); - m=[sqrt(2),sqrt(2),0;-sqrt(2),sqrt(2),0;0,0,2]/2; - m(:,1) = m(:,1)*sign(COEFF(1,1)); - m(:,2) = m(:,2)*sign(COEFF(1,2)); - m(:,3) = m(:,3)*sign(COEFF(3,3)); -***** assert(COEFF,m,10*eps); -***** assert(SCORE(:,1),-m(1:2,1),10*eps); -***** assert(SCORE(:,2:3),zeros(2),10*eps); -***** assert(latent,[1;0;0],10*eps); -***** assert(tsquare,[0.5;0.5],10*eps) +***** function A = testfcn (x,y,z) + if isempty (y) + A = z; + elseif (numel (y) == 1) + A = repelem (x(1), numel(z)); + else + A = interp1 (y, x, z, "linear","extrap"); + endif +***** endfunction + x = reshape ([1:24], 3, 4, 2); + x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; + y = x; + y([1,2,5,6,8,10,13,16,18,22]) = [3,3,4,4,8,11,14,17,17,23]; + assert (fillmissing (x, @testfcn, 3), y); + assert (fillmissing (x, @testfcn, [1 1]), y); + assert (fillmissing (x, @testfcn, 3, "endvalues", "extrap"), y); + assert (fillmissing (x, @testfcn, 3, "samplepoints", [1 2 3]), y); + y= x; + y(isnan(x)) = 99; y(8) = 8; + assert (fillmissing (x, @testfcn, 3, "endvalues", 99), y) + y = x; + y([1,2,5,6,8,10,18,20,21]) = [4,11,11,6,11,7,18,20,21]; + assert (fillmissing (x, @testfcn, 3, 2), y); + assert (fillmissing (x, @testfcn, [1 1], 2), y); + assert (fillmissing (x, @testfcn, 3, 2, "endvalues", "extrap"), y); + assert (fillmissing (x, @testfcn, 3, 2, "samplepoints", [1 2 3 4]), y); + y(1) = NaN; y([6,18,21]) = [9,24,24]; + assert (fillmissing (x, @testfcn, 3, 2, "samplepoints", [0 2 3 4]), y); + y = x; + y([1,2,5,6,10,13,16,18,19,20,21,22]) = 99; y(8) = [8]; + assert (fillmissing (x, @testfcn, 3, "endvalues", 99), y); + y([6,18,20,21]) = [6,18,20,21]; y(8)=99; + assert (fillmissing (x, @testfcn, 3, 2, "endvalues", 99), y); + y([6,18,20,21]) = 99; + assert (fillmissing (x, @testfcn, 3, 3, "endvalues", 99), y); +***** assert (fillmissing ([1 2 3], "constant", 0, "maxgap", 1), [1 2 3]) +***** assert (fillmissing ([1 2 3], "constant", 0, "maxgap", 99), [1 2 3]) +***** assert (fillmissing ([1 NaN 3], "constant", 0, "maxgap", 1), [1 NaN 3]) +***** assert (fillmissing ([1 NaN 3], "constant", 0, "maxgap", 1.999), [1 NaN 3]) +***** assert (fillmissing ([1 NaN 3], "constant", 0, "maxgap", 2), [1 0 3]) +***** assert (fillmissing ([1 NaN NaN 4], "constant", 0, "maxgap", 2), [1 NaN NaN 4]) +***** assert (fillmissing ([1 NaN NaN 4], "constant", 0, "maxgap", 3), [1 0 0 4]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "constant", 0, "maxgap", 2), [1 0 3 0 5]) +***** assert (fillmissing ([NaN 2 NaN], "constant", 0, "maxgap", 0.999), [NaN 2 NaN]) +***** assert (fillmissing ([NaN 2 NaN], "constant", 0, "maxgap", 1), [0 2 0]) +***** assert (fillmissing ([NaN 2 NaN NaN], "constant", 0, "maxgap", 1), [0 2 NaN NaN]) +***** assert (fillmissing ([NaN 2 NaN NaN], "constant", 0, "maxgap", 2), [0 2 0 0]) +***** assert (fillmissing ([NaN NaN NaN], "constant", 0, "maxgap", 1), [NaN NaN NaN]) +***** assert (fillmissing ([NaN NaN NaN], "constant", 0, "maxgap", 3), [NaN NaN NaN]) +***** assert (fillmissing ([NaN NaN NaN], "constant", 0, "maxgap", 999), [NaN NaN NaN]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "constant", 0, "maxgap", 2, "samplepoints", [0 1 2 3 5]), [1 0 3 NaN 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5]', "constant", 0, "maxgap", 2, "samplepoints", [0 1 2 3 5]), [1 0 3 NaN 5]') +***** assert (fillmissing ([1 NaN 3 NaN 5], "constant", 0, "maxgap", 2, "samplepoints", [0 2 3 4 5]), [1 NaN 3 0 5]) +***** assert (fillmissing ([1 NaN 3 NaN 5; 1 NaN 3 NaN 5], "constant", 0, 2, "maxgap", 2, "samplepoints", [0 2 3 4 5]), [1 NaN 3 0 5; 1 NaN 3 0 5]) ***** test - [COEFF,SCORE,latent,tsquare] = pca(x); -***** assert(COEFF,m(:, 1),10*eps); -***** assert(SCORE,-m(1:2,1),10*eps); -***** assert(latent,[1],10*eps); -***** assert(tsquare,[0.5;0.5],10*eps) -***** error pca([1 2; 3 4], "Algorithm", "xxx") -***** error <'centered' requires a boolean value> pca([1 2; 3 4], "Centered", "xxx") -***** error pca([1 2; 3 4], "NumComponents", -4) -***** error pca([1 2; 3 4], "Rows", 1) -***** error pca([1 2; 3 4], "Weights", [1 2 3]) -***** error pca([1 2; 3 4], "Weights", [-1 2]) -***** error pca([1 2; 3 4], "VariableWeights", [-1 2]) -***** error pca([1 2; 3 4], "VariableWeights", "xxx") -***** error pca([1 2; 3 4], "XXX", 1) -32 tests, 31 passed, 1 known failure, 0 skipped -[inst/pcares.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/pcares.m + x = cat (3, [1, 2, NaN; 4, NaN, NaN], [NaN, 2, 3; 4, 5, NaN]); + assert (fillmissing (x, "constant", 0, "maxgap", 0.1), x); + y = x; + y([4,7,12]) = 0; + assert (fillmissing (x, "constant", 0, "maxgap", 1), y); + assert (fillmissing (x, "constant", 0, 1, "maxgap", 1), y); + y = x; + y([5,7,12]) = 0; + assert (fillmissing (x, "constant", 0, 2, "maxgap", 1), y); + y = x; + y([4,5,7]) = 0; + assert (fillmissing (x, "constant", 0, 3, "maxgap", 1), y); +***** test + x = cat (3, [1, 2, NaN; 4, NaN, NaN], [NaN, 2, 3; 4, 5, NaN]); + [~, idx] = fillmissing (x, "constant", 0, "maxgap", 1); + assert (idx, logical (cat (3, [0 0 0; 0 1 0], [1 0 0; 0 0 1]))); + [~, idx] = fillmissing (x, "constant", 0, 1, "maxgap", 1); + assert (idx, logical (cat (3, [0 0 0; 0 1 0], [1 0 0; 0 0 1]))); + [~, idx] = fillmissing (x, "constant", 0, 2, "maxgap", 1); + assert (idx, logical (cat (3, [0 0 1; 0 0 0], [1 0 0; 0 0 1]))); + [~, idx] = fillmissing (x, "constant", 0, 3, "maxgap", 1); + assert (idx, logical (cat (3, [0 0 1; 0 1 0], [1 0 0; 0 0 0]))); +***** test + x = [NaN, 2, 3]; + [~,idx] = fillmissing (x, "previous"); + assert (idx, logical ([0 0 0])); + [~,idx] = fillmissing (x, "movmean", 1); + assert (idx, logical ([0 0 0])); + x = [1:3;4:6;7:9]; + x([2,4,7,9]) = NaN; + [~,idx] = fillmissing (x, "linear"); + assert (idx, logical ([0 1 0;1 0 0;0 0 0])); + [~,idx] = fillmissing (x, "movmean", 2); + assert (idx, logical ([0 0 0;1 0 0;0 0 1])); + [A, idx] = fillmissing ([1 2 3 NaN NaN], 'movmean',2); + assert (A, [1 2 3 3 NaN]); + assert (idx, logical([0 0 0 1 0])); + [A, idx] = fillmissing ([1 2 3 NaN NaN], 'movmean',3); + assert (A, [1 2 3 3 NaN]); + assert (idx, logical([0 0 0 1 0])); + [A, idx] = fillmissing ([1 2 NaN NaN NaN], 'movmedian', 2); + assert (A, [1 2 2 NaN NaN]); + assert (idx, logical([0 0 1 0 0])); + [A, idx] = fillmissing ([1 2 3 NaN NaN], 'movmedian', 3); + assert (A, [1 2 3 3 NaN]); + assert (idx, logical([0 0 0 1 0])); + [A, idx] = fillmissing ([1 NaN 1 NaN 1], @(x,y,z) z, 3); + assert (A, [1 2 1 4 1]); + assert (idx, logical([0 1 0 1 0])); + [A, idx] = fillmissing ([1 NaN 1 NaN 1], @(x,y,z) NaN (size (z)), 3); + assert (A, [1 NaN 1 NaN 1]); + assert (idx, logical([0 0 0 0 0])); +***** assert (fillmissing ([1 2 3], "constant", 99, "missinglocations", logical([0 0 0])), [1 2 3]) +***** assert (fillmissing ([1 2 3], "constant", 99, "missinglocations", logical([1 1 1])), [99 99 99]) +***** assert (fillmissing ([1 NaN 2 3 NaN], "constant", 99, "missinglocations", logical([1 0 1 0 1])), [99 NaN 99 3 99]) +***** assert (fillmissing ([1 NaN 3 NaN 5], "constant", NaN, "missinglocations", logical([0 1 1 1 0])), [1 NaN NaN NaN 5]) +***** assert (fillmissing (["foo ";" bar"], "constant", 'X', "missinglocations", logical([0 0 0 0; 0 0 0 0])), ["foo ";" bar"]) +***** assert (fillmissing (["foo ";" bar"], "constant", 'X', "missinglocations", logical([1 0 1 0; 0 1 1 0])), ["XoX ";" XXr"]) +***** assert (fillmissing ({"foo","", "bar"}, "constant", 'X', "missinglocations", logical([0 0 0])), {"foo","", "bar"}) +***** assert (fillmissing ({"foo","", "bar"}, "constant", 'X', "missinglocations", logical([1 1 0])), {"X","X","bar"}) +***** test + [~,idx] = fillmissing ([1 NaN 3 NaN 5], "constant", NaN); + assert (idx, logical([0 0 0 0 0])); + [~,idx] = fillmissing ([1 NaN 3 NaN 5], "constant", NaN, "missinglocations", logical([0 1 1 1 0])); + assert (idx, logical([0 1 1 1 0])); + [A, idx] = fillmissing ([1 2 NaN 1 NaN], 'movmean', 3.1, 'missinglocations', logical([0 0 1 1 0])); + assert (A, [1 2 2 NaN NaN]); + assert (idx, logical([0 0 1 0 0])); + [A, idx] = fillmissing ([1 2 NaN NaN NaN], 'movmean', 2, 'missinglocations', logical([0 0 1 1 0])); + assert (A, [1 2 2 NaN NaN]); + assert (idx, logical([0 0 1 0 0])); + [A, idx] = fillmissing ([1 2 NaN 1 NaN], 'movmean', 3, 'missinglocations', logical([0 0 1 1 0])); + assert (A, [1 2 2 NaN NaN]); + assert (idx, logical([0 0 1 0 0])); + [A, idx] = fillmissing ([1 2 NaN NaN NaN], 'movmean', 3, 'missinglocations', logical([0 0 1 1 0])); + assert (A, [1 2 2 NaN NaN]); + assert (idx, logical([0 0 1 0 0])); + [A, idx] = fillmissing ([1 2 NaN NaN NaN], 'movmedian', 2, 'missinglocations', logical([0 0 1 1 0])); + assert (A, [1 2 2 NaN NaN]); + assert (idx, logical([0 0 1 0 0])); + [A, idx] = fillmissing ([1 2 NaN NaN NaN], 'movmedian', 3, 'missinglocations', logical([0 0 1 1 0])); + assert (A, [1 2 2 NaN NaN]); + assert (idx, logical([0 0 1 0 0])); + [A, idx] = fillmissing ([1 2 NaN NaN NaN], 'movmedian', 3.1, 'missinglocations', logical([0 0 1 1 0])); + assert (A, [1 2 2 NaN NaN]); + assert (idx, logical([0 0 1 0 0])); + [A, idx] = fillmissing ([1 NaN 1 NaN 1], @(x,y,z) ones (size (z)), 3, "missinglocations", logical([0 1 0 1 1])); + assert (A, [1 1 1 1 1]); + assert (idx, logical([0 1 0 1 1])); + [A, idx] = fillmissing ([1 NaN 1 NaN 1], @(x,y,z) NaN (size (z)), 3, "missinglocations", logical([0 1 0 1 1])); + assert (A, [1 NaN 1 NaN NaN]); + assert (idx, logical([0 0 0 0 0])); +***** assert (fillmissing (' foo bar ', "constant", 'X'), 'XfooXbarX') +***** assert (fillmissing ([' foo';'bar '], "constant", 'X'), ['Xfoo';'barX']) +***** assert (fillmissing ([' foo';'bar '], "next"), ['bfoo';'bar ']) +***** assert (fillmissing ([' foo';'bar '], "next", 1), ['bfoo';'bar ']) +***** assert (fillmissing ([' foo';'bar '], "previous"), [' foo';'baro']) +***** assert (fillmissing ([' foo';'bar '], "previous", 1), [' foo';'baro']) +***** assert (fillmissing ([' foo';'bar '], "nearest"), ['bfoo';'baro']) +***** assert (fillmissing ([' foo';'bar '], "nearest", 1), ['bfoo';'baro']) +***** assert (fillmissing ([' foo';'bar '], "next", 2), ['ffoo';'bar ']) +***** assert (fillmissing ([' foo';'bar '], "previous", 2), [' foo';'barr']) +***** assert (fillmissing ([' foo';'bar '], "nearest", 2), ['ffoo';'barr']) +***** assert (fillmissing ([' foo';'bar '], "next", 3), [' foo';'bar ']) +***** assert (fillmissing ([' foo';'bar '], "previous", 3), [' foo';'bar ']) +***** assert (fillmissing ([' foo';'bar '], "nearest", 3), [' foo';'bar ']) +***** assert (fillmissing ({'foo','bar'}, "constant", 'a'), {'foo','bar'}) +***** assert (fillmissing ({'foo','bar'}, "constant", {'a'}), {'foo','bar'}) +***** assert (fillmissing ({'foo', '', 'bar'}, "constant", 'a'), {'foo', 'a', 'bar'}) +***** assert (fillmissing ({'foo', '', 'bar'}, "constant", {'a'}), {'foo', 'a', 'bar'}) +***** assert (fillmissing ({'foo', '', 'bar'}, "previous"), {'foo', 'foo', 'bar'}) +***** assert (fillmissing ({'foo', '', 'bar'}, "next"), {'foo', 'bar', 'bar'}) +***** assert (fillmissing ({'foo', '', 'bar'}, "nearest"), {'foo', 'bar', 'bar'}) +***** assert (fillmissing ({'foo', '', 'bar'}, "previous", 2), {'foo', 'foo', 'bar'}) +***** assert (fillmissing ({'foo', '', 'bar'}, "next", 2), {'foo', 'bar', 'bar'}) +***** assert (fillmissing ({'foo', '', 'bar'}, "nearest", 2), {'foo', 'bar', 'bar'}) +***** assert (fillmissing ({'foo', '', 'bar'}, "previous", 1), {'foo', '', 'bar'}) +***** assert (fillmissing ({'foo', '', 'bar'}, "previous", 1), {'foo', '', 'bar'}) +***** assert (fillmissing ({'foo', '', 'bar'}, "next", 1), {'foo', '', 'bar'}) +***** assert (fillmissing ({'foo', '', 'bar'}, "nearest", 1), {'foo', '', 'bar'}) +***** assert (fillmissing ("abc ", @(x,y,z) x+y+z, 2), "abcj") +***** assert (fillmissing ({'foo', '', 'bar'}, @(x,y,z) x(1), 3), {'foo','foo','bar'}) +***** test + [A, idx] = fillmissing (" a b c", "constant", " "); + assert (A, " a b c"); + assert (idx, logical([0 0 0 0 0 0])); + [A, idx] = fillmissing ({"foo", "", "bar", ""}, "constant", ""); + assert (A, {"foo", "", "bar", ""}); + assert (idx, logical([0 0 0 0])); + [A, idx] = fillmissing ({"foo", "", "bar", ""}, "constant", {""}); + assert (A, {"foo", "", "bar", ""}); + assert (idx, logical([0 0 0 0])); + [A,idx] = fillmissing (' f o o ', @(x,y,z) repelem ("a", numel (z)), 3); + assert (A, "afaoaoa"); + assert (idx, logical([1 0 1 0 1 0 1])); + [A,idx] = fillmissing (' f o o ', @(x,y,z) repelem (" ", numel (z)), 3); + assert (A, " f o o "); + assert (idx, logical([0 0 0 0 0 0 0])); + [A,idx] = fillmissing ({'','foo',''}, @(x,y,z) repelem ({'a'}, numel (z)), 3); + assert (A, {'a','foo','a'}); + assert (idx, logical([1 0 1])); + [A,idx] = fillmissing ({'','foo',''}, @(x,y,z) repelem ({''}, numel (z)), 3); + assert (A, {'','foo',''}); + assert (idx, logical([0 0 0])); +***** assert (fillmissing (logical ([1 0 1 0 1]), "constant", true), logical ([1 0 1 0 1])) +***** assert (fillmissing (logical ([1 0 1 0 1]), "constant", false, 'missinglocations', logical([1 0 1 0 1])), logical ([0 0 0 0 0])) +***** assert (fillmissing (logical ([1 0 1 0 1]), "previous", 'missinglocations', logical([1 0 1 0 1])), logical ([1 0 0 0 0])) +***** assert (fillmissing (logical ([1 0 1 0 1]), "next", 'missinglocations', logical([1 0 1 0 1])), logical ([0 0 0 0 1])) +***** assert (fillmissing (logical ([1 0 1 0 1]), "nearest", 'missinglocations', logical([1 0 1 0 1])), logical ([0 0 0 0 0])) +***** assert (fillmissing (logical ([1 0 1 0 1]), @(x,y,z) false(size(z)), 3), logical ([1 0 1 0 1])) +***** assert (fillmissing (logical ([1 0 1 0 1]), @(x,y,z) false(size(z)), 3, 'missinglocations', logical([1 0 1 0 1])), logical ([0 0 0 0 0])) +***** assert (fillmissing (logical ([1 0 1 0 1]), @(x,y,z) false(size(z)), [2 0], 'missinglocations', logical([1 0 1 0 1])), logical ([1 0 0 0 0])) +***** test + x = logical ([1 0 1 0 1]); + [~,idx] = fillmissing (x, "constant", true); + assert (idx, logical([0 0 0 0 0])); + [~,idx] = fillmissing (x, "constant", false, 'missinglocations', logical([1 0 1 0 1])); + assert (idx, logical([1 0 1 0 1])); + [~,idx] = fillmissing (x, "constant", true, 'missinglocations', logical([1 0 1 0 1])); + assert (idx, logical([1 0 1 0 1])); + [~,idx] = fillmissing (x, "previous", 'missinglocations', logical([1 0 1 0 1])); + assert (idx, logical([0 0 1 0 1])); + [~,idx] = fillmissing (x, "next", 'missinglocations', logical([1 0 1 0 1])); + assert (idx, logical([1 0 1 0 0])); + [~,idx] = fillmissing (x, "nearest", 'missinglocations', logical([1 0 1 0 1])); + assert (idx, logical([1 0 1 0 1])); + [~,idx] = fillmissing (x, @(x,y,z) false(size(z)), 3); + assert (idx, logical ([0 0 0 0 0])) + [~,idx] = fillmissing (x, @(x,y,z) false(size(z)), 3, 'missinglocations', logical([1 0 1 0 1])); + assert (idx, logical ([1 0 1 0 1])) + [~,idx] = fillmissing (x, @(x,y,z) false(size(z)), [2 0], 'missinglocations', logical([1 0 1 0 1])); + assert (idx, logical ([0 0 1 0 1])) +***** assert (fillmissing (int32 ([1 2 3 4 5]), "constant", 0), int32 ([1 2 3 4 5])) +***** assert (fillmissing (int32 ([1 2 3 4 5]), "constant", 0,'missinglocations', logical([1 0 1 0 1])), int32 ([0 2 0 4 0])) +***** assert (fillmissing (int32 ([1 2 3 4 5]), "previous", 'missinglocations', logical([1 0 1 0 1])), int32 ([1 2 2 4 4])) +***** assert (fillmissing (int32 ([1 2 3 4 5]), "next", 'missinglocations', logical([1 0 1 0 1])), int32 ([2 2 4 4 5])) +***** assert (fillmissing (int32 ([1 2 3 4 5]), "nearest", 'missinglocations', logical([1 0 1 0 1])), int32 ([2 2 4 4 4])) +***** assert (fillmissing (int32 ([1 2 3 4 5]), @(x,y,z) z+10, 3), int32 ([1 2 3 4 5])) +***** assert (fillmissing (int32 ([1 2 3 4 5]), @(x,y,z) z+10, 3, 'missinglocations', logical([1 0 1 0 1])), int32 ([11 2 13 4 15])) +***** assert (fillmissing (int32 ([1 2 3 4 5]), @(x,y,z) z+10, [2 0], 'missinglocations', logical([1 0 1 0 1])), int32 ([1 2 13 4 15])) +***** test + x = int32 ([1 2 3 4 5]); + [~,idx] = fillmissing (x, "constant", 0); + assert (idx, logical([0 0 0 0 0])); + [~,idx] = fillmissing (x, "constant", 0, 'missinglocations', logical([1 0 1 0 1])); + assert (idx, logical([1 0 1 0 1])); + [~,idx] = fillmissing (x, "constant", 3, 'missinglocations', logical([0 0 1 0 0])); + assert (idx, logical([0 0 1 0 0])); + [~,idx] = fillmissing (x, "previous", 'missinglocations', logical([1 0 1 0 1])); + assert (idx, logical([0 0 1 0 1])); + [~,idx] = fillmissing (x, "next", 'missinglocations', logical([1 0 1 0 1])); + assert (idx, logical([1 0 1 0 0])); + [~,idx] = fillmissing (x, "nearest", 'missinglocations', logical([1 0 1 0 1])); + assert (idx, logical([1 0 1 0 1])); + [~,idx] = fillmissing (x, @(x,y,z) z+10, 3); + assert (idx, logical([0 0 0 0 0])); + [~,idx] = fillmissing (x, @(x,y,z) z+10, 3, 'missinglocations', logical([1 0 1 0 1])); + assert (idx, logical([1 0 1 0 1])); + [~,idx] = fillmissing (x, @(x,y,z) z+10, [2 0], 'missinglocations', logical([1 0 1 0 1])); + assert (idx, logical([0 0 1 0 1])); +***** test + [A, idx] = fillmissing ([struct struct], "constant", 1); + assert (A, [struct struct]) + assert (idx, [false false]) +***** error fillmissing () +***** error fillmissing (1) +***** error fillmissing (1,2,3,4,5,6,7,8,9,10,11,12,13) +***** error fillmissing (1, 2) +***** error fillmissing (1, "foo") +***** error fillmissing (1, @(x) x, 1) +***** error fillmissing (1, @(x,y) x+y, 1) +***** error fillmissing ("a b c", "linear") +***** error fillmissing ({'a','b'}, "linear") +***** error <'movmean' and 'movmedian' methods only valid for numeric> fillmissing ("a b c", "movmean", 2) +***** error <'movmean' and 'movmedian' methods only valid for numeric> fillmissing ({'a','b'}, "movmean", 2) +***** error <'constant' method must be followed by> fillmissing (1, "constant") +***** error fillmissing (1, "constant", []) +***** error fillmissing (1, "constant", "a") +***** error fillmissing ("a", "constant", 1) +***** error fillmissing ("a", "constant", {"foo"}) +***** error fillmissing ({"foo"}, "constant", 1) +***** error fillmissing (1, "movmean") +***** error fillmissing (1, "movmedian") +***** error fillmissing (1, "constant", 1, 0) +***** error fillmissing (1, "constant", 1, -1) +***** error fillmissing (1, "constant", 1, [1 2]) +***** error fillmissing (1, "constant", 1, "samplepoints") +***** error fillmissing (1, "constant", 1, "foo") +***** error fillmissing (1, "constant", 1, 1, "foo") +***** error fillmissing (1, "constant", 1, 2, {1}, 4) +***** error fillmissing ([1 2 3], "constant", 1, 2, "samplepoints", [1 2]) +***** error fillmissing ([1 2 3], "constant", 1, 2, "samplepoints", [3 1 2]) +***** error fillmissing ([1 2 3], "constant", 1, 2, "samplepoints", [1 1 2]) +***** error fillmissing ([1 2 3], "constant", 1, 2, "samplepoints", "abc") +***** error fillmissing ([1 2 3], "constant", 1, 2, "samplepoints", logical([1 1 1])) +***** error fillmissing ([1 2 3], "constant", 1, 1, "samplepoints", [1 2 3]) +***** error fillmissing ('foo', "next", "endvalues", 1) +***** error fillmissing (1, "constant", 1, 1, "endvalues", "foo") +***** error fillmissing ([1 2 3], "constant", 1, 2, "endvalues", [1 2 3]) +***** error fillmissing ([1 2 3], "constant", 1, 1, "endvalues", [1 2]) +***** error fillmissing (randi(5,4,3,2), "constant", 1, 3, "endvalues", [1 2]) +***** error fillmissing (1, "constant", 1, 1, "endvalues", {1}) +***** error fillmissing (1, "constant", 1, 2, "foo", 4) +***** error fillmissing (struct, "constant", 1, "missinglocations", false) +***** error fillmissing (1, "constant", 1, 2, "maxgap", 1, "missinglocations", false) +***** error fillmissing (1, "constant", 1, 2, "missinglocations", false, "maxgap", 1) +***** error fillmissing (1, "constant", 1, "replacevalues", true) +***** error fillmissing (1, "constant", 1, "datavariables", 'Varname') +***** error fillmissing (1, "constant", 1, 2, "missinglocations", 1) +***** error fillmissing (1, "constant", 1, 2, "missinglocations", 'a') +***** error fillmissing (1, "constant", 1, 2, "missinglocations", [true false]) +***** error fillmissing (true, "linear", "missinglocations", true) +***** error fillmissing (int8(1), "linear", "missinglocations", true) +***** error fillmissing (true, "next", "missinglocations", true, "EndValues", "linear") +***** error fillmissing (true, "next", "EndValues", "linear", "missinglocations", true) +***** error fillmissing (int8(1), "next", "missinglocations", true, "EndValues", "linear") +***** error fillmissing (int8(1), "next", "EndValues", "linear", "missinglocations", true) +***** error fillmissing (1, "constant", 1, 2, "maxgap", true) +***** error fillmissing (1, "constant", 1, 2, "maxgap", 'a') +***** error fillmissing (1, "constant", 1, 2, "maxgap", [1 2]) +***** error fillmissing (1, "constant", 1, 2, "maxgap", 0) +***** error fillmissing (1, "constant", 1, 2, "maxgap", -1) +***** error fillmissing ([1 2 3], "constant", [1 2 3]) +***** error fillmissing ([1 2 3]', "constant", [1 2 3]) +***** error fillmissing ([1 2 3]', "constant", [1 2 3], 1) +***** error fillmissing ([1 2 3], "constant", [1 2 3], 2) +***** error fillmissing (randi(5,4,3,2), "constant", [1 2], 1) +***** error fillmissing (randi(5,4,3,2), "constant", [1 2], 2) +***** error fillmissing (randi(5,4,3,2), "constant", [1 2], 3) +***** error fillmissing (1, @(x,y,z) x+y+z) +***** error fillmissing ([1 NaN 2], @(x,y,z) [1 2], 2) +378 tests, 377 passed, 0 known failure, 1 skipped +[inst/x2fx.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/x2fx.m +***** test + X = [1, 10; 2, 20; 3, 10; 4, 20; 5, 15; 6, 15]; + D = x2fx(X,'quadratic'); + assert (D(1,:) , [1, 1, 10, 10, 1, 100]); + assert (D(2,:) , [1, 2, 20, 40, 4, 400]); +***** test + X = [1, 10; 2, 20; 3, 10; 4, 20; 5, 15; 6, 15]; + model = [0, 0; 1, 0; 0, 1; 1, 1; 2, 0]; + D = x2fx(X,model); + assert (D(1,:) , [1, 1, 10, 10, 1]); + assert (D(2,:) , [1, 2, 20, 40, 4]); + assert (D(4,:) , [1, 4, 20, 80, 16]); +***** error x2fx ([1, 10; 2, 20; 3, 10], [0; 1]); +***** error x2fx ([1, 10, 15; 2, 20, 40; 3, 10, 25], [0, 0; 1, 0; 0, 1; 1, 1; 2, 0]); +***** error x2fx ([1, 10; 2, 20; 3, 10], "whatever"); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/mahal.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/mahal.m +***** error mahal () +***** error mahal (1, 2, 3) +***** error mahal ("A", "B") +***** error mahal ([1, 2], ["A", "B"]) +***** error mahal (ones (2, 2, 2)) +***** error mahal (ones (2, 2), ones (2, 2, 2)) +***** error mahal (ones (2, 2), ones (2, 3)) +***** test + X = [1 0; 0 1; 1 1; 0 0]; + assert (mahal (X, X), [1.5; 1.5; 1.5; 1.5], 10*eps) + assert (mahal (X, X+1), [7.5; 7.5; 1.5; 13.5], 10*eps) +***** assert (mahal ([true; true], [false; true]), [0.5; 0.5], eps) +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/jackknife.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/jackknife.m ***** demo - x = [ 7 26 6 60; - 1 29 15 52; - 11 56 8 20; - 11 31 8 47; - 7 52 6 33; - 11 55 9 22; - 3 71 17 6; - 1 31 22 44; - 2 54 18 22; - 21 47 4 26; - 1 40 23 34; - 11 66 9 12; - 10 68 8 12]; - - ## As we increase the number of principal components, the norm - ## of the residuals matrix will decrease - r1 = pcares (x,1); - n1 = norm (r1) - r2 = pcares (x,2); - n2 = norm (r2) - r3 = pcares (x,3); - n3 = norm (r3) - r4 = pcares (x,4); - n4 = norm (r4) + for k = 1:1000 + rand ("seed", k); # for reproducibility + x = rand (10, 1); + s(k) = std (x); + jackstat = jackknife (@std, x); + j(k) = 10 * std (x) - 9 * mean (jackstat); + endfor + figure(); + hist ([s', j'], 0:sqrt(1/12)/10:2*sqrt(1/12)) +***** demo + for k = 1:1000 + randn ("seed", k); # for reproducibility + x = randn (1, 50); + rand ("seed", k); # for reproducibility + y = rand (1, 50); + jackstat = jackknife (@(x) std(x{1})/std(x{2}), y, x); + j(k) = 50 * std (y) / std (x) - 49 * mean (jackstat); + v(k) = sumsq ((50 * std (y) / std (x) - 49 * jackstat) - j(k)) / (50 * 49); + endfor + t = (j - sqrt (1 / 12)) ./ sqrt (v); + figure(); + plot (sort (tcdf (t, 49)), ... + "-;Almost linear mapping indicates good fit with t-distribution.;") ***** test - load hald - r1 = pcares (ingredients,1); - r2 = pcares (ingredients,2); - r3 = pcares (ingredients,3); - assert (r1(1,:), [2.0350, 2.8304, -6.8378, 3.0879], 1e-4); - assert (r2(1,:), [-2.4037, 2.6930, -1.6482, 2.3425], 1e-4); - assert (r3(1,:), [ 0.2008, 0.1957, 0.2045, 0.1921], 1e-4); -***** error pcares (ones (20, 3)) -***** error ... - pcares (ones (30, 2), 3) -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/ismissing.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ismissing.m -***** assert (ismissing ([1,NaN,3]), [false,true,false]) -***** assert (ismissing ('abcd f'), [false,false,false,false,true,false]) -***** assert (ismissing ({'xxx','','xyz'}), [false,true,false]) -***** assert (ismissing ({'x','','y'}), [false,true,false]) -***** assert (ismissing ({'x','','y';'z','a',''}), logical([0,1,0;0,0,1])) -***** assert (ismissing ([1,2;NaN,2]), [false,false;true,false]) -***** assert (ismissing ([1,2;NaN,2], 2), [false,true;false,true]) -***** assert (ismissing ([1,2;NaN,2], [1 2]), [true,true;false,true]) -***** assert (ismissing ([1,2;NaN,2], NaN), [false,false;true,false]) -***** assert (ismissing (cat(3,magic(2),magic(2))), logical (zeros (2,2,2))) -***** assert (ismissing (cat(3,magic(2),[1 2;3 NaN])), logical (cat(3,[0,0;0,0],[0,0;0,1]))) -***** assert (ismissing ([1 2; 3 4], [5 1; 2 0]), logical([1 1; 0 0])) -***** assert (ismissing (cat(3,'f oo','ba r')), logical(cat(3,[0 1 0 0],[0 0 1 0]))) -***** assert (ismissing (cat(3,{'foo'},{''},{'bar'})), logical(cat(3,0,1,0))) -***** assert (ismissing (double (NaN)), true) -***** assert (ismissing (single (NaN)), true) -***** assert (ismissing (' '), true) -***** assert (ismissing ({''}), true) -***** assert (ismissing ({' '}), false) -***** assert (ismissing (double (eye(3)), single (1)), logical(eye(3))) -***** assert (ismissing (double (eye(3)), true), logical(eye(3))) -***** assert (ismissing (double (eye(3)), int32 (1)), logical(eye(3))) -***** assert (ismissing (single (eye(3)), true), logical(eye(3))) -***** assert (ismissing (single (eye(3)), double (1)), logical(eye(3))) -***** assert (ismissing (single(eye(3)), int32 (1)), logical(eye(3))) -***** assert (ismissing ({'123', '', 123}), [false false false]) -***** assert (ismissing (logical ([1 0 1])), [false false false]) -***** assert (ismissing (int32 ([1 2 3])), [false false false]) -***** assert (ismissing (uint32 ([1 2 3])), [false false false]) -***** assert (ismissing ({1, 2, 3}), [false false false]) -***** assert (ismissing ([struct struct struct]), [false false false]) -***** assert (ismissing (logical (eye(3)), true), logical(eye(3))) -***** assert (ismissing (logical (eye(3)), double (1)), logical(eye(3))) -***** assert (ismissing (logical (eye(3)), single (1)), logical(eye(3))) -***** assert (ismissing (logical (eye(3)), int32 (1)), logical(eye(3))) -***** assert (ismissing (int32 (eye(3)), int32 (1)), logical(eye(3))) -***** assert (ismissing (int32 (eye(3)), true), logical(eye(3))) -***** assert (ismissing (int32 (eye(3)), double (1)), logical(eye(3))) -***** assert (ismissing (int32 (eye(3)), single (1)), logical(eye(3))) -***** assert (ismissing ([]), logical([])) -***** assert (ismissing (''), logical([])) -***** assert (ismissing (ones (0,1)), logical(ones(0,1))) -***** assert (ismissing (ones (1,0)), logical(ones(1,0))) -***** assert (ismissing (ones (1,2,0)), logical(ones(1,2,0))) -***** error ismissing () -***** error <'indicator' and 'A' must have the same> ismissing ([1 2; 3 4], "abc") -***** error <'indicator' and 'A' must have the same> ismissing ({"", "", ""}, 1) -***** error <'indicator' and 'A' must have the same> ismissing (1, struct) -***** error ismissing (struct, 1) -49 tests, 49 passed, 0 known failure, 0 skipped + ##Example from Quenouille, Table 1 + d=[0.18 4.00 1.04 0.85 2.14 1.01 3.01 2.33 1.57 2.19]; + jackstat = jackknife ( @(x) 1/mean(x), d ); + assert ( 10 / mean(d) - 9 * mean(jackstat), 0.5240, 1e-5 ); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/optimalleaforder.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/optimalleaforder.m +***** demo + randn ("seed", 5) # for reproducibility + X = randn (10, 2); + D = pdist (X); + tree = linkage(D, 'average'); + optimalleaforder (tree, D, 'Transformation', 'linear') +***** error optimalleaforder () +***** error optimalleaforder (1) +***** error optimalleaforder (ones (2, 2), 1) +***** error optimalleaforder ([1 2 3], [1 2; 3 4], "criteria", 5) +***** error optimalleaforder ([1 2 1], [1 2 3]) +***** error optimalleaforder ([1 2 1], 1, "xxx", "xxx") +***** error optimalleaforder ([1 2 1], 1, "Transformation", "xxx") +7 tests, 7 passed, 0 known failure, 0 skipped [inst/qrandn.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/qrandn.m ***** demo @@ -26964,2411 +22589,4467 @@ z = qrandn (q, s); assert (isnumeric (z) && isequal (size (z), s)); 6 tests, 6 passed, 0 known failure, 0 skipped -[inst/squareform.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/squareform.m -***** shared v, m - v = 1:6; - m = [0 1 2 3;1 0 4 5;2 4 0 6;3 5 6 0]; -***** assert (squareform (v), m) -***** assert (squareform (squareform (v)), v) -***** assert (squareform (m), v) -***** assert (squareform (v'), m) -***** assert (squareform (1), [0 1;1 0]) -***** assert (squareform (1, "tomatrix"), [0 1; 1 0]) -***** assert (squareform (0, "tovector"), zeros (1, 0)) -***** warning squareform ([0 1 2; 3 0 4; 5 6 0]); -***** test - for c = {@single, @double, @uint8, @uint32, @uint64} - f = c{1}; - assert (squareform (f (v)), f (m)) - assert (squareform (f (m)), f (v)) - endfor -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/cluster.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cluster.m -***** error cluster () -***** error cluster ([1 1], "Cutoff", 1) -***** error cluster ([1 2 1], "Bogus", 1) -***** error cluster ([1 2 1], "Cutoff", -1) -***** error cluster ([1 2 1], "Cutoff", 1, "Bogus", 1) +[inst/evalclusters.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/evalclusters.m +***** error evalclusters () +***** error evalclusters ([1 1;0 1]) +***** error evalclusters ([1 1;0 1], "kmeans") +***** error <'x' must be a numeric*> evalclusters ("abc", "kmeans", "gap") +***** error evalclusters ([1 1;0 1], "xxx", "gap") +***** error evalclusters ([1 1;0 1], [1 2], "gap") +***** error evalclusters ([1 1;0 1], 1.2, "gap") +***** error evalclusters ([1 1;0 1], [1; 2], 123) +***** error evalclusters ([1 1;0 1], [1; 2], "xxx") +***** error <'KList' can be empty*> evalclusters ([1 1;0 1], "kmeans", "gap") +***** error evalclusters ([1 1;0 1], [1; 2], "gap", 1) +***** error evalclusters ([1 1;0 1], [1; 2], "gap", 1, 1) +***** error evalclusters ([1 1;0 1], [1; 2], "gap", "xxx", 1) +***** error <'KList'*> evalclusters ([1 1;0 1], [1; 2], "gap", "KList", [-1 0]) +***** error <'KList'*> evalclusters ([1 1;0 1], [1; 2], "gap", "KList", [1 .5]) +***** error <'KList'*> evalclusters ([1 1;0 1], [1; 2], "gap", "KList", [1 1; 1 1]) +***** error evalclusters ([1 1;0 1], [1; 2], "gap", ... + "distance", "a") +***** error evalclusters ([1 1;0 1], [1; 2], "daviesbouldin", ... + "distance", "a") +***** error evalclusters ([1 1;0 1], [1; 2], "gap", ... + "clusterpriors", "equal") +***** error evalclusters ([1 1;0 1], [1; 2], ... + "silhouette", "clusterpriors", "xxx") +***** error <'clust' must be a clustering*> evalclusters ([1 1;0 1], [1; 2], "gap") ***** test -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/boxplot.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/boxplot.m -***** demo - axis ([0, 3]); - randn ("seed", 1); # for reproducibility - girls = randn (10, 1) * 5 + 140; - randn ("seed", 2); # for reproducibility - boys = randn (13, 1) * 8 + 135; - boxplot ({girls, boys}); - set (gca (), "xtick", [1 2], "xticklabel", {"girls", "boys"}) - title ("Grade 3 heights"); -***** demo - randn ("seed", 7); # for reproducibility - A = randn (10, 1) * 5 + 140; - randn ("seed", 8); # for reproducibility - B = randn (25, 1) * 8 + 135; - randn ("seed", 9); # for reproducibility - C = randn (20, 1) * 6 + 165; - data = [A; B; C]; - groups = [(ones (10, 1)); (ones (25, 1) * 2); (ones (20, 1) * 3)]; - labels = {"Team A", "Team B", "Team C"}; - pos = [2, 1, 3]; - boxplot (data, groups, "Notch", "on", "Labels", labels, "Positions", pos, ... - "OutlierTags", "on", "BoxStyle", "filled"); - title ("Example of Group splitting with paired vectors"); + load fisheriris; + eva = evalclusters(meas, "kmeans", "calinskiharabasz", "KList", [1:6]); + assert(isa(eva, "CalinskiHarabaszEvaluation")); + assert(eva.NumObservations, 150); + assert(eva.OptimalK, 3); + assert(eva.InspectedK, [1 2 3 4 5 6]); +22 tests, 22 passed, 0 known failure, 0 skipped +[inst/probit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/probit.m +***** assert (probit ([-1, 0, 0.5, 1, 2]), [NaN, -Inf, 0, Inf, NaN]) +***** assert (probit ([0.2, 0.99]), norminv ([0.2, 0.99])) +***** error probit () +***** error probit (1, 2) +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/knnsearch.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/knnsearch.m ***** demo - randn ("seed", 1); # for reproducibility - data = randn (100, 9); - boxplot (data, "notch", "on", "boxstyle", "filled", ... - "colors", "ygcwkmb", "whisker", 1.2); - title ("Example of different colors specified with characters"); + ## find 10 nearest neighbour of a point using different distance metrics + ## and compare the results by plotting + load fisheriris + X = meas(:,3:4); + Y = species; + point = [5, 1.45]; + + ## calculate 10 nearest-neighbours by minkowski distance + [id, d] = knnsearch (X, point, "K", 10); + + ## calculate 10 nearest-neighbours by minkowski distance + [idm, dm] = knnsearch (X, point, "K", 10, "distance", "minkowski", "p", 5); + + ## calculate 10 nearest-neighbours by chebychev distance + [idc, dc] = knnsearch (X, point, "K", 10, "distance", "chebychev"); + + ## plotting the results + gscatter (X(:,1), X(:,2), species, [.75 .75 0; 0 .75 .75; .75 0 .75], ".", 20); + title ("Fisher's Iris Data - Nearest Neighbors with different types of distance metrics"); + xlabel("Petal length (cm)"); + ylabel("Petal width (cm)"); + + line (point(1), point(2), "marker", "X", "color", "k", ... + "linewidth", 2, "displayname", "query point") + line (X(id,1), X(id,2), "color", [0.5 0.5 0.5], "marker", "o", ... + "linestyle", "none", "markersize", 10, "displayname", "eulcidean") + line (X(idm,1), X(idm,2), "color", [0.5 0.5 0.5], "marker", "d", ... + "linestyle", "none", "markersize", 10, "displayname", "Minkowski") + line (X(idc,1), X(idc,2), "color", [0.5 0.5 0.5], "marker", "p", ... + "linestyle", "none", "markersize", 10, "displayname", "chebychev") + xlim ([4.5 5.5]); + ylim ([1 2]); + axis square; ***** demo - randn ("seed", 5); # for reproducibility - data = randn (100, 13); - colors = [0.7 0.7 0.7; ... - 0.0 0.4 0.9; ... - 0.7 0.4 0.3; ... - 0.7 0.1 0.7; ... - 0.8 0.7 0.4; ... - 0.1 0.8 0.5; ... - 0.9 0.9 0.2]; - boxplot (data, "notch", "on", "boxstyle", "filled", ... - "colors", colors, "whisker", 1.3, "boxwidth", "proportional"); - title ("Example of different colors specified as RGB values"); -***** error boxplot ("a") -***** error boxplot ({[1 2 3], "a"}) -***** error boxplot ([1 2 3], 1, {2, 3}) -***** error boxplot ([1 2 3], {"a", "b"}) -***** error <'Notch' input argument accepts> boxplot ([1:10], "notch", "any") -***** error boxplot ([1:10], "notch", i) -***** error boxplot ([1:10], "notch", {}) -***** error boxplot (1, "symbol", 1) -***** error <'Orientation' input argument accepts only> boxplot (1, "orientation", "diagonal") -***** error boxplot (1, "orientation", {}) -***** error <'Whisker' input argument accepts only> boxplot (1, "whisker", "a") -***** error <'Whisker' input argument accepts only> boxplot (1, "whisker", [1 3]) -***** error <'OutlierTags' input argument accepts only> boxplot (3, "OutlierTags", "maybe") -***** error boxplot (3, "OutlierTags", {}) -***** error <'Sample_IDs' input argument accepts only> boxplot (1, "sample_IDs", 1) -***** error <'BoxWidth' input argument accepts only> boxplot (1, "boxwidth", 2) -***** error <'BoxWidth' input argument accepts only> boxplot (1, "boxwidth", "anything") -***** error <'Widths' input argument accepts only> boxplot (5, "widths", "a") -***** error <'Widths' input argument accepts only> boxplot (5, "widths", [1:4]) -***** error <'Widths' input argument accepts only> boxplot (5, "widths", []) -***** error <'CapWidths' input argument accepts only> boxplot (5, "capwidths", "a") -***** error <'CapWidths' input argument accepts only> boxplot (5, "capwidths", [1:4]) -***** error <'CapWidths' input argument accepts only> boxplot (5, "capwidths", []) -***** error <'BoxStyle' input argument accepts only> boxplot (1, "Boxstyle", 1) -***** error <'BoxStyle' input argument accepts only> boxplot (1, "Boxstyle", "garbage") -***** error <'Positions' input argument accepts only> boxplot (1, "positions", "aa") -***** error <'Labels' input argument accepts only> boxplot (3, "labels", [1 5]) -***** error <'Colors' input argument accepts only> boxplot (1, "colors", {}) -***** error <'Colors' input argument accepts only> boxplot (2, "colors", [1 2 3 4]) -***** error boxplot (randn (10, 3), 'Sample_IDs', {"a", "b"}) -***** error boxplot (rand (3, 3), [1 2]) + ## knnsearch on iris dataset using kdtree method + load fisheriris + X = meas(:,3:4); + gscatter (X(:,1), X(:,2), species, [.75 .75 0; 0 .75 .75; .75 0 .75], ".", 20); + title ("Fisher's iris dataset : Nearest Neighbors with kdtree search"); + + ## new point to be predicted + point = [5 1.45]; + + line (point(1), point(2), "marker", "X", "color", "k", ... + "linewidth", 2, "displayname", "query point") + + ## knnsearch using kdtree method + [idx, d] = knnsearch (X, point, "K", 10, "NSMethod", "kdtree"); + + ## plotting predicted neighbours + line (X(idx,1), X(idx,2), "color", [0.5 0.5 0.5], "marker", "o", ... + "linestyle", "none", "markersize", 10, ... + "displayname", "nearest neighbour") + xlim ([4 6]) + ylim ([1 3]) + axis square + ## details of predicted labels + tabulate (species(idx)) + + ctr = point - d(end); + diameter = 2 * d(end); + ## Draw a circle around the 10 nearest neighbors. + h = rectangle ("position", [ctr, diameter, diameter], "curvature", [1 1]); + + ## here only 8 neighbours are plotted instead of 10 since the dataset + ## contains duplicate values +***** shared X, Y + X = [1, 2, 3, 4; 2, 3, 4, 5; 3, 4, 5, 6]; + Y = [1, 2, 2, 3; 2, 3, 3, 4]; ***** test - hf = figure ("visible", "off"); - unwind_protect - [a, b] = boxplot (rand (10, 3)); - assert (size (a), [7, 3]); - assert (numel (b.box), 3); - assert (numel (b.whisker), 12); - assert (numel (b.median), 3); - unwind_protect_cleanup - close (hf); - end_unwind_protect + [idx, D] = knnsearch (X, Y, "Distance", "euclidean"); + assert (idx, [1; 1]); + assert (D, ones (2, 1) * sqrt (2)); ***** test - hf = figure ("visible", "off"); - unwind_protect - [~, b] = boxplot (rand (10, 3), "BoxStyle", "filled", "colors", "ybc"); - assert (numel (b.box_fill), 3); - unwind_protect_cleanup - close (hf); - end_unwind_protect -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/manovacluster.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/manovacluster.m -***** demo - load carbig - X = [MPG Acceleration Weight Displacement]; - [d, p, stats] = manova1 (X, Origin); - manovacluster (stats) + eucldist = @(v,m) sqrt(sumsq(repmat(v,rows(m),1)-m,2)); + [idx, D] = knnsearch (X, Y, "Distance", eucldist); + assert (idx, [1; 1]); + assert (D, ones (2, 1) * sqrt (2)); ***** test - hf = figure ("visible", "off"); - unwind_protect - load carbig - X = [MPG Acceleration Weight Displacement]; - [d, p, stats] = manova1 (X, Origin); - manovacluster (stats); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** error manovacluster (stats, "some"); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/trimmean.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/trimmean.m + [idx, D] = knnsearch (X, Y, "Distance", "euclidean", "includeties", true); + assert (iscell (idx), true); + assert (iscell (D), true) + assert (idx {1}, [1]); + assert (idx {2}, [1, 2]); + assert (D{1}, ones (1, 1) * sqrt (2)); + assert (D{2}, ones (1, 2) * sqrt (2)); ***** test - x = reshape (1:40, [5, 4, 2]); - x([3, 37]) = -100; - assert (trimmean (x, 10, "all"), 19.4722, 1e-4); + [idx, D] = knnsearch (X, Y, "Distance", "euclidean", "k", 2); + assert (idx, [1, 2; 1, 2]); + assert (D, [sqrt(2), 3.162277660168380; sqrt(2), sqrt(2)], 1e-14); ***** test - x = reshape (1:40, [5, 4, 2]); - x([3, 37]) = -100; - out = trimmean (x, 10, [1, 2]); - assert (out(1,1,1), 10.3889, 1e-4); - assert (out(1,1,2), 29.6111, 1e-4); + [idx, D] = knnsearch (X, Y, "Distance", "seuclidean"); + assert (idx, [1; 1]); + assert (D, ones (2, 1) * sqrt (2)); ***** test - x = reshape (1:40, [5, 4, 2]); - x([3, 37]) = -100; - x([4, 38]) = NaN; - assert (trimmean (x, 10, "all"), 19.3824, 1e-4); + [idx, D] = knnsearch (X, Y, "Distance", "seuclidean", "k", 2); + assert (idx, [1, 2; 1, 2]); + assert (D, [sqrt(2), 3.162277660168380; sqrt(2), sqrt(2)], 1e-14); ***** test - x = reshape (1:40, [5, 4, 2]); - x([3, 37]) = -100; - out = trimmean (x, 10, 1); - assert (out(:,:,1), [-17.6, 8, 13, 18]); - assert (out(:,:,2), [23, 28, 33, 10.6]); + xx = [1, 2; 1, 3; 2, 4; 3, 6]; + yy = [2, 4; 2, 6]; + [idx, D] = knnsearch (xx, yy, "Distance", "mahalanobis"); + assert (idx, [3; 2]); + assert (D, [0; 3.162277660168377], 1e-14); ***** test - x = reshape (1:40, [5, 4, 2]); - x([3, 37]) = -100; - x([4, 38]) = NaN; - out = trimmean (x, 10, 1); - assert (out(:,:,1), [-23, 8, 13, 18]); - assert (out(:,:,2), [23, 28, 33, 3.75]); + [idx, D] = knnsearch (X, Y, "Distance", "minkowski"); + assert (idx, [1; 1]); + assert (D, ones (2, 1) * sqrt (2)); ***** test - x = reshape (1:40, [5, 4, 2]); - x([3, 37]) = -100; - out = trimmean (x, 10, 2); - assert (out(:,:,1), [8.5; 9.5; -15.25; 11.5; 12.5]); - assert (out(:,:,2), [28.5; -4.75; 30.5; 31.5; 32.5]); + [idx, D] = knnsearch (X, Y, "Distance", "minkowski", "p", 3); + assert (idx, [1; 1]); + assert (D, ones (2, 1) * 1.259921049894873, 1e-14); ***** test - x = reshape (1:40, [5, 4, 2]); - x([3, 37]) = -100; - x([4, 38]) = NaN; - out = trimmean (x, 10, 2); - assert (out(:,:,1), [8.5; 9.5; -15.25; 14; 12.5]); - assert (out(:,:,2), [28.5; -4.75; 28; 31.5; 32.5]); + [idx, D] = knnsearch (X, Y, "Distance", "cityblock"); + assert (idx, [1; 1]); + assert (D, [2; 2]); ***** test - x = reshape (1:40, [5, 4, 2]); - x([3, 37]) = -100; - out = trimmean (x, 10, [1, 2, 3]); - assert (out, trimmean (x, 10, "all")); + [idx, D] = knnsearch (X, Y, "Distance", "chebychev"); + assert (idx, [1; 1]); + assert (D, [1; 1]); ***** test - x = reshape (1:40, [5, 4, 2]); - x([3, 37]) = -100; - x([4, 38]) = NaN; - out = trimmean (x, 10, [1, 2]); - assert (out(1,1,1), 10.7647, 1e-4); - assert (out(1,1,2), 29.1176, 1e-4); + [idx, D] = knnsearch (X, Y, "Distance", "cosine"); + assert (idx, [2; 3]); + assert (D, [0.005674536395645; 0.002911214328620], 1e-14); ***** test - x = reshape (1:40, [5, 4, 2]); - x([3, 37]) = -100; - x([4, 38]) = NaN; - out = trimmean (x, 10, [1, 3]); - assert (out, [2.5556, 18, 23, 11.6667], 1e-4); + [idx, D] = knnsearch (X, Y, "Distance", "correlation"); + assert (idx, [1; 1]); + assert (D, ones (2, 1) * 0.051316701949486, 1e-14); ***** test - x = reshape (1:40, [5, 4, 2]); - x([3, 37]) = -100; - x([4, 38]) = NaN; - out = trimmean (x, 10, [2, 3]); - assert (out, [18.5; 2.3750; 3.2857; 24; 22.5], 1e-4); + [idx, D] = knnsearch (X, Y, "Distance", "spearman"); + assert (idx, [1; 1]); + assert (D, ones (2, 1) * 0.051316701949486, 1e-14); ***** test - x = reshape (1:40, [5, 4, 2]); - x([3, 37]) = -100; - x([4, 38]) = NaN; - out = trimmean (x, 10, [1, 2, 3]); - assert (out, trimmean (x, 10, "all")); + [idx, D] = knnsearch (X, Y, "Distance", "hamming"); + assert (idx, [1; 1]); + assert (D, [0.5; 0.5]); ***** test - x = reshape (1:40, [5, 4, 2]); - x([3, 37]) = -100; - x([4, 38]) = NaN; - out = trimmean (x, 10, [2, 3, 5]); - assert (out, [18.5; 2.3750; 3.2857; 24; 22.5], 1e-4); -***** assert (trimmean (reshape (1:40, [5, 4, 2]), 10, 4), reshape(1:40, [5, 4, 2])) -***** assert (trimmean ([], 10), NaN) -***** assert (trimmean ([1;2;3;4;5], 10, 2), [1;2;3;4;5]) -***** error trimmean (1) -***** error trimmean (1,2,3,4,5) -***** error trimmean ([1 2 3 4], -10) -***** error trimmean ([1 2 3 4], 100) -***** error trimmean ([1 2 3 4], 10, "flag") -***** error trimmean ([1 2 3 4], 10, "flag", 1) -***** error ... - trimmean ([1 2 3 4], 10, -1) -***** error ... - trimmean ([1 2 3 4], 10, "floor", -1) -***** error ... - trimmean (reshape (1:40, [5, 4, 2]), 10, [-1, 2]) -***** error ... - trimmean (reshape (1:40, [5, 4, 2]), 10, [1, 2, 2]) -26 tests, 26 passed, 0 known failure, 0 skipped -[inst/kstest.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/kstest.m -***** error kstest () -***** error kstest (ones(2,4)) -***** error kstest ([2,3,5,7,3+3i]) -***** error kstest ([2,3,4,5,6],"tail") -***** error kstest ([2,3,4,5,6],"tail", "whatever") -***** error kstest ([2,3,4,5,6],"badoption", 0.51) -***** error kstest ([2,3,4,5,6],"tail", 0) -***** error kstest ([2,3,4,5,6],"alpha", 0) -***** error kstest ([2,3,4,5,6],"alpha", NaN) -***** error kstest ([NaN,NaN,NaN,NaN,NaN],"tail", "unequal") -***** error kstest ([2,3,4,5,6],"alpha", 0.05, "CDF", [2,3,4;1,3,4;1,2,1]) + [idx, D] = knnsearch (X, Y, "Distance", "jaccard"); + assert (idx, [1; 1]); + assert (D, [0.5; 0.5]); ***** test - load examgrades - [h, p] = kstest (grades(:,1)); - assert (h, true); - assert (p, 7.58603305206105e-107, 1e-14); + [idx, D] = knnsearch (X, Y, "Distance", "jaccard", "k", 2); + assert (idx, [1, 2; 1, 2]); + assert (D, [0.5, 1; 0.5, 0.5]); ***** test - load stockreturns - x = stocks(:,3); - [h,p,k,c] = kstest (x, "Tail", "larger"); - assert (h, true); - assert (p, 5.085438806199252e-05, 1e-14); - assert (k, 0.2197, 1e-4); - assert (c, 0.1207, 1e-4); -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/standardizeMissing.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/standardizeMissing.m -***** assert (standardizeMissing (1, 1), NaN) -***** assert (standardizeMissing (1, 0), 1) -***** assert (standardizeMissing (eye(2), 1), [NaN 0;0 NaN]) -***** assert (standardizeMissing ([1:3;4:6], [2 3; 4 5]), [1, NaN, NaN; NaN, NaN, 6]) -***** assert (standardizeMissing (cat (3,1,2,3,4), 3), cat (3,1,2,NaN,4)) -***** assert (standardizeMissing ('foo', 'a'), 'foo') -***** assert (standardizeMissing ('foo', 'f'), ' oo') -***** assert (standardizeMissing ('foo', 'o'), 'f ') -***** assert (standardizeMissing ('foo', 'oo'), 'f ') -***** assert (standardizeMissing ({'foo'}, 'f'), {'foo'}) -***** assert (standardizeMissing ({'foo'}, {'f'}), {'foo'}) -***** assert (standardizeMissing ({'foo'}, 'test'), {'foo'}) -***** assert (standardizeMissing ({'foo'}, {'test'}), {'foo'}) -***** assert (standardizeMissing ({'foo'}, 'foo'), {''}) -***** assert (standardizeMissing ({'foo'}, {'foo'}), {''}) -***** assert (standardizeMissing (['foo';'bar'], 'oar'), ['f ';'b ']) -***** assert (standardizeMissing (['foo';'bar'], ['o';'a';'r']), ['f ';'b ']) -***** assert (standardizeMissing (['foo';'bar'], ['o ';'ar']), ['f ';'b ']) -***** assert (standardizeMissing ({'foo','bar'}, 'foo'), {'','bar'}) -***** assert (standardizeMissing ({'foo','bar'}, 'f'), {'foo','bar'}) -***** assert (standardizeMissing ({'foo','bar'}, {'foo', 'a'}), {'','bar'}) -***** assert (standardizeMissing ({'foo'}, {'f', 'oo'}), {'foo'}) -***** assert (standardizeMissing ({'foo','bar'}, {'foo'}), {'','bar'}) -***** assert (standardizeMissing ({'foo','bar'}, {'foo', 'a'}), {'','bar'}) -***** assert (standardizeMissing (double (1), single (1)), double (NaN)) -***** assert (standardizeMissing (single (1), single (1)), single (NaN)) -***** assert (standardizeMissing (single (1), double (1)), single (NaN)) -***** assert (standardizeMissing (single (1), true), single (NaN)) -***** assert (standardizeMissing (double (1), int32(1)), double (NaN)) -***** assert (standardizeMissing (true, true), true) -***** assert (standardizeMissing (true, 1), true) -***** assert (standardizeMissing (int32 (1), int32 (1)), int32 (1)) -***** assert (standardizeMissing (int32 (1), 1), int32 (1)) -***** assert (standardizeMissing (uint32 (1), uint32 (1)), uint32 (1)) -***** assert (standardizeMissing (uint32 (1), 1), uint32 (1)) -***** error standardizeMissing (); -***** error standardizeMissing (1); -***** error standardizeMissing (1,2,3); -***** error standardizeMissing ({'abc', 1}, 1); -***** error standardizeMissing (struct ('a','b'), 1); -***** error <'indicator' and 'A' must have > standardizeMissing ([1 2 3], {1}); -***** error <'indicator' and 'A' must have > standardizeMissing ([1 2 3], 'a'); -***** error <'indicator' and 'A' must have > standardizeMissing ([1 2 3], struct ('a', 1)); -***** error <'indicator' and 'A' must have > standardizeMissing ('foo', 1); -***** error <'indicator' and 'A' must have > standardizeMissing ('foo', {1}); -***** error <'indicator' and 'A' must have > standardizeMissing ('foo', {'f'}); -***** error <'indicator' and 'A' must have > standardizeMissing ('foo', struct ('a', 1)); -***** error <'indicator' and 'A' must have > standardizeMissing ({'foo'}, 1); -***** error <'indicator' and 'A' must have > standardizeMissing ({'foo'}, 1); -49 tests, 49 passed, 0 known failure, 0 skipped -[inst/x2fx.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/x2fx.m + a = [1, 5; 1, 2; 2, 2; 1.5, 1.5; 5, 1; 2 -1.34; 1, -3; 4, -4; -3, 1; 8, 9]; + b = [1, 1]; + [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "kdtree", "includeties", true); + assert (iscell (idx), true); + assert (iscell (D), true) + assert (cell2mat (idx), [4, 2, 3, 6, 1, 5, 7, 9]); + assert (cell2mat (D), [0.7071, 1.0000, 1.4142, 2.5447, 4.0000, 4.0000, 4.0000, 4.0000],1e-4); ***** test - X = [1, 10; 2, 20; 3, 10; 4, 20; 5, 15; 6, 15]; - D = x2fx(X,'quadratic'); - assert (D(1,:) , [1, 1, 10, 10, 1, 100]); - assert (D(2,:) , [1, 2, 20, 40, 4, 400]); + a = [1, 5; 1, 2; 2, 2; 1.5, 1.5; 5, 1; 2 -1.34; 1, -3; 4, -4; -3, 1; 8, 9]; + b = [1, 1]; + [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "exhaustive", "includeties", true); + assert (iscell (idx), true); + assert (iscell (D), true) + assert (cell2mat (idx), [4, 2, 3, 6, 1, 5, 7, 9]); + assert (cell2mat (D), [0.7071, 1.0000, 1.4142, 2.5447, 4.0000, 4.0000, 4.0000, 4.0000],1e-4); ***** test - X = [1, 10; 2, 20; 3, 10; 4, 20; 5, 15; 6, 15]; - model = [0, 0; 1, 0; 0, 1; 1, 1; 2, 0]; - D = x2fx(X,model); - assert (D(1,:) , [1, 1, 10, 10, 1]); - assert (D(2,:) , [1, 2, 20, 40, 4]); - assert (D(4,:) , [1, 4, 20, 80, 16]); -***** error x2fx ([1, 10; 2, 20; 3, 10], [0; 1]); -***** error x2fx ([1, 10, 15; 2, 20, 40; 3, 10, 25], [0, 0; 1, 0; 0, 1; 1, 1; 2, 0]); -***** error x2fx ([1, 10; 2, 20; 3, 10], "whatever"); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/friedman.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/friedman.m -***** demo - load popcorn; - friedman (popcorn, 3); -***** demo - load popcorn; - [p, atab] = friedman (popcorn, 3, "off"); - disp (p); + a = [1, 5; 1, 2; 2, 2; 1.5, 1.5; 5, 1; 2 -1.34; 1, -3; 4, -4; -3, 1; 8, 9]; + b = [1, 1]; + [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "kdtree", "includeties", false); + assert (iscell (idx), false); + assert (iscell (D), false) + assert (idx, [4, 2, 3, 6, 1]); + assert (D, [0.7071, 1.0000, 1.4142, 2.5447, 4.0000],1e-4); ***** test - popcorn = [5.5, 4.5, 3.5; 5.5, 4.5, 4.0; 6.0, 4.0, 3.0; ... - 6.5, 5.0, 4.0; 7.0, 5.5, 5.0; 7.0, 5.0, 4.5]; - [p, atab] = friedman (popcorn, 3, "off"); - assert (p, 0.001028853354594794, 1e-14); - assert (atab{2,2}, 99.75, 1e-14); - assert (atab{2,3}, 2, 0); - assert (atab{2,4}, 49.875, 1e-14); - assert (atab{2,5}, 13.75862068965517, 1e-14); - assert (atab{2,6}, 0.001028853354594794, 1e-14); - assert (atab{3,2}, 0.08333333333333215, 1e-14); - assert (atab{3,4}, 0.04166666666666607, 1e-14); - assert (atab{4,3}, 12, 0); + a = [1, 5; 1, 2; 2, 2; 1.5, 1.5; 5, 1; 2 -1.34; 1, -3; 4, -4; -3, 1; 8, 9]; + b = [1, 1]; + [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "exhaustive", "includeties", false); + assert (iscell (idx), false); + assert (iscell (D), false) + assert (idx, [4, 2, 3, 6, 1]); + assert (D, [0.7071, 1.0000, 1.4142, 2.5447, 4.0000],1e-4); ***** test - popcorn = [5.5, 4.5, 3.5; 5.5, 4.5, 4.0; 6.0, 4.0, 3.0; ... - 6.5, 5.0, 4.0; 7.0, 5.5, 5.0; 7.0, 5.0, 4.5]; - [p, atab, stats] = friedman (popcorn, 3, "off"); - assert (atab{5,2}, 116, 0); - assert (atab{5,3}, 17, 0); - assert (stats.source, "friedman"); - assert (stats.n, 2); - assert (stats.meanranks, [8, 4.75, 2.25], 0); - assert (stats.sigma, 2.692582403567252, 1e-14); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/glmfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/glmfit.m + load fisheriris + a = meas; + b = min(meas); + [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "kdtree"); + assert (idx, [42, 9, 14, 39, 13]); + assert (D, [0.5099, 0.9950, 1.0050, 1.0536, 1.1874],1e-4); +***** test + load fisheriris + a = meas; + b = mean(meas); + [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "kdtree"); + assert (idx, [65, 83, 89, 72, 100]); + assert (D, [0.3451, 0.3869, 0.4354, 0.4481, 0.4625],1e-4); +***** test + load fisheriris + a = meas; + b = max(meas); + [idx, D] = knnsearch (a, b, "K", 5, "NSMethod", "kdtree"); + assert (idx, [118, 132, 110, 106, 136]); + assert (D, [0.7280, 0.9274, 1.3304, 1.5166, 1.6371],1e-4); + ***** test + load fisheriris + a = meas; + b = max(meas); + [idx, D] = knnsearch (a, b, "K", 5, "includeties", true); + assert ( iscell (idx), true); + assert ( iscell (D), true); + assert (cell2mat (idx), [118, 132, 110, 106, 136]); + assert (cell2mat (D), [0.7280, 0.9274, 1.3304, 1.5166, 1.6371],1e-4); +***** error knnsearch (1) +***** error ... + knnsearch (ones (4, 5), ones (4)) +***** error ... + knnsearch (ones (4, 2), ones (3, 2), "Distance", "euclidean", "some", "some") +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "scale", ones (1, 5), "P", 3) +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "K", 0) +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "P",-2) +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "scale", ones(4,5), "distance", "euclidean") +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "cov", ["some" "some"]) +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "cov", ones(4,5), "distance", "euclidean") +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "bucketsize", -1) +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "cosine") +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "mahalanobis") +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "correlation") +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "seuclidean") +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "spearman") +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "hamming") +***** error ... + knnsearch (ones (4, 5), ones (1, 5), "NSmethod", "kdtree", "distance", "jaccard") +42 tests, 42 passed, 0 known failure, 0 skipped +[inst/dist_obj/BinomialDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/BinomialDistribution.m +***** shared pd, t + pd = BinomialDistribution (5, 0.5); + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0.0312, 0.1875, 0.5, 0.8125, 0.9688, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.1875, 0.5, 0.8125, 0.9688, NaN], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 2, 2, 3, 3, 5], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 2, 3, 3, 5, NaN], 1e-4); +***** assert (iqr (pd), 1); +***** assert (mean (pd), 2.5, 1e-10); +***** assert (median (pd), 2.5); +***** assert (pdf (pd, [0:5]), [0.0312, 0.1562, 0.3125, 0.3125, 0.1562, 0.0312], 1e-4); +***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (std (pd), 1.1180, 1e-4); +***** assert (var (pd), 1.2500, 1e-4); +***** error ... + BinomialDistribution(Inf, 0.5) +***** error ... + BinomialDistribution(i, 0.5) +***** error ... + BinomialDistribution("a", 0.5) +***** error ... + BinomialDistribution([1, 2], 0.5) +***** error ... + BinomialDistribution(NaN, 0.5) +***** error ... + BinomialDistribution(1, 1.01) +***** error ... + BinomialDistribution(1, -0.01) +***** error ... + BinomialDistribution(1, Inf) +***** error ... + BinomialDistribution(1, i) +***** error ... + BinomialDistribution(1, "a") +***** error ... + BinomialDistribution(1, [1, 2]) +***** error ... + BinomialDistribution(1, NaN) +***** error ... + cdf (BinomialDistribution, 2, "uper") +***** error ... + cdf (BinomialDistribution, 2, 3) +***** shared x + rand ("seed", 2); + x = binornd (5, 0.5, [1, 100]); +***** error ... + paramci (BinomialDistribution.fit (x, 6), "alpha") +***** error ... + paramci (BinomialDistribution.fit (x, 6), "alpha", 0) +***** error ... + paramci (BinomialDistribution.fit (x, 6), "alpha", 1) +***** error ... + paramci (BinomialDistribution.fit (x, 6), "alpha", [0.5 2]) +***** error ... + paramci (BinomialDistribution.fit (x, 6), "alpha", "") +***** error ... + paramci (BinomialDistribution.fit (x, 6), "alpha", {0.05}) +***** error ... + paramci (BinomialDistribution.fit (x, 6), "parameter", "p", ... + "alpha", {0.05}) +***** error ... + paramci (BinomialDistribution.fit (x, 6), ... + "parameter", {"N", "p", "param"}) +***** error ... + paramci (BinomialDistribution.fit (x, 6), "alpha", 0.01, ... + "parameter", {"N", "p", "param"}) +***** error ... + paramci (BinomialDistribution.fit (x, 6), "parameter", "param") +***** error ... + paramci (BinomialDistribution.fit (x, 6), "parameter", "N") +***** error ... + paramci (BinomialDistribution.fit (x, 6), "alpha", 0.01, ... + "parameter", "param") +***** error ... + paramci (BinomialDistribution.fit (x, 6), "NAME", "value") +***** error ... + paramci (BinomialDistribution.fit (x, 6), "alpha", 0.01, ... + "NAME", "value") +***** error ... + paramci (BinomialDistribution.fit (x, 6), "alpha", 0.01, ... + "parameter", "p", "NAME", "value") +***** error ... + plot (BinomialDistribution, "Parent") +***** error ... + plot (BinomialDistribution, "PlotType", 12) +***** error ... + plot (BinomialDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (BinomialDistribution, "PlotType", "pdfcdf") +***** error ... + plot (BinomialDistribution, "Discrete", "pdfcdf") +***** error ... + plot (BinomialDistribution, "Discrete", [1, 0]) +***** error ... + plot (BinomialDistribution, "Discrete", {true}) +***** error ... + plot (BinomialDistribution, "Parent", 12) +***** error ... + plot (BinomialDistribution, "Parent", "hax") +***** error ... + proflik (BinomialDistribution, 2) +***** error ... + proflik (BinomialDistribution.fit (x, 6), 3) +***** error ... + proflik (BinomialDistribution.fit (x, 6), [1, 2]) +***** error ... + proflik (BinomialDistribution.fit (x, 6), {1}) +***** error ... + proflik (BinomialDistribution.fit (x, 6), 2, ones (2)) +***** error ... + proflik (BinomialDistribution.fit (x, 6), 2, "Display") +***** error ... + proflik (BinomialDistribution.fit (x, 6), 2, "Display", 1) +***** error ... + proflik (BinomialDistribution.fit (x, 6), 2, "Display", {1}) +***** error ... + proflik (BinomialDistribution.fit (x, 6), 2, "Display", {"on"}) +***** error ... + proflik (BinomialDistribution.fit (x, 6), 2, "Display", ["on"; "on"]) +***** error ... + proflik (BinomialDistribution.fit (x, 6), 2, "Display", "onnn") +***** error ... + proflik (BinomialDistribution.fit (x, 6), 2, "NAME", "on") +***** error ... + proflik (BinomialDistribution.fit (x, 6), 2, {"NAME"}, "on") +***** error ... + proflik (BinomialDistribution.fit (x, 6), 2, {[1 2 3]}, "Display", "on") +***** error ... + truncate (BinomialDistribution) +***** error ... + truncate (BinomialDistribution, 2) +***** error ... + truncate (BinomialDistribution, 4, 2) +***** shared pd + pd = BinomialDistribution(1, 0.5); + pd(2) = BinomialDistribution(1, 0.6); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +81 tests, 81 passed, 0 known failure, 0 skipped +[inst/dist_obj/GeneralizedExtremeValueDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/GeneralizedExtremeValueDistribution.m +***** shared pd, t + pd = GeneralizedExtremeValueDistribution; + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0.3679, 0.6922, 0.8734, 0.9514, 0.9819, 0.9933], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7195, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.8, 0.8734, 0.9514, 0.9819], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.7195, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [-Inf, -0.4759, 0.0874, 0.6717, 1.4999, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.1999, 2.4433, 2.7568, 3.2028, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.0874, 0.6717, 1.4999, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4433, 2.7568, 3.2028, 4, NaN], 1e-4); +***** assert (iqr (pd), 1.5725, 1e-4); +***** assert (iqr (t), 0.8164, 1e-4); +***** assert (mean (pd), 0.5772, 1e-4); +***** assert (mean (t), 2.7043, 1e-4); +***** assert (median (pd), 0.3665, 1e-4); +***** assert (median (t), 2.5887, 1e-4); +***** assert (pdf (pd, [0:5]), [0.3679, 0.2546, 0.1182, 0.0474, 0.0180, 0.0067], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 1.0902, 0.4369, 0.1659, 0], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0.1794, 0.2546, 0.1182, 0.0474, 0.0180, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 1.0902, 0.4369, 0.1659, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 1.2825, 1e-4); +***** assert (std (t), 0.5289, 1e-4); +***** assert (var (pd), 1.6449, 1e-4); +***** assert (var (t), 0.2798, 1e-4); +***** error ... + GeneralizedExtremeValueDistribution(Inf, 1, 1) +***** error ... + GeneralizedExtremeValueDistribution(i, 1, 1) +***** error ... + GeneralizedExtremeValueDistribution("a", 1, 1) +***** error ... + GeneralizedExtremeValueDistribution([1, 2], 1, 1) +***** error ... + GeneralizedExtremeValueDistribution(NaN, 1, 1) +***** error ... + GeneralizedExtremeValueDistribution(1, 0, 1) +***** error ... + GeneralizedExtremeValueDistribution(1, -1, 1) +***** error ... + GeneralizedExtremeValueDistribution(1, Inf, 1) +***** error ... + GeneralizedExtremeValueDistribution(1, i, 1) +***** error ... + GeneralizedExtremeValueDistribution(1, "a", 1) +***** error ... + GeneralizedExtremeValueDistribution(1, [1, 2], 1) +***** error ... + GeneralizedExtremeValueDistribution(1, NaN, 1) +***** error ... + GeneralizedExtremeValueDistribution(1, 1, Inf) +***** error ... + GeneralizedExtremeValueDistribution(1, 1, i) +***** error ... + GeneralizedExtremeValueDistribution(1, 1, "a") +***** error ... + GeneralizedExtremeValueDistribution(1, 1, [1, 2]) +***** error ... + GeneralizedExtremeValueDistribution(1, 1, NaN) +***** error ... + cdf (GeneralizedExtremeValueDistribution, 2, "uper") +***** error ... + cdf (GeneralizedExtremeValueDistribution, 2, 3) +***** shared x + x = gevrnd (1, 1, 1, [1, 100]); +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha") +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", 0) +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", 1) +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", "") +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), ... + "parameter", "sigma", "alpha", {0.05}) +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), ... + "parameter", {"k", "sigma", "mu", "param"}) +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"k", "sigma", "mu", "param"}) +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), "parameter", "param") +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", 0.01, ... + "parameter", "param") +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), "NAME", "value") +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", 0.01, ... + "NAME", "value") +***** error ... + paramci (GeneralizedExtremeValueDistribution.fit (x), "alpha", 0.01, ... + "parameter", "sigma", "NAME", "value") +***** error ... + plot (GeneralizedExtremeValueDistribution, "Parent") +***** error ... + plot (GeneralizedExtremeValueDistribution, "PlotType", 12) +***** error ... + plot (GeneralizedExtremeValueDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (GeneralizedExtremeValueDistribution, "PlotType", "pdfcdf") +***** error ... + plot (GeneralizedExtremeValueDistribution, "Discrete", "pdfcdf") +***** error ... + plot (GeneralizedExtremeValueDistribution, "Discrete", [1, 0]) +***** error ... + plot (GeneralizedExtremeValueDistribution, "Discrete", {true}) +***** error ... + plot (GeneralizedExtremeValueDistribution, "Parent", 12) +***** error ... + plot (GeneralizedExtremeValueDistribution, "Parent", "hax") +***** error ... + proflik (GeneralizedExtremeValueDistribution, 2) +***** error ... + proflik (GeneralizedExtremeValueDistribution.fit (x), 4) +***** error ... + proflik (GeneralizedExtremeValueDistribution.fit (x), [1, 2]) +***** error ... + proflik (GeneralizedExtremeValueDistribution.fit (x), {1}) +***** error ... + proflik (GeneralizedExtremeValueDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (GeneralizedExtremeValueDistribution.fit (x), 1, "Display") +***** error ... + proflik (GeneralizedExtremeValueDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (GeneralizedExtremeValueDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (GeneralizedExtremeValueDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (GeneralizedExtremeValueDistribution.fit (x), 1, ... + "Display", ["on"; "on"]) +***** error ... + proflik (GeneralizedExtremeValueDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (GeneralizedExtremeValueDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (GeneralizedExtremeValueDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (GeneralizedExtremeValueDistribution.fit (x), 1, {[1 2 3 4]}, ... + "Display", "on") +***** error ... + truncate (GeneralizedExtremeValueDistribution) +***** error ... + truncate (GeneralizedExtremeValueDistribution, 2) +***** error ... + truncate (GeneralizedExtremeValueDistribution, 4, 2) +***** shared pd + pd = GeneralizedExtremeValueDistribution(1, 1, 1); + pd(2) = GeneralizedExtremeValueDistribution(1, 3, 1); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +98 tests, 98 passed, 0 known failure, 0 skipped +[inst/dist_obj/GammaDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/GammaDistribution.m +***** shared pd, t + pd = GammaDistribution (1, 1); + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.6321, 0.8647, 0.9502, 0.9817, 0.9933], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7311, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.7769, 0.8647, 0.9502, 0.9817], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.7311, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0.2231, 0.5108, 0.9163, 1.6094, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.1899, 2.4244, 2.7315, 3.1768, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.5108, 0.9163, 1.6094, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4244, 2.7315, 3.1768, 4, NaN], 1e-4); +***** assert (iqr (pd), 1.0986, 1e-4); +***** assert (iqr (t), 0.8020, 1e-4); +***** assert (mean (pd), 1); +***** assert (mean (t), 2.6870, 1e-4); +***** assert (median (pd), 0.6931, 1e-4); +***** assert (median (t), 2.5662, 1e-4); +***** assert (pdf (pd, [0:5]), [1, 0.3679, 0.1353, 0.0498, 0.0183, 0.0067], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 1.1565, 0.4255, 0.1565, 0], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.3679, 0.1353, 0.0498, 0.0183, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 1.1565, 0.4255, 0.1565, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 1); +***** assert (std (t), 0.5253, 1e-4); +***** assert (var (pd), 1); +***** assert (var (t), 0.2759, 1e-4); +***** error ... + GammaDistribution(0, 1) +***** error ... + GammaDistribution(Inf, 1) +***** error ... + GammaDistribution(i, 1) +***** error ... + GammaDistribution("a", 1) +***** error ... + GammaDistribution([1, 2], 1) +***** error ... + GammaDistribution(NaN, 1) +***** error ... + GammaDistribution(1, 0) +***** error ... + GammaDistribution(1, -1) +***** error ... + GammaDistribution(1, Inf) +***** error ... + GammaDistribution(1, i) +***** error ... + GammaDistribution(1, "a") +***** error ... + GammaDistribution(1, [1, 2]) +***** error ... + GammaDistribution(1, NaN) +***** error ... + cdf (GammaDistribution, 2, "uper") +***** error ... + cdf (GammaDistribution, 2, 3) +***** shared x + x = gamrnd (1, 1, [100, 1]); +***** error ... + paramci (GammaDistribution.fit (x), "alpha") +***** error ... + paramci (GammaDistribution.fit (x), "alpha", 0) +***** error ... + paramci (GammaDistribution.fit (x), "alpha", 1) +***** error ... + paramci (GammaDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (GammaDistribution.fit (x), "alpha", "") +***** error ... + paramci (GammaDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (GammaDistribution.fit (x), "parameter", "a", "alpha", {0.05}) +***** error ... + paramci (GammaDistribution.fit (x), "parameter", {"a", "b", "param"}) +***** error ... + paramci (GammaDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"a", "b", "param"}) +***** error ... + paramci (GammaDistribution.fit (x), "parameter", "param") +***** error ... + paramci (GammaDistribution.fit (x), "alpha", 0.01, "parameter", "param") +***** error ... + paramci (GammaDistribution.fit (x), "NAME", "value") +***** error ... + paramci (GammaDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (GammaDistribution.fit (x), "alpha", 0.01, "parameter", "a", ... + "NAME", "value") +***** error ... + plot (GammaDistribution, "Parent") +***** error ... + plot (GammaDistribution, "PlotType", 12) +***** error ... + plot (GammaDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (GammaDistribution, "PlotType", "pdfcdf") +***** error ... + plot (GammaDistribution, "Discrete", "pdfcdf") +***** error ... + plot (GammaDistribution, "Discrete", [1, 0]) +***** error ... + plot (GammaDistribution, "Discrete", {true}) +***** error ... + plot (GammaDistribution, "Parent", 12) +***** error ... + plot (GammaDistribution, "Parent", "hax") +***** error ... + proflik (GammaDistribution, 2) +***** error ... + proflik (GammaDistribution.fit (x), 3) +***** error ... + proflik (GammaDistribution.fit (x), [1, 2]) +***** error ... + proflik (GammaDistribution.fit (x), {1}) +***** error ... + proflik (GammaDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (GammaDistribution.fit (x), 1, "Display") +***** error ... + proflik (GammaDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (GammaDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (GammaDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (GammaDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (GammaDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (GammaDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (GammaDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (GammaDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (GammaDistribution) +***** error ... + truncate (GammaDistribution, 2) +***** error ... + truncate (GammaDistribution, 4, 2) +***** shared pd + pd = GammaDistribution(1, 1); + pd(2) = GammaDistribution(1, 3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +94 tests, 94 passed, 0 known failure, 0 skipped +[inst/dist_obj/HalfNormalDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/HalfNormalDistribution.m +***** shared pd, t + pd = HalfNormalDistribution (0, 1); + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.6827, 0.9545, 0.9973, 0.9999, 1], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.9420, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.8664, 0.9545, 0.9973, 0.9999], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.9420, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0.2533, 0.5244, 0.8416, 1.2816, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.0923, 2.2068, 2.3607, 2.6064, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.5244, 0.8416, 1.2816, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.2068, 2.3607, 2.6064, 4, NaN], 1e-4); +***** assert (iqr (pd), 0.8317, 1e-4); +***** assert (iqr (t), 0.4111, 1e-4); +***** assert (mean (pd), 0.7979, 1e-4); +***** assert (mean (t), 2.3706, 1e-4); +***** assert (median (pd), 0.6745, 1e-4); +***** assert (median (t), 2.2771, 1e-4); +***** assert (pdf (pd, [0:5]), [0.7979, 0.4839, 0.1080, 0.0089, 0.0003, 0], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 2.3765, 0.1951, 0.0059, 0], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.4839, 0.1080, 0.0089, 0.0003, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 2.3765, 0.1951, 0.0059, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 0.6028, 1e-4); +***** assert (std (t), 0.3310, 1e-4); +***** assert (var (pd), 0.3634, 1e-4); +***** assert (var (t), 0.1096, 1e-4); +***** error ... + HalfNormalDistribution(Inf, 1) +***** error ... + HalfNormalDistribution(i, 1) +***** error ... + HalfNormalDistribution("a", 1) +***** error ... + HalfNormalDistribution([1, 2], 1) +***** error ... + HalfNormalDistribution(NaN, 1) +***** error ... + HalfNormalDistribution(1, 0) +***** error ... + HalfNormalDistribution(1, -1) +***** error ... + HalfNormalDistribution(1, Inf) +***** error ... + HalfNormalDistribution(1, i) +***** error ... + HalfNormalDistribution(1, "a") +***** error ... + HalfNormalDistribution(1, [1, 2]) +***** error ... + HalfNormalDistribution(1, NaN) +***** error ... + cdf (HalfNormalDistribution, 2, "uper") +***** error ... + cdf (HalfNormalDistribution, 2, 3) +***** shared x + x = hnrnd (1, 1, [1, 100]); +***** error ... + paramci (HalfNormalDistribution.fit (x, 1), "alpha") +***** error ... + paramci (HalfNormalDistribution.fit (x, 1), "alpha", 0) +***** error ... + paramci (HalfNormalDistribution.fit (x, 1), "alpha", 1) +***** error ... + paramci (HalfNormalDistribution.fit (x, 1), "alpha", [0.5 2]) +***** error ... + paramci (HalfNormalDistribution.fit (x, 1), "alpha", "") +***** error ... + paramci (HalfNormalDistribution.fit (x, 1), "alpha", {0.05}) +***** error ... + paramci (HalfNormalDistribution.fit (x, 1), "parameter", "sigma", ... + "alpha", {0.05}) +***** error ... + paramci (HalfNormalDistribution.fit (x, 1), ... + "parameter", {"mu", "sigma", "param"}) +***** error ... + paramci (HalfNormalDistribution.fit (x, 1), "alpha", 0.01, ... + "parameter", {"mu", "sigma", "param"}) +***** error ... + paramci (HalfNormalDistribution.fit (x, 1), "parameter", "param") +***** error ... + paramci (HalfNormalDistribution.fit (x, 1), "alpha", 0.01, ... + "parameter", "param") +***** error ... + paramci (HalfNormalDistribution.fit (x, 1),"NAME", "value") +***** error ... + paramci (HalfNormalDistribution.fit (x, 1), "alpha", 0.01, ... + "NAME", "value") +***** error ... + paramci (HalfNormalDistribution.fit (x, 1), "alpha", 0.01, ... + "parameter", "sigma", "NAME", "value") +***** error ... + plot (HalfNormalDistribution, "Parent") +***** error ... + plot (HalfNormalDistribution, "PlotType", 12) +***** error ... + plot (HalfNormalDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (HalfNormalDistribution, "PlotType", "pdfcdf") +***** error ... + plot (HalfNormalDistribution, "Discrete", "pdfcdf") +***** error ... + plot (HalfNormalDistribution, "Discrete", [1, 0]) +***** error ... + plot (HalfNormalDistribution, "Discrete", {true}) +***** error ... + plot (HalfNormalDistribution, "Parent", 12) +***** error ... + plot (HalfNormalDistribution, "Parent", "hax") +***** error ... + proflik (HalfNormalDistribution, 2) +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), 3) +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), [1, 2]) +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), {1}) +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), 1) +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), 2, ones (2)) +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), 2, "Display") +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), 2, "Display", 1) +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), 2, "Display", {1}) +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), 2, "Display", {"on"}) +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), 2, "Display", ["on"; "on"]) +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), 2, "Display", "onnn") +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), 2, "NAME", "on") +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), 2, {"NAME"}, "on") +***** error ... + proflik (HalfNormalDistribution.fit (x, 1), 2, {[1 2 3 4]}, ... + "Display", "on") +***** error ... + truncate (HalfNormalDistribution) +***** error ... + truncate (HalfNormalDistribution, 2) +***** error ... + truncate (HalfNormalDistribution, 4, 2) +***** shared pd + pd = HalfNormalDistribution(1, 1); + pd(2) = HalfNormalDistribution(1, 3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +94 tests, 94 passed, 0 known failure, 0 skipped +[inst/dist_obj/TriangularDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/TriangularDistribution.m +***** shared pd, t + pd = TriangularDistribution (0, 3, 5); + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.0667, 0.2667, 0.6000, 0.9000, 1], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.5263, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.1500, 0.2667, 0.6, 0.9, NaN], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.5263, 1, NaN], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 1.7321, 2.4495, 3, 3.5858, 5], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.4290, 2.7928, 3.1203, 3.4945, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4495, 3, 3.5858, 5, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.7928, 3.1203, 3.4945, 4, NaN], 1e-4); +***** assert (iqr (pd), 1.4824, 1e-4); +***** assert (iqr (t), 0.8678, 1e-4); +***** assert (mean (pd), 2.6667, 1e-4); +***** assert (mean (t), 2.9649, 1e-4); +***** assert (median (pd), 2.7386, 1e-4); +***** assert (median (t), 2.9580, 1e-4); +***** assert (pdf (pd, [0:5]), [0, 0.1333, 0.2667, 0.4, 0.2, 0], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 0.4211, 0.6316, 0.3158, 0], 1e-4); +***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0.2, NaN], 1e-4); +***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 1.0274, 1e-4); +***** assert (std (t), 0.5369, 1e-4); +***** assert (var (pd), 1.0556, 1e-4); +***** assert (var (t), 0.2882, 1e-4); +***** error ... + TriangularDistribution (i, 1, 2) +***** error ... + TriangularDistribution (Inf, 1, 2) +***** error ... + TriangularDistribution ([1, 2], 1, 2) +***** error ... + TriangularDistribution ("a", 1, 2) +***** error ... + TriangularDistribution (NaN, 1, 2) +***** error ... + TriangularDistribution (1, i, 2) +***** error ... + TriangularDistribution (1, Inf, 2) +***** error ... + TriangularDistribution (1, [1, 2], 2) +***** error ... + TriangularDistribution (1, "a", 2) +***** error ... + TriangularDistribution (1, NaN, 2) +***** error ... + TriangularDistribution (1, 2, i) +***** error ... + TriangularDistribution (1, 2, Inf) +***** error ... + TriangularDistribution (1, 2, [1, 2]) +***** error ... + TriangularDistribution (1, 2, "a") +***** error ... + TriangularDistribution (1, 2, NaN) +***** error ... + TriangularDistribution (1, 1, 1) +***** error ... + TriangularDistribution (1, 0.5, 2) +***** error ... + cdf (TriangularDistribution, 2, "uper") +***** error ... + cdf (TriangularDistribution, 2, 3) +***** error ... + plot (TriangularDistribution, "Parent") +***** error ... + plot (TriangularDistribution, "PlotType", 12) +***** error ... + plot (TriangularDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (TriangularDistribution, "PlotType", "pdfcdf") +***** error ... + plot (TriangularDistribution, "Discrete", "pdfcdf") +***** error ... + plot (TriangularDistribution, "Discrete", [1, 0]) +***** error ... + plot (TriangularDistribution, "Discrete", {true}) +***** error ... + plot (TriangularDistribution, "Parent", 12) +***** error ... + plot (TriangularDistribution, "Parent", "hax") +***** error ... + truncate (TriangularDistribution) +***** error ... + truncate (TriangularDistribution, 2) +***** error ... + truncate (TriangularDistribution, 4, 2) +***** shared pd + pd = TriangularDistribution (0, 1, 2); + pd(2) = TriangularDistribution (0, 1, 2); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +67 tests, 67 passed, 0 known failure, 0 skipped +[inst/dist_obj/PiecewiseLinearDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/PiecewiseLinearDistribution.m +***** shared pd, t + load patients + [f, x] = ecdf (Weight); + f = f(1:5:end); + x = x(1:5:end); + pd = PiecewiseLinearDistribution (x, f); + t = truncate (pd, 130, 180); +***** assert (cdf (pd, [120, 130, 140, 150, 200]), [0.0767, 0.25, 0.4629, 0.5190, 0.9908], 1e-4); +***** assert (cdf (t, [120, 130, 140, 150, 200]), [0, 0, 0.4274, 0.5403, 1], 1e-4); +***** assert (cdf (pd, [100, 250, NaN]), [0, 1, NaN], 1e-4); +***** assert (cdf (t, [115, 290, NaN]), [0, 1, NaN], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [111, 127.5, 136.62, 169.67, 182.17, 202], 1e-2); +***** assert (icdf (t, [0:0.2:1]), [130, 134.15, 139.26, 162.5, 173.99, 180], 1e-2); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NA, 136.62, 169.67, 182.17, 202, NA], 1e-2); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NA, 139.26, 162.5, 173.99, 180, NA], 1e-2); +***** assert (iqr (pd), 50.0833, 1e-4); +***** assert (iqr (t), 36.8077, 1e-4); +***** assert (mean (pd), 153.61, 1e-10); +***** assert (mean (t), 152.311, 1e-4); +***** assert (median (pd), 142, 1e-10); +***** assert (median (t), 141.9462, 1e-4); +***** assert (pdf (pd, [120, 130, 140, 150, 200]), [0.0133, 0.0240, 0.0186, 0.0024, 0.0046], 1e-4); +***** assert (pdf (t, [120, 130, 140, 150, 200]), [0, 0.0482, 0.0373, 0.0048, 0], 1e-4); +***** assert (pdf (pd, [100, 250, NaN]), [0, 0, NaN], 1e-4); +***** assert (pdf (t, [100, 250, NaN]), [0, 0, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 130), false); +***** assert (any (random (t, 1000, 1) > 180), false); +***** assert (std (pd), 26.5196, 1e-4); +***** assert (std (t), 18.2941, 1e-4); +***** assert (var (pd), 703.2879, 1e-4); +***** assert (var (t), 334.6757, 1e-4); +***** error ... + PiecewiseLinearDistribution ([0, i], [0, 1]) +***** error ... + PiecewiseLinearDistribution ([0, Inf], [0, 1]) +***** error ... + PiecewiseLinearDistribution (["a", "c"], [0, 1]) +***** error ... + PiecewiseLinearDistribution ([NaN, 1], [0, 1]) +***** error ... + PiecewiseLinearDistribution ([0, 1], [0, i]) +***** error ... + PiecewiseLinearDistribution ([0, 1], [0, Inf]) +***** error ... + PiecewiseLinearDistribution ([0, 1], ["a", "c"]) +***** error ... + PiecewiseLinearDistribution ([0, 1], [NaN, 1]) +***** error ... + PiecewiseLinearDistribution ([0, 1], [0, 0.5, 1]) +***** error ... + PiecewiseLinearDistribution ([0], [1]) +***** error ... + PiecewiseLinearDistribution ([0, 0.5, 1], [0, 1, 1.5]) +***** error ... + cdf (PiecewiseLinearDistribution, 2, "uper") +***** error ... + cdf (PiecewiseLinearDistribution, 2, 3) +***** error ... + plot (PiecewiseLinearDistribution, "Parent") +***** error ... + plot (PiecewiseLinearDistribution, "PlotType", 12) +***** error ... + plot (PiecewiseLinearDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (PiecewiseLinearDistribution, "PlotType", "pdfcdf") +***** error ... + plot (PiecewiseLinearDistribution, "Discrete", "pdfcdf") +***** error ... + plot (PiecewiseLinearDistribution, "Discrete", [1, 0]) +***** error ... + plot (PiecewiseLinearDistribution, "Discrete", {true}) +***** error ... + plot (PiecewiseLinearDistribution, "Parent", 12) +***** error ... + plot (PiecewiseLinearDistribution, "Parent", "hax") +***** error ... + truncate (PiecewiseLinearDistribution) +***** error ... + truncate (PiecewiseLinearDistribution, 2) +***** error ... + truncate (PiecewiseLinearDistribution, 4, 2) +***** shared pd + pd = PiecewiseLinearDistribution (); + pd(2) = PiecewiseLinearDistribution (); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +61 tests, 61 passed, 0 known failure, 0 skipped +[inst/dist_obj/LogisticDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/LogisticDistribution.m +***** shared pd, t + pd = LogisticDistribution (0, 1); + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0.5, 0.7311, 0.8808, 0.9526, 0.9820, 0.9933], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7091, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.8176, 0.8808, 0.9526, 0.9820], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.7091, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [-Inf, -1.3863, -0.4055, 0.4055, 1.3863, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.2088, 2.4599, 2.7789, 3.2252, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, -0.4055, 0.4055, 1.3863, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4599, 2.7789, 3.2252, 4, NaN], 1e-4); +***** assert (iqr (pd), 2.1972, 1e-4); +***** assert (iqr (t), 0.8286, 1e-4); +***** assert (mean (pd), 0, 1e-4); +***** assert (mean (t), 2.7193, 1e-4); +***** assert (median (pd), 0); +***** assert (median (t), 2.6085, 1e-4); +***** assert (pdf (pd, [0:5]), [0.25, 0.1966, 0.1050, 0.0452, 0.0177, 0.0066], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 1.0373, 0.4463, 0.1745, 0], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0.1966, 0.1966, 0.1050, 0.0452, 0.0177, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 1.0373, 0.4463, 0.1745, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 1.8138, 1e-4); +***** assert (std (t), 0.5320, 1e-4); +***** assert (var (pd), 3.2899, 1e-4); +***** assert (var (t), 0.2830, 1e-4); +***** error ... + LogisticDistribution(Inf, 1) +***** error ... + LogisticDistribution(i, 1) +***** error ... + LogisticDistribution("a", 1) +***** error ... + LogisticDistribution([1, 2], 1) +***** error ... + LogisticDistribution(NaN, 1) +***** error ... + LogisticDistribution(1, 0) +***** error ... + LogisticDistribution(1, -1) +***** error ... + LogisticDistribution(1, Inf) +***** error ... + LogisticDistribution(1, i) +***** error ... + LogisticDistribution(1, "a") +***** error ... + LogisticDistribution(1, [1, 2]) +***** error ... + LogisticDistribution(1, NaN) +***** error ... + cdf (LogisticDistribution, 2, "uper") +***** error ... + cdf (LogisticDistribution, 2, 3) +***** shared x + x = logirnd (1, 1, [1, 100]); +***** error ... + paramci (LogisticDistribution.fit (x), "alpha") +***** error ... + paramci (LogisticDistribution.fit (x), "alpha", 0) +***** error ... + paramci (LogisticDistribution.fit (x), "alpha", 1) +***** error ... + paramci (LogisticDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (LogisticDistribution.fit (x), "alpha", "") +***** error ... + paramci (LogisticDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (LogisticDistribution.fit (x), "parameter", "mu", "alpha", {0.05}) +***** error ... + paramci (LogisticDistribution.fit (x), "parameter", {"mu", "sigma", "param"}) +***** error ... + paramci (LogisticDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"mu", "sigma", "param"}) +***** error ... + paramci (LogisticDistribution.fit (x), "parameter", "param") +***** error ... + paramci (LogisticDistribution.fit (x), "alpha", 0.01, "parameter", "param") +***** error ... + paramci (LogisticDistribution.fit (x), "NAME", "value") +***** error ... + paramci (LogisticDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (LogisticDistribution.fit (x), "alpha", 0.01, "parameter", "mu", ... + "NAME", "value") +***** error ... + plot (LogisticDistribution, "Parent") +***** error ... + plot (LogisticDistribution, "PlotType", 12) +***** error ... + plot (LogisticDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (LogisticDistribution, "PlotType", "pdfcdf") +***** error ... + plot (LogisticDistribution, "Discrete", "pdfcdf") +***** error ... + plot (LogisticDistribution, "Discrete", [1, 0]) +***** error ... + plot (LogisticDistribution, "Discrete", {true}) +***** error ... + plot (LogisticDistribution, "Parent", 12) +***** error ... + plot (LogisticDistribution, "Parent", "hax") +***** error ... + proflik (LogisticDistribution, 2) +***** error ... + proflik (LogisticDistribution.fit (x), 3) +***** error ... + proflik (LogisticDistribution.fit (x), [1, 2]) +***** error ... + proflik (LogisticDistribution.fit (x), {1}) +***** error ... + proflik (LogisticDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (LogisticDistribution.fit (x), 1, "Display") +***** error ... + proflik (LogisticDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (LogisticDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (LogisticDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (LogisticDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (LogisticDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (LogisticDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (LogisticDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (LogisticDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (LogisticDistribution) +***** error ... + truncate (LogisticDistribution, 2) +***** error ... + truncate (LogisticDistribution, 4, 2) +***** shared pd + pd = LogisticDistribution(1, 1); + pd(2) = LogisticDistribution(1, 3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +93 tests, 93 passed, 0 known failure, 0 skipped +[inst/dist_obj/tLocationScaleDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/tLocationScaleDistribution.m +***** shared pd, t + pd = tLocationScaleDistribution; + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0.5, 0.8184, 0.9490, 0.9850, 0.9948, 0.9979], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7841, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.9030, 0.9490, 0.9850, 0.9948, NaN], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.7841, 1, NaN], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [-Inf, -0.9195, -0.2672, 0.2672, 0.9195, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.1559, 2.3533, 2.6223, 3.0432, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, -0.2672, 0.2672, 0.9195, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.3533, 2.6223, 3.0432, 4, NaN], 1e-4); +***** assert (iqr (pd), 1.4534, 1e-4); +***** assert (iqr (t), 0.7139, 1e-4); +***** assert (mean (pd), 0, eps); +***** assert (mean (t), 2.6099, 1e-4); +***** assert (median (pd), 0, eps); +***** assert (median (t), 2.4758, 1e-4); +***** assert (pdf (pd, [0:5]), [0.3796, 0.2197, 0.0651, 0.0173, 0.0051, 0.0018], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 1.4209, 0.3775, 0.1119, 0], 1e-4); +***** assert (pdf (pd, [-1, 1.5, NaN]), [0.2197, 0.1245, NaN], 1e-4); +***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 1.2910, 1e-4); +***** assert (std (t), 0.4989, 1e-4); +***** assert (var (pd), 1.6667, 1e-4); +***** assert (var (t), 0.2489, 1e-4); +***** error ... + tLocationScaleDistribution(i, 1, 1) +***** error ... + tLocationScaleDistribution(Inf, 1, 1) +***** error ... + tLocationScaleDistribution([1, 2], 1, 1) +***** error ... + tLocationScaleDistribution("a", 1, 1) +***** error ... + tLocationScaleDistribution(NaN, 1, 1) +***** error ... + tLocationScaleDistribution(0, 0, 1) +***** error ... + tLocationScaleDistribution(0, -1, 1) +***** error ... + tLocationScaleDistribution(0, Inf, 1) +***** error ... + tLocationScaleDistribution(0, i, 1) +***** error ... + tLocationScaleDistribution(0, "a", 1) +***** error ... + tLocationScaleDistribution(0, [1, 2], 1) +***** error ... + tLocationScaleDistribution(0, NaN, 1) +***** error ... + tLocationScaleDistribution(0, 1, 0) +***** error ... + tLocationScaleDistribution(0, 1, -1) +***** error ... + tLocationScaleDistribution(0, 1, Inf) +***** error ... + tLocationScaleDistribution(0, 1, i) +***** error ... + tLocationScaleDistribution(0, 1, "a") +***** error ... + tLocationScaleDistribution(0, 1, [1, 2]) +***** error ... + tLocationScaleDistribution(0, 1, NaN) +***** error ... + cdf (tLocationScaleDistribution, 2, "uper") +***** error ... + cdf (tLocationScaleDistribution, 2, 3) +***** shared x + x = tlsrnd (0, 1, 1, [1, 100]); +***** error ... + paramci (tLocationScaleDistribution.fit (x), "alpha") +***** error ... + paramci (tLocationScaleDistribution.fit (x), "alpha", 0) +***** error ... + paramci (tLocationScaleDistribution.fit (x), "alpha", 1) +***** error ... + paramci (tLocationScaleDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (tLocationScaleDistribution.fit (x), "alpha", "") +***** error ... + paramci (tLocationScaleDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (tLocationScaleDistribution.fit (x), "parameter", "mu", ... + "alpha", {0.05}) +***** error ... + paramci (tLocationScaleDistribution.fit (x), ... + "parameter", {"mu", "sigma", "nu", "param"}) +***** error ... + paramci (tLocationScaleDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"mu", "sigma", "nu", "param"}) +***** error ... + paramci (tLocationScaleDistribution.fit (x), "parameter", "param") +***** error ... + paramci (tLocationScaleDistribution.fit (x), "alpha", 0.01, ... + "parameter", "param") +***** error ... + paramci (tLocationScaleDistribution.fit (x), "NAME", "value") +***** error ... + paramci (tLocationScaleDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (tLocationScaleDistribution.fit (x), "alpha", 0.01, ... + "parameter", "mu", "NAME", "value") +***** error ... + plot (tLocationScaleDistribution, "Parent") +***** error ... + plot (tLocationScaleDistribution, "PlotType", 12) +***** error ... + plot (tLocationScaleDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (tLocationScaleDistribution, "PlotType", "pdfcdf") +***** error ... + plot (tLocationScaleDistribution, "Discrete", "pdfcdf") +***** error ... + plot (tLocationScaleDistribution, "Discrete", [1, 0]) +***** error ... + plot (tLocationScaleDistribution, "Discrete", {true}) +***** error ... + plot (tLocationScaleDistribution, "Parent", 12) +***** error ... + plot (tLocationScaleDistribution, "Parent", "hax") +***** error ... + proflik (tLocationScaleDistribution, 2) +***** error ... + proflik (tLocationScaleDistribution.fit (x), 4) +***** error ... + proflik (tLocationScaleDistribution.fit (x), [1, 2]) +***** error ... + proflik (tLocationScaleDistribution.fit (x), {1}) +***** error ... + proflik (tLocationScaleDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (tLocationScaleDistribution.fit (x), 1, "Display") +***** error ... + proflik (tLocationScaleDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (tLocationScaleDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (tLocationScaleDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (tLocationScaleDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (tLocationScaleDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (tLocationScaleDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (tLocationScaleDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (tLocationScaleDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (tLocationScaleDistribution) +***** error ... + truncate (tLocationScaleDistribution, 2) +***** error ... + truncate (tLocationScaleDistribution, 4, 2) +***** shared pd + pd = tLocationScaleDistribution (0, 1, 1); + pd(2) = tLocationScaleDistribution (0, 1, 3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +100 tests, 100 passed, 0 known failure, 0 skipped +[inst/dist_obj/NormalDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/NormalDistribution.m +***** shared pd, t + pd = NormalDistribution; + t = truncate (pd, -2, 2); +***** assert (cdf (pd, [0:5]), [0.5, 0.8413, 0.9772, 0.9987, 1, 1], 1e-4); +***** assert (cdf (t, [0:5]), [0.5, 0.8576, 1, 1, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.9332, 0.9772, 0.9987, 1], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0.9538, 1, 1, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [-Inf, -0.8416, -0.2533, 0.2533, 0.8416, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [-2, -0.7938, -0.2416, 0.2416, 0.7938, 2], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, -0.2533, 0.2533, 0.8416, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, -0.2416, 0.2416, 0.7938, 2, NaN], 1e-4); +***** assert (iqr (pd), 1.3490, 1e-4); +***** assert (iqr (t), 1.2782, 1e-4); +***** assert (mean (pd), 0); +***** assert (mean (t), 0, eps); +***** assert (median (pd), 0); +***** assert (median (t), 0); +***** assert (pdf (pd, [0:5]), [0.3989, 0.2420, 0.0540, 0.0044, 0.0001, 0], 1e-4); +***** assert (pdf (t, [0:5]), [0.4180, 0.2535, 0.0566, 0, 0, 0], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0.2420, 0.2420, 0.0540, 0.0044, 0.0001, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0.2535, 0.2535, 0.0566, 0, 0, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < -2), false); +***** assert (any (random (t, 1000, 1) > 2), false); +***** assert (std (pd), 1); +***** assert (std (t), 0.8796, 1e-4); +***** assert (var (pd), 1); +***** assert (var (t), 0.7737, 1e-4); +***** error ... + NormalDistribution(Inf, 1) +***** error ... + NormalDistribution(i, 1) +***** error ... + NormalDistribution("a", 1) +***** error ... + NormalDistribution([1, 2], 1) +***** error ... + NormalDistribution(NaN, 1) +***** error ... + NormalDistribution(1, 0) +***** error ... + NormalDistribution(1, -1) +***** error ... + NormalDistribution(1, Inf) +***** error ... + NormalDistribution(1, i) +***** error ... + NormalDistribution(1, "a") +***** error ... + NormalDistribution(1, [1, 2]) +***** error ... + NormalDistribution(1, NaN) +***** error ... + cdf (NormalDistribution, 2, "uper") +***** error ... + cdf (NormalDistribution, 2, 3) +***** shared x + x = normrnd (1, 1, [1, 100]); +***** error ... + paramci (NormalDistribution.fit (x), "alpha") +***** error ... + paramci (NormalDistribution.fit (x), "alpha", 0) +***** error ... + paramci (NormalDistribution.fit (x), "alpha", 1) +***** error ... + paramci (NormalDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (NormalDistribution.fit (x), "alpha", "") +***** error ... + paramci (NormalDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (NormalDistribution.fit (x), "parameter", "mu", "alpha", {0.05}) +***** error ... + paramci (NormalDistribution.fit (x), "parameter", {"mu", "sigma", "param"}) +***** error ... + paramci (NormalDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"mu", "sigma", "param"}) +***** error ... + paramci (NormalDistribution.fit (x), "parameter", "param") +***** error ... + paramci (NormalDistribution.fit (x), "alpha", 0.01, "parameter", "param") +***** error ... + paramci (NormalDistribution.fit (x), "NAME", "value") +***** error ... + paramci (NormalDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (NormalDistribution.fit (x), "alpha", 0.01, "parameter", "mu", ... + "NAME", "value") +***** error ... + plot (NormalDistribution, "Parent") +***** error ... + plot (NormalDistribution, "PlotType", 12) +***** error ... + plot (NormalDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (NormalDistribution, "PlotType", "pdfcdf") +***** error ... + plot (NormalDistribution, "Discrete", "pdfcdf") +***** error ... + plot (NormalDistribution, "Discrete", [1, 0]) +***** error ... + plot (NormalDistribution, "Discrete", {true}) +***** error ... + plot (NormalDistribution, "Parent", 12) +***** error ... + plot (NormalDistribution, "Parent", "hax") +***** error ... + proflik (NormalDistribution, 2) +***** error ... + proflik (NormalDistribution.fit (x), 3) +***** error ... + proflik (NormalDistribution.fit (x), [1, 2]) +***** error ... + proflik (NormalDistribution.fit (x), {1}) +***** error ... + proflik (NormalDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (NormalDistribution.fit (x), 1, "Display") +***** error ... + proflik (NormalDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (NormalDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (NormalDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (NormalDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (NormalDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (NormalDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (NormalDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (NormalDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (NormalDistribution) +***** error ... + truncate (NormalDistribution, 2) +***** error ... + truncate (NormalDistribution, 4, 2) +***** shared pd + pd = NormalDistribution(1, 1); + pd(2) = NormalDistribution(1, 3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +93 tests, 93 passed, 0 known failure, 0 skipped +[inst/dist_obj/BirnbaumSaundersDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/BirnbaumSaundersDistribution.m +***** shared pd, t + pd = BirnbaumSaundersDistribution; + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.5, 0.7602, 0.8759, 0.9332, 0.9632], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.6687, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.6585, 0.7602, 0.8759, 0.9332, NaN], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.6687, 1, NaN], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0.4411, 0.7767, 1.2875, 2.2673, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.2293, 2.5073, 2.8567, 3.3210, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.7767, 1.2875, 2.2673, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.5073, 2.8567, 3.3210, 4, NaN], 1e-4); +***** assert (iqr (pd), 1.4236, 1e-4); +***** assert (iqr (t), 0.8968, 1e-4); +***** assert (mean (pd), 1.5, eps); +***** assert (mean (t), 2.7723, 1e-4); +***** assert (median (pd), 1, 1e-4); +***** assert (median (t), 2.6711, 1e-4); +***** assert (pdf (pd, [0:5]), [0, 0.3989, 0.1648, 0.0788, 0.0405, 0.0216], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 0.9528, 0.4559, 0.2340, 0], 1e-4); +***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0.2497, NaN], 1e-4); +***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 1.5, eps); +***** assert (std (t), 0.5528, 1e-4); +***** assert (var (pd), 2.25, eps); +***** assert (var (t), 0.3056, 1e-4); +***** error ... + BirnbaumSaundersDistribution(0, 1) +***** error ... + BirnbaumSaundersDistribution(Inf, 1) +***** error ... + BirnbaumSaundersDistribution(i, 1) +***** error ... + BirnbaumSaundersDistribution("beta", 1) +***** error ... + BirnbaumSaundersDistribution([1, 2], 1) +***** error ... + BirnbaumSaundersDistribution(NaN, 1) +***** error ... + BirnbaumSaundersDistribution(1, 0) +***** error ... + BirnbaumSaundersDistribution(1, -1) +***** error ... + BirnbaumSaundersDistribution(1, Inf) +***** error ... + BirnbaumSaundersDistribution(1, i) +***** error ... + BirnbaumSaundersDistribution(1, "beta") +***** error ... + BirnbaumSaundersDistribution(1, [1, 2]) +***** error ... + BirnbaumSaundersDistribution(1, NaN) +***** error ... + cdf (BirnbaumSaundersDistribution, 2, "uper") +***** error ... + cdf (BirnbaumSaundersDistribution, 2, 3) +***** shared x + rand ("seed", 5); + x = bisarnd (1, 1, [100, 1]); +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), "alpha") +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), "alpha", 0) +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), "alpha", 1) +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), "alpha", "") +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), "parameter", ... + "beta", "alpha", {0.05}) +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), ... + "parameter", {"beta", "gamma", "param"}) +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"beta", "gamma", "param"}) +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), "parameter", "param") +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), "alpha", 0.01, ... + "parameter", "param") +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), "NAME", "value") +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), "alpha", 0.01, ... + "NAME", "value") +***** error ... + paramci (BirnbaumSaundersDistribution.fit (x), "alpha", 0.01, ... + "parameter", "beta", "NAME", "value") +***** error ... + plot (BirnbaumSaundersDistribution, "Parent") +***** error ... + plot (BirnbaumSaundersDistribution, "PlotType", 12) +***** error ... + plot (BirnbaumSaundersDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (BirnbaumSaundersDistribution, "PlotType", "pdfcdf") +***** error ... + plot (BirnbaumSaundersDistribution, "Discrete", "pdfcdf") +***** error ... + plot (BirnbaumSaundersDistribution, "Discrete", [1, 0]) +***** error ... + plot (BirnbaumSaundersDistribution, "Discrete", {true}) +***** error ... + plot (BirnbaumSaundersDistribution, "Parent", 12) +***** error ... + plot (BirnbaumSaundersDistribution, "Parent", "hax") +***** error ... + proflik (BirnbaumSaundersDistribution, 2) +***** error ... + proflik (BirnbaumSaundersDistribution.fit (x), 3) +***** error ... + proflik (BirnbaumSaundersDistribution.fit (x), [1, 2]) +***** error ... + proflik (BirnbaumSaundersDistribution.fit (x), {1}) +***** error ... + proflik (BirnbaumSaundersDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (BirnbaumSaundersDistribution.fit (x), 1, "Display") +***** error ... + proflik (BirnbaumSaundersDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (BirnbaumSaundersDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (BirnbaumSaundersDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (BirnbaumSaundersDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (BirnbaumSaundersDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (BirnbaumSaundersDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (BirnbaumSaundersDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (BirnbaumSaundersDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (BirnbaumSaundersDistribution) +***** error ... + truncate (BirnbaumSaundersDistribution, 2) +***** error ... + truncate (BirnbaumSaundersDistribution, 4, 2) +***** shared pd + pd = BirnbaumSaundersDistribution(1, 1); + pd(2) = BirnbaumSaundersDistribution(1, 3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +94 tests, 94 passed, 0 known failure, 0 skipped +[inst/dist_obj/ExponentialDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/ExponentialDistribution.m +***** shared pd, t + pd = ExponentialDistribution (1); + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.6321, 0.8647, 0.9502, 0.9817, 0.9933], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7311, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.7769, 0.8647, 0.9502, 0.9817], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.7311, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0.2231, 0.5108, 0.9163, 1.6094, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.1899, 2.4244, 2.7315, 3.1768, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.5108, 0.9163, 1.6094, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4244, 2.7315, 3.1768, 4, NaN], 1e-4); +***** assert (iqr (pd), 1.0986, 1e-4); +***** assert (iqr (t), 0.8020, 1e-4); +***** assert (mean (pd), 1); +***** assert (mean (t), 2.6870, 1e-4); +***** assert (median (pd), 0.6931, 1e-4); +***** assert (median (t), 2.5662, 1e-4); +***** assert (pdf (pd, [0:5]), [1, 0.3679, 0.1353, 0.0498, 0.0183, 0.0067], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 1.1565, 0.4255, 0.1565, 0], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.3679, 0.1353, 0.0498, 0.0183, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 1.1565, 0.4255, 0.1565, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 1); +***** assert (std (t), 0.5253, 1e-4); +***** assert (var (pd), 1); +***** assert (var (t), 0.2759, 1e-4); +***** error ... + ExponentialDistribution(0) +***** error ... + ExponentialDistribution(-1) +***** error ... + ExponentialDistribution(Inf) +***** error ... + ExponentialDistribution(i) +***** error ... + ExponentialDistribution("a") +***** error ... + ExponentialDistribution([1, 2]) +***** error ... + ExponentialDistribution(NaN) +***** error ... + cdf (ExponentialDistribution, 2, "uper") +***** error ... + cdf (ExponentialDistribution, 2, 3) +***** shared x + x = exprnd (1, [100, 1]); +***** error ... + paramci (ExponentialDistribution.fit (x), "alpha") +***** error ... + paramci (ExponentialDistribution.fit (x), "alpha", 0) +***** error ... + paramci (ExponentialDistribution.fit (x), "alpha", 1) +***** error ... + paramci (ExponentialDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (ExponentialDistribution.fit (x), "alpha", "") +***** error ... + paramci (ExponentialDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (ExponentialDistribution.fit (x), "parameter", "mu", ... + "alpha", {0.05}) +***** error ... + paramci (ExponentialDistribution.fit (x), "parameter", {"mu", "param"}) +***** error ... + paramci (ExponentialDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"mu", "param"}) +***** error ... + paramci (ExponentialDistribution.fit (x), "parameter", "param") +***** error ... + paramci (ExponentialDistribution.fit (x), "alpha", 0.01, "parameter", "parm") +***** error ... + paramci (ExponentialDistribution.fit (x), "NAME", "value") +***** error ... + paramci (ExponentialDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (ExponentialDistribution.fit (x), "alpha", 0.01, ... + "parameter", "mu", "NAME", "value") +***** error ... + plot (ExponentialDistribution, "Parent") +***** error ... + plot (ExponentialDistribution, "PlotType", 12) +***** error ... + plot (ExponentialDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (ExponentialDistribution, "PlotType", "pdfcdf") +***** error ... + plot (ExponentialDistribution, "Discrete", "pdfcdf") +***** error ... + plot (ExponentialDistribution, "Discrete", [1, 0]) +***** error ... + plot (ExponentialDistribution, "Discrete", {true}) +***** error ... + plot (ExponentialDistribution, "Parent", 12) +***** error ... + plot (ExponentialDistribution, "Parent", "hax") +***** error ... + proflik (ExponentialDistribution, 2) +***** error ... + proflik (ExponentialDistribution.fit (x), 3) +***** error ... + proflik (ExponentialDistribution.fit (x), [1, 2]) +***** error ... + proflik (ExponentialDistribution.fit (x), {1}) +***** error ... + proflik (ExponentialDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (ExponentialDistribution.fit (x), 1, "Display") +***** error ... + proflik (ExponentialDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (ExponentialDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (ExponentialDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (ExponentialDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (ExponentialDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (ExponentialDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (ExponentialDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (ExponentialDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (ExponentialDistribution) +***** error ... + truncate (ExponentialDistribution, 2) +***** error ... + truncate (ExponentialDistribution, 4, 2) +***** shared pd + pd = ExponentialDistribution(1); + pd(2) = ExponentialDistribution(3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +88 tests, 88 passed, 0 known failure, 0 skipped +[inst/dist_obj/BurrDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/BurrDistribution.m +***** shared pd, t + pd = BurrDistribution; + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.5, 0.6667, 0.75, 0.8, 0.8333], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.625, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.6, 0.6667, 0.75, 0.8], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.625, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0.25, 0.6667, 1.5, 4, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.2609, 2.5714, 2.9474, 3.4118, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.6667, 1.5, 4, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.5714, 2.9474, 3.4118, 4, NaN], 1e-4); +***** assert (iqr (pd), 2.6667, 1e-4); +***** assert (iqr (t), 0.9524, 1e-4); +***** assert (mean (pd), Inf); +***** assert (mean (t), 2.8312, 1e-4); +***** assert (median (pd), 1, 1e-4); +***** assert (median (t), 2.75, 1e-4); +***** assert (pdf (pd, [0:5]), [1, 0.25, 0.1111, 0.0625, 0.04, 0.0278], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 0.8333, 0.4687, 0.3, 0], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.25, 0.1111, 0.0625, 0.04, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 0.8333, 0.4687, 0.3, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), Inf); +***** assert (std (t), 0.5674, 1e-4); +***** assert (var (pd), Inf); +***** assert (var (t), 0.3220, 1e-4); +***** error ... + BurrDistribution(0, 1, 1) +***** error ... + BurrDistribution(-1, 1, 1) +***** error ... + BurrDistribution(Inf, 1, 1) +***** error ... + BurrDistribution(i, 1, 1) +***** error ... + BurrDistribution("a", 1, 1) +***** error ... + BurrDistribution([1, 2], 1, 1) +***** error ... + BurrDistribution(NaN, 1, 1) +***** error ... + BurrDistribution(1, 0, 1) +***** error ... + BurrDistribution(1, -1, 1) +***** error ... + BurrDistribution(1, Inf, 1) +***** error ... + BurrDistribution(1, i, 1) +***** error ... + BurrDistribution(1, "a", 1) +***** error ... + BurrDistribution(1, [1, 2], 1) +***** error ... + BurrDistribution(1, NaN, 1) +***** error ... + BurrDistribution(1, 1, 0) +***** error ... + BurrDistribution(1, 1, -1) +***** error ... + BurrDistribution(1, 1, Inf) +***** error ... + BurrDistribution(1, 1, i) +***** error ... + BurrDistribution(1, 1, "a") +***** error ... + BurrDistribution(1, 1, [1, 2]) +***** error ... + BurrDistribution(1, 1, NaN) +***** error ... + cdf (BurrDistribution, 2, "uper") +***** error ... + cdf (BurrDistribution, 2, 3) +***** shared x + rand ("seed", 4); + x = burrrnd (1, 1, 1, [1, 100]); +***** error ... + paramci (BurrDistribution.fit (x), "alpha") +***** error ... + paramci (BurrDistribution.fit (x), "alpha", 0) +***** error ... + paramci (BurrDistribution.fit (x), "alpha", 1) +***** error ... + paramci (BurrDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (BurrDistribution.fit (x), "alpha", "") +***** error ... + paramci (BurrDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (BurrDistribution.fit (x), "parameter", "c", "alpha", {0.05}) +***** error ... + paramci (BurrDistribution.fit (x), "parameter", {"alpha", "c", "k", "param"}) +***** error ... + paramci (BurrDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"alpha", "c", "k", "param"}) +***** error ... + paramci (BurrDistribution.fit (x), "parameter", "param") +***** error ... + paramci (BurrDistribution.fit (x), "alpha", 0.01, "parameter", "param") +***** error ... + paramci (BurrDistribution.fit (x), "NAME", "value") +***** error ... + paramci (BurrDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (BurrDistribution.fit (x), "alpha", 0.01, "parameter", "c", ... + "NAME", "value") +***** error ... + plot (BurrDistribution, "Parent") +***** error ... + plot (BurrDistribution, "PlotType", 12) +***** error ... + plot (BurrDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (BurrDistribution, "PlotType", "pdfcdf") +***** error ... + plot (BurrDistribution, "Discrete", "pdfcdf") +***** error ... + plot (BurrDistribution, "Discrete", [1, 0]) +***** error ... + plot (BurrDistribution, "Discrete", {true}) +***** error ... + plot (BurrDistribution, "Parent", 12) +***** error ... + plot (BurrDistribution, "Parent", "hax") +***** error ... + proflik (BurrDistribution, 2) +***** error ... + proflik (BurrDistribution.fit (x), 4) +***** error ... + proflik (BurrDistribution.fit (x), [1, 2]) +***** error ... + proflik (BurrDistribution.fit (x), {1}) +***** error ... + proflik (BurrDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (BurrDistribution.fit (x), 1, "Display") +***** error ... + proflik (BurrDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (BurrDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (BurrDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (BurrDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (BurrDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (BurrDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (BurrDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (BurrDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (BurrDistribution) +***** error ... + truncate (BurrDistribution, 2) +***** error ... + truncate (BurrDistribution, 4, 2) +***** shared pd + pd = BurrDistribution(1, 1, 1); + pd(2) = BurrDistribution(1, 3, 1); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +102 tests, 102 passed, 0 known failure, 0 skipped +[inst/dist_obj/NakagamiDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/NakagamiDistribution.m +***** shared pd, t + pd = NakagamiDistribution; + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.6321, 0.9817, 0.9999, 1, 1], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.9933, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.8946, 0.9817, 0.9999, 1], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.9933, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0.4724, 0.7147, 0.9572, 1.2686, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.0550, 2.1239, 2.2173, 2.3684, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.7147, 0.9572, 1.2686, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.1239, 2.2173, 2.3684, 4, NaN], 1e-4); +***** assert (iqr (pd), 0.6411, 1e-4); +***** assert (iqr (t), 0.2502, 1e-4); +***** assert (mean (pd), 0.8862, 1e-4); +***** assert (mean (t), 2.2263, 1e-4); +***** assert (median (pd), 0.8326, 1e-4); +***** assert (median (t), 2.1664, 1e-4); +***** assert (pdf (pd, [0:5]), [0, 0.7358, 0.0733, 0.0007, 0, 0], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 4, 0.0404, 0, 0], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.7358, 0.0733, 0.0007, 0, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 4, 0.0404, 0, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 0.4633, 1e-4); +***** assert (std (t), 0.2083, 1e-4); +***** assert (var (pd), 0.2146, 1e-4); +***** assert (var (t), 0.0434, 1e-4); +***** error ... + NakagamiDistribution(Inf, 1) +***** error ... + NakagamiDistribution(i, 1) +***** error ... + NakagamiDistribution("a", 1) +***** error ... + NakagamiDistribution([1, 2], 1) +***** error ... + NakagamiDistribution(NaN, 1) +***** error ... + NakagamiDistribution(1, 0) +***** error ... + NakagamiDistribution(1, -1) +***** error ... + NakagamiDistribution(1, Inf) +***** error ... + NakagamiDistribution(1, i) +***** error ... + NakagamiDistribution(1, "a") +***** error ... + NakagamiDistribution(1, [1, 2]) +***** error ... + NakagamiDistribution(1, NaN) +***** error ... + cdf (NakagamiDistribution, 2, "uper") +***** error ... + cdf (NakagamiDistribution, 2, 3) +***** shared x + x = nakarnd (1, 0.5, [1, 100]); +***** error ... + paramci (NakagamiDistribution.fit (x), "alpha") +***** error ... + paramci (NakagamiDistribution.fit (x), "alpha", 0) +***** error ... + paramci (NakagamiDistribution.fit (x), "alpha", 1) +***** error ... + paramci (NakagamiDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (NakagamiDistribution.fit (x), "alpha", "") +***** error ... + paramci (NakagamiDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (NakagamiDistribution.fit (x), "parameter", "mu", "alpha", {0.05}) +***** error ... + paramci (NakagamiDistribution.fit (x), "parameter", {"mu", "omega", "param"}) +***** error ... + paramci (NakagamiDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"mu", "omega", "param"}) +***** error ... + paramci (NakagamiDistribution.fit (x), "parameter", "param") +***** error ... + paramci (NakagamiDistribution.fit (x), "alpha", 0.01, "parameter", "param") +***** error ... + paramci (NakagamiDistribution.fit (x), "NAME", "value") +***** error ... + paramci (NakagamiDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (NakagamiDistribution.fit (x), "alpha", 0.01, "parameter", "mu", ... + "NAME", "value") +***** error ... + plot (NakagamiDistribution, "Parent") +***** error ... + plot (NakagamiDistribution, "PlotType", 12) +***** error ... + plot (NakagamiDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (NakagamiDistribution, "PlotType", "pdfcdf") +***** error ... + plot (NakagamiDistribution, "Discrete", "pdfcdf") +***** error ... + plot (NakagamiDistribution, "Discrete", [1, 0]) +***** error ... + plot (NakagamiDistribution, "Discrete", {true}) +***** error ... + plot (NakagamiDistribution, "Parent", 12) +***** error ... + plot (NakagamiDistribution, "Parent", "hax") +***** error ... + proflik (NakagamiDistribution, 2) +***** error ... + proflik (NakagamiDistribution.fit (x), 3) +***** error ... + proflik (NakagamiDistribution.fit (x), [1, 2]) +***** error ... + proflik (NakagamiDistribution.fit (x), {1}) +***** error ... + proflik (NakagamiDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (NakagamiDistribution.fit (x), 1, "Display") +***** error ... + proflik (NakagamiDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (NakagamiDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (NakagamiDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (NakagamiDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (NakagamiDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (NakagamiDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (NakagamiDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (NakagamiDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (NakagamiDistribution) +***** error ... + truncate (NakagamiDistribution, 2) +***** error ... + truncate (NakagamiDistribution, 4, 2) +***** shared pd + pd = NakagamiDistribution(1, 0.5); + pd(2) = NakagamiDistribution(1, 0.6); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +93 tests, 93 passed, 0 known failure, 0 skipped +[inst/dist_obj/LoglogisticDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/LoglogisticDistribution.m +***** shared pd, t + pd = LoglogisticDistribution; + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.5, 0.6667, 0.75, 0.8, 0.8333], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.625, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.6, 0.6667, 0.75, 0.8], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.625, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0.25, 0.6667, 1.5, 4, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.2609, 2.5714, 2.9474, 3.4118, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.6667, 1.5, 4, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.5714, 2.9474, 3.4118, 4, NaN], 1e-4); +***** assert (iqr (pd), 2.6667, 1e-4); +***** assert (iqr (t), 0.9524, 1e-4); +***** assert (mean (pd), Inf); +***** assert (mean (t), 2.8312, 1e-4); +***** assert (median (pd), 1, 1e-4); +***** assert (median (t), 2.75, 1e-4); +***** assert (pdf (pd, [0:5]), [0, 0.25, 0.1111, 0.0625, 0.04, 0.0278], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 0.8333, 0.4687, 0.3, 0], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.25, 0.1111, 0.0625, 0.04, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 0.8333, 0.4687, 0.3, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), Inf); +***** assert (std (t), 0.5674, 1e-4); +***** assert (var (pd), Inf); +***** assert (var (t), 0.3220, 1e-4); +***** error ... + LoglogisticDistribution(Inf, 1) +***** error ... + LoglogisticDistribution(i, 1) +***** error ... + LoglogisticDistribution("a", 1) +***** error ... + LoglogisticDistribution([1, 2], 1) +***** error ... + LoglogisticDistribution(NaN, 1) +***** error ... + LoglogisticDistribution(1, 0) +***** error ... + LoglogisticDistribution(1, -1) +***** error ... + LoglogisticDistribution(1, Inf) +***** error ... + LoglogisticDistribution(1, i) +***** error ... + LoglogisticDistribution(1, "a") +***** error ... + LoglogisticDistribution(1, [1, 2]) +***** error ... + LoglogisticDistribution(1, NaN) +***** error ... + cdf (LoglogisticDistribution, 2, "uper") +***** error ... + cdf (LoglogisticDistribution, 2, 3) +***** shared x + x = loglrnd (1, 1, [1, 100]); +***** error ... + paramci (LoglogisticDistribution.fit (x), "alpha") +***** error ... + paramci (LoglogisticDistribution.fit (x), "alpha", 0) +***** error ... + paramci (LoglogisticDistribution.fit (x), "alpha", 1) +***** error ... + paramci (LoglogisticDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (LoglogisticDistribution.fit (x), "alpha", "") +***** error ... + paramci (LoglogisticDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (LoglogisticDistribution.fit (x), "parameter", "mu", "alpha", {0.05}) +***** error ... + paramci (LoglogisticDistribution.fit (x), "parameter", {"mu", "sigma", "pa"}) +***** error ... + paramci (LoglogisticDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"mu", "sigma", "param"}) +***** error ... + paramci (LoglogisticDistribution.fit (x), "parameter", "param") +***** error ... + paramci (LoglogisticDistribution.fit (x), "alpha", 0.01, "parameter", "parm") +***** error ... + paramci (LoglogisticDistribution.fit (x), "NAME", "value") +***** error ... + paramci (LoglogisticDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (LoglogisticDistribution.fit (x), "alpha", 0.01, ... + "parameter", "mu", "NAME", "value") +***** error ... + plot (LoglogisticDistribution, "Parent") +***** error ... + plot (LoglogisticDistribution, "PlotType", 12) +***** error ... + plot (LoglogisticDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (LoglogisticDistribution, "PlotType", "pdfcdf") +***** error ... + plot (LoglogisticDistribution, "Discrete", "pdfcdf") +***** error ... + plot (LoglogisticDistribution, "Discrete", [1, 0]) +***** error ... + plot (LoglogisticDistribution, "Discrete", {true}) +***** error ... + plot (LoglogisticDistribution, "Parent", 12) +***** error ... + plot (LoglogisticDistribution, "Parent", "hax") +***** error ... + proflik (LoglogisticDistribution, 2) +***** error ... + proflik (LoglogisticDistribution.fit (x), 3) +***** error ... + proflik (LoglogisticDistribution.fit (x), [1, 2]) +***** error ... + proflik (LoglogisticDistribution.fit (x), {1}) +***** error ... + proflik (LoglogisticDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (LoglogisticDistribution.fit (x), 1, "Display") +***** error ... + proflik (LoglogisticDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (LoglogisticDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (LoglogisticDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (LoglogisticDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (LoglogisticDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (LoglogisticDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (LoglogisticDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (LoglogisticDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (LoglogisticDistribution) +***** error ... + truncate (LoglogisticDistribution, 2) +***** error ... + truncate (LoglogisticDistribution, 4, 2) +***** shared pd + pd = LoglogisticDistribution(1, 1); + pd(2) = LoglogisticDistribution(1, 3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +93 tests, 93 passed, 0 known failure, 0 skipped +[inst/dist_obj/WeibullDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/WeibullDistribution.m +***** shared pd, t + pd = WeibullDistribution; + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.6321, 0.8647, 0.9502, 0.9817, 0.9933], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7311, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.7769, 0.8647, 0.9502, 0.9817, NaN], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.7311, 1, NaN], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0.2231, 0.5108, 0.9163, 1.6094, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.1899, 2.4244, 2.7315, 3.1768, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.5108, 0.9163, 1.6094, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4244, 2.7315, 3.1768, 4, NaN], 1e-4); +***** assert (iqr (pd), 1.0986, 1e-4); +***** assert (iqr (t), 0.8020, 1e-4); +***** assert (mean (pd), 1, 1e-14); +***** assert (mean (t), 2.6870, 1e-4); +***** assert (median (pd), 0.6931, 1e-4); +***** assert (median (t), 2.5662, 1e-4); +***** assert (pdf (pd, [0:5]), [1, 0.3679, 0.1353, 0.0498, 0.0183, 0.0067], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 1.1565, 0.4255, 0.1565, 0], 1e-4); +***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0.2231, NaN], 1e-4); +***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 1, 1e-14); +***** assert (std (t), 0.5253, 1e-4); +***** assert (var (pd), 1, 1e-14); +***** assert (var (t), 0.2759, 1e-4); +***** error ... + WeibullDistribution(0, 1) +***** error ... + WeibullDistribution(-1, 1) +***** error ... + WeibullDistribution(Inf, 1) +***** error ... + WeibullDistribution(i, 1) +***** error ... + WeibullDistribution("a", 1) +***** error ... + WeibullDistribution([1, 2], 1) +***** error ... + WeibullDistribution(NaN, 1) +***** error ... + WeibullDistribution(1, 0) +***** error ... + WeibullDistribution(1, -1) +***** error ... + WeibullDistribution(1, Inf) +***** error ... + WeibullDistribution(1, i) +***** error ... + WeibullDistribution(1, "a") +***** error ... + WeibullDistribution(1, [1, 2]) +***** error ... + WeibullDistribution(1, NaN) +***** error ... + cdf (WeibullDistribution, 2, "uper") +***** error ... + cdf (WeibullDistribution, 2, 3) +***** shared x + x = wblrnd (1, 1, [1, 100]); +***** error ... + paramci (WeibullDistribution.fit (x), "alpha") +***** error ... + paramci (WeibullDistribution.fit (x), "alpha", 0) +***** error ... + paramci (WeibullDistribution.fit (x), "alpha", 1) +***** error ... + paramci (WeibullDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (WeibullDistribution.fit (x), "alpha", "") +***** error ... + paramci (WeibullDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (WeibullDistribution.fit (x), "parameter", "k", "alpha", {0.05}) +***** error ... + paramci (WeibullDistribution.fit (x), "parameter", {"lambda", "k", "param"}) +***** error ... + paramci (WeibullDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"lambda", "k", "param"}) +***** error ... + paramci (WeibullDistribution.fit (x), "parameter", "param") +***** error ... + paramci (WeibullDistribution.fit (x), "alpha", 0.01, "parameter", "param") +***** error ... + paramci (WeibullDistribution.fit (x), "NAME", "value") +***** error ... + paramci (WeibullDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (WeibullDistribution.fit (x), "alpha", 0.01, "parameter", "k", ... + "NAME", "value") +***** error ... + plot (WeibullDistribution, "Parent") +***** error ... + plot (WeibullDistribution, "PlotType", 12) +***** error ... + plot (WeibullDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (WeibullDistribution, "PlotType", "pdfcdf") +***** error ... + plot (WeibullDistribution, "Discrete", "pdfcdf") +***** error ... + plot (WeibullDistribution, "Discrete", [1, 0]) +***** error ... + plot (WeibullDistribution, "Discrete", {true}) +***** error ... + plot (WeibullDistribution, "Parent", 12) +***** error ... + plot (WeibullDistribution, "Parent", "hax") +***** error ... + proflik (WeibullDistribution, 2) +***** error ... + proflik (WeibullDistribution.fit (x), 3) +***** error ... + proflik (WeibullDistribution.fit (x), [1, 2]) +***** error ... + proflik (WeibullDistribution.fit (x), {1}) +***** error ... + proflik (WeibullDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (WeibullDistribution.fit (x), 1, "Display") +***** error ... + proflik (WeibullDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (WeibullDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (WeibullDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (WeibullDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (WeibullDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (WeibullDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (WeibullDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (WeibullDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (WeibullDistribution) +***** error ... + truncate (WeibullDistribution, 2) +***** error ... + truncate (WeibullDistribution, 4, 2) +***** shared pd + pd = WeibullDistribution(1, 1); + pd(2) = WeibullDistribution(1, 3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +95 tests, 95 passed, 0 known failure, 0 skipped +[inst/dist_obj/ExtremeValueDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/ExtremeValueDistribution.m +***** shared pd, t + pd = ExtremeValueDistribution (0, 1); + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0.6321, 0.9340, 0.9994, 1, 1, 1], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 1, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.9887, 0.9994, 1, 1], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 1, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [-Inf, -1.4999, -0.6717, -0.0874, 0.4759, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.0298, 2.0668, 2.1169, 2.1971, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, -0.6717, -0.0874, 0.4759, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.0668, 2.1169, 2.1971, 4, NaN], 1e-4); +***** assert (iqr (pd), 1.5725, 1e-4); +***** assert (iqr (t), 0.1338, 1e-4); +***** assert (mean (pd), -0.5772, 1e-4); +***** assert (mean (t), 2.1206, 1e-4); +***** assert (median (pd), -0.3665, 1e-4); +***** assert (median (t), 2.0897, 1e-4); +***** assert (pdf (pd, [0:5]), [0.3679, 0.1794, 0.0046, 0, 0, 0], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 7.3891, 0.0001, 0, 0], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0.2546, 0.1794, 0.0046, 0, 0, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 7.3891, 0.0001, 0, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 1.2825, 1e-4); +***** assert (std (t), 0.1091, 1e-4); +***** assert (var (pd), 1.6449, 1e-4); +***** assert (var (t), 0.0119, 1e-4); +***** error ... + ExtremeValueDistribution(Inf, 1) +***** error ... + ExtremeValueDistribution(i, 1) +***** error ... + ExtremeValueDistribution("a", 1) +***** error ... + ExtremeValueDistribution([1, 2], 1) +***** error ... + ExtremeValueDistribution(NaN, 1) +***** error ... + ExtremeValueDistribution(1, 0) +***** error ... + ExtremeValueDistribution(1, -1) +***** error ... + ExtremeValueDistribution(1, Inf) +***** error ... + ExtremeValueDistribution(1, i) +***** error ... + ExtremeValueDistribution(1, "a") +***** error ... + ExtremeValueDistribution(1, [1, 2]) +***** error ... + ExtremeValueDistribution(1, NaN) +***** error ... + cdf (ExtremeValueDistribution, 2, "uper") +***** error ... + cdf (ExtremeValueDistribution, 2, 3) +***** shared x rand ("seed", 1); - X = rand (50, 1); - b_true = [0.4; 1.5]; - mu_true = exp (b_true(1) + b_true(2) * X); - randp ("seed", 1); - y = poissrnd (mu_true); - b = glmfit(X, y, "poisson", "link", "log"); - assert(b(1), b_true(1), 0.5); - assert(b(2), b_true(2), 0.5); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/mahal.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/mahal.m -***** error mahal () -***** error mahal (1, 2, 3) -***** error mahal ("A", "B") -***** error mahal ([1, 2], ["A", "B"]) -***** error mahal (ones (2, 2, 2)) -***** error mahal (ones (2, 2), ones (2, 2, 2)) -***** error mahal (ones (2, 2), ones (2, 3)) -***** test - X = [1 0; 0 1; 1 1; 0 0]; - assert (mahal (X, X), [1.5; 1.5; 1.5; 1.5], 10*eps) - assert (mahal (X, X+1), [7.5; 7.5; 1.5; 13.5], 10*eps) -***** assert (mahal ([true; true], [false; true]), [0.5; 0.5], eps) -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/histfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/histfit.m -***** demo - histfit (randn (100, 1)) -***** test - hf = figure ("visible", "off"); - unwind_protect - x = [2, 4, 3, 2, 4, 3, 2, 5, 6, 4, 7, 5, 9, 8, 10, 4, 11]; - histfit (x); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** test - hf = figure ("visible", "off"); - unwind_protect - x = [2, 4, 3, 2, NaN, 3, 2, 5, 6, 4, 7, 5, 9, 8, 10, 4, 11]; - histfit (x); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** test - hf = figure ("visible", "off"); - unwind_protect - x = [2, 4, 3, 2, NaN, 3, 2, 5, 6, 4, 7, 5, 9, 8, 10, 4, 11]; - histfit (x, 3); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** error histfit (); -***** error histfit ([x',x']); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/regression_ftest.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/regression_ftest.m -***** error regression_ftest (); -***** error ... - regression_ftest ([1 2 3]', [2 3 4; 3 4 5]'); -***** error ... - regression_ftest ([1 2 NaN]', [2 3 4; 3 4 5]', [1 0.5]); -***** error ... - regression_ftest ([1 2 Inf]', [2 3 4; 3 4 5]', [1 0.5]); -***** error ... - regression_ftest ([1 2 3+i]', [2 3 4; 3 4 5]', [1 0.5]); -***** error ... - regression_ftest ([1 2 3]', [2 3 NaN; 3 4 5]', [1 0.5]); -***** error ... - regression_ftest ([1 2 3]', [2 3 Inf; 3 4 5]', [1 0.5]); -***** error ... - regression_ftest ([1 2 3]', [2 3 4; 3 4 3+i]', [1 0.5]); -***** error ... - regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], [], "alpha", 0); -***** error ... - regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], [], "alpha", 1.2); -***** error ... - regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], [], "alpha", [.02 .1]); -***** error ... - regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], [], "alpha", "a"); -***** error ... - regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], [], "some", 0.05); -***** error ... - regression_ftest ([1 2 3]', [2 3; 3 4]', [1 0.5]); -***** error ... - regression_ftest ([1 2; 3 4]', [2 3; 3 4]', [1 0.5]); -***** error ... - regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], ones (2)); -***** error ... - regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], "alpha"); -***** error ... - regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], [1 2]); -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/pdist.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/pdist.m -***** shared xy, t, eucl, x - xy = [0 1; 0 2; 7 6; 5 6]; - t = 1e-3; - eucl = @(v,m) sqrt(sumsq(repmat(v,rows(m),1)-m,2)); - x = [1 2 3; 4 5 6; 7 8 9; 3 2 1]; -***** assert (pdist (xy), [1.000 8.602 7.071 8.062 6.403 2.000], t); -***** assert (pdist (xy, eucl), [1.000 8.602 7.071 8.062 6.403 2.000], t); -***** assert (pdist (xy, "euclidean"), [1.000 8.602 7.071 8.062 6.403 2.000], t); -***** assert (pdist (xy, "seuclidean"), [0.380 2.735 2.363 2.486 2.070 0.561], t); -***** assert (pdist (xy, "mahalanobis"), [1.384 1.967 2.446 2.384 1.535 2.045], t); -***** assert (pdist (xy, "cityblock"), [1.000 12.00 10.00 11.00 9.000 2.000], t); -***** assert (pdist (xy, "minkowski"), [1.000 8.602 7.071 8.062 6.403 2.000], t); -***** assert (pdist (xy, "minkowski", 3), [1.000 7.763 6.299 7.410 5.738 2.000], t); -***** assert (pdist (xy, "cosine"), [0.000 0.349 0.231 0.349 0.231 0.013], t); -***** assert (pdist (xy, "correlation"), [0.000 2.000 0.000 2.000 0.000 2.000], t); -***** assert (pdist (xy, "spearman"), [0.000 2.000 0.000 2.000 0.000 2.000], t); -***** assert (pdist (xy, "hamming"), [0.500 1.000 1.000 1.000 1.000 0.500], t); -***** assert (pdist (xy, "jaccard"), [1.000 1.000 1.000 1.000 1.000 0.500], t); -***** assert (pdist (xy, "chebychev"), [1.000 7.000 5.000 7.000 5.000 2.000], t); -***** assert (pdist (x), [5.1962, 10.3923, 2.8284, 5.1962, 5.9161, 10.7703], 1e-4); -***** assert (pdist (x, "euclidean"), ... - [5.1962, 10.3923, 2.8284, 5.1962, 5.9161, 10.7703], 1e-4); -***** assert (pdist (x, eucl), ... - [5.1962, 10.3923, 2.8284, 5.1962, 5.9161, 10.7703], 1e-4); -***** assert (pdist (x, "squaredeuclidean"), [27, 108, 8, 27, 35, 116]); -***** assert (pdist (x, "seuclidean"), ... - [1.8071, 3.6142, 0.9831, 1.8071, 1.8143, 3.4854], 1e-4); -***** warning ... - pdist (x, "mahalanobis"); -***** assert (pdist (x, "cityblock"), [9, 18, 4, 9, 9, 18]); -***** assert (pdist (x, "minkowski"), ... - [5.1962, 10.3923, 2.8284, 5.1962, 5.9161, 10.7703], 1e-4); -***** assert (pdist (x, "minkowski", 3), ... - [4.3267, 8.6535, 2.5198, 4.3267, 5.3485, 9.2521], 1e-4); -***** assert (pdist (x, "cosine"), ... - [0.0254, 0.0406, 0.2857, 0.0018, 0.1472, 0.1173], 1e-4); -***** assert (pdist (x, "correlation"), [0, 0, 2, 0, 2, 2], 1e-14); -***** assert (pdist (x, "spearman"), [0, 0, 2, 0, 2, 2], 1e-14); -***** assert (pdist (x, "hamming"), [1, 1, 2/3, 1, 1, 1]); -***** assert (pdist (x, "jaccard"), [1, 1, 2/3, 1, 1, 1]); -***** assert (pdist (x, "chebychev"), [3, 6, 2, 3, 5, 8]); -29 tests, 29 passed, 0 known failure, 0 skipped -[inst/runstest.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/runstest.m -***** test - ## NIST beam deflection data - ## http://www.itl.nist.gov/div898/handbook/eda/section4/eda425.htm - data = [-213, -564, -35, -15, 141, 115, -420, -360, 203, -338, -431, ... - 194, -220, -513, 154, -125, -559, 92, -21, -579, -52, 99, -543, ... - -175, 162, -457, -346, 204, -300, -474, 164, -107, -572, -8, 83, ... - -541, -224, 180, -420, -374, 201, -236, -531, 83, 27, -564, -112, ... - 131, -507, -254, 199, -311, -495, 143, -46, -579, -90, 136, ... - -472, -338, 202, -287, -477, 169, -124, -568, 17, 48, -568, -135, ... - 162, -430, -422, 172, -74, -577, -13, 92, -534, -243, 194, -355, ... - -465, 156, -81, -578, -64, 139, -449, -384, 193, -198, -538, 110, ... - -44, -577, -6, 66, -552, -164, 161, -460, -344, 205, -281, -504, ... - 134, -28, -576, -118, 156, -437, -381, 200, -220, -540, 83, 11, ... - -568, -160, 172, -414, -408, 188, -125, -572, -32, 139, -492, ... - -321, 205, -262, -504, 142, -83, -574, 0, 48, -571, -106, 137, ... - -501, -266, 190, -391, -406, 194, -186, -553, 83, -13, -577, -49, ... - 103, -515, -280, 201, 300, -506, 131, -45, -578, -80, 138, -462, ... - -361, 201, -211, -554, 32, 74, -533, -235, 187, -372, -442, 182, ... - -147, -566, 25, 68, -535, -244, 194, -351, -463, 174, -125, -570, ... - 15, 72, -550, -190, 172, -424, -385, 198, -218, -536, 96]; - [h, p, stats] = runstest (data, median (data)); - expected_h = 1; - expected_p = 0.008562; - expected_z = 2.6229; - assert (h, expected_h); - assert (p, expected_p, 1E-6); - assert (stats.z, expected_z, 1E-4); + x = evrnd (1, 1, [1000, 1]); +***** error ... + paramci (ExtremeValueDistribution.fit (x), "alpha") +***** error ... + paramci (ExtremeValueDistribution.fit (x), "alpha", 0) +***** error ... + paramci (ExtremeValueDistribution.fit (x), "alpha", 1) +***** error ... + paramci (ExtremeValueDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (ExtremeValueDistribution.fit (x), "alpha", "") +***** error ... + paramci (ExtremeValueDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (ExtremeValueDistribution.fit (x), ... + "parameter", "mu", "alpha", {0.05}) +***** error ... + paramci (ExtremeValueDistribution.fit (x), ... + "parameter", {"mu", "sigma", "param"}) +***** error ... + paramci (ExtremeValueDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"mu", "sigma", "param"}) +***** error ... + paramci (ExtremeValueDistribution.fit (x), "parameter", "param") +***** error ... + paramci (ExtremeValueDistribution.fit (x), "alpha", 0.01, ... + "parameter", "param") +***** error ... + paramci (ExtremeValueDistribution.fit (x), "NAME", "value") +***** error ... + paramci (ExtremeValueDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (ExtremeValueDistribution.fit (x), "alpha", 0.01, ... + "parameter", "mu", "NAME", "value") +***** error ... + plot (ExtremeValueDistribution, "Parent") +***** error ... + plot (ExtremeValueDistribution, "PlotType", 12) +***** error ... + plot (ExtremeValueDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (ExtremeValueDistribution, "PlotType", "pdfcdf") +***** error ... + plot (ExtremeValueDistribution, "Discrete", "pdfcdf") +***** error ... + plot (ExtremeValueDistribution, "Discrete", [1, 0]) +***** error ... + plot (ExtremeValueDistribution, "Discrete", {true}) +***** error ... + plot (ExtremeValueDistribution, "Parent", 12) +***** error ... + plot (ExtremeValueDistribution, "Parent", "hax") +***** error ... + proflik (ExtremeValueDistribution, 2) +***** error ... + proflik (ExtremeValueDistribution.fit (x), 3) +***** error ... + proflik (ExtremeValueDistribution.fit (x), [1, 2]) +***** error ... + proflik (ExtremeValueDistribution.fit (x), {1}) +***** error ... + proflik (ExtremeValueDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (ExtremeValueDistribution.fit (x), 1, "Display") +***** error ... + proflik (ExtremeValueDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (ExtremeValueDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (ExtremeValueDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (ExtremeValueDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (ExtremeValueDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (ExtremeValueDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (ExtremeValueDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (ExtremeValueDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (ExtremeValueDistribution) +***** error ... + truncate (ExtremeValueDistribution, 2) +***** error ... + truncate (ExtremeValueDistribution, 4, 2) +***** shared pd + pd = ExtremeValueDistribution(1, 1); + pd(2) = ExtremeValueDistribution(1, 3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +93 tests, 93 passed, 0 known failure, 0 skipped +[inst/dist_obj/NegativeBinomialDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/NegativeBinomialDistribution.m +***** shared pd, t + pd = NegativeBinomialDistribution; + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0.5, 0.75, 0.875, 0.9375, 0.9688, 0.9844], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.75, 0.875, 0.9375, 0.9688], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0, 0, 1, 2, Inf], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0, 1, 2, Inf, NaN], 1e-4); +***** assert (iqr (pd), 1); +***** assert (mean (pd), 1); +***** assert (median (pd), 0); +***** assert (pdf (pd, [0:5]), [0.5, 0.25, 0.125, 0.0625, 0.0312, 0.0156], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.25, 0.125, 0.0625, 0.0312, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (std (pd), 1.4142, 1e-4); +***** assert (var (pd), 2); +***** error ... + NegativeBinomialDistribution(Inf, 1) +***** error ... + NegativeBinomialDistribution(i, 1) +***** error ... + NegativeBinomialDistribution("a", 1) +***** error ... + NegativeBinomialDistribution([1, 2], 1) +***** error ... + NegativeBinomialDistribution(NaN, 1) +***** error ... + NegativeBinomialDistribution(1, 0) +***** error ... + NegativeBinomialDistribution(1, -1) +***** error ... + NegativeBinomialDistribution(1, Inf) +***** error ... + NegativeBinomialDistribution(1, i) +***** error ... + NegativeBinomialDistribution(1, "a") +***** error ... + NegativeBinomialDistribution(1, [1, 2]) +***** error ... + NegativeBinomialDistribution(1, NaN) +***** error ... + NegativeBinomialDistribution(1, 1.2) +***** error ... + cdf (NegativeBinomialDistribution, 2, "uper") +***** error ... + cdf (NegativeBinomialDistribution, 2, 3) ***** shared x - x = [45, -60, 1.225, 55.4, -9 27]; -***** test - [h, p, stats] = runstest (x); - assert (h, 0); - assert (p, 0.6, 1e-14); - assert (stats.nruns, 5); - assert (stats.n1, 3); - assert (stats.n0, 3); - assert (stats.z, 0.456435464587638, 1e-14); -***** test - [h, p, stats] = runstest (x, [], "method", "approximate"); - assert (h, 0); - assert (p, 0.6481, 1e-4); - assert (stats.z, 0.456435464587638, 1e-14); -***** test - [h, p, stats] = runstest (x, [], "tail", "left"); - assert (h, 0); - assert (p, 0.9, 1e-14); - assert (stats.z, 1.369306393762915, 1e-14); -***** error runstest (ones (2,20)) -***** error runstest (["asdasda"]) -***** error ... - runstest ([2 3 4 3 2 3 4], "updown") -***** error ... - runstest ([2 3 4 3 2 3 4], [], "alpha", 0) -***** error ... - runstest ([2 3 4 3 2 3 4], [], "alpha", [0.02 0.2]) -***** error ... - runstest ([2 3 4 3 2 3 4], [], "alpha", 1.2) -***** error ... - runstest ([2 3 4 3 2 3 4], [], "alpha", -0.05) -***** error ... - runstest ([2 3 4 3 2 3 4], [], "method", "some") -***** error ... - runstest ([2 3 4 3 2 3 4], [], "tail", "some") -***** error ... - runstest ([2 3 4 3 2 3 4], [], "option", "some") -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/plsregress.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/plsregress.m -***** demo - ## Perform Partial Least-Squares Regression - - ## Load the spectra data set and use the near infrared (NIR) spectral - ## intensities (NIR) as the predictor and the corresponding octave - ## ratings (octave) as the response. - load spectra - - ## Perform PLS regression with 10 components - [xload, yload, xscore, yscore, coef, ptcVar] = plsregress (NIR, octane, 10); - - ## Plot the percentage of explained variance in the response variable - ## (PCTVAR) as a function of the number of components. - plot (1:10, cumsum (100 * ptcVar(2,:)), "-ro"); - xlim ([1, 10]); - xlabel ("Number of PLS components"); - ylabel ("Percentage of Explained Variance in octane"); - title ("Explained Variance per PLS components"); - - ## Compute the fitted response and display the residuals. - octane_fitted = [ones(size(NIR,1),1), NIR] * coef; - residuals = octane - octane_fitted; - figure - stem (residuals, "color", "r", "markersize", 4, "markeredgecolor", "r") - xlabel ("Observations"); - ylabel ("Residuals"); - title ("Residuals in octane's fitted responce"); -***** demo - ## Calculate Variable Importance in Projection (VIP) for PLS Regression - - ## Load the spectra data set and use the near infrared (NIR) spectral - ## intensities (NIR) as the predictor and the corresponding octave - ## ratings (octave) as the response. Variables with a VIP score greater than - ## 1 are considered important for the projection of the PLS regression model. - load spectra - - ## Perform PLS regression with 10 components - [xload, yload, xscore, yscore, coef, pctVar, mse, stats] = ... - plsregress (NIR, octane, 10); - - ## Calculate the normalized PLS weights - W0 = stats.W ./ sqrt(sum(stats.W.^2,1)); - - ## Calculate the VIP scores for 10 components - nobs = size (xload, 1); - SS = sum (xscore .^ 2, 1) .* sum (yload .^ 2, 1); - VIPscore = sqrt (nobs * sum (SS .* (W0 .^ 2), 2) ./ sum (SS, 2)); - - ## Find variables with a VIP score greater than or equal to 1 - VIPidx = find (VIPscore >= 1); - - ## Plot the VIP scores - scatter (1:length (VIPscore), VIPscore, "xb"); - hold on - scatter (VIPidx, VIPscore (VIPidx), "xr"); - plot ([1, length(VIPscore)], [1, 1], "--k"); - hold off - axis ("tight"); - xlabel ("Predictor Variables"); - ylabel ("VIP scores"); - title ("VIP scores for each predictror variable with 10 components"); -***** test - load spectra - [xload, yload, xscore, yscore, coef, pctVar] = plsregress (NIR, octane, 10); - xload1_out = [-0.0170, 0.0039, 0.0095, 0.0258, 0.0025, ... - -0.0075, 0.0000, 0.0018, -0.0027, 0.0020]; - yload_out = [6.6384, 9.3106, 2.0505, 0.6471, 0.9625, ... - 0.5905, 0.4244, 0.2437, 0.3516, 0.2548]; - xscore1_out = [-0.0401, -0.1764, -0.0340, 0.1669, 0.1041, ... - -0.2067, 0.0457, 0.1565, 0.0706, -0.1471]; - yscore1_out = [-12.4635, -15.0003, 0.0638, 0.0652, -0.0070, ... - -0.0634, 0.0062, -0.0012, -0.0151, -0.0173]; - assert (xload(1,:), xload1_out, 1e-4); - assert (yload, yload_out, 1e-4); - assert (xscore(1,:), xscore1_out, 1e-4); - assert (yscore(1,:), yscore1_out, 1e-4); -***** test - load spectra - [xload, yload, xscore, yscore, coef, pctVar] = plsregress (NIR, octane, 5); - xload1_out = [-0.0170, 0.0039, 0.0095, 0.0258, 0.0025]; - yload_out = [6.6384, 9.3106, 2.0505, 0.6471, 0.9625]; - xscore1_out = [-0.0401, -0.1764, -0.0340, 0.1669, 0.1041]; - yscore1_out = [-12.4635, -15.0003, 0.0638, 0.0652, -0.0070]; - assert (xload(1,:), xload1_out, 1e-4); - assert (yload, yload_out, 1e-4); - assert (xscore(1,:), xscore1_out, 1e-4); - assert (yscore(1,:), yscore1_out, 1e-4); -***** error - plsregress (1) -***** error plsregress (1, "asd") -***** error plsregress (1, {1,2,3}) -***** error plsregress ("asd", 1) -***** error plsregress ({1,2,3}, 1) -***** error ... - plsregress (ones (20,3), ones (15,1)) -***** error ... - plsregress (ones (20,3), ones (20,1), 0) -***** error ... - plsregress (ones (20,3), ones (20,1), -5) -***** error ... - plsregress (ones (20,3), ones (20,1), 3.2) -***** error ... - plsregress (ones (20,3), ones (20,1), [2, 3]) -***** error ... - plsregress (ones (20,3), ones (20,1), 4) -***** error ... - plsregress (ones (20,3), ones (20,1), 3, "cv", 4.5) -***** error ... - plsregress (ones (20,3), ones (20,1), 3, "cv", -1) -***** error ... - plsregress (ones (20,3), ones (20,1), 3, "cv", "somestring") -***** error ... - plsregress (ones (20,3), ones (20,1), 3, "cv", 3, "mcreps", 2.2) -***** error ... - plsregress (ones (20,3), ones (20,1), 3, "cv", 3, "mcreps", -2) -***** error ... - plsregress (ones (20,3), ones (20,1), 3, "cv", 3, "mcreps", [1, 2]) -***** error ... - plsregress (ones (20,3), ones (20,1), 3, "Name", 3, "mcreps", 1) -***** error ... - plsregress (ones (20,3), ones (20,1), 3, "cv", 3, "Name", 1) -***** error ... - plsregress (ones (20,3), ones (20,1), 3, "mcreps", 2) -***** error ... - plsregress (ones (20,3), ones (20,1), 3, "cv", "resubstitution", "mcreps", 2) -***** error plsregress (1, 2) -24 tests, 24 passed, 0 known failure, 0 skipped -[inst/silhouette.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/silhouette.m -***** demo - load fisheriris; - X = meas(:,3:4); - cidcs = kmeans (X, 3, "Replicates", 5); - silhouette (X, cidcs); - y_labels(cidcs([1 51 101])) = unique (species); - set (gca, "yticklabel", y_labels); - title ("Fisher's iris data"); -***** error silhouette (); -***** error silhouette ([1 2; 1 1]); -***** error silhouette ([1 2; 1 1], [1 2 3]'); -***** error silhouette ([1 2; 1 1], [1 2]', "xxx"); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/manova1.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/manova1.m -***** demo - load carbig - [d,p] = manova1([MPG, Acceleration, Weight, Displacement], Origin) -***** test - load carbig - [d,p] = manova1([MPG, Acceleration, Weight, Displacement], Origin); - assert (d, 3); - assert (p, [0, 3.140583347827075e-07, 0.007510999577743149, ... - 0.1934100745898493]', [1e-12, 1e-12, 1e-12, 1e-12]'); -***** test - load carbig - [d,p] = manova1([MPG, Acceleration, Weight], Origin); - assert (d, 2); - assert (p, [0, 0.00516082975137544, 0.1206528056514453]', ... - [1e-12, 1e-12, 1e-12]'); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/barttest.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/barttest.m -***** error barttest () -***** error barttest ([2,NaN;3,4]) -***** error barttest (ones (30, 4), "alpha") -***** error barttest (ones (30, 4), 0) -***** error barttest (ones (30, 4), 1.2) -***** error barttest (ones (30, 4), [0.2, 0.05]) -***** error barttest (ones (30, 1)) -***** error barttest (ones (30, 1), 0.05) -***** test - x = [2, 3, 4, 5, 6, 7, 8, 9; 1, 2, 3, 4, 5, 6, 7, 8]'; - [ndim, pval, chisq] = barttest (x); - assert (ndim, 2); - assert (pval, 0); - ## assert (chisq, 512.0558, 1e-4); Result differs between octave 6 and 7 ? -***** test - x = [0.53767, 0.62702, -0.10224, -0.25485, 1.4193, 1.5237 ; ... - 1.8339, 1.6452, -0.24145, -0.23444, 0.29158, 0.1634 ; ... - -2.2588, -2.1351, 0.31286, 0.39396, 0.19781, 0.20995 ; ... - 0.86217, 1.0835, 0.31286, 0.46499, 1.5877, 1.495 ; ... - 0.31877, 0.38454, -0.86488, -0.63839, -0.80447, -0.7536 ; ... - -1.3077, -1.1487, -0.030051, -0.017629, 0.69662, 0.60497 ; ... - -0.43359, -0.32672, -0.16488, -0.37364, 0.83509, 0.89586 ; ... - 0.34262, 0.29639, 0.62771, 0.51672, -0.24372, -0.13698 ; ... - 3.5784, 3.5841, 1.0933, 0.93258, 0.21567, 0.455 ; ... - 2.7694, 2.6307, 1.1093, 1.4298, -1.1658, -1.1816 ; ... - -1.3499, -1.2111, -0.86365, -0.94186, -1.148, -1.4381 ; ... - 3.0349, 2.8428, 0.077359, 0.18211, 0.10487, -0.014613; ... - 0.7254, 0.56737, -1.2141, -1.2291, 0.72225, 0.90612 ; ... - -0.063055,-0.17662, -1.1135, -0.97701, 2.5855, 2.4084 ; ... - 0.71474, 0.29225, -0.0068493, -0.11468, -0.66689, -0.52466 ; ... - -0.20497, -7.8874e-06, 1.5326, 1.3195, 0.18733, 0.20296 ; ... - -0.12414, -0.077029, -0.76967, -0.96262, -0.082494, 0.121 ; ... - 1.4897, 1.3683, 0.37138, 0.43653, -1.933, -2.1903 ; ... - 1.409, 1.5882, -0.22558, -0.24835, -0.43897, -0.46247 ; ... - 1.4172, 1.1616, 1.1174, 1.0785, -1.7947, -1.9471 ]; - [ndim, pval, chisq] = barttest (x); - assert (ndim, 3); - assert (pval, [0; 0; 0; 0.52063; 0.34314], 1e-5); - chisq_out = [251.6802; 210.2670; 153.1773; 4.2026; 2.1392]; - assert (chisq, chisq_out, 1e-4); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/signtest.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/signtest.m -***** error signtest (); -***** error signtest ([]); -***** error signtest (ones(1,10), ones(1,8)); -***** error signtest (ones(1,10), ones(2,10)); -***** error signtest (ones(2,10), 0); -***** error signtest (ones(1,10), zeros(1,10), "alpha", 1.4) -***** error signtest (ones(1,10), zeros(1,10), "tail", "<") -***** error signtest (ones(1,10), zeros(1,10), "method", "some") -***** test - [pval, h, stats] = signtest ([-ones(1, 1000) 1], 0, "tail", "left"); - assert (pval, 1.091701889420221e-218, 1e-14); - assert (h, 1); - assert (stats.zval, -31.5437631079266, 1e-14); -***** test - [pval, h, stats] = signtest ([-2 -1 0 2 1 3 1], 0); - assert (pval, 0.6875000000000006, 1e-14); - assert (h, 0); - assert (stats.zval, NaN); - assert (stats.sign, 4); -***** test - [pval, h, stats] = signtest ([-2 -1 0 2 1 3 1], 0, "method", "approximate"); - assert (pval, 0.6830913983096086, 1e-14); - assert (h, 0); - assert (stats.zval, 0.4082482904638631, 1e-14); - assert (stats.sign, 4); -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/violin.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/violin.m -***** demo - clf - x = zeros (9e2, 10); - for i=1:10 - x(:,i) = (0.1 * randn (3e2, 3) * (randn (3,1) + 1) + 2 * randn (1,3))(:); - endfor - h = violin (x, "color", "c"); - axis tight - set (h.violin, "linewidth", 2); - set (gca, "xgrid", "on"); - xlabel ("Variables") - ylabel ("Values") -***** demo - clf - data = {randn(100,1)*5+140, randn(130,1)*8+135}; - subplot (1,2,1) - title ("Grade 3 heights - vertical"); - set (gca, "xtick", 1:2, "xticklabel", {"girls"; "boys"}); - violin (data, "Nbins", 10); - axis tight - - subplot(1,2,2) - title ("Grade 3 heights - horizontal"); - set (gca, "ytick", 1:2, "yticklabel", {"girls"; "boys"}); - violin (data, "horizontal", "Nbins", 10); - axis tight -***** demo - clf - data = exprnd (0.1, 500,4); - violin (data, "nbins", {5,10,50,100}); - axis ([0 5 0 max(data(:))]) -***** demo - clf - data = exprnd (0.1, 500,4); - violin (data, "color", jet(4)); - axis ([0 5 0 max(data(:))]) -***** demo - clf - data = repmat(exprnd (0.1, 500,1), 1, 4); - violin (data, "width", linspace (0.1,0.5,4)); - axis ([0 5 0 max(data(:))]) -***** demo - clf - data = repmat(exprnd (0.1, 500,1), 1, 4); - violin (data, "nbins", [5,10,50,100], "smoothfactor", [4 4 8 10]); - axis ([0 5 0 max(data(:))]) -***** test - hf = figure ("visible", "off"); - unwind_protect - data = exprnd (0.1, 500,4); - violin (data, "color", jet(4)); - axis ([0 5 0 max(data(:))]) - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** test - hf = figure ("visible", "off"); - unwind_protect - data = {randn(100,1)*5+140, randn(130,1)*8+135}; - subplot (1,2,1) - title ("Grade 3 heights - vertical"); - set (gca, "xtick", 1:2, "xticklabel", {"girls"; "boys"}); - violin (data, "Nbins", 10); - axis tight - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** test - hf = figure ("visible", "off"); - unwind_protect - data = {randn(100,1)*5+140, randn(130,1)*8+135}; - subplot (1,2,1) - title ("Grade 3 heights - vertical"); - set (gca, "xtick", 1:2, "xticklabel", {"girls"; "boys"}); - violin (data, "Nbins", 10); - axis tight - subplot(1,2,2) - title ("Grade 3 heights - horizontal"); - set (gca, "ytick", 1:2, "yticklabel", {"girls"; "boys"}); - violin (data, "horizontal", "Nbins", 10); - axis tight - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** test - hf = figure ("visible", "off"); - unwind_protect - data = repmat(exprnd (0.1, 500,1), 1, 4); - violin (data, "nbins", [5,10,50,100], "smoothfactor", [4 4 8 10]); - axis ([0 5 0 max(data(:))]) - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** test - hf = figure ("visible", "off"); - unwind_protect - data = repmat(exprnd (0.1, 500,1), 1, 4); - violin (data, "width", linspace (0.1,0.5,4)); - axis ([0 5 0 max(data(:))]) - unwind_protect_cleanup - close (hf); - end_unwind_protect -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/canoncorr.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/canoncorr.m -***** shared X,Y,A,B,r,U,V,k - k = 10; - X = [1:k; sin(1:k); cos(1:k)]'; Y = [tan(1:k); tanh((1:k)/k)]'; - [A,B,r,U,V,stats] = canoncorr (X,Y); -***** assert (A, [-0.329229 0.072908; 0.074870 1.389318; -0.069302 -0.024109], 1E-6); -***** assert (B, [-0.017086 -0.398402; -4.475049 -0.824538], 1E-6); -***** assert (r, [0.99590 0.26754], 1E-5); -***** assert (U, center(X) * A, 10*eps); -***** assert (V, center(Y) * B, 10*eps); -***** assert (cov(U), eye(size(U, 2)), 10*eps); -***** assert (cov(V), eye(size(V, 2)), 10*eps); - rand ("state", 1); [A,B,r] = canoncorr (rand(5, 10),rand(5, 20)); -***** assert (r, ones(1, 5), 10*eps); -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/geomean.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/geomean.m -***** test - x = [0:10]; - y = [x;x+5;x+10]; - assert (geomean (x), 0); - m = [0 9.462942809849169 14.65658770861967]; - assert (geomean (y, 2), m', 4e-14); - assert (geomean (y, "all"), 0); - y(2,4) = NaN; - m(2) = 9.623207231679554; - assert (geomean (y, 2), [0 NaN m(3)]', 4e-14); - assert (geomean (y', "omitnan"), m, 4e-14); - z = y + 20; - assert (geomean (z, "all"), NaN); - assert (geomean (z, "all", "includenan"), NaN); - assert (geomean (z, "all", "omitnan"), 29.59298474535024, 4e-14); - m = [24.79790781765634 NaN 34.85638839503932]; - assert (geomean (z'), m, 4e-14); - assert (geomean (z', "includenan"), m, 4e-14); - m(2) = 30.02181156156319; - assert (geomean (z', "omitnan"), m, 4e-14); - assert (geomean (z, 2, "omitnan"), m', 4e-14); -***** test - x = repmat ([1:20;6:25], [5 2 6 3]); - assert (size (geomean (x, [3 2])), [10 1 1 3]); - assert (size (geomean (x, [1 2])), [1 1 6 3]); - assert (size (geomean (x, [1 2 4])), [1 1 6]); - assert (size (geomean (x, [1 4 3])), [1 40]); - assert (size (geomean (x, [1 2 3 4])), [1 1]); -***** test - x = repmat ([1:20;6:25], [5 2 6 3]); - m = repmat ([8.304361203739333;14.3078118884256], [5 1 1 3]); - assert (geomean (x, [3 2]), m, 4e-13); - x(2,5,6,3) = NaN; - m(2,3) = NaN; - assert (geomean (x, [3 2]), m, 4e-13); - m(2,3) = 14.3292729579901; - assert (geomean (x, [3 2], "omitnan"), m, 4e-13); -***** error geomean ("char") -***** error geomean ([1 -1 3]) -***** error ... - geomean (repmat ([1:20;6:25], [5 2 6 3 5]), -1) -***** error ... - geomean (repmat ([1:20;6:25], [5 2 6 3 5]), 0) -***** error ... - geomean (repmat ([1:20;6:25], [5 2 6 3 5]), [1 1]) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/optimalleaforder.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/optimalleaforder.m -***** demo - randn ("seed", 5) # for reproducibility - X = randn (10, 2); - D = pdist (X); - tree = linkage(D, 'average'); - optimalleaforder (tree, D, 'Transformation', 'linear') -***** error optimalleaforder () -***** error optimalleaforder (1) -***** error optimalleaforder (ones (2, 2), 1) -***** error optimalleaforder ([1 2 3], [1 2; 3 4], "criteria", 5) -***** error optimalleaforder ([1 2 1], [1 2 3]) -***** error optimalleaforder ([1 2 1], 1, "xxx", "xxx") -***** error optimalleaforder ([1 2 1], 1, "Transformation", "xxx") -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/sampsizepwr.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/sampsizepwr.m -***** demo - ## Compute the mean closest to 100 that can be determined to be - ## significantly different from 100 using a t-test with a sample size - ## of 60 and a power of 0.8. - mu1 = sampsizepwr ("t", [100, 10], [], 0.8, 60); - disp (mu1); -***** demo - ## Compute the sample sizes required to distinguish mu0 = 100 from - ## mu1 = 110 by a two-sample t-test with a ratio of the larger and the - ## smaller sample sizes of 1.5 and a power of 0.6. - [N1,N2] = sampsizepwr ("t2", [100, 10], 110, 0.6, [], "ratio", 1.5) -***** demo - ## Compute the sample size N required to distinguish p=.26 from p=.2 - ## with a binomial test. The result is approximate, so make a plot to - ## see if any smaller N values also have the required power of 0.6. - Napprox = sampsizepwr ("p", 0.2, 0.26, 0.6); - nn = 1:250; - pwr = sampsizepwr ("p", 0.2, 0.26, [], nn); - Nexact = min (nn(pwr >= 0.6)); - plot(nn,pwr,'b-', [Napprox Nexact],pwr([Napprox Nexact]),'ro'); - grid on -***** demo - ## The company must test 52 bottles to detect the difference between a mean - ## volume of 100 mL and 102 mL with a power of 0.80. Generate a power curve - ## to visualize how the sample size affects the power of the test. - - nout = sampsizepwr('t',[100 5],102,0.80); - nn = 1:100; - pwrout = sampsizepwr('t',[100 5],102,[],nn); - - figure; - plot (nn, pwrout, "b-", nout, 0.8, "ro") - title ("Power versus Sample Size") - xlabel ("Sample Size") - ylabel ("Power") -***** error ... - out = sampsizepwr ([], [100, 10], [], 0.8, 60); -***** error ... - out = sampsizepwr (3, [100, 10], [], 0.8, 60); -***** error ... - out = sampsizepwr ({"t", "t2"}, [100, 10], [], 0.8, 60); -***** error ... - out = sampsizepwr ("reg", [100, 10], [], 0.8, 60); -***** error ... - out = sampsizepwr ("t", ["a", "e"], [], 0.8, 60); -***** error ... - out = sampsizepwr ("z", 100, [], 0.8, 60); -***** error ... - out = sampsizepwr ("t", 100, [], 0.8, 60); -***** error ... - out = sampsizepwr ("t2", 60, [], 0.8, 60); -***** error ... - out = sampsizepwr ("var", [100, 10], [], 0.8, 60); -***** error ... - out = sampsizepwr ("p", [100, 10], [], 0.8, 60); -***** error ... - out = sampsizepwr ("r", [100, 10], [], 0.8, 60); -***** error ... - [out, N1] = sampsizepwr ("z", [100, 10], [], 0.8, 60); -***** error ... - [out, N1] = sampsizepwr ("t", [100, 10], [], 0.8, 60); -***** error ... - [out, N1] = sampsizepwr ("var", 2, [], 0.8, 60); -***** error ... - [out, N1] = sampsizepwr ("p", 0.1, [], 0.8, 60); -***** error ... - [out, N1] = sampsizepwr ("r", 0.5, [], 0.8, 60); -***** error ... - out = sampsizepwr ("z", [100, 0], [], 0.8, 60); -***** error ... - out = sampsizepwr ("z", [100, -5], [], 0.8, 60); -***** error ... - out = sampsizepwr ("t", [100, 0], [], 0.8, 60); -***** error ... - out = sampsizepwr ("t", [100, -5], [], 0.8, 60); -***** error ... - [out, N1] = sampsizepwr ("t2", [100, 0], [], 0.8, 60); -***** error ... - [out, N1] = sampsizepwr ("t2", [100, -5], [], 0.8, 60); -***** error ... - out = sampsizepwr ("var", 0, [], 0.8, 60); -***** error ... - out = sampsizepwr ("var", -5, [], 0.8, 60); -***** error ... - out = sampsizepwr ("p", 0, [], 0.8, 60); -***** error ... - out = sampsizepwr ("p", 1.2, [], 0.8, 60); -***** error ... - out = sampsizepwr ("r", -1.5, [], 0.8, 60); -***** error ... - out = sampsizepwr ("r", -1, [], 0.8, 60); -***** error ... - out = sampsizepwr ("r", 1.2, [], 0.8, 60); -***** error ... - out = sampsizepwr ("r", 0, [], 0.8, 60); -***** error ... - out = sampsizepwr ("r", 0.2, [], 0.8, 60, "alpha", -0.2); -***** error ... - out = sampsizepwr ("r", 0.2, [], 0.8, 60, "alpha", 0); -***** error ... - out = sampsizepwr ("r", 0.2, [], 0.8, 60, "alpha", 1.5); -***** error ... - out = sampsizepwr ("r", 0.2, [], 0.8, 60, "alpha", "zero"); -***** error ... - out = sampsizepwr ("r", 0.2, [], 0.8, 60, "tail", 1.5); -***** error ... - out = sampsizepwr ("r", 0.2, [], 0.8, 60, "tail", {"both", "left"}); -***** error ... - out = sampsizepwr ("r", 0.2, [], 0.8, 60, "tail", "other"); -***** error ... - out = sampsizepwr ("r", 0.2, [], 0.8, 60, "ratio", "some"); -***** error ... - out = sampsizepwr ("r", 0.2, [], 0.8, 60, "ratio", 0.5); -***** error ... - out = sampsizepwr ("r", 0.2, [], 0.8, 60, "ratio", [2, 1.3, 0.3]); -***** error ... - out = sampsizepwr ("z", [100, 5], [], [], 60); -***** error ... - out = sampsizepwr ("z", [100, 5], 110, [], []); -***** error ... - out = sampsizepwr ("z", [100, 5], [], 0.8, []); -***** error ... - out = sampsizepwr ("z", [100, 5], 110, 0.8, 60); -***** error ... - out = sampsizepwr ("z", [100, 5], "mu", [], 60); -***** error ... - out = sampsizepwr ("var", 5, -1, [], 60); -***** error ... - out = sampsizepwr ("p", 0.8, 1.2, [], 60, "tail", "right"); -***** error ... - out = sampsizepwr ("r", 0.8, 1.2, [], 60); -***** error ... - out = sampsizepwr ("r", 0.8, -1.2, [], 60); -***** error ... - out = sampsizepwr ("z", [100, 5], 110, 1.2); -***** error ... - out = sampsizepwr ("z", [100, 5], 110, 0); -***** error ... - out = sampsizepwr ("z", [100, 5], 110, 0.05, [], "alpha", 0.1); -***** error ... - out = sampsizepwr ("z", [100, 5], [], [0.8, 0.7], [60, 80, 100]); -***** error ... - out = sampsizepwr ("t", [100, 5], 100, 0.8, []); -***** error ... - out = sampsizepwr ("t", [100, 5], 110, 0.8, [], "tail", "left"); -***** error ... - out = sampsizepwr ("t", [100, 5], 90, 0.8, [], "tail", "right"); -***** warning ... - Napprox = sampsizepwr ("p", 0.2, 0.26, 0.6); -***** warning ... - Napprox = sampsizepwr ("p", 0.30, 0.36, 0.8); -***** test - mu1 = sampsizepwr ("t", [100, 10], [], 0.8, 60); - assert (mu1, 103.67704316, 1e-8); -***** test - [N1,N2] = sampsizepwr ("t2", [100, 10], 110, 0.6, [], "ratio", 1.5); - assert (N1, 9); - assert (N2, 14); -***** test - nn = 1:250; - pwr = sampsizepwr ("p", 0.2, 0.26, [], nn); - pwr_out = [0, 0.0676, 0.0176, 0.0566, 0.0181, 0.0431, 0.0802, 0.0322]; - assert (pwr([1:8]), pwr_out, 1e-4 * ones (1,8)); - pwr_out = [0.59275, 0.6073, 0.62166, 0.6358, 0.6497, 0.6087, 0.6229, 0.6369]; - assert (pwr([243:end]), pwr_out, 1e-4 * ones (1,8)); -***** test - nout = sampsizepwr ("t", [100, 5], 102, 0.80); - assert (nout, 52); -***** test - power = sampsizepwr ("t", [20, 5], 25, [], 5, "Tail", "right"); - assert (power, 0.5797373588621888, 1e-14); -***** test - nout = sampsizepwr ("t", [20, 5], 25, 0.99, [], "Tail", "right"); - assert (nout, 18); -***** test - p1out = sampsizepwr ("t", [20, 5], [], 0.95, 10, "Tail", "right"); - assert (p1out, 25.65317979360237, 1e-14); -***** test - pwr = sampsizepwr ("t2", [1.4, 0.2], 1.7, [], 5, "Ratio", 2); - assert (pwr, 0.716504004686586, 1e-14); -***** test - n = sampsizepwr ("t2", [1.4, 0.2], 1.7, 0.9, []); - assert (n, 11); -***** test - [n1, n2] = sampsizepwr ("t2", [1.4, 0.2], 1.7, 0.9, [], "Ratio", 2); - assert ([n1, n2], [8, 16]); -68 tests, 68 passed, 0 known failure, 0 skipped -[inst/hmmestimate.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/hmmestimate.m -***** test - sequence = [1, 2, 1, 1, 1, 2, 2, 1, 2, 3, 3, ... - 3, 3, 2, 3, 1, 1, 1, 1, 3, 3, 2, 3, 1, 3]; - states = [1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, ... - 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1]; - [transprobest, outprobest] = hmmestimate (sequence, states); - expectedtransprob = [0.88889, 0.11111; 0.28571, 0.71429]; - expectedoutprob = [0.16667, 0.33333, 0.50000; 1.00000, 0.00000, 0.00000]; - assert (transprobest, expectedtransprob, 0.001); - assert (outprobest, expectedoutprob, 0.001); -***** test - sequence = {"A", "B", "A", "A", "A", "B", "B", "A", "B", "C", "C", "C", ... - "C", "B", "C", "A", "A", "A", "A", "C", "C", "B", "C", "A", "C"}; - states = {"One", "One", "Two", "Two", "Two", "One", "One", "One", "One", ... - "One", "One", "One", "One", "One", "One", "Two", "Two", "Two", ... - "Two", "One", "One", "One", "One", "One", "One"}; - symbols = {"A", "B", "C"}; - statenames = {"One", "Two"}; - [transprobest, outprobest] = hmmestimate (sequence, states, "symbols", ... - symbols, "statenames", statenames); - expectedtransprob = [0.88889, 0.11111; 0.28571, 0.71429]; - expectedoutprob = [0.16667, 0.33333, 0.50000; 1.00000, 0.00000, 0.00000]; - assert (transprobest, expectedtransprob, 0.001); - assert (outprobest, expectedoutprob, 0.001); -***** test - sequence = [1, 2, 1, 1, 1, 2, 2, 1, 2, 3, 3, 3, ... - 3, 2, 3, 1, 1, 1, 1, 3, 3, 2, 3, 1, 3]; - states = [1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, ... - 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1]; - pseudotransitions = [8, 2; 4, 6]; - pseudoemissions = [2, 4, 4; 7, 2, 1]; - [transprobest, outprobest] = hmmestimate (sequence, states, ... - "pseudotransitions", pseudotransitions, "pseudoemissions", pseudoemissions); - expectedtransprob = [0.85714, 0.14286; 0.35294, 0.64706]; - expectedoutprob = [0.178571, 0.357143, 0.464286; ... - 0.823529, 0.117647, 0.058824]; - assert (transprobest, expectedtransprob, 0.001); - assert (outprobest, expectedoutprob, 0.001); -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/fillmissing.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/fillmissing.m -***** assert (fillmissing ([1 2 3], "constant", 99), [1 2 3]) -***** assert (fillmissing ([1 2 NaN], "constant", 99), [1 2 99]) -***** assert (fillmissing ([NaN 2 NaN], "constant", 99), [99 2 99]) -***** assert (fillmissing ([1 2 3]', "constant", 99), [1 2 3]') -***** assert (fillmissing ([1 2 NaN]', "constant", 99), [1 2 99]') -***** assert (fillmissing ([1 2 3; 4 5 6], "constant", 99), [1 2 3; 4 5 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "constant", 99), [1 2 99; 4 99 6]) -***** assert (fillmissing ([NaN 2 NaN; 4 NaN 6], "constant", [97, 98, 99]), [97 2 99; 4 98 6]) -***** test - x = cat (3, [1, 2, NaN; 4, NaN, 6], [NaN, 2, 3; 4, 5, NaN]); - y = cat (3, [1, 2, 99; 4, 99, 6], [99, 2, 3; 4, 5, 99]); - assert (fillmissing (x, "constant", 99), y); - y = cat (3, [1, 2, 96; 4, 95, 6], [97, 2, 3; 4, 5, 99]); - assert (fillmissing (x, "constant", [94:99]), y); - assert (fillmissing (x, "constant", [94:99]'), y); - assert (fillmissing (x, "constant", permute ([94:99], [1 3 2])), y); - assert (fillmissing (x, "constant", [94, 96, 98; 95, 97, 99]), y); - assert (fillmissing (x, "constant", [94:99], 1), y); - y = cat (3, [1, 2, 96; 4, 97, 6], [98, 2, 3; 4, 5, 99]); - assert (fillmissing (x, "constant", [96:99], 2), y); - y = cat (3, [1, 2, 98; 4, 97, 6], [94, 2, 3; 4, 5, 99]); - assert (fillmissing (x, "constant", [94:99], 3), y); - y = cat (3, [1, 2, 92; 4, 91, 6], [94, 2, 3; 4, 5, 99]); - assert (fillmissing (x, "constant", [88:99], 99), y); -***** test - x = reshape([1:24],4,3,2); - x([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = NaN; - y = x; - y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [94 95 95 96 96 97 97 98 99 99]; - assert (fillmissing (x, "constant", [94:99], 1), y); - y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [92 93 94 92 95 97 99 98 97 98]; - assert (fillmissing (x, "constant", [92:99], 2), y); - y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [88 93 94 96 99 89 91 94 97 98]; - assert (fillmissing (x, "constant", [88:99], 3), y); - y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [76 81 82 84 87 89 91 94 97 98]; - assert (fillmissing (x, "constant", [76:99], 99), y); -***** assert (fillmissing ([1 2 3], "constant", 99, "endvalues", 88), [1 2 3]) -***** assert (fillmissing ([1 NaN 3], "constant", 99, "endvalues", 88), [1 99 3]) -***** assert (fillmissing ([1 2 NaN], "constant", 99, "endvalues", 88), [1 2 88]) -***** assert (fillmissing ([NaN 2 3], "constant", 99, "endvalues", 88), [88 2 3]) -***** assert (fillmissing ([NaN NaN 3], "constant", 99, "endvalues", 88), [88 88 3]) -***** assert (fillmissing ([1 NaN NaN], "constant", 99, "endvalues", 88), [1 88 88]) -***** assert (fillmissing ([NaN 2 NaN], "constant", 99, "endvalues", 88), [88 2 88]) -***** assert (fillmissing ([NaN 2 NaN]', "constant", 99, "endvalues", 88), [88 2 88]') -***** assert (fillmissing ([1 NaN 3 NaN 5], "constant", 99, "endvalues", 88), [1 99 3 99 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "constant", 99, "endvalues", 88), [1 99 99 99 5]) -***** assert (fillmissing ([NaN NaN NaN NaN 5], "constant", 99, "endvalues", 88), [88 88 88 88 5]) -***** assert (fillmissing ([1 NaN 3 4 NaN], "constant", 99, "endvalues", 88), [1 99 3 4 88]) -***** assert (fillmissing ([1 NaN 3 4 NaN], "constant", 99, 1, "endvalues", 88), [1 88 3 4 88]) -***** assert (fillmissing ([1 NaN 3 4 NaN], "constant", 99, 1, "endvalues", "extrap"), [1 99 3 4 99]) -***** test - x = reshape ([1:24], 3, 4, 2); - y = x; - x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; - y([1,2,5,6,10,13,16,18,19,20,21,22])= 88; y([8])=99; - assert (fillmissing (x, "constant", 99, "endvalues", 88), y); - assert (fillmissing (x, "constant", 99, 1, "endvalues", 88), y); - y = x; y([1,2,5,8,10,13,16,19,22])= 88; y([6,18,20,21])=99; - assert (fillmissing (x, "constant", 99, 2, "endvalues", 88), y); - y(y==99) = 88; - assert (fillmissing (x, "constant", 99, 3, "endvalues", 88), y); - assert (fillmissing (x, "constant", 99, 4, "endvalues", 88), y); - assert (fillmissing (x, "constant", 99, 99, "endvalues", 88), y); - y([8]) = 94; - assert (fillmissing (x, "constant", [92:99], 1, "endvalues", 88), y); - y([6,8,18,20,21]) = [96,88,99,98,99]; - assert (fillmissing (x, "constant", [94:99], 2, "endvalues", 88), y); - y = x; y(isnan(y)) = 88; - assert (fillmissing (x, "constant", [88:99], 3, "endvalues", 88), y); - y = x; y(isnan(y)) = [82,82,83,83,94,85,86,87,87,88,88,88,89]; - assert (fillmissing (x, "constant", [92:99], 1, "endvalues", [82:89]), y); - y = x; y(isnan(y)) = [84,85,85,96,85,84,87,87,99,87,98,99,87]; - assert (fillmissing (x, "constant", [94:99], 2, "endvalues", [84:89]), y); - y = x; y(isnan(y)) = [68,69,72,73,75,77,68,71,73,74,75,76,77]; - assert (fillmissing (x, "constant", [88:99], 3, "endvalues", [68:79]), y); - assert (fillmissing (x, "constant", [88:93;94:99]', 3, "endvalues", [68:73;74:79]'), y) -***** test - x = reshape([1:24],4,3,2); - x([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = NaN; - y = x; - y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [94 95 95 96 96 97 97 98 99 99]; - assert (fillmissing (x, "constant", [94:99], 1), y); - y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [92 93 94 92 95 97 99 98 97 98]; - assert (fillmissing (x, "constant", [92:99], 2), y); - y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [88 93 94 96 99 89 91 94 97 98]; - assert (fillmissing (x, "constant", [88:99], 3), y); - y([1,6,7,9 12, 14, 16, 19, 22, 23]) = [76 81 82 84 87 89 91 94 97 98]; - assert (fillmissing (x, "constant", [76:99], 99), y); -***** assert (fillmissing ([1 2 3], "previous"), [1 2 3]) -***** assert (fillmissing ([1 2 3], "next"), [1 2 3]) -***** assert (fillmissing ([1 2 3]', "previous"), [1 2 3]') -***** assert (fillmissing ([1 2 3]', "next"), [1 2 3]') -***** assert (fillmissing ([1 2 NaN], "previous"), [1 2 2]) -***** assert (fillmissing ([1 2 NaN], "next"), [1 2 NaN]) -***** assert (fillmissing ([NaN 2 NaN], "previous"), [NaN 2 2]) -***** assert (fillmissing ([NaN 2 NaN], "next"), [2 2 NaN]) -***** assert (fillmissing ([1 NaN 3], "previous"), [1 1 3]) -***** assert (fillmissing ([1 NaN 3], "next"), [1 3 3]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "previous", 1), [1 2 NaN; 4 2 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "previous", 2), [1 2 2; 4 4 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "previous", 3), [1 2 NaN; 4 NaN 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "next", 1), [1 2 6; 4 NaN 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "next", 2), [1 2 NaN; 4 6 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "next", 3), [1 2 NaN; 4 NaN 6]) -***** test - x = reshape([1:24],4,3,2); - x([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = NaN; - y = x; - y([1, 6, 7, 9, 14, 19, 22, 23]) = [2 8 8 10 15 20 24 24]; - assert (fillmissing (x, "next", 1), y); - y = x; - y([1, 6, 7, 14, 16]) = [5, 10, 11, 18, 20]; - assert (fillmissing (x, "next", 2), y); - y = x; - y([1, 6, 9, 12]) = [13 18 21 24]; - assert (fillmissing (x, "next", 3), y); - assert (fillmissing (x, "next", 99), x); - y = x; - y([6, 7, 12, 14, 16, 19, 22, 23]) = [5 5 11 13 15 18 21 21]; - assert (fillmissing (x, "previous", 1), y); - y = x; - y([6, 7, 9, 12, 19, 22, 23]) = [2 3 5 8 15 18 15]; - assert (fillmissing (x, "previous", 2), y); - y = x; - y([14, 16, 22, 23]) = [2 4 10 11]; - assert (fillmissing (x, "previous", 3), y); - assert (fillmissing (x, "previous", 99), x); -***** assert (fillmissing ([1 2 3], "constant", 0, "endvalues", "previous"), [1 2 3]) -***** assert (fillmissing ([1 2 3], "constant", 0, "endvalues", "next"), [1 2 3]) -***** assert (fillmissing ([1 NaN 3], "constant", 0, "endvalues", "previous"), [1 0 3]) -***** assert (fillmissing ([1 NaN 3], "constant", 0, "endvalues", "next"), [1 0 3]) -***** assert (fillmissing ([1 2 NaN], "constant", 0, "endvalues", "previous"), [1 2 2]) -***** assert (fillmissing ([1 2 NaN], "constant", 0, "endvalues", "next"), [1 2 NaN]) -***** assert (fillmissing ([1 NaN NaN], "constant", 0, "endvalues", "previous"), [1 1 1]) -***** assert (fillmissing ([1 NaN NaN], "constant", 0, "endvalues", "next"), [1 NaN NaN]) -***** assert (fillmissing ([NaN 2 3], "constant", 0, "endvalues", "previous"), [NaN 2 3]) -***** assert (fillmissing ([NaN 2 3], "constant", 0, "endvalues", "next"), [2 2 3]) -***** assert (fillmissing ([NaN NaN 3], "constant", 0, "endvalues", "previous"), [NaN NaN 3]) -***** assert (fillmissing ([NaN NaN 3], "constant", 0, "endvalues", "next"), [3 3 3]) -***** assert (fillmissing ([NaN NaN NaN], "constant", 0, "endvalues", "previous"), [NaN NaN NaN]) -***** assert (fillmissing ([NaN NaN NaN], "constant", 0, "endvalues", "next"), [NaN NaN NaN]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, "endvalues", "previous"), [NaN 2 0 4 4]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, "endvalues", "next"), [2 2 0 4 NaN]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 1, "endvalues", "previous"), [NaN 2 NaN 4 NaN]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 1, "endvalues", "next"), [NaN 2 NaN 4 NaN]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 2, "endvalues", "previous"), [NaN 2 0 4 4]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 2, "endvalues", "next"), [2 2 0 4 NaN]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 3, "endvalues", "previous"), [NaN 2 NaN 4 NaN]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 3, "endvalues", "next"), [NaN 2 NaN 4 NaN]) -***** test - x = reshape ([1:24], 3, 4, 2); - x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; - y = x; - y([5,6,8,18])=[4,4,0,17]; - assert (fillmissing (x, "constant", 0, "endvalues", "previous"), y); - assert (fillmissing (x, "constant", 0, 1, "endvalues", "previous"), y); - y = x; - y([6,10,18,20,21])=[0,7,0,0,0]; - assert (fillmissing (x, "constant", 0, 2, "endvalues", "previous"), y); - y = x; - y([16,19,21])=[4,7,9]; - assert (fillmissing (x, "constant", 0, 3, "endvalues", "previous"), y); - assert (fillmissing (x, "constant", 0, 4, "endvalues", "previous"), x); - assert (fillmissing (x, "constant", 0, 99, "endvalues", "previous"), x); - y = x; - y([1,2,8,10,13,16,22])=[3,3,0,11,14,17,23]; - assert (fillmissing (x, "constant", 0, "endvalues", "next"), y); - assert (fillmissing (x, "constant", 0, 1, "endvalues", "next"), y); - y = x; - y([1,2,5,6,8,18,20,21])=[4,11,11,0,11,0,0,0]; - assert (fillmissing (x, "constant", 0, 2, "endvalues", "next"), y); - y = x; - y([2,5])=[14,17]; - assert (fillmissing (x, "constant", 0, 3, "endvalues", "next"), y); - assert (fillmissing (x, "constant", 0, 4, "endvalues", "next"), x); - assert (fillmissing (x, "constant", 0, 99, "endvalues", "next"), x); -***** assert (fillmissing ([1 2 3], "nearest"), [1 2 3]) -***** assert (fillmissing ([1 2 3]', "nearest"), [1 2 3]') -***** assert (fillmissing ([1 2 NaN], "nearest"), [1 2 2]) -***** assert (fillmissing ([NaN 2 NaN], "nearest"), [2 2 2]) -***** assert (fillmissing ([1 NaN 3], "nearest"), [1 3 3]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "nearest", 1), [1 2 6; 4 2 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "nearest", 2), [1 2 2; 4 6 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "nearest", 3), [1 2 NaN; 4 NaN 6]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "nearest"), [1 3 3 5 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "nearest", "samplepoints", [0 1 2 3 4]), [1 3 3 5 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "nearest", "samplepoints", [0.5 1 2 3 5]), [1 1 3 3 5]) -***** test - x = reshape([1:24],4,3,2); - x([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = NaN; - y = x; - y([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = [2 5 8 10 11 15 15 20 21 24]; - assert (fillmissing (x, "nearest", 1), y); - y = x; - y([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = [5 10 11 5 8 18 20 15 18 15]; - assert (fillmissing (x, "nearest", 2), y); - y = x; - y([1, 6, 9, 12, 14, 16, 22, 23]) = [13 18 21 24 2 4 10 11]; - assert (fillmissing (x, "nearest", 3), y); - assert (fillmissing (x, "nearest", 99), x); -***** assert (fillmissing ([1 2 3], "constant", 0, "endvalues", "nearest"), [1 2 3]) -***** assert (fillmissing ([1 NaN 3], "constant", 0, "endvalues", "nearest"), [1 0 3]) -***** assert (fillmissing ([1 2 NaN], "constant", 0, "endvalues", "nearest"), [1 2 2]) -***** assert (fillmissing ([1 NaN NaN], "constant", 0, "endvalues", "nearest"), [1 1 1]) -***** assert (fillmissing ([NaN 2 3], "constant", 0, "endvalues", "nearest"), [2 2 3]) -***** assert (fillmissing ([NaN NaN 3], "constant", 0, "endvalues", "nearest"), [3 3 3]) -***** assert (fillmissing ([NaN NaN NaN], "constant", 0, "endvalues", "nearest"), [NaN NaN NaN]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, "endvalues", "nearest"), [2 2 0 4 4]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 1, "endvalues", "nearest"), [NaN 2 NaN 4 NaN]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 2, "endvalues", "nearest"), [2 2 0 4 4]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 0, 3, "endvalues", "nearest"), [NaN 2 NaN 4 NaN]) -***** test - x = reshape ([1:24], 3, 4, 2); - x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; - y = x; - y([1,2,5,6,8,10,13,16,18,22])=[3 3 4 4 0 11 14 17 17 23]; - assert (fillmissing (x, "constant", 0, "endvalues", "nearest"), y); - assert (fillmissing (x, "constant", 0, 1, "endvalues", "nearest"), y); - y = x; - y([1,2,5,6,8,10,18,20,21])=[4 11 11 0 11 7 0 0 0]; - assert (fillmissing (x, "constant", 0, 2, "endvalues", "nearest"), y); - y = x; - y([2,5,16,19,21])=[14 17 4 7 9]; - assert (fillmissing (x, "constant", 0, 3, "endvalues", "nearest"), y); - assert (fillmissing (x, "constant", 0, 99, "endvalues", "nearest"), x); -***** assert (fillmissing ([1 2 3], "linear"), [1 2 3]) -***** assert (fillmissing ([1 2 3]', "linear"), [1 2 3]') -***** assert (fillmissing ([1 2 NaN], "linear"), [1 2 3]) -***** assert (fillmissing ([NaN 2 NaN], "linear"), [NaN 2 NaN]) -***** assert (fillmissing ([1 NaN 3], "linear"), [1 2 3]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "linear", 1), [1 2 NaN; 4 NaN 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "linear", 2), [1 2 3; 4 5 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "linear", 3), [1 2 NaN; 4 NaN 6]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "linear"), [1 2 3 4 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "linear", "samplepoints", [0 1 2 3 4]), [1 2 3 4 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "linear", "samplepoints", [0 1.5 2 5 14]), [1 2.5 3 3.5 5], eps) -***** test - x = reshape([1:24],4,3,2); - x([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = NaN; - assert (fillmissing (x, "linear", 1), reshape([1:24],4,3,2)); - y = reshape([1:24],4,3,2); - y([1 9 14 19 22 23]) = NaN; - assert (fillmissing (x, "linear", 2), y); - y = reshape([1:24],4,3,2); - y([1, 6, 7, 9, 12, 14, 16, 19, 22, 23]) = NaN; - assert (fillmissing (x, "linear", 3), y); - assert (fillmissing (x, "linear", 99), x); -***** assert (fillmissing ([1 2 3], "linear", "endvalues", 0), [1 2 3]) -***** assert (fillmissing ([1 NaN 3], "linear", "endvalues", 0), [1 2 3]) -***** assert (fillmissing ([1 2 NaN], "linear", "endvalues", 0), [1 2 0]) -***** assert (fillmissing ([1 NaN NaN], "linear", "endvalues", 0), [1 0 0]) -***** assert (fillmissing ([NaN 2 3], "linear", "endvalues", 0), [0 2 3]) -***** assert (fillmissing ([NaN NaN 3], "linear", "endvalues", 0), [0 0 3]) -***** assert (fillmissing ([NaN NaN NaN], "linear", "endvalues", 0), [0 0 0]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "linear", "endvalues", 0), [0 2 3 4 0]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "linear", 1, "endvalues", 0), [0 2 0 4 0]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "linear", 2, "endvalues", 0), [0 2 3 4 0]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "linear", 3, "endvalues", 0), [0 2 0 4 0]) -***** test - x = reshape ([1:24], 3, 4, 2); - x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; - y = x; - y([1,2,5,6,10,13,16,18,19,20,21,22])=0; y(8)=8; - assert (fillmissing (x, "linear", "endvalues", 0), y); - assert (fillmissing (x, "linear", 1, "endvalues", 0), y); - y = x; - y([1,2,5,8,10,13,16,19,22])=0; y([6,18,20,21])=[6,18,20,21]; - assert (fillmissing (x, "linear", 2, "endvalues", 0), y); - y = x; - y(isnan(y))=0; - assert (fillmissing (x, "linear", 3, "endvalues", 0), y); - assert (fillmissing (x, "linear", 99, "endvalues", 0), y); -***** assert (fillmissing ([1 2 3], "constant", 99, "endvalues", "linear"), [1 2 3]) -***** assert (fillmissing ([1 NaN 3], "constant", 99, "endvalues", "linear"), [1 99 3]) -***** assert (fillmissing ([1 NaN 3 NaN], "constant", 99, "endvalues", "linear"), [1 99 3 4]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 99, "endvalues", "linear"), [1 2 99 4 5]) -***** assert (fillmissing ([NaN 2 NaN NaN], "constant", 99, "endvalues", "linear"), [NaN 2 NaN NaN]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 99, "endvalues", "linear", "samplepoints", [1 2 3 4 5]), [1 2 99 4 5]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 99, "endvalues", "linear", "samplepoints", [0 2 3 4 10]), [0 2 99 4 10]) - x = reshape ([1:24], 3, 4, 2); - x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; - y = x; - y([1,6,10,18,20,21]) = [2.5, 5, 8.5, 17.25, 21, 21.75]; - assert (fillmissing (x, "linear", 2, "samplepoints", [2 4 8 10]), y, eps); - y([1,6,10,18,20,21]) = [2.5, 4.5, 8.5, 17.25, 21.5, 21.75]; - assert (fillmissing (x, "spline", 2, "samplepoints", [2 4 8 10]), y, eps); - y([1,6,10,18,20,21]) = [2.5, 4.559386973180077, 8.5, 17.25, 21.440613026819925, 21.75]; - assert (fillmissing (x, "pchip", 2, "samplepoints", [2 4 8 10]), y, 10*eps); -***** test <60965> - x = reshape ([1:24], 3, 4, 2); - x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; - y = x; - y([1,6,10,18,20,21]) = [2.5, 4.609523809523809, 8.5, 17.25, 21.390476190476186, 21.75]; - assert (fillmissing (x, "makima", 2, "samplepoints", [2 4 8 10]), y, 10*eps); -!!!!! known bug: https://octave.org/testfailure/?60965 -interp1: invalid METHOD 'makima' -***** assert (fillmissing ([1 2 3], "constant", 99, "endvalues", "spline"), [1 2 3]) -***** assert (fillmissing ([1 NaN 3], "constant", 99, "endvalues", "spline"), [1 99 3]) -***** assert (fillmissing ([1 NaN 3 NaN], "constant", 99, "endvalues", "spline"), [1 99 3 4]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 99, "endvalues", "spline"), [1 2 99 4 5]) -***** assert (fillmissing ([NaN 2 NaN NaN], "constant", 99, "endvalues", "spline"), [NaN 2 NaN NaN]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 99, "endvalues", "spline", "samplepoints", [1 2 3 4 5]), [1 2 99 4 5]) -***** assert (fillmissing ([NaN 2 NaN 4 NaN], "constant", 99, "endvalues", "spline", "samplepoints", [0 2 3 4 10]), [0 2 99 4 10]) -***** assert (fillmissing ([1 2 3], "movmean", 1), [1 2 3]) -***** assert (fillmissing ([1 2 NaN], "movmean", 1), [1 2 NaN]) -***** assert (fillmissing ([1 2 3], "movmean", 2), [1 2 3]) -***** assert (fillmissing ([1 2 3], "movmean", [1 0]), [1 2 3]) -***** assert (fillmissing ([1 2 3]', "movmean", 2), [1 2 3]') -***** assert (fillmissing ([1 2 NaN], "movmean", 2), [1 2 2]) -***** assert (fillmissing ([1 2 NaN], "movmean", [1 0]), [1 2 2]) -***** assert (fillmissing ([1 2 NaN], "movmean", [1 0]'), [1 2 2]) -***** assert (fillmissing ([NaN 2 NaN], "movmean", 2), [NaN 2 2]) -***** assert (fillmissing ([NaN 2 NaN], "movmean", [1 0]), [NaN 2 2]) -***** assert (fillmissing ([NaN 2 NaN], "movmean", [0 1]), [2 2 NaN]) -***** assert (fillmissing ([NaN 2 NaN], "movmean", [0 1.1]), [2 2 NaN]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "movmean", [3 0]), [1 1 3 2 5]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "movmean", 3, 1), [1 2 6; 4 2 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "movmean", 3, 2), [1 2 2; 4 5 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "movmean", 3, 3), [1 2 NaN; 4 NaN 6]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "movmean", 99), [1 3 3 3 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "movmean", 99, 1), [1 NaN 3 NaN 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5]', "movmean", 99, 1), [1 3 3 3 5]') -***** assert (fillmissing ([1 NaN 3 NaN 5], "movmean", 99, 2), [1 3 3 3 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5]', "movmean", 99, 2), [1 NaN 3 NaN 5]') -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", 3, "samplepoints", [1 2 3 4 5]), [1 1 NaN 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", [1 1], "samplepoints", [1 2 3 4 5]), [1 1 NaN 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", [1.5 1.5], "samplepoints", [1 2 3 4 5]), [1 1 NaN 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", 4, "samplepoints", [1 2 3 4 5]), [1 1 1 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", [2 2], "samplepoints", [1 2 3 4 5]), [1 1 3 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", 4.0001, "samplepoints", [1 2 3 4 5]), [1 1 3 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", 3, "samplepoints", [1.5 2 3 4 5]), [1 1 1 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", 3, "samplepoints", [1 2 3 4 4.5]), [1 1 NaN 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", 3, "samplepoints", [1.5 2 3 4 4.5]), [1 1 1 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", [1.5 1.5], "samplepoints", [1.5 2 3 4 5]), [1 1 1 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", [1.5 1.5], "samplepoints", [1 2 3 4 4.5]), [1 1 5 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmean", [1.5 1.5], "samplepoints", [1.5 2 3 4 4.5]), [1 1 3 5 5]) -***** test - x = reshape ([1:24], 3, 4, 2); - x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; - y = x; - y([2,5,8,10,13,16,18,22]) = [3,4,8,11,14,17,17,23]; - assert (fillmissing (x, "movmean", 3), y); - assert (fillmissing (x, "movmean", [1 1]), y); - assert (fillmissing (x, "movmean", 3, "endvalues", "extrap"), y); - assert (fillmissing (x, "movmean", 3, "samplepoints", [1 2 3]), y); - y = x; - y([1,6,8,10,18,20,21]) = [4,6,11,7,15,20,24]; - assert (fillmissing (x, "movmean", 3, 2), y); - assert (fillmissing (x, "movmean", [1 1], 2), y); - assert (fillmissing (x, "movmean", 3, 2, "endvalues", "extrap"), y); - assert (fillmissing (x, "movmean", 3, 2, "samplepoints", [1 2 3 4]), y); - y([1,18]) = NaN; y(6) = 9; - assert (fillmissing (x, "movmean", 3, 2, "samplepoints", [0 2 3 4]), y); - y = x; - y([1,2,5,6,10,13,16,18,19,20,21,22]) = 99; y(8) = 8; - assert (fillmissing (x, "movmean", 3, "endvalues", 99), y); - y = x; - y([1,2,5,8,10,13,16,19,22]) = 99; y([6,18,20,21]) = [6,15,20,24]; - assert (fillmissing (x, "movmean", 3, 2, "endvalues", 99), y); -***** assert (fillmissing ([1 2 3], "movmedian", 1), [1 2 3]) -***** assert (fillmissing ([1 2 NaN], "movmedian", 1), [1 2 NaN]) -***** assert (fillmissing ([1 2 3], "movmedian", 2), [1 2 3]) -***** assert (fillmissing ([1 2 3], "movmedian", [1 0]), [1 2 3]) -***** assert (fillmissing ([1 2 3]', "movmedian", 2), [1 2 3]') -***** assert (fillmissing ([1 2 NaN], "movmedian", 2), [1 2 2]) -***** assert (fillmissing ([1 2 NaN], "movmedian", [1 0]), [1 2 2]) -***** assert (fillmissing ([1 2 NaN], "movmedian", [1 0]'), [1 2 2]) -***** assert (fillmissing ([NaN 2 NaN], "movmedian", 2), [NaN 2 2]) -***** assert (fillmissing ([NaN 2 NaN], "movmedian", [1 0]), [NaN 2 2]) -***** assert (fillmissing ([NaN 2 NaN], "movmedian", [0 1]), [2 2 NaN]) -***** assert (fillmissing ([NaN 2 NaN], "movmedian", [0 1.1]), [2 2 NaN]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "movmedian", [3 0]), [1 1 3 2 5]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "movmedian", 3, 1), [1 2 6; 4 2 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "movmedian", 3, 2), [1 2 2; 4 5 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], "movmedian", 3, 3), [1 2 NaN; 4 NaN 6]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "movmedian", 99), [1 3 3 3 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "movmedian", 99, 1), [1 NaN 3 NaN 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5]', "movmedian", 99, 1), [1 3 3 3 5]') -***** assert (fillmissing ([1 NaN 3 NaN 5], "movmedian", 99, 2), [1 3 3 3 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5]', "movmedian", 99, 2), [1 NaN 3 NaN 5]') -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", 3, "samplepoints", [1 2 3 4 5]), [1 1 NaN 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", [1 1], "samplepoints", [1 2 3 4 5]), [1 1 NaN 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", [1.5 1.5], "samplepoints", [1 2 3 4 5]), [1 1 NaN 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", 4, "samplepoints", [1 2 3 4 5]), [1 1 1 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", [2 2], "samplepoints", [1 2 3 4 5]), [1 1 3 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", 4.0001, "samplepoints", [1 2 3 4 5]), [1 1 3 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", 3, "samplepoints", [1.5 2 3 4 5]), [1 1 1 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", 3, "samplepoints", [1 2 3 4 4.5]), [1 1 NaN 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", 3, "samplepoints", [1.5 2 3 4 4.5]), [1 1 1 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", [1.5 1.5], "samplepoints", [1.5 2 3 4 5]), [1 1 1 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", [1.5 1.5], "samplepoints", [1 2 3 4 4.5]), [1 1 5 5 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], "movmedian", [1.5 1.5], "samplepoints", [1.5 2 3 4 4.5]), [1 1 3 5 5]) -***** test - x = reshape ([1:24], 3, 4, 2); - x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; - y = x; - y([2 5 8 10 13 16 18 22]) = [3 4 8 11 14 17 17 23]; - assert (fillmissing (x, "movmedian", 3), y); - assert (fillmissing (x, "movmedian", [1 1]), y); - assert (fillmissing (x, "movmedian", 3, "endvalues", "extrap"), y); - assert (fillmissing (x, "movmedian", 3, "samplepoints", [1 2 3]), y); - y = x; - y([1 6 8 10 18 20 21]) = [4 6 11 7 15 20 24]; - assert (fillmissing (x, "movmedian", 3, 2), y); - assert (fillmissing (x, "movmedian", [1 1], 2), y); - assert (fillmissing (x, "movmedian", 3, 2, "endvalues", "extrap"), y); - assert (fillmissing (x, "movmedian", 3, 2, "samplepoints", [1 2 3 4]), y); - y([1,18]) = NaN; y(6) = 9; - assert (fillmissing (x, "movmedian", 3, 2, "samplepoints", [0 2 3 4]), y); - y = x; - y([1,2,5,6,10,13,16,18,19,20,21,22]) = 99; y(8) = 8; - assert (fillmissing (x, "movmedian", 3, "endvalues", 99), y); - y = x; - y([1,2,5,8,10,13,16,19,22]) = 99; y([6,18,20,21]) = [6,15,20,24]; - assert (fillmissing (x, "movmedian", 3, 2, "endvalues", 99), y); -***** assert (fillmissing ([1 2 3], @(x,y,z) x+y+z, 2), [1 2 3]) -***** assert (fillmissing ([1 2 NaN], @(x,y,z) x+y+z, 1), [1 2 NaN]) -***** assert (fillmissing ([1 2 3], @(x,y,z) x+y+z, 2), [1 2 3]) -***** assert (fillmissing ([1 2 3], @(x,y,z) x+y+z, [1 0]), [1 2 3]) -***** assert (fillmissing ([1 2 3]', @(x,y,z) x+y+z, 2), [1 2 3]') -***** assert (fillmissing ([1 2 NaN], @(x,y,z) x+y+z, 2), [1 2 7]) -***** assert (fillmissing ([1 2 NaN], @(x,y,z) x+y+z, [1 0]), [1 2 7]) -***** assert (fillmissing ([1 2 NaN], @(x,y,z) x+y+z, [1 0]'), [1 2 7]) -***** assert (fillmissing ([NaN 2 NaN], @(x,y,z) x+y+z, 2), [5 2 7]) -***** assert (fillmissing ([NaN 2 NaN], @(x,y,z) x+y+z, [1 0]), [NaN 2 7]) -***** assert (fillmissing ([NaN 2 NaN], @(x,y,z) x+y+z, [0 1]), [5 2 NaN]) -***** assert (fillmissing ([NaN 2 NaN], @(x,y,z) x+y+z, [0 1.1]), [5 2 NaN]) -***** assert (fillmissing ([1 2 NaN NaN 3 4], @(x,y,z) x+y+z, 2),[1 2 7 12 3 4]) -***** assert (fillmissing ([1 2 NaN NaN 3 4], @(x,y,z) x+y+z, 0.5),[1 2 NaN NaN 3 4]) -***** function A = testfcn (x,y,z) - if isempty (y) - A = z; - elseif (numel (y) == 1) - A = repelem (x(1), numel(z)); - else - A = interp1 (y, x, z, "linear","extrap"); - endif -***** endfunction -***** assert (fillmissing ([1 NaN 3 NaN 5], @testfcn, [3 0]), [1 1 3 NaN 5]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], @testfcn, 3, 1), [1 2 6; 4 2 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], @testfcn, 3, 2), [1 2 2; 4 5 6]) -***** assert (fillmissing ([1 2 NaN; 4 NaN 6], @testfcn, 3, 3), [1 2 NaN; 4 NaN 6]) -***** assert (fillmissing ([1 NaN 3 NaN 5], @testfcn, 99), [1 2 3 4 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5], @testfcn, 99, 1), [1 NaN 3 NaN 5]) ##known not-compatible. matlab bug ML2022a: [1 1 3 1 5] -***** assert (fillmissing ([1 NaN 3 NaN 5]', @testfcn, 99, 1), [1 2 3 4 5]') -***** assert (fillmissing ([1 NaN 3 NaN 5], @testfcn, 99, 2), [1 2 3 4 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5]', @testfcn, 99, 2), [1 NaN 3 NaN 5]') ##known not-compatible. matlab bug ML2022a: [1 1 3 1 5]' -***** assert (fillmissing ([1 NaN 3 NaN 5], @testfcn, 99, 3), [1 NaN 3 NaN 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5]', @testfcn, 99, 3), [1 NaN 3 NaN 5]') -***** assert (fillmissing ([1 NaN NaN NaN 5], @testfcn, 3, "samplepoints", [1 2 3 4 5]), [1 2 3 4 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], @testfcn, [1 1], "samplepoints", [1 2 3 4 5]), [1 2 3 4 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], @testfcn, [1.5 1.5], "samplepoints", [1 2 3 4 5]), [1 2 3 4 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], @testfcn, 4, "samplepoints", [1 2 3 4 5]), [1 2 3 4 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], @testfcn, [2 2], "samplepoints", [1 2 3 4 5]), [1 2 3 4 5]) -***** assert (fillmissing ([1 NaN NaN NaN 5], @testfcn, 3, "samplepoints", [1 2 2.5 3 3.5]), [1 2.6 3.4 4.2 5], 10*eps) -***** assert (fillmissing ([NaN NaN 3 NaN 5], @testfcn, 99, 1), [NaN NaN 3 NaN 5]) ##known not-compatible. matlab bug ML2022a: [1 1 3 1 5] -***** test -***** function A = testfcn (x,y,z) - if isempty (y) - A = z; - elseif (numel (y) == 1) - A = repelem (x(1), numel(z)); - else - A = interp1 (y, x, z, "linear","extrap"); - endif -***** endfunction - x = reshape ([1:24], 3, 4, 2); - x([1,2,5,6,8,10,13,16,18,19,20,21,22]) = NaN; - y = x; - y([1,2,5,6,8,10,13,16,18,22]) = [3,3,4,4,8,11,14,17,17,23]; - assert (fillmissing (x, @testfcn, 3), y); - assert (fillmissing (x, @testfcn, [1 1]), y); - assert (fillmissing (x, @testfcn, 3, "endvalues", "extrap"), y); - assert (fillmissing (x, @testfcn, 3, "samplepoints", [1 2 3]), y); - y= x; - y(isnan(x)) = 99; y(8) = 8; - assert (fillmissing (x, @testfcn, 3, "endvalues", 99), y) - y = x; - y([1,2,5,6,8,10,18,20,21]) = [4,11,11,6,11,7,18,20,21]; - assert (fillmissing (x, @testfcn, 3, 2), y); - assert (fillmissing (x, @testfcn, [1 1], 2), y); - assert (fillmissing (x, @testfcn, 3, 2, "endvalues", "extrap"), y); - assert (fillmissing (x, @testfcn, 3, 2, "samplepoints", [1 2 3 4]), y); - y(1) = NaN; y([6,18,21]) = [9,24,24]; - assert (fillmissing (x, @testfcn, 3, 2, "samplepoints", [0 2 3 4]), y); - y = x; - y([1,2,5,6,10,13,16,18,19,20,21,22]) = 99; y(8) = [8]; - assert (fillmissing (x, @testfcn, 3, "endvalues", 99), y); - y([6,18,20,21]) = [6,18,20,21]; y(8)=99; - assert (fillmissing (x, @testfcn, 3, 2, "endvalues", 99), y); - y([6,18,20,21]) = 99; - assert (fillmissing (x, @testfcn, 3, 3, "endvalues", 99), y); -***** assert (fillmissing ([1 2 3], "constant", 0, "maxgap", 1), [1 2 3]) -***** assert (fillmissing ([1 2 3], "constant", 0, "maxgap", 99), [1 2 3]) -***** assert (fillmissing ([1 NaN 3], "constant", 0, "maxgap", 1), [1 NaN 3]) -***** assert (fillmissing ([1 NaN 3], "constant", 0, "maxgap", 1.999), [1 NaN 3]) -***** assert (fillmissing ([1 NaN 3], "constant", 0, "maxgap", 2), [1 0 3]) -***** assert (fillmissing ([1 NaN NaN 4], "constant", 0, "maxgap", 2), [1 NaN NaN 4]) -***** assert (fillmissing ([1 NaN NaN 4], "constant", 0, "maxgap", 3), [1 0 0 4]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "constant", 0, "maxgap", 2), [1 0 3 0 5]) -***** assert (fillmissing ([NaN 2 NaN], "constant", 0, "maxgap", 0.999), [NaN 2 NaN]) -***** assert (fillmissing ([NaN 2 NaN], "constant", 0, "maxgap", 1), [0 2 0]) -***** assert (fillmissing ([NaN 2 NaN NaN], "constant", 0, "maxgap", 1), [0 2 NaN NaN]) -***** assert (fillmissing ([NaN 2 NaN NaN], "constant", 0, "maxgap", 2), [0 2 0 0]) -***** assert (fillmissing ([NaN NaN NaN], "constant", 0, "maxgap", 1), [NaN NaN NaN]) -***** assert (fillmissing ([NaN NaN NaN], "constant", 0, "maxgap", 3), [NaN NaN NaN]) -***** assert (fillmissing ([NaN NaN NaN], "constant", 0, "maxgap", 999), [NaN NaN NaN]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "constant", 0, "maxgap", 2, "samplepoints", [0 1 2 3 5]), [1 0 3 NaN 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5]', "constant", 0, "maxgap", 2, "samplepoints", [0 1 2 3 5]), [1 0 3 NaN 5]') -***** assert (fillmissing ([1 NaN 3 NaN 5], "constant", 0, "maxgap", 2, "samplepoints", [0 2 3 4 5]), [1 NaN 3 0 5]) -***** assert (fillmissing ([1 NaN 3 NaN 5; 1 NaN 3 NaN 5], "constant", 0, 2, "maxgap", 2, "samplepoints", [0 2 3 4 5]), [1 NaN 3 0 5; 1 NaN 3 0 5]) -***** test - x = cat (3, [1, 2, NaN; 4, NaN, NaN], [NaN, 2, 3; 4, 5, NaN]); - assert (fillmissing (x, "constant", 0, "maxgap", 0.1), x); - y = x; - y([4,7,12]) = 0; - assert (fillmissing (x, "constant", 0, "maxgap", 1), y); - assert (fillmissing (x, "constant", 0, 1, "maxgap", 1), y); - y = x; - y([5,7,12]) = 0; - assert (fillmissing (x, "constant", 0, 2, "maxgap", 1), y); - y = x; - y([4,5,7]) = 0; - assert (fillmissing (x, "constant", 0, 3, "maxgap", 1), y); -***** test - x = cat (3, [1, 2, NaN; 4, NaN, NaN], [NaN, 2, 3; 4, 5, NaN]); - [~, idx] = fillmissing (x, "constant", 0, "maxgap", 1); - assert (idx, logical (cat (3, [0 0 0; 0 1 0], [1 0 0; 0 0 1]))); - [~, idx] = fillmissing (x, "constant", 0, 1, "maxgap", 1); - assert (idx, logical (cat (3, [0 0 0; 0 1 0], [1 0 0; 0 0 1]))); - [~, idx] = fillmissing (x, "constant", 0, 2, "maxgap", 1); - assert (idx, logical (cat (3, [0 0 1; 0 0 0], [1 0 0; 0 0 1]))); - [~, idx] = fillmissing (x, "constant", 0, 3, "maxgap", 1); - assert (idx, logical (cat (3, [0 0 1; 0 1 0], [1 0 0; 0 0 0]))); -***** test - x = [NaN, 2, 3]; - [~,idx] = fillmissing (x, "previous"); - assert (idx, logical ([0 0 0])); - [~,idx] = fillmissing (x, "movmean", 1); - assert (idx, logical ([0 0 0])); - x = [1:3;4:6;7:9]; - x([2,4,7,9]) = NaN; - [~,idx] = fillmissing (x, "linear"); - assert (idx, logical ([0 1 0;1 0 0;0 0 0])); - [~,idx] = fillmissing (x, "movmean", 2); - assert (idx, logical ([0 0 0;1 0 0;0 0 1])); - [A, idx] = fillmissing ([1 2 3 NaN NaN], 'movmean',2); - assert (A, [1 2 3 3 NaN]); - assert (idx, logical([0 0 0 1 0])); - [A, idx] = fillmissing ([1 2 3 NaN NaN], 'movmean',3); - assert (A, [1 2 3 3 NaN]); - assert (idx, logical([0 0 0 1 0])); - [A, idx] = fillmissing ([1 2 NaN NaN NaN], 'movmedian', 2); - assert (A, [1 2 2 NaN NaN]); - assert (idx, logical([0 0 1 0 0])); - [A, idx] = fillmissing ([1 2 3 NaN NaN], 'movmedian', 3); - assert (A, [1 2 3 3 NaN]); - assert (idx, logical([0 0 0 1 0])); - [A, idx] = fillmissing ([1 NaN 1 NaN 1], @(x,y,z) z, 3); - assert (A, [1 2 1 4 1]); - assert (idx, logical([0 1 0 1 0])); - [A, idx] = fillmissing ([1 NaN 1 NaN 1], @(x,y,z) NaN (size (z)), 3); - assert (A, [1 NaN 1 NaN 1]); - assert (idx, logical([0 0 0 0 0])); -***** assert (fillmissing ([1 2 3], "constant", 99, "missinglocations", logical([0 0 0])), [1 2 3]) -***** assert (fillmissing ([1 2 3], "constant", 99, "missinglocations", logical([1 1 1])), [99 99 99]) -***** assert (fillmissing ([1 NaN 2 3 NaN], "constant", 99, "missinglocations", logical([1 0 1 0 1])), [99 NaN 99 3 99]) -***** assert (fillmissing ([1 NaN 3 NaN 5], "constant", NaN, "missinglocations", logical([0 1 1 1 0])), [1 NaN NaN NaN 5]) -***** assert (fillmissing (["foo ";" bar"], "constant", 'X', "missinglocations", logical([0 0 0 0; 0 0 0 0])), ["foo ";" bar"]) -***** assert (fillmissing (["foo ";" bar"], "constant", 'X', "missinglocations", logical([1 0 1 0; 0 1 1 0])), ["XoX ";" XXr"]) -***** assert (fillmissing ({"foo","", "bar"}, "constant", 'X', "missinglocations", logical([0 0 0])), {"foo","", "bar"}) -***** assert (fillmissing ({"foo","", "bar"}, "constant", 'X', "missinglocations", logical([1 1 0])), {"X","X","bar"}) -***** test - [~,idx] = fillmissing ([1 NaN 3 NaN 5], "constant", NaN); - assert (idx, logical([0 0 0 0 0])); - [~,idx] = fillmissing ([1 NaN 3 NaN 5], "constant", NaN, "missinglocations", logical([0 1 1 1 0])); - assert (idx, logical([0 1 1 1 0])); - [A, idx] = fillmissing ([1 2 NaN 1 NaN], 'movmean', 3.1, 'missinglocations', logical([0 0 1 1 0])); - assert (A, [1 2 2 NaN NaN]); - assert (idx, logical([0 0 1 0 0])); - [A, idx] = fillmissing ([1 2 NaN NaN NaN], 'movmean', 2, 'missinglocations', logical([0 0 1 1 0])); - assert (A, [1 2 2 NaN NaN]); - assert (idx, logical([0 0 1 0 0])); - [A, idx] = fillmissing ([1 2 NaN 1 NaN], 'movmean', 3, 'missinglocations', logical([0 0 1 1 0])); - assert (A, [1 2 2 NaN NaN]); - assert (idx, logical([0 0 1 0 0])); - [A, idx] = fillmissing ([1 2 NaN NaN NaN], 'movmean', 3, 'missinglocations', logical([0 0 1 1 0])); - assert (A, [1 2 2 NaN NaN]); - assert (idx, logical([0 0 1 0 0])); - [A, idx] = fillmissing ([1 2 NaN NaN NaN], 'movmedian', 2, 'missinglocations', logical([0 0 1 1 0])); - assert (A, [1 2 2 NaN NaN]); - assert (idx, logical([0 0 1 0 0])); - [A, idx] = fillmissing ([1 2 NaN NaN NaN], 'movmedian', 3, 'missinglocations', logical([0 0 1 1 0])); - assert (A, [1 2 2 NaN NaN]); - assert (idx, logical([0 0 1 0 0])); - [A, idx] = fillmissing ([1 2 NaN NaN NaN], 'movmedian', 3.1, 'missinglocations', logical([0 0 1 1 0])); - assert (A, [1 2 2 NaN NaN]); - assert (idx, logical([0 0 1 0 0])); - [A, idx] = fillmissing ([1 NaN 1 NaN 1], @(x,y,z) ones (size (z)), 3, "missinglocations", logical([0 1 0 1 1])); - assert (A, [1 1 1 1 1]); - assert (idx, logical([0 1 0 1 1])); - [A, idx] = fillmissing ([1 NaN 1 NaN 1], @(x,y,z) NaN (size (z)), 3, "missinglocations", logical([0 1 0 1 1])); - assert (A, [1 NaN 1 NaN NaN]); - assert (idx, logical([0 0 0 0 0])); -***** assert (fillmissing (' foo bar ', "constant", 'X'), 'XfooXbarX') -***** assert (fillmissing ([' foo';'bar '], "constant", 'X'), ['Xfoo';'barX']) -***** assert (fillmissing ([' foo';'bar '], "next"), ['bfoo';'bar ']) -***** assert (fillmissing ([' foo';'bar '], "next", 1), ['bfoo';'bar ']) -***** assert (fillmissing ([' foo';'bar '], "previous"), [' foo';'baro']) -***** assert (fillmissing ([' foo';'bar '], "previous", 1), [' foo';'baro']) -***** assert (fillmissing ([' foo';'bar '], "nearest"), ['bfoo';'baro']) -***** assert (fillmissing ([' foo';'bar '], "nearest", 1), ['bfoo';'baro']) -***** assert (fillmissing ([' foo';'bar '], "next", 2), ['ffoo';'bar ']) -***** assert (fillmissing ([' foo';'bar '], "previous", 2), [' foo';'barr']) -***** assert (fillmissing ([' foo';'bar '], "nearest", 2), ['ffoo';'barr']) -***** assert (fillmissing ([' foo';'bar '], "next", 3), [' foo';'bar ']) -***** assert (fillmissing ([' foo';'bar '], "previous", 3), [' foo';'bar ']) -***** assert (fillmissing ([' foo';'bar '], "nearest", 3), [' foo';'bar ']) -***** assert (fillmissing ({'foo','bar'}, "constant", 'a'), {'foo','bar'}) -***** assert (fillmissing ({'foo','bar'}, "constant", {'a'}), {'foo','bar'}) -***** assert (fillmissing ({'foo', '', 'bar'}, "constant", 'a'), {'foo', 'a', 'bar'}) -***** assert (fillmissing ({'foo', '', 'bar'}, "constant", {'a'}), {'foo', 'a', 'bar'}) -***** assert (fillmissing ({'foo', '', 'bar'}, "previous"), {'foo', 'foo', 'bar'}) -***** assert (fillmissing ({'foo', '', 'bar'}, "next"), {'foo', 'bar', 'bar'}) -***** assert (fillmissing ({'foo', '', 'bar'}, "nearest"), {'foo', 'bar', 'bar'}) -***** assert (fillmissing ({'foo', '', 'bar'}, "previous", 2), {'foo', 'foo', 'bar'}) -***** assert (fillmissing ({'foo', '', 'bar'}, "next", 2), {'foo', 'bar', 'bar'}) -***** assert (fillmissing ({'foo', '', 'bar'}, "nearest", 2), {'foo', 'bar', 'bar'}) -***** assert (fillmissing ({'foo', '', 'bar'}, "previous", 1), {'foo', '', 'bar'}) -***** assert (fillmissing ({'foo', '', 'bar'}, "previous", 1), {'foo', '', 'bar'}) -***** assert (fillmissing ({'foo', '', 'bar'}, "next", 1), {'foo', '', 'bar'}) -***** assert (fillmissing ({'foo', '', 'bar'}, "nearest", 1), {'foo', '', 'bar'}) -***** assert (fillmissing ("abc ", @(x,y,z) x+y+z, 2), "abcj") -***** assert (fillmissing ({'foo', '', 'bar'}, @(x,y,z) x(1), 3), {'foo','foo','bar'}) -***** test - [A, idx] = fillmissing (" a b c", "constant", " "); - assert (A, " a b c"); - assert (idx, logical([0 0 0 0 0 0])); - [A, idx] = fillmissing ({"foo", "", "bar", ""}, "constant", ""); - assert (A, {"foo", "", "bar", ""}); - assert (idx, logical([0 0 0 0])); - [A, idx] = fillmissing ({"foo", "", "bar", ""}, "constant", {""}); - assert (A, {"foo", "", "bar", ""}); - assert (idx, logical([0 0 0 0])); - [A,idx] = fillmissing (' f o o ', @(x,y,z) repelem ("a", numel (z)), 3); - assert (A, "afaoaoa"); - assert (idx, logical([1 0 1 0 1 0 1])); - [A,idx] = fillmissing (' f o o ', @(x,y,z) repelem (" ", numel (z)), 3); - assert (A, " f o o "); - assert (idx, logical([0 0 0 0 0 0 0])); - [A,idx] = fillmissing ({'','foo',''}, @(x,y,z) repelem ({'a'}, numel (z)), 3); - assert (A, {'a','foo','a'}); - assert (idx, logical([1 0 1])); - [A,idx] = fillmissing ({'','foo',''}, @(x,y,z) repelem ({''}, numel (z)), 3); - assert (A, {'','foo',''}); - assert (idx, logical([0 0 0])); -***** assert (fillmissing (logical ([1 0 1 0 1]), "constant", true), logical ([1 0 1 0 1])) -***** assert (fillmissing (logical ([1 0 1 0 1]), "constant", false, 'missinglocations', logical([1 0 1 0 1])), logical ([0 0 0 0 0])) -***** assert (fillmissing (logical ([1 0 1 0 1]), "previous", 'missinglocations', logical([1 0 1 0 1])), logical ([1 0 0 0 0])) -***** assert (fillmissing (logical ([1 0 1 0 1]), "next", 'missinglocations', logical([1 0 1 0 1])), logical ([0 0 0 0 1])) -***** assert (fillmissing (logical ([1 0 1 0 1]), "nearest", 'missinglocations', logical([1 0 1 0 1])), logical ([0 0 0 0 0])) -***** assert (fillmissing (logical ([1 0 1 0 1]), @(x,y,z) false(size(z)), 3), logical ([1 0 1 0 1])) -***** assert (fillmissing (logical ([1 0 1 0 1]), @(x,y,z) false(size(z)), 3, 'missinglocations', logical([1 0 1 0 1])), logical ([0 0 0 0 0])) -***** assert (fillmissing (logical ([1 0 1 0 1]), @(x,y,z) false(size(z)), [2 0], 'missinglocations', logical([1 0 1 0 1])), logical ([1 0 0 0 0])) -***** test - x = logical ([1 0 1 0 1]); - [~,idx] = fillmissing (x, "constant", true); - assert (idx, logical([0 0 0 0 0])); - [~,idx] = fillmissing (x, "constant", false, 'missinglocations', logical([1 0 1 0 1])); - assert (idx, logical([1 0 1 0 1])); - [~,idx] = fillmissing (x, "constant", true, 'missinglocations', logical([1 0 1 0 1])); - assert (idx, logical([1 0 1 0 1])); - [~,idx] = fillmissing (x, "previous", 'missinglocations', logical([1 0 1 0 1])); - assert (idx, logical([0 0 1 0 1])); - [~,idx] = fillmissing (x, "next", 'missinglocations', logical([1 0 1 0 1])); - assert (idx, logical([1 0 1 0 0])); - [~,idx] = fillmissing (x, "nearest", 'missinglocations', logical([1 0 1 0 1])); - assert (idx, logical([1 0 1 0 1])); - [~,idx] = fillmissing (x, @(x,y,z) false(size(z)), 3); - assert (idx, logical ([0 0 0 0 0])) - [~,idx] = fillmissing (x, @(x,y,z) false(size(z)), 3, 'missinglocations', logical([1 0 1 0 1])); - assert (idx, logical ([1 0 1 0 1])) - [~,idx] = fillmissing (x, @(x,y,z) false(size(z)), [2 0], 'missinglocations', logical([1 0 1 0 1])); - assert (idx, logical ([0 0 1 0 1])) -***** assert (fillmissing (int32 ([1 2 3 4 5]), "constant", 0), int32 ([1 2 3 4 5])) -***** assert (fillmissing (int32 ([1 2 3 4 5]), "constant", 0,'missinglocations', logical([1 0 1 0 1])), int32 ([0 2 0 4 0])) -***** assert (fillmissing (int32 ([1 2 3 4 5]), "previous", 'missinglocations', logical([1 0 1 0 1])), int32 ([1 2 2 4 4])) -***** assert (fillmissing (int32 ([1 2 3 4 5]), "next", 'missinglocations', logical([1 0 1 0 1])), int32 ([2 2 4 4 5])) -***** assert (fillmissing (int32 ([1 2 3 4 5]), "nearest", 'missinglocations', logical([1 0 1 0 1])), int32 ([2 2 4 4 4])) -***** assert (fillmissing (int32 ([1 2 3 4 5]), @(x,y,z) z+10, 3), int32 ([1 2 3 4 5])) -***** assert (fillmissing (int32 ([1 2 3 4 5]), @(x,y,z) z+10, 3, 'missinglocations', logical([1 0 1 0 1])), int32 ([11 2 13 4 15])) -***** assert (fillmissing (int32 ([1 2 3 4 5]), @(x,y,z) z+10, [2 0], 'missinglocations', logical([1 0 1 0 1])), int32 ([1 2 13 4 15])) -***** test - x = int32 ([1 2 3 4 5]); - [~,idx] = fillmissing (x, "constant", 0); - assert (idx, logical([0 0 0 0 0])); - [~,idx] = fillmissing (x, "constant", 0, 'missinglocations', logical([1 0 1 0 1])); - assert (idx, logical([1 0 1 0 1])); - [~,idx] = fillmissing (x, "constant", 3, 'missinglocations', logical([0 0 1 0 0])); - assert (idx, logical([0 0 1 0 0])); - [~,idx] = fillmissing (x, "previous", 'missinglocations', logical([1 0 1 0 1])); - assert (idx, logical([0 0 1 0 1])); - [~,idx] = fillmissing (x, "next", 'missinglocations', logical([1 0 1 0 1])); - assert (idx, logical([1 0 1 0 0])); - [~,idx] = fillmissing (x, "nearest", 'missinglocations', logical([1 0 1 0 1])); - assert (idx, logical([1 0 1 0 1])); - [~,idx] = fillmissing (x, @(x,y,z) z+10, 3); - assert (idx, logical([0 0 0 0 0])); - [~,idx] = fillmissing (x, @(x,y,z) z+10, 3, 'missinglocations', logical([1 0 1 0 1])); - assert (idx, logical([1 0 1 0 1])); - [~,idx] = fillmissing (x, @(x,y,z) z+10, [2 0], 'missinglocations', logical([1 0 1 0 1])); - assert (idx, logical([0 0 1 0 1])); -***** test - [A, idx] = fillmissing ([struct struct], "constant", 1); - assert (A, [struct struct]) - assert (idx, [false false]) -***** error fillmissing () -***** error fillmissing (1) -***** error fillmissing (1,2,3,4,5,6,7,8,9,10,11,12,13) -***** error fillmissing (1, 2) -***** error fillmissing (1, "foo") -***** error fillmissing (1, @(x) x, 1) -***** error fillmissing (1, @(x,y) x+y, 1) -***** error fillmissing ("a b c", "linear") -***** error fillmissing ({'a','b'}, "linear") -***** error <'movmean' and 'movmedian' methods only valid for numeric> fillmissing ("a b c", "movmean", 2) -***** error <'movmean' and 'movmedian' methods only valid for numeric> fillmissing ({'a','b'}, "movmean", 2) -***** error <'constant' method must be followed by> fillmissing (1, "constant") -***** error fillmissing (1, "constant", []) -***** error fillmissing (1, "constant", "a") -***** error fillmissing ("a", "constant", 1) -***** error fillmissing ("a", "constant", {"foo"}) -***** error fillmissing ({"foo"}, "constant", 1) -***** error fillmissing (1, "movmean") -***** error fillmissing (1, "movmedian") -***** error fillmissing (1, "constant", 1, 0) -***** error fillmissing (1, "constant", 1, -1) -***** error fillmissing (1, "constant", 1, [1 2]) -***** error fillmissing (1, "constant", 1, "samplepoints") -***** error fillmissing (1, "constant", 1, "foo") -***** error fillmissing (1, "constant", 1, 1, "foo") -***** error fillmissing (1, "constant", 1, 2, {1}, 4) -***** error fillmissing ([1 2 3], "constant", 1, 2, "samplepoints", [1 2]) -***** error fillmissing ([1 2 3], "constant", 1, 2, "samplepoints", [3 1 2]) -***** error fillmissing ([1 2 3], "constant", 1, 2, "samplepoints", [1 1 2]) -***** error fillmissing ([1 2 3], "constant", 1, 2, "samplepoints", "abc") -***** error fillmissing ([1 2 3], "constant", 1, 2, "samplepoints", logical([1 1 1])) -***** error fillmissing ([1 2 3], "constant", 1, 1, "samplepoints", [1 2 3]) -***** error fillmissing ('foo', "next", "endvalues", 1) -***** error fillmissing (1, "constant", 1, 1, "endvalues", "foo") -***** error fillmissing ([1 2 3], "constant", 1, 2, "endvalues", [1 2 3]) -***** error fillmissing ([1 2 3], "constant", 1, 1, "endvalues", [1 2]) -***** error fillmissing (randi(5,4,3,2), "constant", 1, 3, "endvalues", [1 2]) -***** error fillmissing (1, "constant", 1, 1, "endvalues", {1}) -***** error fillmissing (1, "constant", 1, 2, "foo", 4) -***** error fillmissing (struct, "constant", 1, "missinglocations", false) -***** error fillmissing (1, "constant", 1, 2, "maxgap", 1, "missinglocations", false) -***** error fillmissing (1, "constant", 1, 2, "missinglocations", false, "maxgap", 1) -***** error fillmissing (1, "constant", 1, "replacevalues", true) -***** error fillmissing (1, "constant", 1, "datavariables", 'Varname') -***** error fillmissing (1, "constant", 1, 2, "missinglocations", 1) -***** error fillmissing (1, "constant", 1, 2, "missinglocations", 'a') -***** error fillmissing (1, "constant", 1, 2, "missinglocations", [true false]) -***** error fillmissing (true, "linear", "missinglocations", true) -***** error fillmissing (int8(1), "linear", "missinglocations", true) -***** error fillmissing (true, "next", "missinglocations", true, "EndValues", "linear") -***** error fillmissing (true, "next", "EndValues", "linear", "missinglocations", true) -***** error fillmissing (int8(1), "next", "missinglocations", true, "EndValues", "linear") -***** error fillmissing (int8(1), "next", "EndValues", "linear", "missinglocations", true) -***** error fillmissing (1, "constant", 1, 2, "maxgap", true) -***** error fillmissing (1, "constant", 1, 2, "maxgap", 'a') -***** error fillmissing (1, "constant", 1, 2, "maxgap", [1 2]) -***** error fillmissing (1, "constant", 1, 2, "maxgap", 0) -***** error fillmissing (1, "constant", 1, 2, "maxgap", -1) -***** error fillmissing ([1 2 3], "constant", [1 2 3]) -***** error fillmissing ([1 2 3]', "constant", [1 2 3]) -***** error fillmissing ([1 2 3]', "constant", [1 2 3], 1) -***** error fillmissing ([1 2 3], "constant", [1 2 3], 2) -***** error fillmissing (randi(5,4,3,2), "constant", [1 2], 1) -***** error fillmissing (randi(5,4,3,2), "constant", [1 2], 2) -***** error fillmissing (randi(5,4,3,2), "constant", [1 2], 3) -***** error fillmissing (1, @(x,y,z) x+y+z) -***** error fillmissing ([1 NaN 2], @(x,y,z) [1 2], 2) -378 tests, 377 passed, 0 known failure, 1 skipped -[inst/levene_test.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/levene_test.m -***** error levene_test () -***** error ... - levene_test (1, 2, 3, 4, 5); -***** error levene_test (randn (50, 2), 0); -***** error ... - levene_test (randn (50, 2), [1, 2, 3]); -***** error ... - levene_test (randn (50, 1), ones (55, 1)); -***** error ... - levene_test (randn (50, 1), ones (50, 2)); -***** error ... - levene_test (randn (50, 2), [], 1.2); -***** error ... - levene_test (randn (50, 2), "some_string"); -***** error ... - levene_test (randn (50, 2), [], "alpha"); -***** error ... - levene_test (randn (50, 1), [ones(25, 1); 2*ones(25, 1)], 1.2); -***** error ... - levene_test (randn (50, 1), [ones(25, 1); 2*ones(25, 1)], "err"); -***** error ... - levene_test (randn (50, 1), [ones(25, 1); 2*ones(25, 1)], 0.05, "type"); -***** warning ... - levene_test (randn (50, 1), [ones(24, 1); 2*ones(25, 1); 3]); -***** test - load examgrades - [h, pval, W, df] = levene_test (grades); - assert (h, 1); - assert (pval, 9.523239714592791e-07, 1e-14); - assert (W, 8.59529, 1e-5); - assert (df, [4, 595]); -***** test - load examgrades - [h, pval, W, df] = levene_test (grades, [], "quadratic"); - assert (h, 1); - assert (pval, 9.523239714592791e-07, 1e-14); - assert (W, 8.59529, 1e-5); - assert (df, [4, 595]); -***** test - load examgrades - [h, pval, W, df] = levene_test (grades, [], "median"); - assert (h, 1); - assert (pval, 1.312093241723211e-06, 1e-14); - assert (W, 8.415969, 1e-6); - assert (df, [4, 595]); -***** test - load examgrades - [h, pval, W, df] = levene_test (grades(:,[1:3])); - assert (h, 1); - assert (pval, 0.004349390980463497, 1e-14); - assert (W, 5.52139, 1e-5); - assert (df, [2, 357]); -***** test - load examgrades - [h, pval, W, df] = levene_test (grades(:,[1:3]), "median"); - assert (h, 1); - assert (pval, 0.004355216763951453, 1e-14); - assert (W, 5.52001, 1e-5); - assert (df, [2, 357]); -***** test - load examgrades - [h, pval, W, df] = levene_test (grades(:,[3,4]), "quadratic"); - assert (h, 0); - assert (pval, 0.1807494957440653, 2e-14); - assert (W, 1.80200, 1e-5); - assert (df, [1, 238]); -***** test - load examgrades - [h, pval, W, df] = levene_test (grades(:,[3,4]), "median"); - assert (h, 0); - assert (pval, 0.1978225622063785, 2e-14); - assert (W, 1.66768, 1e-5); - assert (df, [1, 238]); -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/ppplot.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ppplot.m -***** test - hf = figure ("visible", "off"); - unwind_protect - ppplot ([2 3 3 4 4 5 6 5 6 7 8 9 8 7 8 9 0 8 7 6 5 4 6 13 8 15 9 9]); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** error ppplot () -***** error ppplot (ones (2,2)) -***** error ppplot (1, 2) -***** error ppplot ([1 2 3 4], 2) -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/fishertest.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/fishertest.m -***** demo - ## A Fisher's exact test example - - x = [3, 1; 1, 3] - [h, p, stats] = fishertest(x) -***** assert (fishertest ([3, 4; 5, 7]), false); -***** assert (isa (fishertest ([3, 4; 5, 7]), "logical"), true); -***** test - [h, pval, stats] = fishertest ([3, 4; 5, 7]); - assert (pval, 1, 1e-14); - assert (stats.OddsRatio, 1.05); - CI = [0.159222057151289, 6.92429189601808]; - assert (stats.ConfidenceInterval, CI, 1e-14) -***** test - [h, pval, stats] = fishertest ([3, 4; 5, 0]); - assert (pval, 0.08080808080808080, 1e-14); - assert (stats.OddsRatio, 0); - assert (stats.ConfidenceInterval, [-Inf, Inf]) -***** error fishertest (); -***** error fishertest (1, 2, 3, 4, 5, 6); -***** error ... - fishertest (ones (2, 2, 2)); -***** error ... - fishertest ([1, 2; -3, 4]); -***** error ... - fishertest ([1, 2; 3, 4+i]); -***** error ... - fishertest ([1, 2; 3, 4.2]); -***** error ... - fishertest ([NaN, 2; 3, 4]); -***** error ... - fishertest ([1, Inf; 3, 4]); -***** error ... - fishertest (ones (2) * 1e8); -***** error ... - fishertest ([1, 2; 3, 4], "alpha", 0); -***** error ... - fishertest ([1, 2; 3, 4], "alpha", 1.2); -***** error ... - fishertest ([1, 2; 3, 4], "alpha", "val"); -***** error ... - fishertest ([1, 2; 3, 4], "tail", "val"); -***** error ... - fishertest ([1, 2; 3, 4], "alpha", 0.01, "tail", "val"); -***** error ... - fishertest ([1, 2; 3, 4], "alpha", 0.01, "badoption", 3); -19 tests, 19 passed, 0 known failure, 0 skipped -[inst/normplot.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/normplot.m -***** demo - h = normplot([1:20]); -***** demo - h = normplot([1:20;5:2:44]'); -***** demo - ax = newplot(); - h = normplot(ax, [1:20]); - ax = gca; - h = normplot(ax, [-10:10]); - set (ax, "xlim", [-11, 21]); -***** error normplot (); -***** error normplot (23); -***** error normplot (23, [1:20]); -***** error normplot (ones(3,4,5)); -***** test - hf = figure ("visible", "off"); - unwind_protect - ax = newplot (hf); - h = normplot (ax, [1:20]); - ax = gca; - h = normplot(ax, [-10:10]); - set (ax, "xlim", [-11, 21]); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** test - hf = figure ("visible", "off"); - unwind_protect - h = normplot([1:20;5:2:44]'); - unwind_protect_cleanup - close (hf); - end_unwind_protect -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/gmdistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/gmdistribution.m -***** test - mu = eye(2); - Sigma = eye(2); - GM = gmdistribution (mu, Sigma); - density = GM.pdf ([0 0; 1 1]); - assert (density(1) - density(2), 0, 1e-6); - - [idx, nlogl, P, logpdf,M] = cluster (GM, eye(2)); - assert (idx, [1; 2]); - [idx2,nlogl2,P2,logpdf2] = GM.cluster (eye(2)); - assert (nlogl - nlogl2, 0, 1e-6); - [idx3,nlogl3,P3] = cluster (GM, eye(2)); - assert (P - P3, zeros (2), 1e-6); - [idx4,nlogl4] = cluster (GM, eye(2)); - assert (size (nlogl4), [1 1]); - idx5 = cluster (GM, eye(2)); - assert (idx - idx5, zeros (2,1)); - - D = GM.mahal ([1;0]); - assert (D - M(1,:), zeros (1,2), 1e-6); - - P = GM.posterior ([0 1]); - assert (P - P2(2,:), zeros (1,2), 1e-6); - - R = GM.random(20); - assert (size(R), [20, 2]); - - R = GM.random(); - assert (size(R), [1, 2]); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/tabulate.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/tabulate.m -***** demo - ## Generate a frequency table for a vector of data in a cell array - load patients - - ## Display the first seven entries of the Gender variable - gender = Gender(1:7) - - ## Compute the equency table that shows the number and - ## percentage of Male and Female patients - tabulate (Gender) -***** demo - ## Create a frequency table for a vector of positive integers - load patients - - ## Display the first seven entries of the Gender variable - height = Height(1:7) - - ## Create a frequency table that shows, in its second and third columns, - ## the number and percentage of patients with a particular height. - table = tabulate (Height); - - ## Display the first and last seven entries of the frequency table - first = table(1:7,:) - - last = table(end-6:end,:) -***** demo - ## Create a frequency table from a character array - load carsmall - - ## Tabulate the data in the Origin variable, which shows the - ## country of origin of each car in the data set - tabulate (Origin) -***** demo - ## Create a frequency table from a numeric vector with NaN values - load carsmall - - ## The carsmall dataset contains measurements of 100 cars - total_cars = length (MPG) - ## For six cars, the MPG value is missing - missingMPG = length (MPG(isnan (MPG))) - - ## Create a frequency table using MPG - tabulate (MPG) - table = tabulate (MPG); - - ## Only 94 cars were used - valid_cars = sum (table(:,2)) -***** test - load patients - table = tabulate (Gender); - assert (table{1,1}, "Male"); - assert (table{2,1}, "Female"); - assert (table{1,2}, 47); - assert (table{2,2}, 53); -***** test - load patients - table = tabulate (Height); - assert (table(end-4,:), [68, 15, 15]); - assert (table(end-3,:), [69, 8, 8]); - assert (table(end-2,:), [70, 11, 11]); - assert (table(end-1,:), [71, 10, 10]); - assert (table(end,:), [72, 4, 4]); -***** error tabulate (ones (3)) -***** error tabulate ({1, 2, 3, 4}) -***** error ... - tabulate ({"a", "b"; "a", "c"}) -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/cdfplot.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cdfplot.m -***** demo - x = randn(100,1); - cdfplot (x); -***** test - hf = figure ("visible", "off"); - unwind_protect - x = [2, 4, 3, 2, 4, 3, 2, 5, 6, 4]; - [hCDF, stats] = cdfplot (x); - assert (stats.min, 2); - assert (stats.max, 6); - assert (stats.median, 3.5); - assert (stats.std, 1.35400640077266, 1e-14); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** test - hf = figure ("visible", "off"); - unwind_protect - x = randn(100,1); - cdfplot (x); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** error cdfplot (); -***** error cdfplot ([x',x']); -***** error cdfplot ([NaN, NaN, NaN, NaN]); -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/binotest.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/binotest.m -***** demo - % flip a coin 1000 times, showing 475 heads - % Hypothesis: coin is fair, i.e. p=1/2 - [h,p_val,ci] = binotest(475,1000,0.5) - % Result: h = 0 : null hypothesis not rejected, coin could be fair - % P value 0.12, i.e. hypothesis not rejected for alpha up to 12% - % 0.444 <= p <= 0.506 with 95% confidence -***** demo - % flip a coin 100 times, showing 65 heads - % Hypothesis: coin shows less than 50% heads, i.e. p<=1/2 - [h,p_val,ci] = binotest(65,100,0.5,'tail','left','alpha',0.01) - % Result: h = 1 : null hypothesis is rejected, i.e. coin shows more heads than tails - % P value 0.0018, i.e. hypothesis not rejected for alpha up to 0.18% - % 0 <= p <= 0.76 with 99% confidence -***** test #example from https://en.wikipedia.org/wiki/Binomial_test - [h,p_val,ci] = binotest (51,235,1/6); - assert (p_val, 0.0437, 0.00005) - [h,p_val,ci] = binotest (51,235,1/6,'tail','left'); - assert (p_val, 0.027, 0.0005) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/bartlett_test.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/bartlett_test.m -***** error bartlett_test () -***** error ... - bartlett_test (1, 2, 3, 4); -***** error bartlett_test (randn (50, 2), 0); -***** error ... - bartlett_test (randn (50, 2), [1, 2, 3]); -***** error ... - bartlett_test (randn (50, 1), ones (55, 1)); -***** error ... - bartlett_test (randn (50, 1), ones (50, 2)); -***** error ... - bartlett_test (randn (50, 2), [], 1.2); -***** error ... - bartlett_test (randn (50, 2), [], "alpha"); -***** error ... - bartlett_test (randn (50, 1), [ones(25, 1); 2*ones(25, 1)], 1.2); -***** error ... - bartlett_test (randn (50, 1), [ones(25, 1); 2*ones(25, 1)], "err"); -***** warning ... - bartlett_test (randn (50, 1), [ones(24, 1); 2*ones(25, 1); 3]); -***** test - load examgrades - [h, pval, chisq, df] = bartlett_test (grades); - assert (h, 1); - assert (pval, 7.908647337018238e-08, 1e-14); - assert (chisq, 38.73324, 1e-5); - assert (df, 4); + x = nbinrnd (1, 0.5, [1, 100]); +***** error ... + paramci (NegativeBinomialDistribution.fit (x), "alpha") +***** error ... + paramci (NegativeBinomialDistribution.fit (x), "alpha", 0) +***** error ... + paramci (NegativeBinomialDistribution.fit (x), "alpha", 1) +***** error ... + paramci (NegativeBinomialDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (NegativeBinomialDistribution.fit (x), "alpha", "") +***** error ... + paramci (NegativeBinomialDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (NegativeBinomialDistribution.fit (x), "parameter", "R", ... + "alpha", {0.05}) +***** error ... + paramci (NegativeBinomialDistribution.fit (x), ... + "parameter", {"R", "P", "param"}) +***** error ... + paramci (NegativeBinomialDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"R", "P", "param"}) +***** error ... + paramci (NegativeBinomialDistribution.fit (x), "parameter", "param") +***** error ... + paramci (NegativeBinomialDistribution.fit (x), "alpha", 0.01, ... + "parameter", "param") +***** error ... + paramci (NegativeBinomialDistribution.fit (x), "NAME", "value") +***** error ... + paramci (NegativeBinomialDistribution.fit (x), "alpha", 0.01, ... + "NAME", "value") +***** error ... + paramci (NegativeBinomialDistribution.fit (x), "alpha", 0.01, ... + "parameter", "R", "NAME", "value") +***** error ... + plot (NegativeBinomialDistribution, "Parent") +***** error ... + plot (NegativeBinomialDistribution, "PlotType", 12) +***** error ... + plot (NegativeBinomialDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (NegativeBinomialDistribution, "PlotType", "pdfcdf") +***** error ... + plot (NegativeBinomialDistribution, "Discrete", "pdfcdf") +***** error ... + plot (NegativeBinomialDistribution, "Discrete", [1, 0]) +***** error ... + plot (NegativeBinomialDistribution, "Discrete", {true}) +***** error ... + plot (NegativeBinomialDistribution, "Parent", 12) +***** error ... + plot (NegativeBinomialDistribution, "Parent", "hax") +***** error ... + proflik (NegativeBinomialDistribution, 2) +***** error ... + proflik (NegativeBinomialDistribution.fit (x), 3) +***** error ... + proflik (NegativeBinomialDistribution.fit (x), [1, 2]) +***** error ... + proflik (NegativeBinomialDistribution.fit (x), {1}) +***** error ... + proflik (NegativeBinomialDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (NegativeBinomialDistribution.fit (x), 1, "Display") +***** error ... + proflik (NegativeBinomialDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (NegativeBinomialDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (NegativeBinomialDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (NegativeBinomialDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (NegativeBinomialDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (NegativeBinomialDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (NegativeBinomialDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (NegativeBinomialDistribution.fit (x), 1, {[1 2 3]}, "Display", "on") +***** error ... + truncate (NegativeBinomialDistribution) +***** error ... + truncate (NegativeBinomialDistribution, 2) +***** error ... + truncate (NegativeBinomialDistribution, 4, 2) +***** shared pd + pd = NegativeBinomialDistribution(1, 0.5); + pd(2) = NegativeBinomialDistribution(1, 0.6); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +81 tests, 81 passed, 0 known failure, 0 skipped +[inst/dist_obj/RayleighDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/RayleighDistribution.m +***** shared pd, t + pd = RayleighDistribution; + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.3935, 0.8647, 0.9889, 0.9997, 1], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.9202, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.6753, 0.8647, 0.9889, 0.9997, NaN], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.9202, 1, NaN], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0.6680, 1.0108, 1.3537, 1.7941, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.1083, 2.2402, 2.4135, 2.6831, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 1.0108, 1.3537, 1.7941, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.2402, 2.4135, 2.6831, 4, NaN], 1e-4); +***** assert (iqr (pd), 0.9066, 1e-4); +***** assert (iqr (t), 0.4609, 1e-4); +***** assert (mean (pd), 1.2533, 1e-4); +***** assert (mean (t), 2.4169, 1e-4); +***** assert (median (pd), 1.1774, 1e-4); +***** assert (median (t), 2.3198, 1e-4); +***** assert (pdf (pd, [0:5]), [0, 0.6065, 0.2707, 0.0333, 0.0013, 0], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 2.0050, 0.2469, 0.0099, 0], 1e-4); +***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0.4870, NaN], 1e-4); +***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 0.6551, 1e-4); +***** assert (std (t), 0.3591, 1e-4); +***** assert (var (pd), 0.4292, 1e-4); +***** assert (var (t), 0.1290, 1e-4); +***** error ... + RayleighDistribution(0) +***** error ... + RayleighDistribution(-1) +***** error ... + RayleighDistribution(Inf) +***** error ... + RayleighDistribution(i) +***** error ... + RayleighDistribution("a") +***** error ... + RayleighDistribution([1, 2]) +***** error ... + RayleighDistribution(NaN) +***** error ... + cdf (RayleighDistribution, 2, "uper") +***** error ... + cdf (RayleighDistribution, 2, 3) +***** shared x + x = raylrnd (1, [1, 100]); +***** error ... + paramci (RayleighDistribution.fit (x), "alpha") +***** error ... + paramci (RayleighDistribution.fit (x), "alpha", 0) +***** error ... + paramci (RayleighDistribution.fit (x), "alpha", 1) +***** error ... + paramci (RayleighDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (RayleighDistribution.fit (x), "alpha", "") +***** error ... + paramci (RayleighDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (RayleighDistribution.fit (x), "parameter", "sigma", "alpha", {0.05}) +***** error ... + paramci (RayleighDistribution.fit (x), "parameter", {"sigma", "param"}) +***** error ... + paramci (RayleighDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"sigma", "param"}) +***** error ... + paramci (RayleighDistribution.fit (x), "parameter", "param") +***** error ... + paramci (RayleighDistribution.fit (x), "alpha", 0.01, "parameter", "param") +***** error ... + paramci (RayleighDistribution.fit (x), "NAME", "value") +***** error ... + paramci (RayleighDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (RayleighDistribution.fit (x), "alpha", 0.01, ... + "parameter", "sigma", "NAME", "value") +***** error ... + plot (RayleighDistribution, "Parent") +***** error ... + plot (RayleighDistribution, "PlotType", 12) +***** error ... + plot (RayleighDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (RayleighDistribution, "PlotType", "pdfcdf") +***** error ... + plot (RayleighDistribution, "Discrete", "pdfcdf") +***** error ... + plot (RayleighDistribution, "Discrete", [1, 0]) +***** error ... + plot (RayleighDistribution, "Discrete", {true}) +***** error ... + plot (RayleighDistribution, "Parent", 12) +***** error ... + plot (RayleighDistribution, "Parent", "hax") +***** error ... + proflik (RayleighDistribution, 2) +***** error ... + proflik (RayleighDistribution.fit (x), 3) +***** error ... + proflik (RayleighDistribution.fit (x), [1, 2]) +***** error ... + proflik (RayleighDistribution.fit (x), {1}) +***** error ... + proflik (RayleighDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (RayleighDistribution.fit (x), 1, "Display") +***** error ... + proflik (RayleighDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (RayleighDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (RayleighDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (RayleighDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (RayleighDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (RayleighDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (RayleighDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (RayleighDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (RayleighDistribution) +***** error ... + truncate (RayleighDistribution, 2) +***** error ... + truncate (RayleighDistribution, 4, 2) +***** shared pd + pd = RayleighDistribution(1); + pd(2) = RayleighDistribution(3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +88 tests, 88 passed, 0 known failure, 0 skipped +[inst/dist_obj/InverseGaussianDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/InverseGaussianDistribution.m +***** shared pd, t + pd = InverseGaussianDistribution (1, 1); + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.6681, 0.8855, 0.9532, 0.9791, 0.9901], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.7234, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.8108, 0.8855, 0.9532, 0.9791], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.7234, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0.3320, 0.5411, 0.8483, 1.4479, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.1889, 2.4264, 2.7417, 3.1993, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.5411, 0.8483, 1.4479, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.4264, 2.7417, 3.1993, 4, NaN], 1e-4); +***** assert (iqr (pd), 0.8643, 1e-4); +***** assert (iqr (t), 0.8222, 1e-4); +***** assert (mean (pd), 1); +***** assert (mean (t), 2.6953, 1e-4); +***** assert (median (pd), 0.6758, 1e-4); +***** assert (median (t), 2.5716, 1e-4); +***** assert (pdf (pd, [0:5]), [0, 0.3989, 0.1098, 0.0394, 0.0162, 0.0072], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 1.1736, 0.4211, 0.1730, 0], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.3989, 0.1098, 0.0394, 0.0162, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 1.1736, 0.4211, 0.1730, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 1); +***** assert (std (t), 0.5332, 1e-4); +***** assert (var (pd), 1); +***** assert (var (t), 0.2843, 1e-4); +***** error ... + InverseGaussianDistribution(0, 1) +***** error ... + InverseGaussianDistribution(Inf, 1) +***** error ... + InverseGaussianDistribution(i, 1) +***** error ... + InverseGaussianDistribution("a", 1) +***** error ... + InverseGaussianDistribution([1, 2], 1) +***** error ... + InverseGaussianDistribution(NaN, 1) +***** error ... + InverseGaussianDistribution(1, 0) +***** error ... + InverseGaussianDistribution(1, -1) +***** error ... + InverseGaussianDistribution(1, Inf) +***** error ... + InverseGaussianDistribution(1, i) +***** error ... + InverseGaussianDistribution(1, "a") +***** error ... + InverseGaussianDistribution(1, [1, 2]) +***** error ... + InverseGaussianDistribution(1, NaN) +***** error ... + cdf (InverseGaussianDistribution, 2, "uper") +***** error ... + cdf (InverseGaussianDistribution, 2, 3) +***** shared x + x = invgrnd (1, 1, [1, 100]); +***** error ... + paramci (InverseGaussianDistribution.fit (x), "alpha") +***** error ... + paramci (InverseGaussianDistribution.fit (x), "alpha", 0) +***** error ... + paramci (InverseGaussianDistribution.fit (x), "alpha", 1) +***** error ... + paramci (InverseGaussianDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (InverseGaussianDistribution.fit (x), "alpha", "") +***** error ... + paramci (InverseGaussianDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (InverseGaussianDistribution.fit (x), "parameter", "mu", ... + "alpha", {0.05}) +***** error ... + paramci (InverseGaussianDistribution.fit (x), ... + "parameter", {"mu", "lambda", "param"}) +***** error ... + paramci (InverseGaussianDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"mu", "lambda", "param"}) +***** error ... + paramci (InverseGaussianDistribution.fit (x), "parameter", "param") +***** error ... + paramci (InverseGaussianDistribution.fit (x), "alpha", 0.01, ... + "parameter", "param") +***** error ... + paramci (InverseGaussianDistribution.fit (x), "NAME", "value") +***** error ... + paramci (InverseGaussianDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (InverseGaussianDistribution.fit (x), "alpha", 0.01, ... + "parameter", "mu", "NAME", "value") +***** error ... + plot (InverseGaussianDistribution, "Parent") +***** error ... + plot (InverseGaussianDistribution, "PlotType", 12) +***** error ... + plot (InverseGaussianDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (InverseGaussianDistribution, "PlotType", "pdfcdf") +***** error ... + plot (InverseGaussianDistribution, "Discrete", "pdfcdf") +***** error ... + plot (InverseGaussianDistribution, "Discrete", [1, 0]) +***** error ... + plot (InverseGaussianDistribution, "Discrete", {true}) +***** error ... + plot (InverseGaussianDistribution, "Parent", 12) +***** error ... + plot (InverseGaussianDistribution, "Parent", "hax") +***** error ... + proflik (InverseGaussianDistribution, 2) +***** error ... + proflik (InverseGaussianDistribution.fit (x), 3) +***** error ... + proflik (InverseGaussianDistribution.fit (x), [1, 2]) +***** error ... + proflik (InverseGaussianDistribution.fit (x), {1}) +***** error ... + proflik (InverseGaussianDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (InverseGaussianDistribution.fit (x), 1, "Display") +***** error ... + proflik (InverseGaussianDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (InverseGaussianDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (InverseGaussianDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (InverseGaussianDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (InverseGaussianDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (InverseGaussianDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (InverseGaussianDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (InverseGaussianDistribution.fit (x), 1, {[1 2 3]}, "Display", "on") +***** error ... + truncate (InverseGaussianDistribution) +***** error ... + truncate (InverseGaussianDistribution, 2) +***** error ... + truncate (InverseGaussianDistribution, 4, 2) +***** shared pd + pd = InverseGaussianDistribution(1, 1); + pd(2) = InverseGaussianDistribution(1, 3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +94 tests, 94 passed, 0 known failure, 0 skipped +[inst/dist_obj/BetaDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/BetaDistribution.m +***** shared pd, t + pd = BetaDistribution; + t = truncate (pd, 0.2, 0.8); +***** assert (cdf (pd, [0:0.2:1]), [0, 0.2, 0.4, 0.6, 0.8, 1], 1e-4); +***** assert (cdf (t, [0:0.2:1]), [0, 0, 0.3333, 0.6667, 1, 1], 1e-4); +***** assert (cdf (pd, [-1, 1, NaN]), [0, 1, NaN], 1e-4); +***** assert (cdf (t, [-1, 1, NaN]), [0, 1, NaN], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0.2, 0.4, 0.6, 0.8, 1], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [0.2, 0.32, 0.44, 0.56, 0.68, 0.8], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.4, 0.6, 0.8, 1, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 0.44, 0.56, 0.68, 0.8, NaN], 1e-4); +***** assert (iqr (pd), 0.5, 1e-4); +***** assert (iqr (t), 0.3, 1e-4); +***** assert (mean (pd), 0.5); +***** assert (mean (t), 0.5, 1e-6); +***** assert (median (pd), 0.5); +***** assert (median (t), 0.5, 1e-6); +***** assert (pdf (pd, [0:0.2:1]), [1, 1, 1, 1, 1, 1], 1e-4); +***** assert (pdf (t, [0:0.2:1]), [0, 1.6667, 1.6667, 1.6667, 1.6667, 0], 1e-4); +***** assert (pdf (pd, [-1, 1, NaN]), [0, 1, NaN], 1e-4); +***** assert (pdf (t, [-1, 1, NaN]), [0, 0, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 0.2), false); +***** assert (any (random (t, 1000, 1) > 0.8), false); +***** assert (std (pd), 0.2887, 1e-4); +***** assert (std (t), 0.1732, 1e-4); +***** assert (var (pd), 0.0833, 1e-4); +***** assert (var (t), 0.0300, 1e-4); +***** error ... + BetaDistribution(0, 1) +***** error ... + BetaDistribution(Inf, 1) +***** error ... + BetaDistribution(i, 1) +***** error ... + BetaDistribution("a", 1) +***** error ... + BetaDistribution([1, 2], 1) +***** error ... + BetaDistribution(NaN, 1) +***** error ... + BetaDistribution(1, 0) +***** error ... + BetaDistribution(1, -1) +***** error ... + BetaDistribution(1, Inf) +***** error ... + BetaDistribution(1, i) +***** error ... + BetaDistribution(1, "a") +***** error ... + BetaDistribution(1, [1, 2]) +***** error ... + BetaDistribution(1, NaN) +***** error ... + cdf (BetaDistribution, 2, "uper") +***** error ... + cdf (BetaDistribution, 2, 3) +***** shared x + randg ("seed", 1); + x = betarnd (1, 1, [100, 1]); +***** error ... + paramci (BetaDistribution.fit (x), "alpha") +***** error ... + paramci (BetaDistribution.fit (x), "alpha", 0) +***** error ... + paramci (BetaDistribution.fit (x), "alpha", 1) +***** error ... + paramci (BetaDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (BetaDistribution.fit (x), "alpha", "") +***** error ... + paramci (BetaDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (BetaDistribution.fit (x), "parameter", "a", "alpha", {0.05}) +***** error ... + paramci (BetaDistribution.fit (x), "parameter", {"a", "b", "param"}) +***** error ... + paramci (BetaDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"a", "b", "param"}) +***** error ... + paramci (BetaDistribution.fit (x), "parameter", "param") +***** error ... + paramci (BetaDistribution.fit (x), "alpha", 0.01, "parameter", "param") +***** error ... + paramci (BetaDistribution.fit (x), "NAME", "value") +***** error ... + paramci (BetaDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (BetaDistribution.fit (x), "alpha", 0.01, "parameter", "a", ... + "NAME", "value") +***** error ... + plot (BetaDistribution, "Parent") +***** error ... + plot (BetaDistribution, "PlotType", 12) +***** error ... + plot (BetaDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (BetaDistribution, "PlotType", "pdfcdf") +***** error ... + plot (BetaDistribution, "Discrete", "pdfcdf") +***** error ... + plot (BetaDistribution, "Discrete", [1, 0]) +***** error ... + plot (BetaDistribution, "Discrete", {true}) +***** error ... + plot (BetaDistribution, "Parent", 12) +***** error ... + plot (BetaDistribution, "Parent", "hax") +***** error ... + proflik (BetaDistribution, 2) +***** error ... + proflik (BetaDistribution.fit (x), 3) +***** error ... + proflik (BetaDistribution.fit (x), [1, 2]) +***** error ... + proflik (BetaDistribution.fit (x), {1}) +***** error ... + proflik (BetaDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (BetaDistribution.fit (x), 1, "Display") +***** error ... + proflik (BetaDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (BetaDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (BetaDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (BetaDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (BetaDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (BetaDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (BetaDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (BetaDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (BetaDistribution) +***** error ... + truncate (BetaDistribution, 2) +***** error ... + truncate (BetaDistribution, 4, 2) +***** shared pd + pd = BetaDistribution(1, 1); + pd(2) = BetaDistribution(1, 3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +94 tests, 94 passed, 0 known failure, 0 skipped +[inst/dist_obj/LognormalDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/LognormalDistribution.m +***** shared pd, t + pd = LognormalDistribution; + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.5, 0.7559, 0.8640, 0.9172, 0.9462], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.6705, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.6574, 0.7559, 0.8640, 0.9172], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.6705, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0.4310, 0.7762, 1.2883, 2.3201, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.2256, 2.5015, 2.8517, 3.3199, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 0.7762, 1.2883, 2.3201, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.5015, 2.8517, 3.3199, 4, NaN], 1e-4); +***** assert (iqr (pd), 1.4536, 1e-4); +***** assert (iqr (t), 0.8989, 1e-4); +***** assert (mean (pd), 1.6487, 1e-4); +***** assert (mean (t), 2.7692, 1e-4); +***** assert (median (pd), 1, 1e-4); +***** assert (median (t), 2.6653, 1e-4); +***** assert (pdf (pd, [0:5]), [0, 0.3989, 0.1569, 0.0727, 0.0382, 0.0219], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 0.9727, 0.4509, 0.2366, 0], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.3989, 0.1569, 0.0727, 0.0382, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 0.9727, 0.4509, 0.2366, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 2.1612, 1e-4); +***** assert (std (t), 0.5540, 1e-4); +***** assert (var (pd), 4.6708, 1e-4); +***** assert (var (t), 0.3069, 1e-4); +***** error ... + LognormalDistribution(Inf, 1) +***** error ... + LognormalDistribution(i, 1) +***** error ... + LognormalDistribution("a", 1) +***** error ... + LognormalDistribution([1, 2], 1) +***** error ... + LognormalDistribution(NaN, 1) +***** error ... + LognormalDistribution(1, 0) +***** error ... + LognormalDistribution(1, -1) +***** error ... + LognormalDistribution(1, Inf) +***** error ... + LognormalDistribution(1, i) +***** error ... + LognormalDistribution(1, "a") +***** error ... + LognormalDistribution(1, [1, 2]) +***** error ... + LognormalDistribution(1, NaN) +***** error ... + cdf (LognormalDistribution, 2, "uper") +***** error ... + cdf (LognormalDistribution, 2, 3) +***** shared x + randn ("seed", 1); + x = lognrnd (1, 1, [1, 100]); +***** error ... + paramci (LognormalDistribution.fit (x), "alpha") +***** error ... + paramci (LognormalDistribution.fit (x), "alpha", 0) +***** error ... + paramci (LognormalDistribution.fit (x), "alpha", 1) +***** error ... + paramci (LognormalDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (LognormalDistribution.fit (x), "alpha", "") +***** error ... + paramci (LognormalDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (LognormalDistribution.fit (x), "parameter", "mu", "alpha", {0.05}) +***** error ... + paramci (LognormalDistribution.fit (x), "parameter", {"mu", "sigma", "parm"}) +***** error ... + paramci (LognormalDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"mu", "sigma", "param"}) +***** error ... + paramci (LognormalDistribution.fit (x), "parameter", "param") +***** error ... + paramci (LognormalDistribution.fit (x), "alpha", 0.01, "parameter", "param") +***** error ... + paramci (LognormalDistribution.fit (x), "NAME", "value") +***** error ... + paramci (LognormalDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (LognormalDistribution.fit (x), "alpha", 0.01, "parameter", "mu", ... + "NAME", "value") +***** error ... + plot (LognormalDistribution, "Parent") +***** error ... + plot (LognormalDistribution, "PlotType", 12) +***** error ... + plot (LognormalDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (LognormalDistribution, "PlotType", "pdfcdf") +***** error ... + plot (LognormalDistribution, "Discrete", "pdfcdf") +***** error ... + plot (LognormalDistribution, "Discrete", [1, 0]) +***** error ... + plot (LognormalDistribution, "Discrete", {true}) +***** error ... + plot (LognormalDistribution, "Parent", 12) +***** error ... + plot (LognormalDistribution, "Parent", "hax") +***** error ... + proflik (LognormalDistribution, 2) +***** error ... + proflik (LognormalDistribution.fit (x), 3) +***** error ... + proflik (LognormalDistribution.fit (x), [1, 2]) +***** error ... + proflik (LognormalDistribution.fit (x), {1}) +***** error ... + proflik (LognormalDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (LognormalDistribution.fit (x), 1, "Display") +***** error ... + proflik (LognormalDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (LognormalDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (LognormalDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (LognormalDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (LognormalDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (LognormalDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (LognormalDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (LognormalDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (LognormalDistribution) +***** error ... + truncate (LognormalDistribution, 2) +***** error ... + truncate (LognormalDistribution, 4, 2) +***** shared pd + pd = LognormalDistribution(1, 1); + pd(2) = LognormalDistribution(1, 3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +93 tests, 93 passed, 0 known failure, 0 skipped +[inst/dist_obj/MultinomialDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/MultinomialDistribution.m +***** shared pd, t + pd = MultinomialDistribution ([0.1, 0.2, 0.3, 0.2, 0.1, 0.1]); + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [2, 3, 4]), [0.3, 0.6, 0.8], eps); +***** assert (cdf (t, [2, 3, 4]), [0.2857, 0.7143, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.1, 0.3, 0.6, 0.8], eps); +***** assert (cdf (pd, [1.5, 2-eps, 3, 4]), [0.1, 0.1, 0.6, 0.8], eps); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0.2857, 0.7143, 1], 1e-4); +***** assert (cdf (t, [1.5, 2-eps, 3, 4]), [0, 0, 0.7143, 1], 1e-4); +***** assert (cdf (pd, [1, 2.5, 4, 6]), [0.1, 0.3, 0.8, 1], eps); +***** assert (icdf (pd, [0, 0.2857, 0.7143, 1]), [1, 2, 4, 6]); +***** assert (icdf (t, [0, 0.2857, 0.7143, 1]), [2, 2, 4, 4]); +***** assert (icdf (t, [0, 0.35, 0.7143, 1]), [2, 3, 4, 4]); +***** assert (icdf (t, [0, 0.35, 0.7143, 1, NaN]), [2, 3, 4, 4, NaN]); +***** assert (icdf (t, [-0.5, 0, 0.35, 0.7143, 1, NaN]), [NaN, 2, 3, 4, 4, NaN]); +***** assert (icdf (pd, [-0.5, 0, 0.35, 0.7143, 1, NaN]), [NaN, 1, 3, 4, 6, NaN]); +***** assert (iqr (pd), 2); +***** assert (iqr (t), 2); +***** assert (mean (pd), 3.3, 1e-14); +***** assert (mean (t), 3, eps); +***** assert (median (pd), 3); +***** assert (median (t), 3); +***** assert (pdf (pd, [-5, 1, 2.5, 4, 6, NaN, 9]), [0, 0.1, 0, 0.2, 0.1, NaN, 0]); +***** assert (pdf (pd, [-5, 1, 2, 3, 4, 6, NaN, 9]), ... + [0, 0.1, 0.2, 0.3, 0.2, 0.1, NaN, 0]); +***** assert (pdf (t, [-5, 1, 2, 3, 4, 6, NaN, 0]), ... + [0, 0, 0.2857, 0.4286, 0.2857, 0, NaN, 0], 1e-4); +***** assert (pdf (t, [-5, 1, 2, 4, 6, NaN, 0]), ... + [0, 0, 0.2857, 0.2857, 0, NaN, 0], 1e-4); +***** assert (unique (random (pd, 1000, 5)), [1, 2, 3, 4, 5, 6]'); +***** assert (unique (random (t, 1000, 5)), [2, 3, 4]'); +***** assert (std (pd), 1.4177, 1e-4); +***** assert (std (t), 0.7559, 1e-4); +***** assert (var (pd), 2.0100, 1e-4); +***** assert (var (t), 0.5714, 1e-4); +***** error ... + MultinomialDistribution(0) +***** error ... + MultinomialDistribution(-1) +***** error ... + MultinomialDistribution(Inf) +***** error ... + MultinomialDistribution(i) +***** error ... + MultinomialDistribution("a") +***** error ... + MultinomialDistribution([1, 2]) +***** error ... + MultinomialDistribution(NaN) +***** error ... + cdf (MultinomialDistribution, 2, "uper") +***** error ... + cdf (MultinomialDistribution, 2, 3) +***** error ... + cdf (MultinomialDistribution, i) +***** error ... + plot (MultinomialDistribution, "Parent") +***** error ... + plot (MultinomialDistribution, "PlotType", 12) +***** error ... + plot (MultinomialDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (MultinomialDistribution, "PlotType", "pdfcdf") +***** error ... + plot (MultinomialDistribution, "Discrete", "pdfcdf") +***** error ... + plot (MultinomialDistribution, "Discrete", [1, 0]) +***** error ... + plot (MultinomialDistribution, "Discrete", {true}) +***** error ... + plot (MultinomialDistribution, "Parent", 12) +***** error ... + plot (MultinomialDistribution, "Parent", "hax") +***** error ... + truncate (MultinomialDistribution) +***** error ... + truncate (MultinomialDistribution, 2) +***** error ... + truncate (MultinomialDistribution, 4, 2) +***** shared pd + pd = MultinomialDistribution([0.1, 0.2, 0.3, 0.4]); + pd(2) = MultinomialDistribution([0.1, 0.2, 0.3, 0.4]); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +62 tests, 62 passed, 0 known failure, 0 skipped +[inst/dist_obj/RicianDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/RicianDistribution.m +***** shared pd, t + pd = RicianDistribution; + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.2671, 0.7310, 0.9563, 0.9971, 0.9999], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.8466, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.5120, 0.7310, 0.9563, 0.9971, NaN], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.8466, 1, NaN], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0.8501, 1.2736, 1.6863, 2.2011, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.1517, 2.3296, 2.5545, 2.8868, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 1.2736, 1.6863, 2.2011, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.3296, 2.5545, 2.8868, 4, NaN], 1e-4); +***** assert (iqr (pd), 1.0890, 1e-4); +***** assert (iqr (t), 0.5928, 1e-4); +***** assert (mean (pd), 1.5486, 1e-4); +***** assert (mean (t), 2.5380, 1e-4); +***** assert (median (pd), 1.4755, 1e-4); +***** assert (median (t), 2.4341, 1e-4); +***** assert (pdf (pd, [0:5]), [0, 0.4658, 0.3742, 0.0987, 0.0092, 0.0003], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 1.4063, 0.3707, 0.0346, 0], 1e-4); +***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0.4864, NaN], 1e-4); +***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 0.7758, 1e-4); +***** assert (std (t), 0.4294, 1e-4); +***** assert (var (pd), 0.6019, 1e-4); +***** assert (var (t), 0.1844, 1e-4); +***** error ... + RicianDistribution(-eps, 1) +***** error ... + RicianDistribution(-1, 1) +***** error ... + RicianDistribution(Inf, 1) +***** error ... + RicianDistribution(i, 1) +***** error ... + RicianDistribution("a", 1) +***** error ... + RicianDistribution([1, 2], 1) +***** error ... + RicianDistribution(NaN, 1) +***** error ... + RicianDistribution(1, 0) +***** error ... + RicianDistribution(1, -1) +***** error ... + RicianDistribution(1, Inf) +***** error ... + RicianDistribution(1, i) +***** error ... + RicianDistribution(1, "a") +***** error ... + RicianDistribution(1, [1, 2]) +***** error ... + RicianDistribution(1, NaN) +***** error ... + cdf (RicianDistribution, 2, "uper") +***** error ... + cdf (RicianDistribution, 2, 3) +***** shared x + x = gevrnd (1, 1, 1, [1, 100]); +***** error ... + paramci (RicianDistribution.fit (x), "alpha") +***** error ... + paramci (RicianDistribution.fit (x), "alpha", 0) +***** error ... + paramci (RicianDistribution.fit (x), "alpha", 1) +***** error ... + paramci (RicianDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (RicianDistribution.fit (x), "alpha", "") +***** error ... + paramci (RicianDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (RicianDistribution.fit (x), "parameter", "s", "alpha", {0.05}) +***** error ... + paramci (RicianDistribution.fit (x), "parameter", {"s", "sigma", "param"}) +***** error ... + paramci (RicianDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"s", "sigma", "param"}) +***** error ... + paramci (RicianDistribution.fit (x), "parameter", "param") +***** error ... + paramci (RicianDistribution.fit (x), "alpha", 0.01, "parameter", "param") +***** error ... + paramci (RicianDistribution.fit (x), "NAME", "value") +***** error ... + paramci (RicianDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (RicianDistribution.fit (x), "alpha", 0.01, "parameter", "s", ... + "NAME", "value") +***** error ... + plot (RicianDistribution, "Parent") +***** error ... + plot (RicianDistribution, "PlotType", 12) +***** error ... + plot (RicianDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (RicianDistribution, "PlotType", "pdfcdf") +***** error ... + plot (RicianDistribution, "Discrete", "pdfcdf") +***** error ... + plot (RicianDistribution, "Discrete", [1, 0]) +***** error ... + plot (RicianDistribution, "Discrete", {true}) +***** error ... + plot (RicianDistribution, "Parent", 12) +***** error ... + plot (RicianDistribution, "Parent", "hax") +***** error ... + proflik (RicianDistribution, 2) +***** error ... + proflik (RicianDistribution.fit (x), 3) +***** error ... + proflik (RicianDistribution.fit (x), [1, 2]) +***** error ... + proflik (RicianDistribution.fit (x), {1}) +***** error ... + proflik (RicianDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (RicianDistribution.fit (x), 1, "Display") +***** error ... + proflik (RicianDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (RicianDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (RicianDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (RicianDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (RicianDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (RicianDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (RicianDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (RicianDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (RicianDistribution) +***** error ... + truncate (RicianDistribution, 2) +***** error ... + truncate (RicianDistribution, 4, 2) +***** shared pd + pd = RicianDistribution(1, 1); + pd(2) = RicianDistribution(1, 3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +95 tests, 95 passed, 0 known failure, 0 skipped +[inst/dist_obj/PoissonDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/PoissonDistribution.m +***** shared pd, t + pd = PoissonDistribution; + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0.3679, 0.7358, 0.9197, 0.9810, 0.9963, 0.9994], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.7358, 0.9197, 0.9810, 0.9963], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0, 1, 1, 2, Inf], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 1, 1, 2, Inf, NaN], 1e-4); +***** assert (iqr (pd), 2); +***** assert (mean (pd), 1); +***** assert (median (pd), 1); +***** assert (pdf (pd, [0:5]), [0.3679, 0.3679, 0.1839, 0.0613, 0.0153, 0.0031], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.3679, 0.1839, 0.0613, 0.0153, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 1); +***** assert (var (pd), 1); +***** error ... + PoissonDistribution(0) +***** error ... + PoissonDistribution(-1) +***** error ... + PoissonDistribution(Inf) +***** error ... + PoissonDistribution(i) +***** error ... + PoissonDistribution("a") +***** error ... + PoissonDistribution([1, 2]) +***** error ... + PoissonDistribution(NaN) +***** error ... + cdf (PoissonDistribution, 2, "uper") +***** error ... + cdf (PoissonDistribution, 2, 3) +***** shared x + x = poissrnd (1, [1, 100]); +***** error ... + paramci (PoissonDistribution.fit (x), "alpha") +***** error ... + paramci (PoissonDistribution.fit (x), "alpha", 0) +***** error ... + paramci (PoissonDistribution.fit (x), "alpha", 1) +***** error ... + paramci (PoissonDistribution.fit (x), "alpha", [0.5 2]) +***** error ... + paramci (PoissonDistribution.fit (x), "alpha", "") +***** error ... + paramci (PoissonDistribution.fit (x), "alpha", {0.05}) +***** error ... + paramci (PoissonDistribution.fit (x), "parameter", "lambda", "alpha", {0.05}) +***** error ... + paramci (PoissonDistribution.fit (x), "parameter", {"lambda", "param"}) +***** error ... + paramci (PoissonDistribution.fit (x), "alpha", 0.01, ... + "parameter", {"lambda", "param"}) +***** error ... + paramci (PoissonDistribution.fit (x), "parameter", "param") +***** error ... + paramci (PoissonDistribution.fit (x), "alpha", 0.01, "parameter", "param") +***** error ... + paramci (PoissonDistribution.fit (x), "NAME", "value") +***** error ... + paramci (PoissonDistribution.fit (x), "alpha", 0.01, "NAME", "value") +***** error ... + paramci (PoissonDistribution.fit (x), "alpha", 0.01, ... + "parameter", "lambda", "NAME", "value") +***** error ... + plot (PoissonDistribution, "Parent") +***** error ... + plot (PoissonDistribution, "PlotType", 12) +***** error ... + plot (PoissonDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (PoissonDistribution, "PlotType", "pdfcdf") +***** error ... + plot (PoissonDistribution, "Discrete", "pdfcdf") +***** error ... + plot (PoissonDistribution, "Discrete", [1, 0]) +***** error ... + plot (PoissonDistribution, "Discrete", {true}) +***** error ... + plot (PoissonDistribution, "Parent", 12) +***** error ... + plot (PoissonDistribution, "Parent", "hax") +***** error ... + proflik (PoissonDistribution, 2) +***** error ... + proflik (PoissonDistribution.fit (x), 3) +***** error ... + proflik (PoissonDistribution.fit (x), [1, 2]) +***** error ... + proflik (PoissonDistribution.fit (x), {1}) +***** error ... + proflik (PoissonDistribution.fit (x), 1, ones (2)) +***** error ... + proflik (PoissonDistribution.fit (x), 1, "Display") +***** error ... + proflik (PoissonDistribution.fit (x), 1, "Display", 1) +***** error ... + proflik (PoissonDistribution.fit (x), 1, "Display", {1}) +***** error ... + proflik (PoissonDistribution.fit (x), 1, "Display", {"on"}) +***** error ... + proflik (PoissonDistribution.fit (x), 1, "Display", ["on"; "on"]) +***** error ... + proflik (PoissonDistribution.fit (x), 1, "Display", "onnn") +***** error ... + proflik (PoissonDistribution.fit (x), 1, "NAME", "on") +***** error ... + proflik (PoissonDistribution.fit (x), 1, {"NAME"}, "on") +***** error ... + proflik (PoissonDistribution.fit (x), 1, {[1 2 3 4]}, "Display", "on") +***** error ... + truncate (PoissonDistribution) +***** error ... + truncate (PoissonDistribution, 2) +***** error ... + truncate (PoissonDistribution, 4, 2) +***** shared pd + pd = PoissonDistribution(1); + pd(2) = PoissonDistribution(3); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +77 tests, 77 passed, 0 known failure, 0 skipped +[inst/dist_obj/UniformDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/UniformDistribution.m +***** shared pd, t + pd = UniformDistribution (0, 5); + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0.2, 0.4, 0.6, 0.8, 1], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.5, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.3, 0.4, 0.6, 0.8, NaN], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0, 0.5, 1, NaN], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 1, 2, 3, 4, 5], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.4, 2.8, 3.2, 3.6, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 2, 3, 4, 5, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.8, 3.2, 3.6, 4, NaN], 1e-4); +***** assert (iqr (pd), 2.5, 1e-14); +***** assert (iqr (t), 1, 1e-14); +***** assert (mean (pd), 2.5, 1e-14); +***** assert (mean (t), 3, 1e-14); +***** assert (median (pd), 2.5, 1e-14); +***** assert (median (t), 3, 1e-14); +***** assert (pdf (pd, [0:5]), [0.2, 0.2, 0.2, 0.2, 0.2, 0.2], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 0.5, 0.5, 0.5, 0], 1e-4); +***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0.2, NaN], 1e-4); +***** assert (pdf (t, [-1, 1.5, NaN]), [0, 0, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 1.4434, 1e-4); +***** assert (std (t), 0.5774, 1e-4); +***** assert (var (pd), 2.0833, 1e-4); +***** assert (var (t), 0.3333, 1e-4); +***** error ... + UniformDistribution (i, 1) +***** error ... + UniformDistribution (Inf, 1) +***** error ... + UniformDistribution ([1, 2], 1) +***** error ... + UniformDistribution ("a", 1) +***** error ... + UniformDistribution (NaN, 1) +***** error ... + UniformDistribution (1, i) +***** error ... + UniformDistribution (1, Inf) +***** error ... + UniformDistribution (1, [1, 2]) +***** error ... + UniformDistribution (1, "a") +***** error ... + UniformDistribution (1, NaN) +***** error ... + UniformDistribution (2, 1) +***** error ... + cdf (UniformDistribution, 2, "uper") +***** error ... + cdf (UniformDistribution, 2, 3) +***** error ... + plot (UniformDistribution, "Parent") +***** error ... + plot (UniformDistribution, "PlotType", 12) +***** error ... + plot (UniformDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (UniformDistribution, "PlotType", "pdfcdf") +***** error ... + plot (UniformDistribution, "Discrete", "pdfcdf") +***** error ... + plot (UniformDistribution, "Discrete", [1, 0]) +***** error ... + plot (UniformDistribution, "Discrete", {true}) +***** error ... + plot (UniformDistribution, "Parent", 12) +***** error ... + plot (UniformDistribution, "Parent", "hax") +***** error ... + truncate (UniformDistribution) +***** error ... + truncate (UniformDistribution, 2) +***** error ... + truncate (UniformDistribution, 4, 2) +***** shared pd + pd = UniformDistribution (0, 1); + pd(2) = UniformDistribution (0, 2); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +61 tests, 61 passed, 0 known failure, 0 skipped +[inst/dist_obj/GeneralizedParetoDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/GeneralizedParetoDistribution.m +***** shared pd, t + pd = GeneralizedParetoDistribution (1, 1, 1); + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0:5]), [0, 0, 0.5, 0.6667, 0.75, 0.8], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0, 0.6667, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.3333, 0.5, 0.6667, 0.75], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.6667, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [1, 1.25, 1.6667, 2.5, 5, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.2222, 2.5, 2.8571, 3.3333, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 1.6667, 2.5, 5, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.5, 2.8571, 3.3333, 4, NaN], 1e-4); +***** assert (iqr (pd), 2.6667, 1e-4); +***** assert (iqr (t), 0.9143, 1e-4); +***** assert (mean (pd), Inf); +***** assert (mean (t), 2.7726, 1e-4); +***** assert (median (pd), 2); +***** assert (median (t), 2.6667, 1e-4); +***** assert (pdf (pd, [0:5]), [0, 1, 0.25, 0.1111, 0.0625, 0.04], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 1, 0.4444, 0.25, 0], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 1, 0.25, 0.1111, 0.0625, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 1, 0.4444, 0.25, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), Inf); +***** assert (std (t), 0.5592, 1e-4); +***** assert (var (pd), Inf); +***** assert (var (t), 0.3128, 1e-4); +***** error ... + GeneralizedParetoDistribution(Inf, 1, 1) +***** error ... + GeneralizedParetoDistribution(i, 1, 1) +***** error ... + GeneralizedParetoDistribution("a", 1, 1) +***** error ... + GeneralizedParetoDistribution([1, 2], 1, 1) +***** error ... + GeneralizedParetoDistribution(NaN, 1, 1) +***** error ... + GeneralizedParetoDistribution(1, 0, 1) +***** error ... + GeneralizedParetoDistribution(1, -1, 1) +***** error ... + GeneralizedParetoDistribution(1, Inf, 1) +***** error ... + GeneralizedParetoDistribution(1, i, 1) +***** error ... + GeneralizedParetoDistribution(1, "a", 1) +***** error ... + GeneralizedParetoDistribution(1, [1, 2], 1) +***** error ... + GeneralizedParetoDistribution(1, NaN, 1) +***** error ... + GeneralizedParetoDistribution(1, 1, Inf) +***** error ... + GeneralizedParetoDistribution(1, 1, i) +***** error ... + GeneralizedParetoDistribution(1, 1, "a") +***** error ... + GeneralizedParetoDistribution(1, 1, [1, 2]) +***** error ... + GeneralizedParetoDistribution(1, 1, NaN) +***** error ... + cdf (GeneralizedParetoDistribution, 2, "uper") +***** error ... + cdf (GeneralizedParetoDistribution, 2, 3) +***** shared x + x = gprnd (1, 1, 1, [1, 100]); +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha") +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", 0) +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", 1) +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", [0.5 2]) +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", "") +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", {0.05}) +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), ... + "parameter", "sigma", "alpha", {0.05}) +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), ... + "parameter", {"k", "sigma", "param"}) +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", 0.01, ... + "parameter", {"k", "sigma", "param"}) +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), "parameter", "param") +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", 0.01, ... + "parameter", "param") +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), "NAME", "value") +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", 0.01, ... + "NAME", "value") +***** error ... + paramci (GeneralizedParetoDistribution.fit (x, 1), "alpha", 0.01, ... + "parameter", "sigma", "NAME", "value") +***** error ... + plot (GeneralizedParetoDistribution, "Parent") +***** error ... + plot (GeneralizedParetoDistribution, "PlotType", 12) +***** error ... + plot (GeneralizedParetoDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (GeneralizedParetoDistribution, "PlotType", "pdfcdf") +***** error ... + plot (GeneralizedParetoDistribution, "Discrete", "pdfcdf") +***** error ... + plot (GeneralizedParetoDistribution, "Discrete", [1, 0]) +***** error ... + plot (GeneralizedParetoDistribution, "Discrete", {true}) +***** error ... + plot (GeneralizedParetoDistribution, "Parent", 12) +***** error ... + plot (GeneralizedParetoDistribution, "Parent", "hax") +***** error ... + proflik (GeneralizedParetoDistribution, 2) +***** error ... + proflik (GeneralizedParetoDistribution.fit (x, 1), 3) +***** error ... + proflik (GeneralizedParetoDistribution.fit (x, 1), [1, 2]) +***** error ... + proflik (GeneralizedParetoDistribution.fit (x, 1), {1}) +***** error ... + proflik (GeneralizedParetoDistribution.fit (x, 1), 1, ones (2)) +***** error ... + proflik (GeneralizedParetoDistribution.fit (x, 1), 1, "Display") +***** error ... + proflik (GeneralizedParetoDistribution.fit (x, 1), 1, "Display", 1) +***** error ... + proflik (GeneralizedParetoDistribution.fit (x, 1), 1, "Display", {1}) +***** error ... + proflik (GeneralizedParetoDistribution.fit (x, 1), 1, "Display", {"on"}) +***** error ... + proflik (GeneralizedParetoDistribution.fit (x, 1), 1, ... + "Display", ["on"; "on"]) +***** error ... + proflik (GeneralizedParetoDistribution.fit (x, 1), 1, "Display", "onnn") +***** error ... + proflik (GeneralizedParetoDistribution.fit (x, 1), 1, "NAME", "on") +***** error ... + proflik (GeneralizedParetoDistribution.fit (x, 1), 1, {"NAME"}, "on") +***** error ... + proflik (GeneralizedParetoDistribution.fit (x, 1), 1, {[1 2 3 4]}, ... + "Display", "on") +***** error ... + truncate (GeneralizedParetoDistribution) +***** error ... + truncate (GeneralizedParetoDistribution, 2) +***** error ... + truncate (GeneralizedParetoDistribution, 4, 2) +***** shared pd + pd = GeneralizedParetoDistribution(1, 1, 1); + pd(2) = GeneralizedParetoDistribution(1, 3, 1); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error negloglik (pd) +***** error paramci (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error proflik (pd, 2) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +98 tests, 98 passed, 0 known failure, 0 skipped +[inst/dist_obj/LoguniformDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_obj/LoguniformDistribution.m +***** shared pd, t + pd = LoguniformDistribution (1, 4); + t = truncate (pd, 2, 4); +***** assert (cdf (pd, [0, 1, 2, 3, 4, 5]), [0, 0, 0.5, 0.7925, 1, 1], 1e-4); +***** assert (cdf (t, [0, 1, 2, 3, 4, 5]), [0, 0, 0, 0.5850, 1, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.2925, 0.5, 0.7925, 1], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0, 0.5850, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [1, 1.3195, 1.7411, 2.2974, 3.0314, 4], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2.2974, 2.6390, 3.0314, 3.4822, 4], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 1.7411, 2.2974, 3.0314, 4, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2.6390, 3.0314, 3.4822, 4, NaN], 1e-4); +***** assert (iqr (pd), 1.4142, 1e-4); +***** assert (iqr (t), 0.9852, 1e-4); +***** assert (mean (pd), 2.1640, 1e-4); +***** assert (mean (t), 2.8854, 1e-4); +***** assert (median (pd), 2); +***** assert (median (t), 2.8284, 1e-4); +***** assert (pdf (pd, [0, 1, 2, 3, 4, 5]), [0, 0.7213, 0.3607, 0.2404, 0.1803, 0], 1e-4); +***** assert (pdf (t, [0, 1, 2, 3, 4, 5]), [0, 0, 0.7213, 0.4809, 0.3607, 0], 1e-4); +***** assert (pdf (pd, [-1, 1, 2, 3, 4, NaN]), [0, 0.7213, 0.3607, 0.2404, 0.1803, NaN], 1e-4); +***** assert (pdf (t, [-1, 1, 2, 3, 4, NaN]), [0, 0, 0.7213, 0.4809, 0.3607, NaN], 1e-4); +***** assert (isequal (size (random (pd, 100, 50)), [100, 50])) +***** assert (any (random (pd, 1000, 1) < 1), false); +***** assert (any (random (pd, 1000, 1) > 4), false); +***** assert (any (random (t, 1000, 1) < 2), false); +***** assert (any (random (t, 1000, 1) > 4), false); +***** assert (std (pd), 0.8527, 1e-4); +***** assert (std (t), 0.5751, 1e-4); +***** assert (var (pd), 0.7270, 1e-4); +***** assert (var (t), 0.3307, 1e-4); +***** error ... + LoguniformDistribution (i, 1) +***** error ... + LoguniformDistribution (Inf, 1) +***** error ... + LoguniformDistribution ([1, 2], 1) +***** error ... + LoguniformDistribution ("a", 1) +***** error ... + LoguniformDistribution (NaN, 1) +***** error ... + LoguniformDistribution (1, i) +***** error ... + LoguniformDistribution (1, Inf) +***** error ... + LoguniformDistribution (1, [1, 2]) +***** error ... + LoguniformDistribution (1, "a") +***** error ... + LoguniformDistribution (1, NaN) +***** error ... + LoguniformDistribution (2, 1) +***** error ... + cdf (LoguniformDistribution, 2, "uper") +***** error ... + cdf (LoguniformDistribution, 2, 3) +***** error ... + plot (LoguniformDistribution, "Parent") +***** error ... + plot (LoguniformDistribution, "PlotType", 12) +***** error ... + plot (LoguniformDistribution, "PlotType", {"pdf", "cdf"}) +***** error ... + plot (LoguniformDistribution, "PlotType", "pdfcdf") +***** error ... + plot (LoguniformDistribution, "Discrete", "pdfcdf") +***** error ... + plot (LoguniformDistribution, "Discrete", [1, 0]) +***** error ... + plot (LoguniformDistribution, "Discrete", {true}) +***** error ... + plot (LoguniformDistribution, "Parent", 12) +***** error ... + plot (LoguniformDistribution, "Parent", "hax") +***** error ... + truncate (LoguniformDistribution) +***** error ... + truncate (LoguniformDistribution, 2) +***** error ... + truncate (LoguniformDistribution, 4, 2) +***** shared pd + pd = LoguniformDistribution(1, 4); + pd(2) = LoguniformDistribution(2, 5); +***** error cdf (pd, 1) +***** error icdf (pd, 0.5) +***** error iqr (pd) +***** error mean (pd) +***** error median (pd) +***** error pdf (pd, 1) +***** error plot (pd) +***** error random (pd) +***** error std (pd) +***** error ... + truncate (pd, 2, 4) +***** error var (pd) +63 tests, 63 passed, 0 known failure, 0 skipped +[inst/cl_multinom.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cl_multinom.m +***** demo + CL = cl_multinom ([27; 43; 19; 11], 10000, 0.05) +***** error cl_multinom (); +***** error cl_multinom (1, 2, 3, 4, 5); +***** error ... + cl_multinom (1, 2, 3, 4); +***** error ... + cl_multinom (1, 2, 3, "some string"); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/regression_ftest.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/regression_ftest.m +***** error regression_ftest (); +***** error ... + regression_ftest ([1 2 3]', [2 3 4; 3 4 5]'); +***** error ... + regression_ftest ([1 2 NaN]', [2 3 4; 3 4 5]', [1 0.5]); +***** error ... + regression_ftest ([1 2 Inf]', [2 3 4; 3 4 5]', [1 0.5]); +***** error ... + regression_ftest ([1 2 3+i]', [2 3 4; 3 4 5]', [1 0.5]); +***** error ... + regression_ftest ([1 2 3]', [2 3 NaN; 3 4 5]', [1 0.5]); +***** error ... + regression_ftest ([1 2 3]', [2 3 Inf; 3 4 5]', [1 0.5]); +***** error ... + regression_ftest ([1 2 3]', [2 3 4; 3 4 3+i]', [1 0.5]); +***** error ... + regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], [], "alpha", 0); +***** error ... + regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], [], "alpha", 1.2); +***** error ... + regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], [], "alpha", [.02 .1]); +***** error ... + regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], [], "alpha", "a"); +***** error ... + regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], [], "some", 0.05); +***** error ... + regression_ftest ([1 2 3]', [2 3; 3 4]', [1 0.5]); +***** error ... + regression_ftest ([1 2; 3 4]', [2 3; 3 4]', [1 0.5]); +***** error ... + regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], ones (2)); +***** error ... + regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], "alpha"); +***** error ... + regression_ftest ([1 2 3]', [2 3 4; 3 4 5]', [1 0.5], [1 2]); +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/kstest2.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/kstest2.m +***** error kstest2 ([1,2,3,4,5,5]) +***** error kstest2 (ones(2,4), [1,2,3,4,5,5]) +***** error kstest2 ([2,3,5,7,3+3i], [1,2,3,4,5,5]) +***** error kstest2 ([2,3,4,5,6],[3;5;7;8;7;6;5],"tail") +***** error kstest2 ([2,3,4,5,6],[3;5;7;8;7;6;5],"tail", "whatever") +***** error kstest2 ([2,3,4,5,6],[3;5;7;8;7;6;5],"badoption", 0.51) +***** error kstest2 ([2,3,4,5,6],[3;5;7;8;7;6;5],"tail", 0) +***** error kstest2 ([2,3,4,5,6],[3;5;7;8;7;6;5],"alpha", 0) +***** error kstest2 ([2,3,4,5,6],[3;5;7;8;7;6;5],"alpha", NaN) +***** error kstest2 ([NaN,NaN,NaN,NaN,NaN],[3;5;7;8;7;6;5],"tail", "unequal") ***** test load examgrades - [h, pval, chisq, df] = bartlett_test (grades(:,[2:4])); - assert (h, 1); - assert (pval, 0.01172, 1e-5); - assert (chisq, 8.89274, 1e-5); - assert (df, 2); + [h, p] = kstest2 (grades(:,1), grades(:,2)); + assert (h, false); + assert (p, 0.1222791870137312, 1e-14); ***** test load examgrades - [h, pval, chisq, df] = bartlett_test (grades(:,[1,4])); - assert (h, 0); - assert (pval, 0.88118, 1e-5); - assert (chisq, 0.02234, 1e-5); - assert (df, 1); + [h, p] = kstest2 (grades(:,1), grades(:,2), "tail", "larger"); + assert (h, false); + assert (p, 0.1844421391011258, 1e-14); ***** test load examgrades - grades = [grades; nan(10, 5)]; - [h, pval, chisq, df] = bartlett_test (grades(:,[1,4])); - assert (h, 0); - assert (pval, 0.88118, 1e-5); - assert (chisq, 0.02234, 1e-5); - assert (df, 1); + [h, p] = kstest2 (grades(:,1), grades(:,2), "tail", "smaller"); + assert (h, false); + assert (p, 0.06115357930171663, 1e-14); ***** test load examgrades - [h, pval, chisq, df] = bartlett_test (grades(:,[2,5]), 0.01); - assert (h, 0); - assert (pval, 0.01791, 1e-5); - assert (chisq, 5.60486, 1e-5); - assert (df, 1); -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/probit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/probit.m -***** assert (probit ([-1, 0, 0.5, 1, 2]), [NaN, -Inf, 0, Inf, NaN]) -***** assert (probit ([0.2, 0.99]), norminv ([0.2, 0.99])) -***** error probit () -***** error probit (1, 2) -4 tests, 4 passed, 0 known failure, 0 skipped + [h, p] = kstest2 (grades(:,1), grades(:,2), "tail", "smaller", "alpha", 0.1); + assert (h, true); + assert (p, 0.06115357930171663, 1e-14); +14 tests, 14 passed, 0 known failure, 0 skipped [inst/anova1.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/anova1.m ***** demo @@ -29434,536 +27115,97 @@ assert (tbl{2,3}, 2, 0); assert (tbl{2,4}, 7.5786897, 1e-6); 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/ranksum.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/ranksum.m -***** test - mileage = [33.3, 34.5, 37.4; 33.4, 34.8, 36.8; ... - 32.9, 33.8, 37.6; 32.6, 33.4, 36.6; ... - 32.5, 33.7, 37.0; 33.0, 33.9, 36.7]; - [p,h,stats] = ranksum(mileage(:,1),mileage(:,2)); - assert (p, 0.004329004329004329, 1e-14); - assert (h, true); - assert (stats.ranksum, 21.5); -***** test - year1 = [51 52 62 62 52 52 51 53 59 63 59 56 63 74 68 86 82 70 69 75 73 ... - 49 47 50 60 59 60 62 61 71]'; - year2 = [54 53 64 66 57 53 54 54 62 66 59 59 67 76 75 86 82 67 74 80 75 ... - 54 50 53 62 62 62 72 60 67]'; - [p,h,stats] = ranksum(year1, year2, "alpha", 0.01, "tail", "left"); - assert (p, 0.1270832752950605, 1e-14); - assert (h, false); - assert (stats.ranksum, 837.5); - assert (stats.zval, -1.140287483634606, 1e-14); - [p,h,stats] = ranksum(year1, year2, "alpha", 0.01, "tail", "left", ... - "method", "exact"); - assert (p, 0.127343916432862, 1e-14); - assert (h, false); - assert (stats.ranksum, 837.5); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/Classification/ClassificationKNN.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/Classification/ClassificationKNN.m -***** demo - ## Create a k-nearest neighbor classifier for Fisher's iris data with k = 5. - ## Evaluate some model predictions on new data. - - load fisheriris - x = meas; - y = species; - xc = [min(x); mean(x); max(x)]; - obj = fitcknn (x, y, "NumNeighbors", 5, "Standardize", 1); - [label, score, cost] = predict (obj, xc) -***** demo - ## Train a k-nearest neighbor classifier for k = 10 - ## and plot the decision boundaries. - - load fisheriris - idx = ! strcmp (species, "setosa"); - X = meas(idx,3:4); - Y = cast (strcmpi (species(idx), "virginica"), "double"); - obj = fitcknn (X, Y, "Standardize", 1, "NumNeighbors", 10, "NSMethod", "exhaustive") - x1 = [min(X(:,1)):0.03:max(X(:,1))]; - x2 = [min(X(:,2)):0.02:max(X(:,2))]; - [x1G, x2G] = meshgrid (x1, x2); - XGrid = [x1G(:), x2G(:)]; - pred = predict (obj, XGrid); - gidx = logical (str2num (cell2mat (pred))); - - figure - scatter (XGrid(gidx,1), XGrid(gidx,2), "markerfacecolor", "magenta"); - hold on - scatter (XGrid(!gidx,1), XGrid(!gidx,2), "markerfacecolor", "red"); - plot (X(Y == 0, 1), X(Y == 0, 2), "ko", X(Y == 1, 1), X(Y == 1, 2), "kx"); - xlabel ("Petal length (cm)"); - ylabel ("Petal width (cm)"); - title ("5-Nearest Neighbor Classifier Decision Boundary"); - legend ({"Versicolor Region", "Virginica Region", ... - "Sampled Versicolor", "Sampled Virginica"}, ... - "location", "northwest") - axis tight - hold off -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - a = ClassificationKNN (x, y); - assert (class (a), "ClassificationKNN"); - assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 1}) - assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) - assert ({a.BucketSize}, {50}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - a = ClassificationKNN (x, y, "NSMethod", "exhaustive"); - assert (class (a), "ClassificationKNN"); - assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 1}) - assert ({a.NSMethod, a.Distance}, {"exhaustive", "euclidean"}) - assert ({a.BucketSize}, {50}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - k = 10; - a = ClassificationKNN (x, y, "NumNeighbors" ,k); - assert (class (a), "ClassificationKNN"); - assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 10}) - assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) - assert ({a.BucketSize}, {50}) -***** test - x = ones (4, 11); - y = ["a"; "a"; "b"; "b"]; - k = 10; - a = ClassificationKNN (x, y, "NumNeighbors" ,k); - assert (class (a), "ClassificationKNN"); - assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 10}) - assert ({a.NSMethod, a.Distance}, {"exhaustive", "euclidean"}) - assert ({a.BucketSize}, {50}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - k = 10; - a = ClassificationKNN (x, y, "NumNeighbors" ,k, "NSMethod", "exhaustive"); - assert (class (a), "ClassificationKNN"); - assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 10}) - assert ({a.NSMethod, a.Distance}, {"exhaustive", "euclidean"}) - assert ({a.BucketSize}, {50}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - k = 10; - a = ClassificationKNN (x, y, "NumNeighbors" ,k, "Distance", "hamming"); - assert (class (a), "ClassificationKNN"); - assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 10}) - assert ({a.NSMethod, a.Distance}, {"exhaustive", "hamming"}) - assert ({a.BucketSize}, {50}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - weights = ones (4,1); - a = ClassificationKNN (x, y, "Standardize", 1); - assert (class (a), "ClassificationKNN"); - assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 1}) - assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) - assert ({a.Standardize}, {true}) - assert ({a.Sigma}, {std(x, [], 1)}) - assert ({a.Mu}, {[3.75, 4.25, 4.75]}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - weights = ones (4,1); - a = ClassificationKNN (x, y, "Standardize", false); - assert (class (a), "ClassificationKNN"); - assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 1}) - assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) - assert ({a.Standardize}, {false}) - assert ({a.Sigma}, {[]}) - assert ({a.Mu}, {[]}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - s = ones (1, 3); - a = ClassificationKNN (x, y, "Scale" , s, "Distance", "seuclidean"); - assert (class (a), "ClassificationKNN"); - assert ({a.DistParameter}, {s}) - assert ({a.NSMethod, a.Distance}, {"exhaustive", "seuclidean"}) - assert ({a.BucketSize}, {50}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - a = ClassificationKNN (x, y, "Exponent" , 5, "Distance", "minkowski"); - assert (class (a), "ClassificationKNN"); - assert (a.DistParameter, 5) - assert ({a.NSMethod, a.Distance}, {"kdtree", "minkowski"}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - a = ClassificationKNN (x, y, "Exponent" , 5, "Distance", "minkowski", ... - "NSMethod", "exhaustive"); - assert (class (a), "ClassificationKNN"); - assert (a.DistParameter, 5) - assert ({a.NSMethod, a.Distance}, {"exhaustive", "minkowski"}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - a = ClassificationKNN (x, y, "BucketSize" , 20, "distance", "mahalanobis"); - assert (class (a), "ClassificationKNN"); - assert ({a.NSMethod, a.Distance}, {"exhaustive", "mahalanobis"}) - assert ({a.BucketSize}, {20}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - a = ClassificationKNN (x, y, "IncludeTies", true); - assert (class (a), "ClassificationKNN"); - assert (a.IncludeTies, true); - assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - a = ClassificationKNN (x, y); - assert (class (a), "ClassificationKNN"); - assert (a.IncludeTies, false); - assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - a = ClassificationKNN (x, y); - assert (class (a), "ClassificationKNN") - assert (a.Prior, [0.5; 0.5]) - assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) - assert ({a.BucketSize}, {50}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - prior = [0.5; 0.5]; - a = ClassificationKNN (x, y, "Prior", "empirical"); - assert (class (a), "ClassificationKNN") - assert (a.Prior, prior) - assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) - assert ({a.BucketSize}, {50}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "a"; "b"]; - prior = [0.75; 0.25]; - a = ClassificationKNN (x, y, "Prior", "empirical"); - assert (class (a), "ClassificationKNN") - assert (a.Prior, prior) - assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) - assert ({a.BucketSize}, {50}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "a"; "b"]; - prior = [0.5; 0.5]; - a = ClassificationKNN (x, y, "Prior", "uniform"); - assert (class (a), "ClassificationKNN") - assert (a.Prior, prior) - assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) - assert ({a.BucketSize}, {50}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - cost = eye (2); - a = ClassificationKNN (x, y, "Cost", cost); - assert (class (a), "ClassificationKNN") - assert (a.Cost, [1, 0; 0, 1]) - assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) - assert ({a.BucketSize}, {50}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - cost = eye (2); - a = ClassificationKNN (x, y, "Cost", cost, "Distance", "hamming" ); - assert (class (a), "ClassificationKNN") - assert (a.Cost, [1, 0; 0, 1]) - assert ({a.NSMethod, a.Distance}, {"exhaustive", "hamming"}) - assert ({a.BucketSize}, {50}) -***** error ClassificationKNN () -***** error ... - ClassificationKNN (ones(4, 1)) -***** error ... - ClassificationKNN (ones (4,2), ones (1,4)) -***** error ... - ClassificationKNN (ones (5,3), ones (5,1), "standardize", "a") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "scale", [1 1], "standardize", true) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "PredictorNames", ["A"]) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "PredictorNames", "A") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "PredictorNames", {"A", "B", "C"}) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "ResponseName", {"Y"}) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "ResponseName", 1) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "ClassNames", 1) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "ClassNames", ["1"]) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "ClassNames", {"1", "2"}) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "BreakTies", 1) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "BreakTies", {"1"}) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "BreakTies", "some") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Prior", {"1", "2"}) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Cost", [1, 2]) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Cost", "string") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Cost", {eye(2)}) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "NumNeighbors", 0) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "NumNeighbors", 15.2) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "NumNeighbors", "asd") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Distance", "somemetric") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Distance", ... - @(v,m)sqrt(repmat(v,rows(m),1)-m,2)) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Distance", ... - @(v,m)sqrt(sum(sumsq(repmat(v,rows(m),1)-m,2)))) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Distance", [1 2 3]) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Distance", {"mahalanobis"}) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Distance", logical (5)) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "DistanceWeight", @(x)sum(x)) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "DistanceWeight", "text") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "DistanceWeight", [1 2 3]) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Scale", "scale") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Scale", {[1 2 3]}) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "standardize", true, "scale", [1 1]) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Cov", ones (2), "Distance", "mahalanobis") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "scale", [1 1], "Cov", ones (2)) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Exponent", 12.5) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Exponent", -3) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Exponent", "three") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Exponent", {3}) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "NSMethod", {"kdtree"}) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "NSMethod", 3) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "NSMethod", "some") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "IncludeTies", "some") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "BucketSize", 42.5) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "BucketSize", -50) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "BucketSize", "some") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "BucketSize", {50}) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "some", "some") -***** error ... - ClassificationKNN ([1;2;3;'a';4], ones (5,1)) -***** error ... - ClassificationKNN ([1;2;3;Inf;4], ones (5,1)) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Prior", [1 2]) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Cost", [1 2; 1 3]) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Scale", [1 1]) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Scale", [1 1 1], "Distance", "seuclidean") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Scale", [1 -1], "Distance", "seuclidean") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Cov", eye (2)) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Cov", eye (3), "Distance", "mahalanobis") -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Exponent", 3) -***** error ... - ClassificationKNN (ones (5,2), ones (5,1), "Distance", "hamming", "NSMethod", "kdtree") -***** shared x, y - load fisheriris - x = meas; - y = species; -***** test - xc = [min(x); mean(x); max(x)]; - obj = fitcknn (x, y, "NumNeighbors", 5); - [l, s, c] = predict (obj, xc); - assert (l, {"setosa"; "versicolor"; "virginica"}) - assert (s, [1, 0, 0; 0, 1, 0; 0, 0, 1]) - assert (c, [0, 1, 1; 1, 0, 1; 1, 1, 0]) -***** test - xc = [min(x); mean(x); max(x)]; - obj = fitcknn (x, y, "NumNeighbors", 5, "Standardize", 1); - [l, s, c] = predict (obj, xc); - assert (l, {"versicolor"; "versicolor"; "virginica"}) - assert (s, [0.4, 0.6, 0; 0, 1, 0; 0, 0, 1]) - assert (c, [0.6, 0.4, 1; 1, 0, 1; 1, 1, 0]) -***** test - xc = [min(x); mean(x); max(x)]; - obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "mahalanobis"); - [l, s, c] = predict (obj, xc); - assert (s, [0.3, 0.7, 0; 0, 0.9, 0.1; 0.2, 0.2, 0.6], 1e-4) - assert (c, [0.7, 0.3, 1; 1, 0.1, 0.9; 0.8, 0.8, 0.4], 1e-4) -***** test - xc = [min(x); mean(x); max(x)]; - obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "cosine"); - [l, s, c] = predict (obj, xc); - assert (l, {"setosa"; "versicolor"; "virginica"}) - assert (s, [1, 0, 0; 0, 1, 0; 0, 0.3, 0.7], 1e-4) - assert (c, [0, 1, 1; 1, 0, 1; 1, 0.7, 0.3], 1e-4) -***** test - xc = [5.2, 4.1, 1.5, 0.1; 5.1, 3.8, 1.9, 0.4; ... - 5.1, 3.8, 1.5, 0.3; 4.9, 3.6, 1.4, 0.1]; - obj = fitcknn (x, y, "NumNeighbors", 5); - [l, s, c] = predict (obj, xc); - assert (l, {"setosa"; "setosa"; "setosa"; "setosa"}) - assert (s, [1, 0, 0; 1, 0, 0; 1, 0, 0; 1, 0, 0]) - assert (c, [0, 1, 1; 0, 1, 1; 0, 1, 1; 0, 1, 1]) -***** test - xc = [5, 3, 5, 1.45]; - obj = fitcknn (x, y, "NumNeighbors", 5); - [l, s, c] = predict (obj, xc); - assert (l, {"versicolor"}) - assert (s, [0, 0.6, 0.4], 1e-4) - assert (c, [1, 0.4, 0.6], 1e-4) -***** test - xc = [5, 3, 5, 1.45]; - obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "minkowski", "Exponent", 5); - [l, s, c] = predict (obj, xc); - assert (l, {"versicolor"}) - assert (s, [0, 0.5, 0.5], 1e-4) - assert (c, [1, 0.5, 0.5], 1e-4) -***** test - xc = [5, 3, 5, 1.45]; - obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "jaccard"); - [l, s, c] = predict (obj, xc); - assert (l, {"setosa"}) - assert (s, [0.9, 0.1, 0], 1e-4) - assert (c, [0.1, 0.9, 1], 1e-4) -***** test - xc = [5, 3, 5, 1.45]; - obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "mahalanobis"); - [l, s, c] = predict (obj, xc); - assert (l, {"versicolor"}) - assert (s, [0.1000, 0.5000, 0.4000], 1e-4) - assert (c, [0.9000, 0.5000, 0.6000], 1e-4) -***** test - xc = [5, 3, 5, 1.45]; - obj = fitcknn (x, y, "NumNeighbors", 5, "distance", "jaccard"); - [l, s, c] = predict (obj, xc); - assert (l, {"setosa"}) - assert (s, [0.8, 0.2, 0], 1e-4) - assert (c, [0.2, 0.8, 1], 1e-4) -***** test - xc = [5, 3, 5, 1.45]; - obj = fitcknn (x, y, "NumNeighbors", 5, "distance", "seuclidean"); - [l, s, c] = predict (obj, xc); - assert (l, {"versicolor"}) - assert (s, [0, 1, 0], 1e-4) - assert (c, [1, 0, 1], 1e-4) -***** test - xc = [5, 3, 5, 1.45]; - obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "chebychev"); - [l, s, c] = predict (obj, xc); - assert (l, {"versicolor"}) - assert (s, [0, 0.7, 0.3], 1e-4) - assert (c, [1, 0.3, 0.7], 1e-4) -***** test - xc = [5, 3, 5, 1.45]; - obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "cityblock"); - [l, s, c] = predict (obj, xc); - assert (l, {"versicolor"}) - assert (s, [0, 0.6, 0.4], 1e-4) - assert (c, [1, 0.4, 0.6], 1e-4) +[inst/qqplot.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/qqplot.m ***** test - xc = [5, 3, 5, 1.45]; - obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "cosine"); - [l, s, c] = predict (obj, xc); - assert (l, {"virginica"}) - assert (s, [0, 0.1, 0.9], 1e-4) - assert (c, [1, 0.9, 0.1], 1e-4) + hf = figure ("visible", "off"); + unwind_protect + qqplot ([2 3 3 4 4 5 6 5 6 7 8 9 8 7 8 9 0 8 7 6 5 4 6 13 8 15 9 9]); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** error qqplot () +***** error qqplot ({1}) +***** error qqplot (ones (2,2)) +***** error qqplot (1, "foobar") +***** error qqplot ([1 2 3], "foobar") +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/levene_test.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/levene_test.m +***** error levene_test () +***** error ... + levene_test (1, 2, 3, 4, 5); +***** error levene_test (randn (50, 2), 0); +***** error ... + levene_test (randn (50, 2), [1, 2, 3]); +***** error ... + levene_test (randn (50, 1), ones (55, 1)); +***** error ... + levene_test (randn (50, 1), ones (50, 2)); +***** error ... + levene_test (randn (50, 2), [], 1.2); +***** error ... + levene_test (randn (50, 2), "some_string"); +***** error ... + levene_test (randn (50, 2), [], "alpha"); +***** error ... + levene_test (randn (50, 1), [ones(25, 1); 2*ones(25, 1)], 1.2); +***** error ... + levene_test (randn (50, 1), [ones(25, 1); 2*ones(25, 1)], "err"); +***** error ... + levene_test (randn (50, 1), [ones(25, 1); 2*ones(25, 1)], 0.05, "type"); +***** warning ... + levene_test (randn (50, 1), [ones(24, 1); 2*ones(25, 1); 3]); ***** test - xc = [5, 3, 5, 1.45]; - obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "correlation"); - [l, s, c] = predict (obj, xc); - assert (l, {"virginica"}) - assert (s, [0, 0.1, 0.9], 1e-4) - assert (c, [1, 0.9, 0.1], 1e-4) + load examgrades + [h, pval, W, df] = levene_test (grades); + assert (h, 1); + assert (pval, 9.523239714592791e-07, 1e-14); + assert (W, 8.59529, 1e-5); + assert (df, [4, 595]); ***** test - xc = [5, 3, 5, 1.45]; - obj = fitcknn (x, y, "NumNeighbors", 30, "distance", "spearman"); - [l, s, c] = predict (obj, xc); - assert (l, {"versicolor"}) - assert (s, [0, 1, 0], 1e-4) - assert (c, [1, 0, 1], 1e-4) + load examgrades + [h, pval, W, df] = levene_test (grades, [], "quadratic"); + assert (h, 1); + assert (pval, 9.523239714592791e-07, 1e-14); + assert (W, 8.59529, 1e-5); + assert (df, [4, 595]); ***** test - xc = [5, 3, 5, 1.45]; - obj = fitcknn (x, y, "NumNeighbors", 30, "distance", "hamming"); - [l, s, c] = predict (obj, xc); - assert (l, {"setosa"}) - assert (s, [0.4333, 0.3333, 0.2333], 1e-4) - assert (c, [0.5667, 0.6667, 0.7667], 1e-4) + load examgrades + [h, pval, W, df] = levene_test (grades, [], "median"); + assert (h, 1); + assert (pval, 1.312093241723211e-06, 1e-14); + assert (W, 8.415969, 1e-6); + assert (df, [4, 595]); ***** test - xc = [5, 3, 5, 1.45]; - obj = fitcknn (x, y, "NumNeighbors", 5, "distance", "hamming"); - [l, s, c] = predict (obj, xc); - assert (l, {"setosa"}) - assert (s, [0.8, 0.2, 0], 1e-4) - assert (c, [0.2, 0.8, 1], 1e-4) + load examgrades + [h, pval, W, df] = levene_test (grades(:,[1:3])); + assert (h, 1); + assert (pval, 0.004349390980463497, 1e-14); + assert (W, 5.52139, 1e-5); + assert (df, [2, 357]); ***** test - xc = [min(x); mean(x); max(x)]; - obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "correlation"); - [l, s, c] = predict (obj, xc); - assert (l, {"setosa"; "versicolor"; "virginica"}) - assert (s, [1, 0, 0; 0, 1, 0; 0, 0.4, 0.6], 1e-4) - assert (c, [0, 1, 1; 1, 0, 1; 1, 0.6, 0.4], 1e-4) + load examgrades + [h, pval, W, df] = levene_test (grades(:,[1:3]), "median"); + assert (h, 1); + assert (pval, 0.004355216763951453, 1e-14); + assert (W, 5.52001, 1e-5); + assert (df, [2, 357]); ***** test - xc = [min(x); mean(x); max(x)]; - obj = fitcknn (x, y, "NumNeighbors", 10, "distance", "hamming"); - [l, s, c] = predict (obj, xc); - assert (l, {"setosa";"setosa";"setosa"}) - assert (s, [0.9, 0.1, 0; 1, 0, 0; 0.5, 0, 0.5], 1e-4) - assert (c, [0.1, 0.9, 1; 0, 1, 1; 0.5, 1, 0.5], 1e-4) -***** error ... - predict (ClassificationKNN (ones (4,2), ones (4,1))) -***** error ... - predict (ClassificationKNN (ones (4,2), ones (4,1)), []) -***** error ... - predict (ClassificationKNN (ones (4,2), ones (4,1)), 1) -104 tests, 104 passed, 0 known failure, 0 skipped -[inst/Classification/ConfusionMatrixChart.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/Classification/ConfusionMatrixChart.m -***** demo - ## Create a simple ConfusionMatrixChart Object - - cm = ConfusionMatrixChart (gca, [1 2; 1 2], {"A","B"}, {"XLabel","LABEL A"}) - NormalizedValues = cm.NormalizedValues - ClassLabels = cm.ClassLabels + load examgrades + [h, pval, W, df] = levene_test (grades(:,[3,4]), "quadratic"); + assert (h, 0); + assert (pval, 0.1807494957440653, 2e-14); + assert (W, 1.80200, 1e-5); + assert (df, [1, 238]); ***** test - hf = figure ("visible", "off"); - unwind_protect - cm = ConfusionMatrixChart (gca, [1 2; 1 2], {"A","B"}, {"XLabel","LABEL A"}); - assert (isa (cm, "ConfusionMatrixChart"), true); - unwind_protect_cleanup - close (hf); - end_unwind_protect -1 test, 1 passed, 0 known failure, 0 skipped + load examgrades + [h, pval, W, df] = levene_test (grades(:,[3,4]), "median"); + assert (h, 0); + assert (pval, 0.1978225622063785, 2e-14); + assert (W, 1.66768, 1e-5); + assert (df, [1, 238]); +20 tests, 20 passed, 0 known failure, 0 skipped [inst/anova2.m] >>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/anova2.m ***** demo @@ -30053,333 +27295,3127 @@ assert (atab{2,6}, 0.141597630656771, 1e-10); assert (atab{3,6}, 0.000636643812875719, 1e-10); 3 tests, 3 passed, 0 known failure, 0 skipped -[inst/inconsistent.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/inconsistent.m -***** error inconsistent () -***** error inconsistent ([1 2 1], 2, 3) -***** error inconsistent (ones (2, 2)) -***** error inconsistent ([1 2 1], -1) -***** error inconsistent ([1 2 1], 1.3) -***** error inconsistent ([1 2 1], [1 1]) -***** error inconsistent (ones (2, 3)) +[inst/dist_fit/gplike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gplike.m ***** test - load fisheriris; - Z = linkage(meas, 'average', 'chebychev'); - assert (cond (inconsistent (Z)), 39.9, 1e-3); + k = 0.8937; sigma = 1.3230; theta = 1; + x = [2.2196, 11.9301, 4.3673, 1.0949, 6.5626, ... + 1.2109, 1.8576, 1.0039, 12.7917, 2.2590]; + [nlogL, acov] = gplike ([k, sigma, theta], x); + assert (nlogL, 21.736, 1e-3); + assert (acov, [0.7249, -0.7351, 0; -0.7351, 1.3040, 0; 0, 0, 0], 1e-4); +***** assert (gplike ([2, 3, 0], 4), 3.047536764863501, 1e-14) +***** assert (gplike ([2, 3, 4], 8), 3.047536764863501, 1e-14) +***** assert (gplike ([1, 2, 0], 4), 2.890371757896165, 1e-14) +***** assert (gplike ([1, 2, 4], 8), 2.890371757896165, 1e-14) +***** assert (gplike ([2, 3, 0], [1:10]), 32.57864322725392, 1e-14) +***** assert (gplike ([2, 3, 2], [1:10] + 2), 32.57864322725392, 1e-14) +***** assert (gplike ([2, 3, 0], [1:10], ones (1,10)), 32.57864322725392, 1e-14) +***** assert (gplike ([1, 2, 0], [1:10]), 31.65666282460443, 1e-14) +***** assert (gplike ([1, 2, 3], [1:10] + 3), 31.65666282460443, 1e-14) +***** assert (gplike ([1, 2, 0], [1:10], ones (1,10)), 31.65666282460443, 1e-14) +***** assert (gplike ([1, NaN, 0], [1:10]), NaN) +***** error gplike () +***** error gplike (1) +***** error gplike ([1, 2, 0], []) +***** error gplike ([1, 2, 0], ones (2)) +***** error gplike (2, [1:10]) +***** error gplike ([2, 3], [1:10]) +***** error ... + gplike ([1, 2, 0], ones (10, 1), ones (8,1)) +***** error ... + gplike ([1, 2, 0], ones (1, 8), [1 1 1 1 1 1 1 -1]) +20 tests, 20 passed, 0 known failure, 0 skipped +[inst/dist_fit/invgfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/invgfit.m +***** demo + ## Sample 3 populations from different inverse Gaussian distibutions + rand ("seed", 5); randn ("seed", 5); # for reproducibility + r1 = invgrnd (1, 0.2, 2000, 1); + rand ("seed", 2); randn ("seed", 2); # for reproducibility + r2 = invgrnd (1, 3, 2000, 1); + rand ("seed", 7); randn ("seed", 7); # for reproducibility + r3 = invgrnd (3, 1, 2000, 1); + r = [r1, r2, r3]; + + ## Plot them normalized and fix their colors + hist (r, [0.1:0.1:3.2], 9); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + ylim ([0, 3]); + xlim ([0, 3]); + hold on + + ## Estimate their MU and LAMBDA parameters + mu_lambdaA = invgfit (r(:,1)); + mu_lambdaB = invgfit (r(:,2)); + mu_lambdaC = invgfit (r(:,3)); + + ## Plot their estimated PDFs + x = [0:0.1:3]; + y = invgpdf (x, mu_lambdaA(1), mu_lambdaA(2)); + plot (x, y, "-pr"); + y = invgpdf (x, mu_lambdaB(1), mu_lambdaB(2)); + plot (x, y, "-sg"); + y = invgpdf (x, mu_lambdaC(1), mu_lambdaC(2)); + plot (x, y, "-^c"); + hold off + legend ({"Normalized HIST of sample 1 with μ=1 and λ=0.5", ... + "Normalized HIST of sample 2 with μ=2 and λ=0.3", ... + "Normalized HIST of sample 3 with μ=4 and λ=0.5", ... + sprintf("PDF for sample 1 with estimated μ=%0.2f and λ=%0.2f", ... + mu_lambdaA(1), mu_lambdaA(2)), ... + sprintf("PDF for sample 2 with estimated μ=%0.2f and λ=%0.2f", ... + mu_lambdaB(1), mu_lambdaB(2)), ... + sprintf("PDF for sample 3 with estimated μ=%0.2f and λ=%0.2f", ... + mu_lambdaC(1), mu_lambdaC(2))}) + title ("Three population samples from different inverse Gaussian distibutions") + hold off +***** test + paramhat = invgfit ([1:50]); + paramhat_out = [25.5, 19.6973]; + assert (paramhat, paramhat_out, 1e-4); +***** test + paramhat = invgfit ([1:5]); + paramhat_out = [3, 8.1081]; + assert (paramhat, paramhat_out, 1e-4); +***** error invgfit (ones (2,5)); +***** error invgfit ([-1 2 3 4]); +***** error invgfit ([1, 2, 3, 4, 5], 1.2); +***** error invgfit ([1, 2, 3, 4, 5], 0); +***** error invgfit ([1, 2, 3, 4, 5], "alpha"); +***** error ... + invgfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); +***** error ... + invgfit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); +***** error ... + invgfit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); +***** error ... + invgfit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); +***** error ... + invgfit ([1, 2, 3, 4, 5], 0.05, [], [], 2); +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/dist_fit/unifit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/unifit.m +***** demo + ## Sample 2 populations from different continuous uniform distibutions + rand ("seed", 5); # for reproducibility + r1 = unifrnd (2, 5, 2000, 1); + rand ("seed", 6); # for reproducibility + r2 = unifrnd (3, 9, 2000, 1); + r = [r1, r2]; + + ## Plot them normalized and fix their colors + hist (r, 0:0.5:10, 2); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + hold on + + ## Estimate their probability of success + a_bA = unifit (r(:,1)); + a_bB = unifit (r(:,2)); + + ## Plot their estimated PDFs + x = [0:10]; + y = unifpdf (x, a_bA(1), a_bA(2)); + plot (x, y, "-pg"); + y = unifpdf (x, a_bB(1), a_bB(2)); + plot (x, y, "-sc"); + xlim ([1, 10]) + ylim ([0, 0.5]) + legend ({"Normalized HIST of sample 1 with a=2 and b=5", ... + "Normalized HIST of sample 2 with a=3 and b=9", ... + sprintf("PDF for sample 1 with estimated a=%0.2f and b=%0.2f", ... + a_bA(1), a_bA(2)), ... + sprintf("PDF for sample 2 with estimated a=%0.2f and b=%0.2f", ... + a_bB(1), a_bB(2))}) + title ("Two population samples from different continuous uniform distibutions") + hold off +***** test + x = 0:5; + [paramhat, paramci] = unifit (x); + assert (paramhat, [0, 5]); + assert (paramci, [-3.2377, 8.2377; 0, 5], 1e-4); +***** test + x = 0:5; + [paramhat, paramci] = unifit (x, [], [1 1 1 1 1 1]); + assert (paramhat, [0, 5]); + assert (paramci, [-3.2377, 8.2377; 0, 5], 1e-4); +***** assert (unifit ([1 1 2 3]), unifit ([1 2 3], [] ,[2 1 1])) +***** error unifit () +***** error unifit (-1, [1 2 3 3]) +***** error unifit (1, 0) +***** error unifit (1, 1.2) +***** error unifit (1, [0.02 0.05]) +***** error ... + unifit ([1.5, 0.2], [], [0, 0, 0, 0, 0]) +***** error ... + unifit ([1.5, 0.2], [], [1, -1]) +***** error ... + unifit ([1.5, 0.2], [], [1, 1, 1]) +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/dist_fit/ricefit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/ricefit.m +***** demo + ## Sample 3 populations from different Gamma distibutions + randg ("seed", 5); # for reproducibility + randp ("seed", 6); + r1 = ricernd (1, 2, 3000, 1); + randg ("seed", 2); # for reproducibility + randp ("seed", 8); + r2 = ricernd (2, 4, 3000, 1); + randg ("seed", 7); # for reproducibility + randp ("seed", 9); + r3 = ricernd (7.5, 1, 3000, 1); + r = [r1, r2, r3]; + + ## Plot them normalized and fix their colors + hist (r, 75, 4); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + ylim ([0, 0.7]); + xlim ([0, 12]); + hold on + + ## Estimate their α and β parameters + s_sigmaA = ricefit (r(:,1)); + s_sigmaB = ricefit (r(:,2)); + s_sigmaC = ricefit (r(:,3)); + + ## Plot their estimated PDFs + x = [0.01,0.1:0.2:18]; + y = ricepdf (x, s_sigmaA(1), s_sigmaA(2)); + plot (x, y, "-pr"); + y = ricepdf (x, s_sigmaB(1), s_sigmaB(2)); + plot (x, y, "-sg"); + y = ricepdf (x, s_sigmaC(1), s_sigmaC(2)); + plot (x, y, "-^c"); + hold off + legend ({"Normalized HIST of sample 1 with s=1 and σ=2", ... + "Normalized HIST of sample 2 with s=2 and σ=4", ... + "Normalized HIST of sample 3 with s=7.5 and σ=1", ... + sprintf("PDF for sample 1 with estimated s=%0.2f and σ=%0.2f", ... + s_sigmaA(1), s_sigmaA(2)), ... + sprintf("PDF for sample 2 with estimated s=%0.2f and σ=%0.2f", ... + s_sigmaB(1), s_sigmaB(2)), ... + sprintf("PDF for sample 3 with estimated s=%0.2f and σ=%0.2f", ... + s_sigmaC(1), s_sigmaC(2))}) + title ("Three population samples from different Rician distibutions") + hold off +***** test + [paramhat, paramci] = ricefit ([1:50]); + assert (paramhat, [15.3057, 17.6668], 1e-4); + assert (paramci, [9.5468, 11.7802; 24.5383, 26.4952], 1e-4); +***** test + [paramhat, paramci] = ricefit ([1:50], 0.01); + assert (paramhat, [15.3057, 17.6668], 1e-4); + assert (paramci, [8.2309, 10.3717; 28.4615, 30.0934], 1e-4); +***** test + [paramhat, paramci] = ricefit ([1:5]); + assert (paramhat, [2.3123, 1.6812], 1e-4); + assert (paramci, [1.0819, 0.6376; 4.9424, 4.4331], 1e-4); +***** test + [paramhat, paramci] = ricefit ([1:5], 0.01); + assert (paramhat, [2.3123, 1.6812], 1e-4); + assert (paramci, [0.8521, 0.4702; 6.2747, 6.0120], 1e-4); +***** test + freq = [1 1 1 1 5]; + [paramhat, paramci] = ricefit ([1:5], [], [], freq); + assert (paramhat, [3.5181, 1.5565], 1e-4); + assert (paramci, [2.5893, 0.9049; 4.7801, 2.6772], 1e-4); +***** test + censor = [1 0 0 0 0]; + [paramhat, paramci] = ricefit ([1:5], [], censor); + assert (paramhat, [3.2978, 1.1527], 1e-4); + assert (paramci, [2.3192, 0.5476; 4.6895, 2.4261], 1e-4); +***** assert (class (ricefit (single ([1:50]))), "single") +***** error ricefit (ones (2)) +***** error ricefit ([1:50], 1) +***** error ricefit ([1:50], -1) +***** error ricefit ([1:50], {0.05}) +***** error ricefit ([1:50], "k") +***** error ricefit ([1:50], i) +***** error ricefit ([1:50], [0.01 0.02]) +***** error ricefit ([1:50], [], [1 1]) +***** error ricefit ([1:50], [], [], [1 1]) +***** error ... + ricefit ([1:5], [], [], [1, 1, 2, 1, -1]) +***** error ricefit ([1 2 3 -4]) +***** error ricefit ([1 2 0], [], [1 0 0]) +19 tests, 19 passed, 0 known failure, 0 skipped +[inst/dist_fit/gpfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gpfit.m +***** demo + ## Sample 2 populations from different generalized Pareto distibutions + ## Assume location parameter θ is known + theta = 0; + rand ("seed", 5); # for reproducibility + r1 = gprnd (1, 2, theta, 20000, 1); + rand ("seed", 2); # for reproducibility + r2 = gprnd (3, 1, theta, 20000, 1); + r = [r1, r2]; + + ## Plot them normalized and fix their colors + hist (r, [0.1:0.2:100], 5); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "r"); + set (h(2), "facecolor", "c"); + ylim ([0, 1]); + xlim ([0, 5]); + hold on + + ## Estimate their α and β parameters + k_sigmaA = gpfit (r(:,1), theta); + k_sigmaB = gpfit (r(:,2), theta); + + ## Plot their estimated PDFs + x = [0.01, 0.1:0.2:18]; + y = gppdf (x, k_sigmaA(1), k_sigmaA(2), theta); + plot (x, y, "-pc"); + y = gppdf (x, k_sigmaB(1), k_sigmaB(2), theta); + plot (x, y, "-sr"); + hold off + legend ({"Normalized HIST of sample 1 with k=1 and σ=2", ... + "Normalized HIST of sample 2 with k=2 and σ=2", ... + sprintf("PDF for sample 1 with estimated k=%0.2f and σ=%0.2f", ... + k_sigmaA(1), k_sigmaA(2)), ... + sprintf("PDF for sample 3 with estimated k=%0.2f and σ=%0.2f", ... + k_sigmaB(1), k_sigmaB(2))}) + title ("Three population samples from different generalized Pareto distibutions") + text (2, 0.7, "Known location parameter θ = 0") + hold off +***** test + k = 0.8937; sigma = 1.3230; theta = 1; + x = [2.2196, 11.9301, 4.3673, 1.0949, 6.5626, ... + 1.2109, 1.8576, 1.0039, 12.7917, 2.2590]; + [hat, ci] = gpfit (x, theta); + assert (hat, [k, sigma, theta], 1e-4); + assert (ci, [-0.7750, 0.2437, 1; 2.5624, 7.1820, 1], 1e-4); +***** error gpfit () +***** error gpfit (1) +***** error gpfit ([0.2, 0.5+i], 0); +***** error gpfit (ones (2,2) * 0.5, 0); +***** error ... + gpfit ([0.5, 1.2], [0, 1]); +***** error ... + gpfit ([0.5, 1.2], 5+i); +***** error ... + gpfit ([1:5], 2); +***** error gpfit ([0.01:0.1:0.99], 0, 1.2); +***** error gpfit ([0.01:0.1:0.99], 0, i); +***** error gpfit ([0.01:0.1:0.99], 0, -1); +***** error gpfit ([0.01:0.1:0.99], 0, [0.05, 0.01]); +***** error + gpfit ([1 2 3], 0, [], [1 5]) +***** error + gpfit ([1 2 3], 0, [], [1 5 -1]) +***** error ... + gpfit ([1:10], 1, 0.05, [], 5) +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_fit/gamfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gamfit.m +***** demo + ## Sample 3 populations from different Gamma distibutions + randg ("seed", 5); # for reproducibility + r1 = gamrnd (1, 2, 2000, 1); + randg ("seed", 2); # for reproducibility + r2 = gamrnd (2, 2, 2000, 1); + randg ("seed", 7); # for reproducibility + r3 = gamrnd (7.5, 1, 2000, 1); + r = [r1, r2, r3]; + + ## Plot them normalized and fix their colors + hist (r, 75, 4); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + ylim ([0, 0.62]); + xlim ([0, 12]); + hold on + + ## Estimate their α and β parameters + a_bA = gamfit (r(:,1)); + a_bB = gamfit (r(:,2)); + a_bC = gamfit (r(:,3)); + + ## Plot their estimated PDFs + x = [0.01,0.1:0.2:18]; + y = gampdf (x, a_bA(1), a_bA(2)); + plot (x, y, "-pr"); + y = gampdf (x, a_bB(1), a_bB(2)); + plot (x, y, "-sg"); + y = gampdf (x, a_bC(1), a_bC(2)); + plot (x, y, "-^c"); + hold off + legend ({"Normalized HIST of sample 1 with α=1 and β=2", ... + "Normalized HIST of sample 2 with α=2 and β=2", ... + "Normalized HIST of sample 3 with α=7.5 and β=1", ... + sprintf("PDF for sample 1 with estimated α=%0.2f and β=%0.2f", ... + a_bA(1), a_bA(2)), ... + sprintf("PDF for sample 2 with estimated α=%0.2f and β=%0.2f", ... + a_bB(1), a_bB(2)), ... + sprintf("PDF for sample 3 with estimated α=%0.2f and β=%0.2f", ... + a_bC(1), a_bC(2))}) + title ("Three population samples from different Gamma distibutions") + hold off +***** shared x + x = [1.2 1.6 1.7 1.8 1.9 2.0 2.2 2.6 3.0 3.5 4.0 4.8 5.6 6.6 7.6]; +***** test + [paramhat, paramci] = gamfit (x); + assert (paramhat, [3.4248, 0.9752], 1e-4); + assert (paramci, [1.7287, 0.4670; 6.7852, 2.0366], 1e-4); +***** test + [paramhat, paramci] = gamfit (x, 0.01); + assert (paramhat, [3.4248, 0.9752], 1e-4); + assert (paramci, [1.3945, 0.3705; 8.4113, 2.5668], 1e-4); +***** test + freq = [1 1 1 1 2 1 1 1 1 2 1 1 1 1 2]; + [paramhat, paramci] = gamfit (x, [], [], freq); + assert (paramhat, [3.3025, 1.0615], 1e-4); + assert (paramci, [1.7710, 0.5415; 6.1584, 2.0806], 1e-4); +***** test + [paramhat, paramci] = gamfit (x, [], [], [1:15]); + assert (paramhat, [4.4484, 0.9689], 1e-4); + assert (paramci, [3.4848, 0.7482; 5.6785, 1.2546], 1e-4); +***** test + [paramhat, paramci] = gamfit (x, 0.01, [], [1:15]); + assert (paramhat, [4.4484, 0.9689], 1e-4); + assert (paramci, [3.2275, 0.6899; 6.1312, 1.3608], 1e-4); +***** test + cens = [0 0 0 0 1 0 0 0 0 0 0 0 0 0 0]; + [paramhat, paramci] = gamfit (x, [], cens, [1:15]); + assert (paramhat, [4.7537, 0.9308], 1e-4); + assert (paramci, [3.7123, 0.7162; 6.0872, 1.2097], 1e-4); +***** test + cens = [0 0 0 0 1 0 0 0 0 0 0 0 0 0 0]; + freq = [1 1 1 1 2 1 1 1 1 2 1 1 1 1 2]; + [paramhat, paramci] = gamfit (x, [], cens, freq); + assert (paramhat, [3.4736, 1.0847], 1e-4); + assert (paramci, [1.8286, 0.5359; 6.5982, 2.1956], 1e-4); +***** test + [paramhat, paramci] = gamfit ([1 1 1 1 1 1]); + assert (paramhat, [Inf, 0]); + assert (paramci, [Inf, 0; Inf, 0]); +***** test + [paramhat, paramci] = gamfit ([1 1 1 1 1 1], [], [1 1 1 1 1 1]); + assert (paramhat, [NaN, NaN]); + assert (paramci, [NaN, NaN; NaN, NaN]); +***** test + [paramhat, paramci] = gamfit ([1 1 1 1 1 1], [], [], [1 1 1 1 1 1]); + assert (paramhat, [Inf, 0]); + assert (paramci, [Inf, 0; Inf, 0]); +***** assert (class (gamfit (single (x))), "single") +***** error gamfit (ones (2)) +***** error gamfit (x, 1) +***** error gamfit (x, -1) +***** error gamfit (x, {0.05}) +***** error gamfit (x, "a") +***** error gamfit (x, i) +***** error gamfit (x, [0.01 0.02]) +***** error + gamfit ([1 2 3], 0.05, [], [1 5]) +***** error + gamfit ([1 2 3], 0.05, [], [1 5 -1]) +***** error ... + gamfit ([1:10], 0.05, [], [], 5) +***** error gamfit ([1 2 3 -4]) +***** error ... + gamfit ([1 2 0], [], [1 0 0]) +23 tests, 23 passed, 0 known failure, 0 skipped +[inst/dist_fit/nbinlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/nbinlike.m +***** assert (nbinlike ([2.42086, 0.0867043], [1:50]), 205.5942, 1e-4) +***** assert (nbinlike ([3.58823, 0.254697], [1:20]), 63.6435, 1e-4) +***** assert (nbinlike ([8.80671, 0.615565], [1:10]), 24.7410, 1e-4) +***** assert (nbinlike ([22.1756, 0.831306], [1:8]), 17.9528, 1e-4) +***** assert (nbinlike ([22.1756, 0.831306], [1:9], [ones(1,8), 0]), 17.9528, 1e-4) +***** error nbinlike (3.25) +***** error nbinlike ([5, 0.2], ones (2)) +***** error nbinlike ([5, 0.2], [-1, 3]) +***** error ... + nbinlike ([1, 0.2, 3], [1, 3, 5, 7]) +***** error nbinlike ([-5, 0.2], [1:15]) +***** error nbinlike ([0, 0.2], [1:15]) +***** error nbinlike ([5, 1.2], [3, 5]) +***** error nbinlike ([5, -0.2], [3, 5]) +***** error ... + nbinlike ([5, 0.2], ones (10, 1), ones (8,1)) +***** error ... + nbinlike ([5, 0.2], ones (1, 8), [1 1 1 1 1 1 1 -1]) +***** error ... + nbinlike ([5, 0.2], ones (1, 8), [1 1 1 1 1 1 1 1.5]) +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_fit/logllike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/logllike.m +***** test + [nlogL, acov] = logllike ([3.09717, 0.468525], [1:50]); + assert (nlogL, 211.2965, 1e-4); + assert (acov, [0.0131, -0.0007; -0.0007, 0.0031], 1e-4); +***** test + [nlogL, acov] = logllike ([1.01124, 0.336449], [1:5]); + assert (nlogL, 9.2206, 1e-4); + assert (acov, [0.0712, -0.0032; -0.0032, 0.0153], 1e-4); +***** error logllike (3.25) +***** error logllike ([5, 0.2], ones (2)) +***** error ... + logllike ([1, 0.2, 3], [1, 3, 5, 7]) +***** error ... + logllike ([1.5, 0.2], [1:5], [0, 0, 0]) +***** error ... + logllike ([1.5, 0.2], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) +***** error ... + logllike ([1.5, 0.2], [1:5], [], [1, 1, 1]) 8 tests, 8 passed, 0 known failure, 0 skipped -[inst/normalise_distribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/normalise_distribution.m +[inst/dist_fit/logifit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/logifit.m +***** demo + ## Sample 3 populations from different logistic distibutions + rand ("seed", 5) # for reproducibility + r1 = logirnd (2, 1, 2000, 1); + rand ("seed", 2) # for reproducibility + r2 = logirnd (5, 2, 2000, 1); + rand ("seed", 7) # for reproducibility + r3 = logirnd (9, 4, 2000, 1); + r = [r1, r2, r3]; + + ## Plot them normalized and fix their colors + hist (r, [-6:20], 1); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + ylim ([0, 0.3]); + xlim ([-5, 20]); + hold on + + ## Estimate their MU and LAMBDA parameters + mu_sA = logifit (r(:,1)); + mu_sB = logifit (r(:,2)); + mu_sC = logifit (r(:,3)); + + ## Plot their estimated PDFs + x = [-5:0.5:20]; + y = logipdf (x, mu_sA(1), mu_sA(2)); + plot (x, y, "-pr"); + y = logipdf (x, mu_sB(1), mu_sB(2)); + plot (x, y, "-sg"); + y = logipdf (x, mu_sC(1), mu_sC(2)); + plot (x, y, "-^c"); + hold off + legend ({"Normalized HIST of sample 1 with μ=1 and s=0.5", ... + "Normalized HIST of sample 2 with μ=2 and s=0.3", ... + "Normalized HIST of sample 3 with μ=4 and s=0.5", ... + sprintf("PDF for sample 1 with estimated μ=%0.2f and s=%0.2f", ... + mu_sA(1), mu_sA(2)), ... + sprintf("PDF for sample 2 with estimated μ=%0.2f and s=%0.2f", ... + mu_sB(1), mu_sB(2)), ... + sprintf("PDF for sample 3 with estimated μ=%0.2f and s=%0.2f", ... + mu_sC(1), mu_sC(2))}) + title ("Three population samples from different logistic distibutions") + hold off ***** test - v = normalise_distribution ([1 2 3], [], 1); - assert (v, [0 0 0]) + paramhat = logifit ([1:50]); + paramhat_out = [25.5, 8.7724]; + assert (paramhat, paramhat_out, 1e-4); ***** test - v = normalise_distribution ([1 2 3], [], 2); - assert (v, norminv ([1 3 5] / 6), 3 * eps) + paramhat = logifit ([1:5]); + paramhat_out = [3, 0.8645]; + assert (paramhat, paramhat_out, 1e-4); ***** test - v = normalise_distribution ([1 2 3]', [], 2); - assert (v, [0 0 0]') + paramhat = logifit ([1:6], [], [], [1 1 1 1 1 0]); + paramhat_out = [3, 0.8645]; + assert (paramhat, paramhat_out, 1e-4); ***** test - v = normalise_distribution ([1 2 3]', [], 1); - assert (v, norminv ([1 3 5]' / 6), 3 * eps) + paramhat = logifit ([1:5], [], [], [1 1 1 1 2]); + paramhat_out = logifit ([1:5, 5]); + assert (paramhat, paramhat_out, 1e-4); +***** error logifit (ones (2,5)); +***** error logifit ([1, 2, 3, 4, 5], 1.2); +***** error logifit ([1, 2, 3, 4, 5], 0); +***** error logifit ([1, 2, 3, 4, 5], "alpha"); +***** error ... + logifit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); +***** error ... + logifit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); +***** error ... + logifit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); +***** error ... + logifit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); +***** error ... + logifit ([1, 2, 3, 4, 5], 0.05, [], [], 2); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_fit/betafit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/betafit.m +***** demo + ## Sample 2 populations from different Beta distibutions + randg ("seed", 1); # for reproducibility + r1 = betarnd (2, 5, 500, 1); + randg ("seed", 2); # for reproducibility + r2 = betarnd (2, 2, 500, 1); + r = [r1, r2]; + + ## Plot them normalized and fix their colors + hist (r, 12, 15); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + hold on + + ## Estimate their shape parameters + a_b_A = betafit (r(:,1)); + a_b_B = betafit (r(:,2)); + + ## Plot their estimated PDFs + x = [min(r(:)):0.01:max(r(:))]; + y = betapdf (x, a_b_A(1), a_b_A(2)); + plot (x, y, "-pr"); + y = betapdf (x, a_b_B(1), a_b_B(2)); + plot (x, y, "-sg"); + ylim ([0, 4]) + legend ({"Normalized HIST of sample 1 with α=2 and β=5", ... + "Normalized HIST of sample 2 with α=2 and β=2", ... + sprintf("PDF for sample 1 with estimated α=%0.2f and β=%0.2f", ... + a_b_A(1), a_b_A(2)), ... + sprintf("PDF for sample 2 with estimated α=%0.2f and β=%0.2f", ... + a_b_B(1), a_b_B(2))}) + title ("Two population samples from different Beta distibutions") + hold off ***** test - v = normalise_distribution ([1 1 2 2 3 3], [], 2); - assert (v, norminv ([3 3 7 7 11 11] / 12), 3 * eps) + x = 0.01:0.02:0.99; + [paramhat, paramci] = betafit (x); + paramhat_out = [1.0199, 1.0199]; + paramci_out = [0.6947, 0.6947; 1.4974, 1.4974]; + assert (paramhat, paramhat_out, 1e-4); + assert (paramci, paramci_out, 1e-4); ***** test - v = normalise_distribution ([1 1 2 2 3 3]', [], 1); - assert (v, norminv ([3 3 7 7 11 11]' / 12), 3 * eps) + x = 0.01:0.02:0.99; + [paramhat, paramci] = betafit (x, 0.01); + paramci_out = [0.6157, 0.6157; 1.6895, 1.6895]; + assert (paramci, paramci_out, 1e-4); ***** test - A = randn ( 10 ); - N = normalise_distribution (A, @normcdf); - assert (A, N, 10000 * eps) + x = 0.00:0.02:1; + [paramhat, paramci] = betafit (x); + paramhat_out = [0.0875, 0.1913]; + paramci_out = [0.0822, 0.1490; 0.0931, 0.2455]; + assert (paramhat, paramhat_out, 1e-4); + assert (paramci, paramci_out, 1e-4); +***** error betafit ([0.2, 0.5+i]); +***** error betafit (ones (2,2) * 0.5); +***** error betafit ([0.5, 1.2]); +***** error betafit ([0.1, 0.1]); +***** error betafit ([0.01:0.1:0.99], 1.2); +***** error ... + betafit ([0.01:0.01:0.05], 0.05, [1, 2, 3, 2]); +***** error ... + betafit ([0.01:0.01:0.05], 0.05, [1, 2, 3, 2, -1]); +***** error ... + betafit ([0.01:0.01:0.05], 0.05, [1, 2, 3, 2, 1.5]); +***** error ... + betafit ([0.01:0.01:0.05], 0.05, struct ("option", 234)); +***** error ... + betafit ([0.01:0.01:0.05], 0.05, ones (1,5), struct ("option", 234)); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_fit/wbllike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/wbllike.m ***** test - A = exprnd (1, 100); - N = normalise_distribution (A, @(x)(expcdf (x, 1))); - assert (mean (vec (N)), 0, 0.1) - assert (std (vec (N)), 1, 0.1) + x = 1:50; + [nlogL, acov] = wbllike ([2.3, 1.2], x); + avar_out = [0.0250, 0.0062; 0.0062, 0.0017]; + assert (nlogL, 945.9589180651594, 1e-12); + assert (acov, avar_out, 1e-4); ***** test - A = rand (1000,1); - N = normalise_distribution (A, {@(x)(unifcdf (x, 0, 1))}); - assert (mean (vec (N)), 0, 0.2) - assert (std (vec (N)), 1, 0.1) + x = 1:50; + [nlogL, acov] = wbllike ([2.3, 1.2], x * 0.5); + avar_out = [-0.3238, -0.1112; -0.1112, -0.0376]; + assert (nlogL, 424.9879809704742, 6e-14); + assert (acov, avar_out, 1e-4); ***** test - A = [rand(1000,1), randn(1000, 1)]; - N = normalise_distribution (A, {@(x)(unifcdf (x, 0, 1)), @normcdf}); - assert (mean (N), [0, 0], 0.2) - assert (std (N), [1, 1], 0.1) + x = 1:50; + [nlogL, acov] = wbllike ([21, 15], x); + avar_out = [-0.00001236, -0.00001166; -0.00001166, -0.00001009]; + assert (nlogL, 1635190.328991511, 1e-8); + assert (acov, avar_out, 1e-8); +***** error wbllike ([12, 15]); +***** error wbllike ([12, 15, 3], [1:50]); +***** error wbllike ([12, 3], ones (10, 2)); +***** error wbllike ([12, 15], [1:50], [1, 2, 3]); +***** error wbllike ([12, 15], [1:50], [], [1, 2, 3]); +***** error ... + wbllike ([12, 15], [1:5], [], [1, 2, 3, -1, 0]); +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/dist_fit/gevfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gevfit.m +***** demo + ## Sample 2 populations from 2 different exponential distibutions + rand ("seed", 1); # for reproducibility + r1 = gevrnd (-0.5, 1, 2, 5000, 1); + rand ("seed", 2); # for reproducibility + r2 = gevrnd (0, 1, -4, 5000, 1); + r = [r1, r2]; + + ## Plot them normalized and fix their colors + hist (r, 50, 5); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + hold on + + ## Estimate their k, sigma, and mu parameters + k_sigma_muA = gevfit (r(:,1)); + k_sigma_muB = gevfit (r(:,2)); + + ## Plot their estimated PDFs + x = [-10:0.5:20]; + y = gevpdf (x, k_sigma_muA(1), k_sigma_muA(2), k_sigma_muA(3)); + plot (x, y, "-pr"); + y = gevpdf (x, k_sigma_muB(1), k_sigma_muB(2), k_sigma_muB(3)); + plot (x, y, "-sg"); + ylim ([0, 0.7]) + xlim ([-7, 5]) + legend ({"Normalized HIST of sample 1 with k=-0.5, σ=1, μ=2", ... + "Normalized HIST of sample 2 with k=0, σ=1, μ=-4", + sprintf("PDF for sample 1 with estimated k=%0.2f, σ=%0.2f, μ=%0.2f", ... + k_sigma_muA(1), k_sigma_muA(2), k_sigma_muA(3)), ... + sprintf("PDF for sample 3 with estimated k=%0.2f, σ=%0.2f, μ=%0.2f", ... + k_sigma_muB(1), k_sigma_muB(2), k_sigma_muB(3))}) + title ("Two population samples from different exponential distibutions") + hold off ***** test - A = [rand(1000,1), randn(1000, 1), exprnd(1, 1000, 1)]'; - N = normalise_distribution (A, {@(x)(unifcdf (x, 0, 1)); @normcdf; @(x)(expcdf (x, 1))}, 2); - assert (mean (N, 2), [0, 0, 0]', 0.2); - assert (std (N, [], 2), [1, 1, 1]', 0.1); -***** xtest - A = exprnd (1, 1000, 9); A (300:500, 4:6) = 17; - N = normalise_distribution (A); - assert (mean (N), [0 0 0 0.38 0.38 0.38 0 0 0], 0.1); - assert (var (N), [1 1 1 2.59 2.59 2.59 1 1 1], 0.1); + x = 1:50; + [pfit, pci] = gevfit (x); + pfit_out = [-0.4407, 15.1923, 21.5309]; + pci_out = [-0.7532, 11.5878, 16.5686; -0.1282, 19.9183, 26.4926]; + assert (pfit, pfit_out, 1e-3); + assert (pci, pci_out, 1e-3); ***** test -***** error normalise_distribution (zeros (3, 4), ... - {@(x)(unifcdf (x, 0, 1)); @normcdf; @(x)(expcdf (x,1))}); -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/slicesample.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/slicesample.m + x = 1:2:50; + [pfit, pci] = gevfit (x); + pfit_out = [-0.4434, 15.2024, 21.0532]; + pci_out = [-0.8904, 10.3439, 14.0168; 0.0035, 22.3429, 28.0896]; + assert (pfit, pfit_out, 1e-3); + assert (pci, pci_out, 1e-3); +***** error gevfit (ones (2,5)); +***** error gevfit ([1, 2, 3, 4, 5], 1.2); +***** error gevfit ([1, 2, 3, 4, 5], 0); +***** error gevfit ([1, 2, 3, 4, 5], "alpha"); +***** error ... + gevfit ([1, 2, 3, 4, 5], 0.05, [1, 2, 3, 2]); +***** error ... + gevfit ([1, 2, 3, 4, 5], 0.05, [1, 2, 3, 2, -1]); +***** error ... + gevfit ([1, 2, 3, 4, 5], 0.05, [1, 2, 3, 2, 1.5]); +***** error ... + gevfit ([1, 2, 3, 4, 5], 0.05, struct ("option", 234)); +***** error ... + gevfit ([1, 2, 3, 4, 5], 0.05, ones (1,5), struct ("option", 234)); +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/dist_fit/expfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/expfit.m ***** demo - ## Define function to sample - d = 2; - mu = [-1; 2]; + ## Sample 3 populations from 3 different exponential distibutions + rande ("seed", 1); # for reproducibility + r1 = exprnd (2, 4000, 1); + rande ("seed", 2); # for reproducibility + r2 = exprnd (5, 4000, 1); + rande ("seed", 3); # for reproducibility + r3 = exprnd (12, 4000, 1); + r = [r1, r2, r3]; + + ## Plot them normalized and fix their colors + hist (r, 48, 0.52); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + hold on + + ## Estimate their mu parameter + muhat = expfit (r); + + ## Plot their estimated PDFs + x = [0:max(r(:))]; + y = exppdf (x, muhat(1)); + plot (x, y, "-pr"); + y = exppdf (x, muhat(2)); + plot (x, y, "-sg"); + y = exppdf (x, muhat(3)); + plot (x, y, "-^c"); + ylim ([0, 0.6]) + xlim ([0, 40]) + legend ({"Normalized HIST of sample 1 with μ=2", ... + "Normalized HIST of sample 2 with μ=5", ... + "Normalized HIST of sample 3 with μ=12", ... + sprintf("PDF for sample 1 with estimated μ=%0.2f", muhat(1)), ... + sprintf("PDF for sample 2 with estimated μ=%0.2f", muhat(2)), ... + sprintf("PDF for sample 3 with estimated μ=%0.2f", muhat(3))}) + title ("Three population samples from different exponential distibutions") + hold off +***** assert (expfit (1), 1) +***** assert (expfit (1:3), 2) +***** assert (expfit ([1:3]'), 2) +***** assert (expfit (1:3, []), 2) +***** assert (expfit (1:3, [], [], []), 2) +***** assert (expfit (magic (3)), [5 5 5]) +***** assert (expfit (cat (3, magic (3), 2*magic (3))), cat (3,[5 5 5], [10 10 10])) +***** assert (expfit (1:3, 0.1, [0 0 0], [1 1 1]), 2) +***** assert (expfit ([1:3]', 0.1, [0 0 0]', [1 1 1]'), 2) +***** assert (expfit (1:3, 0.1, [0 0 0]', [1 1 1]'), 2) +***** assert (expfit (1:3, 0.1, [1 0 0], [1 1 1]), 3) +***** assert (expfit (1:3, 0.1, [0 0 0], [4 1 1]), 1.5) +***** assert (expfit (1:3, 0.1, [1 0 0], [4 1 1]), 4.5) +***** assert (expfit (1:3, 0.1, [1 0 1], [4 1 1]), 9) +***** assert (expfit (1:3, 0.1, [], [-1 1 1]), 4) +***** assert (expfit (1:3, 0.1, [], [0.5 1 1]), 2.2) +***** assert (expfit (1:3, 0.1, [1 1 1]), NaN) +***** assert (expfit (1:3, 0.1, [], [0 0 0]), NaN) +***** assert (expfit (reshape (1:9, [3 3])), [2 5 8]) +***** assert (expfit (reshape (1:9, [3 3]), [], eye(3)), [3 7.5 12]) +***** assert (expfit (reshape (1:9, [3 3]), [], 2*eye(3)), [3 7.5 12]) +***** assert (expfit (reshape (1:9, [3 3]), [], [], [2 2 2; 1 1 1; 1 1 1]), ... + [1.75 4.75 7.75]) +***** assert (expfit (reshape (1:9, [3 3]), [], [], [2 2 2; 1 1 1; 1 1 1]), ... + [1.75 4.75 7.75]) +***** assert (expfit (reshape (1:9, [3 3]), [], eye(3), [2 2 2; 1 1 1; 1 1 1]), ... + [3.5 19/3 31/3]) +***** assert ([~,muci] = expfit (1:3, 0), [0; Inf]) +***** assert ([~,muci] = expfit (1:3, 2), [Inf; 0]) +***** assert ([~,muci] = expfit (1:3, 0.1, [1 1 1]), [NaN; NaN]) +***** assert ([~,muci] = expfit (1:3, 0.1, [], [0 0 0]), [NaN; NaN]) +***** assert ([~,muci] = expfit (1:3, -1), [NaN; NaN]) +***** assert ([~,muci] = expfit (1:3, 5), [NaN; NaN]) +***** assert ([~,muci] = expfit (1:3), [0.830485728373393; 9.698190330474096], ... + 1000*eps) +***** assert ([~,muci] = expfit (1:3, 0.1), ... + [0.953017262058213; 7.337731146400207], 1000*eps) +***** assert ([~,muci] = expfit ([1:3;2:4]), ... + [0.538440777613095, 0.897401296021825, 1.256361814430554; ... + 12.385982973214016, 20.643304955356694, 28.900626937499371], ... + 1000*eps) +***** assert ([~,muci] = expfit ([1:3;2:4], [], [1 1 1; 0 0 0]), ... + 100*[0.008132550920455, 0.013554251534091, 0.018975952147727; ... + 1.184936706156216, 1.974894510260360, 2.764852314364504], ... + 1000*eps) +***** assert ([~,muci] = expfit ([1:3;2:4], [], [], [3 3 3; 1 1 1]), ... + [0.570302756652583, 1.026544961974649, 1.482787167296715; ... + 4.587722594914109, 8.257900670845396, 11.928078746776684], ... + 1000*eps) +***** assert ([~,muci] = expfit ([1:3;2:4], [], [0 0 0; 1 1 1], [3 3 3; 1 1 1]), ... + [0.692071440311161, 1.245728592560089, 1.799385744809018; ... + 8.081825275395081, 14.547285495711145, 21.012745716027212], ... + 1000*eps) +***** test + x = reshape (1:8, [4 2]); + x(4) = NaN; + [muhat,muci] = expfit (x); + assert ({muhat, muci}, {[NaN, 6.5], ... + [NaN, 2.965574334593430;NaN, 23.856157493553368]}, 1000*eps); +***** test + x = magic (3); + censor = [0 1 0; 0 1 0; 0 1 0]; + freq = [1 1 0; 1 1 0; 1 1 0]; + [muhat,muci] = expfit (x, [], censor, freq); + assert ({muhat, muci}, {[5 NaN NaN], ... + [[2.076214320933482; 24.245475826185242],NaN(2)]}, 1000*eps); +***** error expfit () +***** error expfit (1,2,3,4,5) +***** error [a b censor] = expfit (1) +***** error expfit (1, [1 2]) +***** error expfit ([-1 2 3 4 5]) +***** error expfit ([1:5], [], "test") +***** error expfit ([1:5], [], [], "test") +***** error expfit ([1:5], [], [0 0 0 0]) +***** error expfit ([1:5], [], [], [1 1 1 1]) +47 tests, 47 passed, 0 known failure, 0 skipped +[inst/dist_fit/unidfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/unidfit.m +***** demo + ## Sample 2 populations from different discrete uniform distibutions + rand ("seed", 1); # for reproducibility + r1 = unidrnd (5, 1000, 1); + rand ("seed", 2); # for reproducibility + r2 = unidrnd (9, 1000, 1); + r = [r1, r2]; + + ## Plot them normalized and fix their colors + hist (r, 0:0.5:20.5, 1); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + hold on + + ## Estimate their probability of success + NhatA = unidfit (r(:,1)); + NhatB = unidfit (r(:,2)); + + ## Plot their estimated PDFs + x = [0:10]; + y = unidpdf (x, NhatA); + plot (x, y, "-pg"); + y = unidpdf (x, NhatB); + plot (x, y, "-sc"); + xlim ([0, 10]) + ylim ([0, 0.4]) + legend ({"Normalized HIST of sample 1 with N=5", ... + "Normalized HIST of sample 2 with N=9", ... + sprintf("PDF for sample 1 with estimated N=%0.2f", NhatA), ... + sprintf("PDF for sample 2 with estimated N=%0.2f", NhatB)}) + title ("Two population samples from different discrete uniform distibutions") + hold off +***** test + x = 0:5; + [Nhat, Nci] = unidfit (x); + assert (Nhat, 5); + assert (Nci, [5; 9]); +***** test + x = 0:5; + [Nhat, Nci] = unidfit (x, [], [1 1 1 1 1 1]); + assert (Nhat, 5); + assert (Nci, [5; 9]); +***** assert (unidfit ([1 1 2 3]), unidfit ([1 2 3], [] ,[2 1 1])) +***** error unidfit () +***** error unidfit (-1, [1 2 3 3]) +***** error unidfit (1, 0) +***** error unidfit (1, 1.2) +***** error unidfit (1, [0.02 0.05]) +***** error ... + unidfit ([1.5, 0.2], [], [0, 0, 0, 0, 0]) +***** error ... + unidfit ([1.5, 0.2], [], [1, 1, 1]) +***** error ... + unidfit ([1.5, 0.2], [], [1, -1]) +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/dist_fit/bisafit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/bisafit.m +***** demo + ## Sample 3 populations from different Birnbaum-Saunders distibutions + rand ("seed", 5); # for reproducibility + r1 = bisarnd (1, 0.5, 2000, 1); + rand ("seed", 2); # for reproducibility + r2 = bisarnd (2, 0.3, 2000, 1); + rand ("seed", 7); # for reproducibility + r3 = bisarnd (4, 0.5, 2000, 1); + r = [r1, r2, r3]; + + ## Plot them normalized and fix their colors + hist (r, 80, 4.2); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + ylim ([0, 1.1]); + xlim ([0, 8]); + hold on + + ## Estimate their α and β parameters + beta_gammaA = bisafit (r(:,1)); + beta_gammaB = bisafit (r(:,2)); + beta_gammaC = bisafit (r(:,3)); + + ## Plot their estimated PDFs + x = [0:0.1:8]; + y = bisapdf (x, beta_gammaA(1), beta_gammaA(2)); + plot (x, y, "-pr"); + y = bisapdf (x, beta_gammaB(1), beta_gammaB(2)); + plot (x, y, "-sg"); + y = bisapdf (x, beta_gammaC(1), beta_gammaC(2)); + plot (x, y, "-^c"); + hold off + legend ({"Normalized HIST of sample 1 with β=1 and γ=0.5", ... + "Normalized HIST of sample 2 with β=2 and γ=0.3", ... + "Normalized HIST of sample 3 with β=4 and γ=0.5", ... + sprintf("PDF for sample 1 with estimated β=%0.2f and γ=%0.2f", ... + beta_gammaA(1), beta_gammaA(2)), ... + sprintf("PDF for sample 2 with estimated β=%0.2f and γ=%0.2f", ... + beta_gammaB(1), beta_gammaB(2)), ... + sprintf("PDF for sample 3 with estimated β=%0.2f and γ=%0.2f", ... + beta_gammaC(1), beta_gammaC(2))}) + title ("Three population samples from different Birnbaum-Saunders distibutions") + hold off +***** test + paramhat = bisafit ([1:50]); + paramhat_out = [16.2649, 1.0156]; + assert (paramhat, paramhat_out, 1e-4); +***** test + paramhat = bisafit ([1:5]); + paramhat_out = [2.5585, 0.5839]; + assert (paramhat, paramhat_out, 1e-4); +***** error bisafit (ones (2,5)); +***** error bisafit ([-1 2 3 4]); +***** error bisafit ([1, 2, 3, 4, 5], 1.2); +***** error bisafit ([1, 2, 3, 4, 5], 0); +***** error bisafit ([1, 2, 3, 4, 5], "alpha"); +***** error ... + bisafit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); +***** error ... + bisafit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); +***** error ... + bisafit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); +***** error ... + bisafit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); +***** error ... + bisafit ([1, 2, 3, 4, 5], 0.05, [], [], 2); +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/dist_fit/gevlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gevlike.m +***** test + x = 1; + k = 0.2; + sigma = 0.3; + mu = 0.5; + [L, C] = gevlike ([k sigma mu], x); + expected_L = 0.75942; + expected_C = [-0.12547 1.77884 1.06731; 1.77884 16.40761 8.48877; 1.06731 8.48877 0.27979]; + assert (L, expected_L, 0.001); + assert (C, inv (expected_C), 0.001); +***** test + x = 1; + k = 0; + sigma = 0.3; + mu = 0.5; + [L, C] = gevlike ([k sigma mu], x); + expected_L = 0.65157; + expected_C = [0.090036 3.41229 2.047337; 3.412229 24.760027 12.510190; 2.047337 12.510190 2.098618]; + assert (L, expected_L, 0.001); + assert (C, inv (expected_C), 0.001); +***** test + x = -5:-1; + k = -0.2; + sigma = 0.3; + mu = 0.5; + [L, C] = gevlike ([k sigma mu], x); + expected_L = 3786.4; + expected_C = [1.6802e-07, 4.6110e-06, 8.7297e-05; ... + 4.6110e-06, 7.5693e-06, 1.2034e-05; ... + 8.7297e-05, 1.2034e-05, -0.0019125]; + assert (L, expected_L, -0.001); + assert (C, expected_C, -0.001); +***** test + x = -5:0; + k = -0.2; + sigma = 0.3; + mu = 0.5; + [L, C] = gevlike ([k sigma mu], x, [1, 1, 1, 1, 1, 0]); + expected_L = 3786.4; + expected_C = [1.6802e-07, 4.6110e-06, 8.7297e-05; ... + 4.6110e-06, 7.5693e-06, 1.2034e-05; ... + 8.7297e-05, 1.2034e-05, -0.0019125]; + assert (L, expected_L, -0.001); + assert (C, expected_C, -0.001); +***** error gevlike (3.25) +***** error gevlike ([1, 2, 3], ones (2)) +***** error ... + gevlike ([1, 2], [1, 3, 5, 7]) +***** error ... + gevlike ([1, 2, 3, 4], [1, 3, 5, 7]) +***** error ... + gevlike ([5, 0.2, 1], ones (10, 1), ones (8,1)) +***** error ... + gevlike ([5, 0.2, 1], ones (1, 8), [1 1 1 1 1 1 1 -1]) +***** error ... + gevlike ([5, 0.2, 1], ones (1, 8), [1 1 1 1 1 1 1 1.5]) +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/dist_fit/nakafit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/nakafit.m +***** demo + ## Sample 3 populations from different Nakagami distibutions + randg ("seed", 5) # for reproducibility + r1 = nakarnd (0.5, 1, 2000, 1); + randg ("seed", 2) # for reproducibility + r2 = nakarnd (5, 1, 2000, 1); + randg ("seed", 7) # for reproducibility + r3 = nakarnd (2, 2, 2000, 1); + r = [r1, r2, r3]; + + ## Plot them normalized and fix their colors + hist (r, [0.05:0.1:3.5], 10); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + ylim ([0, 2.5]); + xlim ([0, 3.0]); + hold on + + ## Estimate their MU and LAMBDA parameters + mu_omegaA = nakafit (r(:,1)); + mu_omegaB = nakafit (r(:,2)); + mu_omegaC = nakafit (r(:,3)); + + ## Plot their estimated PDFs + x = [0.01:0.1:3.01]; + y = nakapdf (x, mu_omegaA(1), mu_omegaA(2)); + plot (x, y, "-pr"); + y = nakapdf (x, mu_omegaB(1), mu_omegaB(2)); + plot (x, y, "-sg"); + y = nakapdf (x, mu_omegaC(1), mu_omegaC(2)); + plot (x, y, "-^c"); + legend ({"Normalized HIST of sample 1 with μ=0.5 and ω=1", ... + "Normalized HIST of sample 2 with μ=5 and ω=1", ... + "Normalized HIST of sample 3 with μ=2 and ω=2", ... + sprintf("PDF for sample 1 with estimated μ=%0.2f and ω=%0.2f", ... + mu_omegaA(1), mu_omegaA(2)), ... + sprintf("PDF for sample 2 with estimated μ=%0.2f and ω=%0.2f", ... + mu_omegaB(1), mu_omegaB(2)), ... + sprintf("PDF for sample 3 with estimated μ=%0.2f and ω=%0.2f", ... + mu_omegaC(1), mu_omegaC(2))}) + title ("Three population samples from different Nakagami distibutions") + hold off +***** test + paramhat = nakafit ([1:50]); + paramhat_out = [0.7355, 858.5]; + assert (paramhat, paramhat_out, 1e-4); +***** test + paramhat = nakafit ([1:5]); + paramhat_out = [1.1740, 11]; + assert (paramhat, paramhat_out, 1e-4); +***** test + paramhat = nakafit ([1:6], [], [], [1 1 1 1 1 0]); + paramhat_out = [1.1740, 11]; + assert (paramhat, paramhat_out, 1e-4); +***** test + paramhat = nakafit ([1:5], [], [], [1 1 1 1 2]); + paramhat_out = nakafit ([1:5, 5]); + assert (paramhat, paramhat_out, 1e-4); +***** error nakafit (ones (2,5)); +***** error nakafit ([1, 2, 3, 4, 5], 1.2); +***** error nakafit ([1, 2, 3, 4, 5], 0); +***** error nakafit ([1, 2, 3, 4, 5], "alpha"); +***** error ... + nakafit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); +***** error ... + nakafit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); +***** error ... + nakafit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); +***** error ... + nakafit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); +***** error ... + nakafit ([1, 2, 3, 4, 5], [], [], [1 1 -1 1 1]); +***** error ... + nakafit ([1, 2, 3, 4, 5], [], [], [1 1 1.5 1 1]); +***** error ... + nakafit ([1, 2, 3, 4, 5], 0.05, [], [], 2); +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_fit/raylfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/raylfit.m +***** demo + ## Sample 3 populations from 3 different Rayleigh distibutions + rand ("seed", 2); # for reproducibility + r1 = raylrnd (1, 1000, 1); + rand ("seed", 2); # for reproducibility + r2 = raylrnd (2, 1000, 1); + rand ("seed", 3); # for reproducibility + r3 = raylrnd (4, 1000, 1); + r = [r1, r2, r3]; + + ## Plot them normalized and fix their colors + hist (r, [0.5:0.5:10.5], 2); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + hold on + + ## Estimate their lambda parameter + sigmaA = raylfit (r(:,1)); + sigmaB = raylfit (r(:,2)); + sigmaC = raylfit (r(:,3)); + + ## Plot their estimated PDFs + x = [0:0.1:10]; + y = raylpdf (x, sigmaA); + plot (x, y, "-pr"); + y = raylpdf (x, sigmaB); + plot (x, y, "-sg"); + y = raylpdf (x, sigmaC); + plot (x, y, "-^c"); + xlim ([0, 10]) + ylim ([0, 0.7]) + legend ({"Normalized HIST of sample 1 with σ=1", ... + "Normalized HIST of sample 2 with σ=2", ... + "Normalized HIST of sample 3 with σ=4", ... + sprintf("PDF for sample 1 with estimated σ=%0.2f", ... + sigmaA), ... + sprintf("PDF for sample 2 with estimated σ=%0.2f", ... + sigmaB), ... + sprintf("PDF for sample 3 with estimated σ=%0.2f", ... + sigmaC)}) + title ("Three population samples from different Rayleigh distibutions") + hold off +***** test + x = [1 3 2 4 5 4 3 4]; + [shat, sci] = raylfit (x); + assert (shat, 2.4495, 1e-4) + assert (sci, [1.8243; 3.7279], 1e-4) +***** test + x = [1 3 2 4 5 4 3 4]; + [shat, sci] = raylfit (x, 0.01); + assert (shat, 2.4495, 1e-4) + assert (sci, [1.6738; 4.3208], 1e-4) +***** test + x = [1 2 3 4 5]; + f = [1 1 2 3 1]; + [shat, sci] = raylfit (x, [], [], f); + assert (shat, 2.4495, 1e-4) + assert (sci, [1.8243; 3.7279], 1e-4) +***** test + x = [1 2 3 4 5]; + f = [1 1 2 3 1]; + [shat, sci] = raylfit (x, 0.01, [], f); + assert (shat, 2.4495, 1e-4) + assert (sci, [1.6738; 4.3208], 1e-4) +***** test + x = [1 2 3 4 5 6]; + c = [0 0 0 0 0 1]; + f = [1 1 2 3 1 1]; + [shat, sci] = raylfit (x, 0.01, c, f); + assert (shat, 2.4495, 1e-4) + assert (sci, [1.6738; 4.3208], 1e-4) +***** error raylfit (ones (2,5)); +***** error raylfit ([1 2 -1 3]) +***** error raylfit ([1 2 3], 0) +***** error raylfit ([1 2 3], 1.2) +***** error raylfit ([1 2 3], [0.02 0.05]) +***** error ... + raylfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); +***** error ... + raylfit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); +***** error ... + raylfit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); +***** error ... + raylfit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); +***** error + raylfit ([1 2 3], [], [], [1 5]) +***** error + raylfit ([1 2 3], [], [], [1 5 -1]) +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_fit/lognfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/lognfit.m +***** demo + ## Sample 3 populations from 3 different log-normal distibutions + randn ("seed", 1); # for reproducibility + r1 = lognrnd (0, 0.25, 1000, 1); + randn ("seed", 2); # for reproducibility + r2 = lognrnd (0, 0.5, 1000, 1); + randn ("seed", 3); # for reproducibility + r3 = lognrnd (0, 1, 1000, 1); + r = [r1, r2, r3]; + + ## Plot them normalized and fix their colors + hist (r, 30, 2); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + hold on + + ## Estimate their mu and sigma parameters + mu_sigmaA = lognfit (r(:,1)); + mu_sigmaB = lognfit (r(:,2)); + mu_sigmaC = lognfit (r(:,3)); + + ## Plot their estimated PDFs + x = [0:0.1:6]; + y = lognpdf (x, mu_sigmaA(1), mu_sigmaA(2)); + plot (x, y, "-pr"); + y = lognpdf (x, mu_sigmaB(1), mu_sigmaB(2)); + plot (x, y, "-sg"); + y = lognpdf (x, mu_sigmaC(1), mu_sigmaC(2)); + plot (x, y, "-^c"); + ylim ([0, 2]) + xlim ([0, 6]) + hold off + legend ({"Normalized HIST of sample 1 with mu=0, σ=0.25", ... + "Normalized HIST of sample 2 with mu=0, σ=0.5", ... + "Normalized HIST of sample 3 with mu=0, σ=1", ... + sprintf("PDF for sample 1 with estimated mu=%0.2f and σ=%0.2f", ... + mu_sigmaA(1), mu_sigmaA(2)), ... + sprintf("PDF for sample 2 with estimated mu=%0.2f and σ=%0.2f", ... + mu_sigmaB(1), mu_sigmaB(2)), ... + sprintf("PDF for sample 3 with estimated mu=%0.2f and σ=%0.2f", ... + mu_sigmaC(1), mu_sigmaC(2))}, "location", "northeast") + title ("Three population samples from different log-normal distibutions") + hold off +***** test + randn ("seed", 1); + x = lognrnd (3, 5, [1000, 1]); + [paramhat, paramci] = lognfit (x, 0.01); + assert (paramci(1,1) < 3); + assert (paramci(1,2) > 3); + assert (paramci(2,1) < 5); + assert (paramci(2,2) > 5); +***** error ... + lognfit (ones (20,3)) +***** error ... + lognfit ({1, 2, 3, 4, 5}) +***** error ... + lognfit ([-1, 2, 3, 4, 5]) +***** error lognfit (ones (20,1), 0) +***** error lognfit (ones (20,1), -0.3) +***** error lognfit (ones (20,1), 1.2) +***** error lognfit (ones (20,1), [0.05, 0.1]) +***** error lognfit (ones (20,1), 0.02+i) +***** error ... + lognfit (ones (20,1), [], zeros(15,1)) +***** error ... + lognfit (ones (20,1), [], zeros(20,1), ones(25,1)) +***** error lognfit (ones (20,1), [], zeros(20,1), ones(20,1), "options") +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/dist_fit/geofit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/geofit.m +***** demo + ## Sample 2 populations from different geometric distibutions + rande ("seed", 1); # for reproducibility + r1 = geornd (0.15, 1000, 1); + rande ("seed", 2); # for reproducibility + r2 = geornd (0.5, 1000, 1); + r = [r1, r2]; + + ## Plot them normalized and fix their colors + hist (r, 0:0.5:20.5, 1); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + hold on + + ## Estimate their probability of success + pshatA = geofit (r(:,1)); + pshatB = geofit (r(:,2)); + + ## Plot their estimated PDFs + x = [0:15]; + y = geopdf (x, pshatA); + plot (x, y, "-pg"); + y = geopdf (x, pshatB); + plot (x, y, "-sc"); + xlim ([0, 15]) + ylim ([0, 0.6]) + legend ({"Normalized HIST of sample 1 with ps=0.15", ... + "Normalized HIST of sample 2 with ps=0.50", ... + sprintf("PDF for sample 1 with estimated ps=%0.2f", ... + mean (pshatA)), ... + sprintf("PDF for sample 2 with estimated ps=%0.2f", ... + mean (pshatB))}) + title ("Two population samples from different geometric distibutions") + hold off +***** test + x = 0:5; + [pshat, psci] = geofit (x); + assert (pshat, 0.2857, 1e-4); + assert (psci, [0.092499; 0.478929], 1e-5); +***** test + x = 0:5; + [pshat, psci] = geofit (x, [], [1 1 1 1 1 1]); + assert (pshat, 0.2857, 1e-4); + assert (psci, [0.092499; 0.478929], 1e-5); +***** assert (geofit ([1 1 2 3]), geofit ([1 2 3], [] ,[2 1 1])) +***** error geofit () +***** error geofit (-1, [1 2 3 3]) +***** error geofit (1, 0) +***** error geofit (1, 1.2) +***** error geofit (1, [0.02 0.05]) +***** error ... + geofit ([1.5, 0.2], [], [0, 0, 0, 0, 0]) +***** error ... + geofit ([1.5, 0.2], [], [1, 1, 1]) +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/dist_fit/evlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/evlike.m +***** test + x = 1:50; + [nlogL, acov] = evlike ([2.3, 1.2], x); + avar_out = [-1.2778e-13, 3.1859e-15; 3.1859e-15, -7.9430e-17]; + assert (nlogL, 3.242264755689906e+17, 1e-14); + assert (acov, avar_out, 1e-3); +***** test + x = 1:50; + [nlogL, acov] = evlike ([2.3, 1.2], x * 0.5); + avar_out = [-7.6094e-05, 3.9819e-06; 3.9819e-06, -2.0836e-07]; + assert (nlogL, 481898704.0472211, 1e-6); + assert (acov, avar_out, 1e-3); +***** test + x = 1:50; + [nlogL, acov] = evlike ([21, 15], x); + avar_out = [11.73913876598908, -5.9546128523121216; ... + -5.954612852312121, 3.708060045170236]; + assert (nlogL, 223.7612479380652, 1e-13); + assert (acov, avar_out, 1e-14); +***** error evlike ([12, 15]) +***** error evlike ([12, 15, 3], [1:50]) +***** error evlike ([12, 3], ones (10, 2)) +***** error ... + evlike ([12, 15], [1:50], [1, 2, 3]) +***** error ... + evlike ([12, 15], [1:50], [], [1, 2, 3]) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/dist_fit/normfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/normfit.m +***** demo + ## Sample 3 populations from 3 different normal distibutions + randn ("seed", 1); # for reproducibility + r1 = normrnd (2, 5, 5000, 1); + randn ("seed", 2); # for reproducibility + r2 = normrnd (5, 2, 5000, 1); + randn ("seed", 3); # for reproducibility + r3 = normrnd (9, 4, 5000, 1); + r = [r1, r2, r3]; + + ## Plot them normalized and fix their colors + hist (r, 15, 0.4); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + hold on + + ## Estimate their mu and sigma parameters + [muhat, sigmahat] = normfit (r); + + ## Plot their estimated PDFs + x = [min(r(:)):max(r(:))]; + y = normpdf (x, muhat(1), sigmahat(1)); + plot (x, y, "-pr"); + y = normpdf (x, muhat(2), sigmahat(2)); + plot (x, y, "-sg"); + y = normpdf (x, muhat(3), sigmahat(3)); + plot (x, y, "-^c"); + ylim ([0, 0.5]) + xlim ([-20, 20]) + hold off + legend ({"Normalized HIST of sample 1 with mu=2, σ=5", ... + "Normalized HIST of sample 2 with mu=5, σ=2", ... + "Normalized HIST of sample 3 with mu=9, σ=4", ... + sprintf("PDF for sample 1 with estimated mu=%0.2f and σ=%0.2f", ... + muhat(1), sigmahat(1)), ... + sprintf("PDF for sample 2 with estimated mu=%0.2f and σ=%0.2f", ... + muhat(2), sigmahat(2)), ... + sprintf("PDF for sample 3 with estimated mu=%0.2f and σ=%0.2f", ... + muhat(3), sigmahat(3))}, "location", "northwest") + title ("Three population samples from different normal distibutions") + hold off +***** test + load lightbulb + idx = find (lightbulb(:,2) == 0); + censoring = lightbulb(idx,3) == 1; + [muHat, sigmaHat] = normfit (lightbulb(idx,1), [], censoring); + assert (muHat, 9496.59586737857, 1e-11); + assert (sigmaHat, 3064.021012796456, 2e-12); +***** test + randn ("seed", 234); + x = normrnd (3, 5, [1000, 1]); + [muHat, sigmaHat, muCI, sigmaCI] = normfit (x, 0.01); + assert (muCI(1) < 3); + assert (muCI(2) > 3); + assert (sigmaCI(1) < 5); + assert (sigmaCI(2) > 5); +***** error ... + normfit (ones (3,3,3)) +***** error ... + normfit (ones (20,3), [], zeros (20,1)) +***** error normfit (ones (20,1), 0) +***** error normfit (ones (20,1), -0.3) +***** error normfit (ones (20,1), 1.2) +***** error normfit (ones (20,1), [0.05 0.1]) +***** error normfit (ones (20,1), 0.02+i) +***** error ... + normfit (ones (20,1), [], zeros(15,1)) +***** error ... + normfit (ones (20,1), [], zeros(20,1), ones(25,1)) +***** error ... + normfit (ones (5,1), [], zeros(5,1), [1, 2, 1, 2, -1]') +***** error normfit (ones (20,1), [], zeros(20,1), ones(20,1), "options") +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_fit/loglfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/loglfit.m +***** demo + ## Sample 3 populations from different log-logistic distibutions rand ("seed", 5) # for reproducibility - Sigma = rand (d); - Sigma = (Sigma + Sigma'); - Sigma += eye (d)*abs (eigs (Sigma, 1, "sa")) * 1.1; - pdf = @(x)(2*pi)^(-d/2)*det(Sigma)^-.5*exp(-.5*sum((x.'-mu).*(Sigma\(x.'-mu)),1)); + r1 = loglrnd (0, 1, 2000, 1); + rand ("seed", 2) # for reproducibility + r2 = loglrnd (0, 0.5, 2000, 1); + rand ("seed", 7) # for reproducibility + r3 = loglrnd (0, 0.125, 2000, 1); + r = [r1, r2, r3]; - ## Inputs - start = ones (1,2); - nsamples = 500; - K = 500; - m = 10; - rande ("seed", 4); rand ("seed", 5) # for reproducibility - [smpl, accept] = slicesample (start, nsamples, "pdf", pdf, "burnin", K, "thin", m, "width", [20, 30]); - figure; - hold on; - plot (smpl(:,1), smpl(:,2), 'x'); - [x, y] = meshgrid (linspace (-6,4), linspace(-3,7)); - z = reshape (pdf ([x(:), y(:)]), size(x)); - mesh (x, y, z, "facecolor", "None"); + ## Plot them normalized and fix their colors + hist (r, [0.05:0.1:2.5], 10); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + ylim ([0, 3.5]); + xlim ([0, 2.0]); + hold on - ## Using sample points to find the volume of half a sphere with radius of .5 - f = @(x) ((.25-(x(:,1)+1).^2-(x(:,2)-2).^2).^.5.*(((x(:,1)+1).^2+(x(:,2)-2).^2)<.25)).'; - int = mean (f (smpl) ./ pdf (smpl)); - errest = std (f (smpl) ./ pdf (smpl)) / nsamples^.5; - trueerr = abs (2/3*pi*.25^(3/2)-int); - fprintf ("Monte Carlo integral estimate int f(x) dx = %f\n", int); - fprintf ("Monte Carlo integral error estimate %f\n", errest); - fprintf ("The actual error %f\n", trueerr); - mesh (x,y,reshape (f([x(:), y(:)]), size(x)), "facecolor", "None"); + ## Estimate their MU and LAMBDA parameters + a_bA = loglfit (r(:,1)); + a_bB = loglfit (r(:,2)); + a_bC = loglfit (r(:,3)); + + ## Plot their estimated PDFs + x = [0.01:0.1:2.01]; + y = loglpdf (x, a_bA(1), a_bA(2)); + plot (x, y, "-pr"); + y = loglpdf (x, a_bB(1), a_bB(2)); + plot (x, y, "-sg"); + y = loglpdf (x, a_bC(1), a_bC(2)); + plot (x, y, "-^c"); + legend ({"Normalized HIST of sample 1 with α=1 and β=1", ... + "Normalized HIST of sample 2 with α=1 and β=2", ... + "Normalized HIST of sample 3 with α=1 and β=8", ... + sprintf("PDF for sample 1 with estimated α=%0.2f and β=%0.2f", ... + a_bA(1), a_bA(2)), ... + sprintf("PDF for sample 2 with estimated α=%0.2f and β=%0.2f", ... + a_bB(1), a_bB(2)), ... + sprintf("PDF for sample 3 with estimated α=%0.2f and β=%0.2f", ... + a_bC(1), a_bC(2))}) + title ("Three population samples from different log-logistic distibutions") + hold off +***** test + [paramhat, paramci] = loglfit ([1:50]); + paramhat_out = [3.09717, 0.468525]; + paramci_out = [2.87261, 0.370616; 3.32174, 0.5923]; + assert (paramhat, paramhat_out, 1e-5); + assert (paramci, paramci_out, 1e-5); +***** test + paramhat = loglfit ([1:5]); + paramhat_out = [1.01124, 0.336449]; + assert (paramhat, paramhat_out, 1e-5); +***** test + paramhat = loglfit ([1:6], [], [], [1 1 1 1 1 0]); + paramhat_out = [1.01124, 0.336449]; + assert (paramhat, paramhat_out, 1e-4); +***** test + paramhat = loglfit ([1:5], [], [], [1 1 1 1 2]); + paramhat_out = loglfit ([1:5, 5]); + assert (paramhat, paramhat_out, 1e-4); +***** error loglfit (ones (2,5)); +***** error loglfit ([1, 2, 3, 4, 5], 1.2); +***** error loglfit ([1, 2, 3, 4, 5], 0); +***** error loglfit ([1, 2, 3, 4, 5], "alpha"); +***** error ... + loglfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); +***** error ... + loglfit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); +***** error ... + loglfit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); +***** error ... + loglfit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); +***** error ... + loglfit ([1, 2, 3, 4, 5], 0.05, [], [], 2); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_fit/invglike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/invglike.m +***** test + nlogL = invglike ([25.5, 19.6973], [1:50]); + assert (nlogL, 219.1516, 1e-4); +***** test + nlogL = invglike ([3, 8.1081], [1:5]); + assert (nlogL, 9.0438, 1e-4); +***** error invglike (3.25) +***** error invglike ([5, 0.2], ones (2)) +***** error invglike ([5, 0.2], [-1, 3]) +***** error ... + invglike ([1, 0.2, 3], [1, 3, 5, 7]) +***** error ... + invglike ([1.5, 0.2], [1:5], [0, 0, 0]) +***** error ... + invglike ([1.5, 0.2], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) +***** error ... + invglike ([1.5, 0.2], [1:5], [], [1, 1, 1]) +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/dist_fit/hnlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/hnlike.m +***** test + x = 1:20; + paramhat = hnfit (x, 0); + [nlogL, acov] = hnlike (paramhat, x); + assert (nlogL, 64.179177404891300, 1e-14); +***** test + x = 1:20; + paramhat = hnfit (x, 0); + [nlogL, acov] = hnlike (paramhat, x, ones (1, 20)); + assert (nlogL, 64.179177404891300, 1e-14); +***** error ... + hnlike ([12, 15]); +***** error hnlike ([12, 15, 3], [1:50]); +***** error hnlike ([3], [1:50]); +***** error ... + hnlike ([0, 3], ones (2)); +***** error ... + hnlike ([0, 3], [1, 2, 3, 4, 5+i]); +***** error ... + hnlike ([1, 2], ones (10, 1), ones (8,1)) +***** error ... + hnlike ([1, 2], ones (1, 8), [1 1 1 1 1 1 1 -1]) +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/dist_fit/gumbellike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gumbellike.m +***** test + x = 1:50; + [nlogL, avar] = gumbellike ([2.3, 1.2], x); + avar_out = [-1.2778e-13, 3.1859e-15; 3.1859e-15, -7.9430e-17]; + assert (nlogL, 3.242264755689906e+17, 1e-14); + assert (avar, avar_out, 1e-3); +***** test + x = 1:50; + [nlogL, avar] = gumbellike ([2.3, 1.2], x * 0.5); + avar_out = [-7.6094e-05, 3.9819e-06; 3.9819e-06, -2.0836e-07]; + assert (nlogL, 481898704.0472211, 1e-6); + assert (avar, avar_out, 1e-3); +***** test + x = 1:50; + [nlogL, avar] = gumbellike ([21, 15], x); + avar_out = [11.73913876598908, -5.9546128523121216; ... + -5.954612852312121, 3.708060045170236]; + assert (nlogL, 223.7612479380652, 1e-13); + assert (avar, avar_out, 1e-14); +***** error gumbellike ([12, 15]); +***** error gumbellike ([12, 15, 3], [1:50]); +***** error gumbellike ([12, 3], ones (10, 2)); +***** error gumbellike ([12, 15], [1:50], [1, 2, 3]); +***** error gumbellike ([12, 15], [1:50], [], [1, 2, 3]); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/dist_fit/poissfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/poissfit.m ***** demo - ## Integrate truncated normal distribution to find normilization constant - pdf = @(x) exp (-.5*x.^2)/(pi^.5*2^.5); - nsamples = 1e3; - rande ("seed", 4); rand ("seed", 5) # for reproducibility - [smpl, accept] = slicesample (1, nsamples, "pdf", pdf, "thin", 4); - f = @(x) exp (-.5 * x .^ 2) .* (x >= -2 & x <= 2); - x = linspace (-3, 3, 1000); - area (x, f(x)); - xlabel ("x"); - ylabel ("f(x)"); - int = mean (f (smpl) ./ pdf (smpl)); - errest = std (f (smpl) ./ pdf (smpl)) / nsamples ^ 0.5; - trueerr = abs (erf (2 ^ 0.5) * 2 ^ 0.5 * pi ^ 0.5 - int); - fprintf("Monte Carlo integral estimate int f(x) dx = %f\n", int); - fprintf("Monte Carlo integral error estimate %f\n", errest); - fprintf("The actual error %f\n", trueerr); + ## Sample 3 populations from 3 different Poisson distibutions + randp ("seed", 2); # for reproducibility + r1 = poissrnd (1, 1000, 1); + randp ("seed", 2); # for reproducibility + r2 = poissrnd (4, 1000, 1); + randp ("seed", 3); # for reproducibility + r3 = poissrnd (10, 1000, 1); + r = [r1, r2, r3]; + + ## Plot them normalized and fix their colors + hist (r, [0:20], 1); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + hold on + + ## Estimate their lambda parameter + lambdahat = poissfit (r); + + ## Plot their estimated PDFs + x = [0:20]; + y = poisspdf (x, lambdahat(1)); + plot (x, y, "-pr"); + y = poisspdf (x, lambdahat(2)); + plot (x, y, "-sg"); + y = poisspdf (x, lambdahat(3)); + plot (x, y, "-^c"); + xlim ([0, 20]) + ylim ([0, 0.4]) + legend ({"Normalized HIST of sample 1 with λ=1", ... + "Normalized HIST of sample 2 with λ=4", ... + "Normalized HIST of sample 3 with λ=10", ... + sprintf("PDF for sample 1 with estimated λ=%0.2f", ... + lambdahat(1)), ... + sprintf("PDF for sample 2 with estimated λ=%0.2f", ... + lambdahat(2)), ... + sprintf("PDF for sample 3 with estimated λ=%0.2f", ... + lambdahat(3))}) + title ("Three population samples from different Poisson distibutions") + hold off ***** test - start = 0.5; - nsamples = 1e3; - pdf = @(x) exp (-.5*(x-1).^2)/(2*pi)^.5; - [smpl, accept] = slicesample (start, nsamples, "pdf", pdf, "thin", 2, "burnin", 0, "width", 5); - assert (mean (smpl, 1), 1, .1); - assert (var (smpl, 1), 1, .2); -***** error slicesample (); -***** error slicesample (1); -***** error slicesample (1, 1); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/stepwisefit.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/stepwisefit.m + x = [1 3 2 4 5 4 3 4]; + [lhat, lci] = poissfit (x); + assert (lhat, 3.25) + assert (lci, [2.123007901949543; 4.762003010390628], 1e-14) ***** test - % Sample data from Draper and Smith (n = 13, k = 4) - X = [7 1 11 11 7 11 3 1 2 21 1 11 10; ... - 26 29 56 31 52 55 71 31 54 47 40 66 68; ... - 6 15 8 8 6 9 17 22 18 4 23 9 8; ... - 60 52 20 47 33 22 6 44 22 26 34 12 12]'; - y = [78.5 74.3 104.3 87.6 95.9 109.2 102.7 72.5 93.1 115.9 83.8 113.3 109.4]'; - [X_use, b, bint, r, rint, stats] = stepwisefit(y, X); - assert(X_use, [4 1]) - assert(b, regress(y, [ones(size(y)) X(:, X_use)], 0.05)) - [X_use, b, bint, r, rint, stats] = stepwisefit(y, X, 0.05, 0.1, "corr"); - assert(X_use, [4 1]) - assert(b, regress(y, [ones(size(y)) X(:, X_use)], 0.05)) - [X_use, b, bint, r, rint, stats] = stepwisefit(y, X, [], [], "p"); - assert(X_use, [4 1]) - assert(b, regress(y, [ones(size(y)) X(:, X_use)], 0.05)) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/hist3.m] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/hist3.m + x = [1 3 2 4 5 4 3 4]; + [lhat, lci] = poissfit (x, 0.01); + assert (lhat, 3.25) + assert (lci, [1.842572740234582; 5.281369033298528], 1e-14) +***** test + x = [1 2 3 4 5]; + f = [1 1 2 3 1]; + [lhat, lci] = poissfit (x, [], f); + assert (lhat, 3.25) + assert (lci, [2.123007901949543; 4.762003010390628], 1e-14) +***** test + x = [1 2 3 4 5]; + f = [1 1 2 3 1]; + [lhat, lci] = poissfit (x, 0.01, f); + assert (lhat, 3.25) + assert (lci, [1.842572740234582; 5.281369033298528], 1e-14) +***** error poissfit ([1 2 -1 3]) +***** error poissfit ([1 2 3], 0) +***** error poissfit ([1 2 3], 1.2) +***** error poissfit ([1 2 3], [0.02 0.05]) +***** error + poissfit ([1 2 3], [], [1 5]) +***** error + poissfit ([1 2 3], [], [1 5 -1]) +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/dist_fit/evfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/evfit.m ***** demo - X = [ - 1 1 - 1 1 - 1 10 - 1 10 - 5 5 - 5 5 - 5 5 - 5 5 - 5 5 - 7 3 - 7 3 - 7 3 - 10 10 - 10 10]; - hist3 (X) + ## Sample 3 populations from different extreme value distibutions + rand ("seed", 1); # for reproducibility + r1 = evrnd (2, 5, 400, 1); + rand ("seed", 12); # for reproducibility + r2 = evrnd (-5, 3, 400, 1); + rand ("seed", 13); # for reproducibility + r3 = evrnd (14, 8, 400, 1); + r = [r1, r2, r3]; + + ## Plot them normalized and fix their colors + hist (r, 25, 0.4); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + ylim ([0, 0.28]) + xlim ([-30, 30]); + hold on + + ## Estimate their MU and SIGMA parameters + mu_sigmaA = evfit (r(:,1)); + mu_sigmaB = evfit (r(:,2)); + mu_sigmaC = evfit (r(:,3)); + + ## Plot their estimated PDFs + x = [min(r(:)):max(r(:))]; + y = evpdf (x, mu_sigmaA(1), mu_sigmaA(2)); + plot (x, y, "-pr"); + y = evpdf (x, mu_sigmaB(1), mu_sigmaB(2)); + plot (x, y, "-sg"); + y = evpdf (x, mu_sigmaC(1), mu_sigmaC(2)); + plot (x, y, "-^c"); + legend ({"Normalized HIST of sample 1 with μ=2 and σ=5", ... + "Normalized HIST of sample 2 with μ=-5 and σ=3", ... + "Normalized HIST of sample 3 with μ=14 and σ=8", ... + sprintf("PDF for sample 1 with estimated μ=%0.2f and σ=%0.2f", ... + mu_sigmaA(1), mu_sigmaA(2)), ... + sprintf("PDF for sample 2 with estimated μ=%0.2f and σ=%0.2f", ... + mu_sigmaB(1), mu_sigmaB(2)), ... + sprintf("PDF for sample 3 with estimated μ=%0.2f and σ=%0.2f", ... + mu_sigmaC(1), mu_sigmaC(2))}) + title ("Three population samples from different extreme value distibutions") + hold off ***** test - N_exp = [ 0 0 0 5 20 - 0 0 10 15 0 - 0 15 10 0 0 - 20 5 0 0 0]; + x = 1:50; + [paramhat, paramci] = evfit (x); + paramhat_out = [32.6811, 13.0509]; + paramci_out = [28.8504, 10.5294; 36.5118, 16.1763]; + assert (paramhat, paramhat_out, 1e-4); + assert (paramci, paramci_out, 1e-4); +***** test + x = 1:50; + [paramhat, paramci] = evfit (x, 0.01); + paramci_out = [27.6468, 9.8426; 37.7155, 17.3051]; + assert (paramci, paramci_out, 1e-4); +***** error evfit (ones (2,5)); +***** error evfit (single (ones (1,5))); +***** error evfit ([1, 2, 3, 4, NaN]); +***** error evfit ([1, 2, 3, 4, 5], 1.2); +***** error + evfit ([1 2 3], 0.05, [], [1 5]) +***** error + evfit ([1 2 3], 0.05, [], [1 5 -1]) +***** error ... + evfit ([1:10], 0.05, [], [], 5) +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/dist_fit/burrfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/burrfit.m +***** demo + ## Sample 3 populations from different Burr type XII distibutions + rand ("seed", 4); # for reproducibility + r1 = burrrnd (3.5, 2, 2.5, 10000, 1); + rand ("seed", 2); # for reproducibility + r2 = burrrnd (1, 3, 1, 10000, 1); + rand ("seed", 9); # for reproducibility + r3 = burrrnd (0.5, 2, 3, 10000, 1); + r = [r1, r2, r3]; - n = 100; - x = [1:n]'; - y = [n:-1:1]'; - D = [x y]; - N = hist3 (D, [4 5]); - assert (N, N_exp); + ## Plot them normalized and fix their colors + hist (r, [0.1:0.2:20], [18, 5, 3]); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + ylim ([0, 3]); + xlim ([0, 5]); + hold on + + ## Estimate their α and β parameters + lambda_c_kA = burrfit (r(:,1)); + lambda_c_kB = burrfit (r(:,2)); + lambda_c_kC = burrfit (r(:,3)); + + ## Plot their estimated PDFs + x = [0.01:0.15:15]; + y = burrpdf (x, lambda_c_kA(1), lambda_c_kA(2), lambda_c_kA(3)); + plot (x, y, "-pr"); + y = burrpdf (x, lambda_c_kB(1), lambda_c_kB(2), lambda_c_kB(3)); + plot (x, y, "-sg"); + y = burrpdf (x, lambda_c_kC(1), lambda_c_kC(2), lambda_c_kC(3)); + plot (x, y, "-^c"); + hold off + legend ({"Normalized HIST of sample 1 with λ=3.5, c=2, and k=2.5", ... + "Normalized HIST of sample 2 with λ=1, c=3, and k=1", ... + "Normalized HIST of sample 3 with λ=0.5, c=2, and k=3", ... + sprintf("PDF for sample 1 with estimated λ=%0.2f, c=%0.2f, and k=%0.2f", ... + lambda_c_kA(1), lambda_c_kA(2), lambda_c_kA(3)), ... + sprintf("PDF for sample 2 with estimated λ=%0.2f, c=%0.2f, and k=%0.2f", ... + lambda_c_kB(1), lambda_c_kB(2), lambda_c_kB(3)), ... + sprintf("PDF for sample 3 with estimated λ=%0.2f, c=%0.2f, and k=%0.2f", ... + lambda_c_kC(1), lambda_c_kC(2), lambda_c_kC(3))}) + title ("Three population samples from different Burr type XII distibutions") + hold off ***** test - N_exp = [0 0 0 0 1 - 0 0 0 0 1 - 0 0 0 0 1 - 1 1 1 1 93]; + l = 1; c = 2; k = 3; + r = burrrnd (l, c, k, 100000, 1); + lambda_c_kA = burrfit (r); + assert (lambda_c_kA(1), l, 0.2); + assert (lambda_c_kA(2), c, 0.2); + assert (lambda_c_kA(3), k, 0.3); +***** test + l = 0.5; c = 1; k = 3; + r = burrrnd (l, c, k, 100000, 1); + lambda_c_kA = burrfit (r); + assert (lambda_c_kA(1), l, 0.2); + assert (lambda_c_kA(2), c, 0.2); + assert (lambda_c_kA(3), k, 0.3); +***** test + l = 1; c = 3; k = 1; + r = burrrnd (l, c, k, 100000, 1); + lambda_c_kA = burrfit (r); + assert (lambda_c_kA(1), l, 0.2); + assert (lambda_c_kA(2), c, 0.2); + assert (lambda_c_kA(3), k, 0.3); +***** test + l = 3; c = 2; k = 1; + r = burrrnd (l, c, k, 100000, 1); + lambda_c_kA = burrfit (r); + assert (lambda_c_kA(1), l, 0.2); + assert (lambda_c_kA(2), c, 0.2); + assert (lambda_c_kA(3), k, 0.3); +***** test + l = 4; c = 2; k = 4; + r = burrrnd (l, c, k, 100000, 1); + lambda_c_kA = burrfit (r); + assert (lambda_c_kA(1), l, 0.2); + assert (lambda_c_kA(2), c, 0.2); + assert (lambda_c_kA(3), k, 0.3); +***** error burrfit (ones (2,5)); +***** error burrfit ([-1 2 3 4]); +***** error burrfit ([1, 2, 3, 4, 5], 1.2); +***** error burrfit ([1, 2, 3, 4, 5], 0); +***** error burrfit ([1, 2, 3, 4, 5], "alpha"); +***** error ... + burrfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); +***** error ... + burrfit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); +***** error + burrfit ([1, 2, 3, 4, 5], 0.05, [], [1, 1, 5]) +***** error + burrfit ([1, 2, 3, 4, 5], 0.05, [], [1, 5, 1, 1, -1]) +***** error ... + burrfit ([1:10], 0.05, [], [], 5) +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_fit/lognlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/lognlike.m +***** test + x = 1:50; + [nlogL, avar] = lognlike ([0, 0.25], x); + avar_out = [-5.4749e-03, 2.8308e-04; 2.8308e-04, -1.1916e-05]; + assert (nlogL, 3962.330333301793, 1e-10); + assert (avar, avar_out, 1e-7); +***** test + x = 1:50; + [nlogL, avar] = lognlike ([0, 0.25], x * 0.5); + avar_out = [-7.6229e-03, 4.8722e-04; 4.8722e-04, -2.6754e-05]; + assert (nlogL, 2473.183051225747, 1e-10); + assert (avar, avar_out, 1e-7); +***** test + x = 1:50; + [nlogL, avar] = lognlike ([0, 0.5], x); + avar_out = [-2.1152e-02, 2.2017e-03; 2.2017e-03, -1.8535e-04]; + assert (nlogL, 1119.072424020455, 1e-12); + assert (avar, avar_out, 1e-6); +***** test + x = 1:50; + censor = ones (1, 50); + censor([2, 4, 6, 8, 12, 14]) = 0; + [nlogL, avar] = lognlike ([0, 0.5], x, censor); + avar_out = [-1.9823e-02, 2.0370e-03; 2.0370e-03, -1.6618e-04]; + assert (nlogL, 1091.746371145497, 1e-12); + assert (avar, avar_out, 1e-6); +***** test + x = 1:50; + censor = ones (1, 50); + censor([2, 4, 6, 8, 12, 14]) = 0; + [nlogL, avar] = lognlike ([0, 1], x, censor); + avar_out = [-6.8634e-02, 1.3968e-02; 1.3968e-02, -2.1664e-03]; + assert (nlogL, 349.3969104144271, 1e-12); + assert (avar, avar_out, 1e-6); +***** error ... + lognlike ([12, 15]); +***** error lognlike ([12, 15], ones (2)); +***** error ... + lognlike ([12, 15, 3], [1:50]); +***** error ... + lognlike ([12, 15], [1:50], [1, 2, 3]); +***** error ... + lognlike ([12, 15], [1:50], [], [1, 2, 3]); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/dist_fit/hnfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/hnfit.m +***** demo + ## Sample 2 populations from different half-normal distibutions + rand ("seed", 1); # for reproducibility + r1 = hnrnd (0, 5, 5000, 1); + rand ("seed", 2); # for reproducibility + r2 = hnrnd (0, 2, 5000, 1); + r = [r1, r2]; - n = 100; - x = [1:n]'; - y = [n:-1:1]'; - D = [x y]; - C{1} = [1 1.7 3 4]; - C{2} = [1:5]; - N = hist3 (D, C); - assert (N, N_exp); + ## Plot them normalized and fix their colors + hist (r, [0.5:20], 1); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + hold on + + ## Estimate their shape parameters + mu_sigmaA = hnfit (r(:,1), 0); + mu_sigmaB = hnfit (r(:,2), 0); + + ## Plot their estimated PDFs + x = [0:0.2:10]; + y = hnpdf (x, mu_sigmaA(1), mu_sigmaA(2)); + plot (x, y, "-pr"); + y = hnpdf (x, mu_sigmaB(1), mu_sigmaB(2)); + plot (x, y, "-sg"); + xlim ([0, 10]) + ylim ([0, 0.5]) + legend ({"Normalized HIST of sample 1 with μ=0 and σ=5", ... + "Normalized HIST of sample 2 with μ=0 and σ=2", ... + sprintf("PDF for sample 1 with estimated μ=%0.2f and σ=%0.2f", ... + mu_sigmaA(1), mu_sigmaA(2)), ... + sprintf("PDF for sample 2 with estimated μ=%0.2f and σ=%0.2f", ... + mu_sigmaB(1), mu_sigmaB(2))}) + title ("Two population samples from different half-normal distibutions") + hold off ***** test - D = [1 1; 3 1; 3 3; 3 1]; - [c, nn] = hist3 (D, {0:4, 0:4}); - exp_c = zeros (5); - exp_c([7 9 19]) = [1 2 1]; - assert (c, exp_c); - assert (nn, {0:4, 0:4}); + x = 1:20; + [paramhat, paramci] = hnfit (x, 0); + assert (paramhat, [0, 11.9791], 1e-4); + assert (paramci, [0, 9.1648; 0, 17.2987], 1e-4); ***** test - for i = 10 - assert (size (hist3 (rand (9, 2), "Edges", {[0:.2:1]; [0:.2:1]})), [6 6]) - endfor + x = 1:20; + [paramhat, paramci] = hnfit (x, 0, 0.01); + assert (paramci, [0, 8.4709; 0, 19.6487], 1e-4); +***** error hnfit () +***** error hnfit (1) +***** error hnfit ([0.2, 0.5+i], 0); +***** error hnfit (ones (2,2) * 0.5, 0); +***** error ... + hnfit ([0.5, 1.2], [0, 1]); +***** error ... + hnfit ([0.5, 1.2], 5+i); +***** error ... + hnfit ([1:5], 2); +***** error hnfit ([0.01:0.1:0.99], 0, 1.2); +***** error hnfit ([0.01:0.1:0.99], 0, i); +***** error hnfit ([0.01:0.1:0.99], 0, -1); +***** error hnfit ([0.01:0.1:0.99], 0, [0.05, 0.01]); +***** error + hnfit ([1 2 3], 0, [], [1 5]) +***** error + hnfit ([1 2 3], 0, [], [1 5 -1]) +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_fit/poisslike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/poisslike.m ***** test - edge_1 = linspace (0, 10, 10); - edge_2 = linspace (0, 50, 10); - [c, nn] = hist3 ([1:10; 1:5:50]', "Edges", {edge_1, edge_2}); - exp_c = zeros (10, 10); - exp_c([1 12 13 24 35 46 57 68 79 90]) = 1; - assert (c, exp_c); + x = [1 3 2 4 5 4 3 4]; + [nlogL, avar] = poisslike (3.25, x); + assert (nlogL, 13.9533, 1e-4) +***** test + x = [1 2 3 4 5]; + f = [1 1 2 3 1]; + [nlogL, avar] = poisslike (3.25, x, f); + assert (nlogL, 13.9533, 1e-4) +***** error poisslike (1) +***** error poisslike ([1 2 3], [1 2]) +***** error ... + poisslike (3.25, ones (10, 2)) +***** error ... + poisslike (3.25, [1 2 3 -4 5]) +***** error ... + poisslike (3.25, ones (10, 1), ones (8,1)) +***** error ... + poisslike (3.25, ones (1, 8), [1 1 1 1 1 1 1 -1]) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/dist_fit/binolike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/binolike.m +***** assert (binolike ([3, 0.333], [0:3]), 6.8302, 1e-4) +***** assert (binolike ([3, 0.333], 0), 1.2149, 1e-4) +***** assert (binolike ([3, 0.333], 1), 0.8109, 1e-4) +***** assert (binolike ([3, 0.333], 2), 1.5056, 1e-4) +***** assert (binolike ([3, 0.333], 3), 3.2988, 1e-4) +***** test + [nlogL, acov] = binolike ([3, 0.333], 3); + assert (acov(4), 0.0740, 1e-4) +***** error binolike (3.25) +***** error binolike ([5, 0.2], ones (2)) +***** error ... + binolike ([1, 0.2, 3], [1, 3, 5, 7]) +***** error binolike ([1.5, 0.2], 1) +***** error binolike ([-1, 0.2], 1) +***** error binolike ([Inf, 0.2], 1) +***** error binolike ([5, 1.2], [3, 5]) +***** error binolike ([5, -0.2], [3, 5]) +***** error ... + binolike ([5, 0.5], ones (10, 1), ones (8,1)) +***** error ... + binolike ([5, 0.5], ones (1, 8), [1 1 1 1 1 1 1 -1]) +***** error binolike ([5, 0.2], [-1, 3]) +***** error binolike ([5, 0.2], [3, 5, 7]) +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/dist_fit/tlslike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/tlslike.m +***** test + x = [-1.2352, -0.2741, 0.1726, 7.4356, 1.0392, 16.4165]; + [nlogL, acov] = tlslike ([0.035893, 0.862711, 0.649261], x); + acov_out = [0.2525, 0.0670, 0.0288; ... + 0.0670, 0.5724, 0.1786; ... + 0.0288, 0.1786, 0.1789]; + assert (nlogL, 17.9979636579, 1e-10); + assert (acov, acov_out, 1e-4); +***** error tlslike ([12, 15, 1]); +***** error tlslike ([12, 15], [1:50]); +***** error tlslike ([12, 3, 1], ones (10, 2)); +***** error tlslike ([12, 15, 1], [1:50], [1, 2, 3]); +***** error tlslike ([12, 15, 1], [1:50], [], [1, 2, 3]); +***** error tlslike ([12, 15, 1], [1:3], [], [1, 2, -3]); +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/dist_fit/tlsfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/tlsfit.m +***** demo + ## Sample 3 populations from 3 different location-scale T distibutions + randn ("seed", 1); # for reproducibility + randg ("seed", 2); # for reproducibility + r1 = tlsrnd (-4, 3, 1, 2000, 1); + randn ("seed", 3); # for reproducibility + randg ("seed", 4); # for reproducibility + r2 = tlsrnd (0, 3, 1, 2000, 1); + randn ("seed", 5); # for reproducibility + randg ("seed", 6); # for reproducibility + r3 = tlsrnd (5, 5, 4, 2000, 1); + r = [r1, r2, r3]; - assert (nn{1}, edge_1 + edge_1(2)/2, eps*10^4) - assert (nn{2}, edge_2 + edge_2(2)/2, eps*10^4) -***** shared X - X = [ - 5 2 - 5 3 - 1 4 - 5 3 - 4 4 - 1 2 - 2 3 - 3 3 - 5 4 - 5 3]; + ## Plot them normalized and fix their colors + hist (r, [-21:21], [1, 1, 1]); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + ylim ([0, 0.25]); + xlim ([-20, 20]); + hold on + + ## Estimate their lambda parameter + mu_sigma_nuA = tlsfit (r(:,1)); + mu_sigma_nuB = tlsfit (r(:,2)); + mu_sigma_nuC = tlsfit (r(:,3)); + + ## Plot their estimated PDFs + x = [-20:0.1:20]; + y = tlspdf (x, mu_sigma_nuA(1), mu_sigma_nuA(2), mu_sigma_nuA(3)); + plot (x, y, "-pr"); + y = tlspdf (x, mu_sigma_nuB(1), mu_sigma_nuB(2), mu_sigma_nuB(3)); + plot (x, y, "-sg"); + y = tlspdf (x, mu_sigma_nuC(1), mu_sigma_nuC(2), mu_sigma_nuC(3)); + plot (x, y, "-^c"); + hold off + legend ({"Normalized HIST of sample 1 with μ=0, σ=2 and nu=1", ... + "Normalized HIST of sample 2 with μ=5, σ=2 and nu=1", ... + "Normalized HIST of sample 3 with μ=3, σ=4 and nu=3", ... + sprintf("PDF for sample 1 with estimated μ=%0.2f, σ=%0.2f, and ν=%0.2f", ... + mu_sigma_nuA(1), mu_sigma_nuA(2), mu_sigma_nuA(3)), ... + sprintf("PDF for sample 2 with estimated μ=%0.2f, σ=%0.2f, and ν=%0.2f", ... + mu_sigma_nuB(1), mu_sigma_nuB(2), mu_sigma_nuB(3)), ... + sprintf("PDF for sample 3 with estimated μ=%0.2f, σ=%0.2f, and ν=%0.2f", ... + mu_sigma_nuC(1), mu_sigma_nuC(2), mu_sigma_nuC(3))}) + title ("Three population samples from different location-scale T distibutions") + hold off ***** test - N = zeros (10); - N([1 10 53 56 60 91 98 100]) = [1 1 1 1 3 1 1 1]; - C = {(1.2:0.4:4.8), (2.1:0.2:3.9)}; - assert (nthargout ([1 2], @hist3, X), {N C}, eps*10^3) + x = [-1.2352, -0.2741, 0.1726, 7.4356, 1.0392, 16.4165]; + [paramhat, paramci] = tlsfit (x); + paramhat_out = [0.035893, 0.862711, 0.649261]; + paramci_out = [-0.949034, 0.154655, 0.181080; 1.02082, 4.812444, 2.327914]; + assert (paramhat, paramhat_out, 1e-6); + assert (paramci, paramci_out, 1e-5); ***** test - N = zeros (5, 7); - N([1 5 17 18 20 31 34 35]) = [1 1 1 1 3 1 1 1]; - C = {(1.4:0.8:4.6), ((2+(1/7)):(2/7):(4-(1/7)))}; - assert (nthargout ([1 2], @hist3, X, [5 7]), {N C}, eps*10^3) - assert (nthargout ([1 2], @hist3, X, "Nbins", [5 7]), {N C}, eps*10^3) + x = [-1.2352, -0.2741, 0.1726, 7.4356, 1.0392, 16.4165]; + [paramhat, paramci] = tlsfit (x, 0.01); + paramci_out = [-1.2585, 0.0901, 0.1212; 1.3303, 8.2591, 3.4771]; + assert (paramci, paramci_out, 1e-4); +***** error tlsfit (ones (2,5)); +***** error tlsfit ([1, 2, 3, 4, 5], 1.2); +***** error tlsfit ([1, 2, 3, 4, 5], 0); +***** error tlsfit ([1, 2, 3, 4, 5], "alpha"); +***** error ... + tlsfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); +***** error ... + tlsfit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); +***** error ... + tlsfit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); +***** error ... + tlsfit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); +***** error ... + tlsfit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 -1]); +***** error ... + tlsfit ([1, 2, 3, 4, 5], 0.05, [], [], 2); +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/dist_fit/normlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/normlike.m +***** error normlike ([12, 15]); +***** error normlike ([12, 15], ones (2)); +***** error ... + normlike ([12, 15, 3], [1:50]); +***** error ... + normlike ([12, 15], [1:50], [1, 2, 3]); +***** error ... + normlike ([12, 15], [1:50], [], [1, 2, 3]); +***** error ... + normlike ([12, 15], [1:5], [], [1, 2, 3, 2, -1]); ***** test - N = [0 1 0; 0 1 0; 0 0 1; 0 0 0]; - C = {(2:5), (2.5:1:4.5)}; - assert (nthargout ([1 2], @hist3, X, "Edges", {(1.5:4.5), (2:4)}), {N C}) + x = 1:50; + [nlogL, avar] = normlike ([2.3, 1.2], x); + avar_out = [7.5767e-01, -1.8850e-02; -1.8850e-02, 4.8750e-04]; + assert (nlogL, 13014.95883783327, 1e-10); + assert (avar, avar_out, 1e-4); ***** test - N = [0 0 1 0 1 0; 0 0 0 1 0 0; 0 0 1 4 2 0]; - C = {(1.2:3.2), (0:5)}; - assert (nthargout ([1 2], @hist3, X, "Ctrs", C), {N C}) - assert (nthargout ([1 2], @hist3, X, C), {N C}) + x = 1:50; + [nlogL, avar] = normlike ([2.3, 1.2], x * 0.5); + avar_out = [3.0501e-01, -1.5859e-02; -1.5859e-02, 9.1057e-04]; + assert (nlogL, 2854.802587833265, 1e-10); + assert (avar, avar_out, 1e-4); ***** test - [~, C] = hist3 (rand (10, 2), "Edges", {[0 .05 .15 .35 .55 .95], - [-1 .05 .07 .2 .3 .5 .89 1.2]}); - C_exp = {[ 0.025 0.1 0.25 0.45 0.75 1.15], ... - [-0.475 0.06 0.135 0.25 0.4 0.695 1.045 1.355]}; - assert (C, C_exp, eps*10^2) + x = 1:50; + [nlogL, avar] = normlike ([21, 15], x); + avar_out = [5.460474308300396, -1.600790513833993; ... + -1.600790513833993, 2.667984189723321]; + assert (nlogL, 206.738325604233, 1e-12); + assert (avar, avar_out, 1e-14); ***** test - Xv = repmat ([1:10]', [1 2]); + x = 1:50; + censor = ones (1, 50); + censor([2, 4, 6, 8, 12, 14]) = 0; + [nlogL, avar] = normlike ([2.3, 1.2], x, censor); + avar_out = [3.0501e-01, -1.5859e-02; -1.5859e-02, 9.1057e-04]; + assert (nlogL, Inf); + assert (avar, [NaN, NaN; NaN, NaN]); +***** test + x = 1:50; + censor = ones (1, 50); + censor([2, 4, 6, 8, 12, 14]) = 0; + [nlogL, avar] = normlike ([21, 15], x, censor); + avar_out = [24.4824488866131, -10.6649544179636; ... + -10.6649544179636, 6.22827849965737]; + assert (nlogL, 86.9254371829733, 1e-12); + assert (avar, avar_out, 8e-14); +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/dist_fit/betalike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/betalike.m +***** test + x = 0.01:0.02:0.99; + [nlogL, avar] = betalike ([2.3, 1.2], x); + avar_out = [0.03691678, 0.02803056; 0.02803056, 0.03965629]; + assert (nlogL, 17.873477715879040, 3e-14); + assert (avar, avar_out, 1e-7); +***** test + x = 0.01:0.02:0.99; + [nlogL, avar] = betalike ([1, 4], x); + avar_out = [0.02793282, 0.02717274; 0.02717274, 0.03993361]; + assert (nlogL, 79.648061114839550, 1e-13); + assert (avar, avar_out, 1e-7); +***** test + x = 0.00:0.02:1; + [nlogL, avar] = betalike ([1, 4], x); + avar_out = [0.00000801564765, 0.00000131397245; ... + 0.00000131397245, 0.00070827639442]; + assert (nlogL, 573.2008434477486, 1e-10); + assert (avar, avar_out, 1e-14); +***** error ... + betalike ([12, 15]); +***** error betalike ([12, 15, 3], [1:50]); +***** error ... + betalike ([12, 15], ones (10, 1), ones (8,1)) +***** error ... + betalike ([12, 15], ones (1, 8), [1 1 1 1 1 1 1 -1]) +***** error ... + betalike ([12, 15], ones (1, 8), [1 1 1 1 1 1 1 1.5]) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/dist_fit/explike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/explike.m +***** test + x = 12; + beta = 5; + [L, V] = explike (beta, x); + expected_L = 4.0094; + expected_V = 6.5789; + assert (L, expected_L, 0.001); + assert (V, expected_V, 0.001); +***** test + x = 1:5; + beta = 2; + [L, V] = explike (beta, x); + expected_L = 10.9657; + expected_V = 0.4; + assert (L, expected_L, 0.001); + assert (V, expected_V, 0.001); +***** error explike () +***** error explike (2) +***** error explike ([12, 3], [1:50]) +***** error explike (3, ones (10, 2)) +***** error ... + explike (3, [1:50], [1, 2, 3]) +***** error ... + explike (3, [1:50], [], [1, 2, 3]) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/dist_fit/nakalike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/nakalike.m +***** test + nlogL = nakalike ([0.735504, 858.5], [1:50]); + assert (nlogL, 202.8689, 1e-4); +***** test + nlogL = nakalike ([1.17404, 11], [1:5]); + assert (nlogL, 8.6976, 1e-4); +***** test + nlogL = nakalike ([1.17404, 11], [1:5], [], [1, 1, 1, 1, 1]); + assert (nlogL, 8.6976, 1e-4); +***** test + nlogL = nakalike ([1.17404, 11], [1:6], [], [1, 1, 1, 1, 1, 0]); + assert (nlogL, 8.6976, 1e-4); +***** error nakalike (3.25) +***** error nakalike ([5, 0.2], ones (2)) +***** error ... + nakalike ([1, 0.2, 3], [1, 3, 5, 7]) +***** error ... + nakalike ([1.5, 0.2], [1:5], [0, 0, 0]) +***** error ... + nakalike ([1.5, 0.2], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) +***** error ... + nakalike ([1.5, 0.2], [1:5], [], [1, 1, 1]) +***** error ... + nakalike ([1.5, 0.2], [1:5], [], [1, 1, 1, 1, -1]) +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/dist_fit/gamlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gamlike.m +***** test + [nlogL, acov] = gamlike([2, 3], [2, 3, 4, 5, 6, 7, 8, 9]); + assert (nlogL, 19.4426, 1e-4); + assert (acov, [2.7819, -5.0073; -5.0073, 9.6882], 1e-4); +***** test + [nlogL, acov] = gamlike([2, 3], [5:45]); + assert (nlogL, 305.8070, 1e-4); + assert (acov, [0.0423, -0.0087; -0.0087, 0.0167], 1e-4); +***** test + [nlogL, acov] = gamlike([2, 13], [5:45]); + assert (nlogL, 163.2261, 1e-4); + assert (acov, [0.2362, -1.6631; -1.6631, 13.9440], 1e-4); +***** error ... + gamlike ([12, 15]) +***** error gamlike ([12, 15, 3], [1:50]) +***** error gamlike ([12, 3], ones (10, 2)) +***** error ... + gamlike ([12, 15], [1:50], [1, 2, 3]) +***** error ... + gamlike ([12, 15], [1:50], [], [1, 2, 3]) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/dist_fit/gevfit_lmom.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gevfit_lmom.m +***** xtest <31070> + data = 1:50; + [pfit, pci] = gevfit_lmom (data); + expected_p = [-0.28 15.01 20.22]'; + assert (pfit, expected_p, 0.1); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/dist_fit/wblfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/wblfit.m +***** demo + ## Sample 3 populations from 3 different Weibull distibutions + rande ("seed", 1); # for reproducibility + r1 = wblrnd(2, 4, 2000, 1); + rande ("seed", 2); # for reproducibility + r2 = wblrnd(5, 2, 2000, 1); + rande ("seed", 5); # for reproducibility + r3 = wblrnd(1, 5, 2000, 1); + r = [r1, r2, r3]; - ## Test Centers - assert (hist3 (Xv, "Ctrs", {1:10, 1:10}), eye (10)) + ## Plot them normalized and fix their colors + hist (r, 30, [2.5 2.1 3.2]); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + ylim ([0, 2]); + xlim ([0, 10]); + hold on - N_exp = eye (6); - N_exp([1 end]) = 3; - assert (hist3 (Xv, "Ctrs", {3:8, 3:8}), N_exp) + ## Estimate their lambda parameter + lambda_kA = wblfit (r(:,1)); + lambda_kB = wblfit (r(:,2)); + lambda_kC = wblfit (r(:,3)); - N_exp = zeros (8, 6); - N_exp([1 2 11 20 29 38 47 48]) = [2 1 1 1 1 1 1 2]; - assert (hist3 (Xv, "Ctrs", {2:9, 3:8}), N_exp) + ## Plot their estimated PDFs + x = [0:0.1:15]; + y = wblpdf (x, lambda_kA(1), lambda_kA(2)); + plot (x, y, "-pr"); + y = wblpdf (x, lambda_kB(1), lambda_kB(2)); + plot (x, y, "-sg"); + y = wblpdf (x, lambda_kC(1), lambda_kC(2)); + plot (x, y, "-^c"); + hold off + legend ({"Normalized HIST of sample 1 with λ=2 and k=4", ... + "Normalized HIST of sample 2 with λ=5 and k=2", ... + "Normalized HIST of sample 3 with λ=1 and k=5", ... + sprintf("PDF for sample 1 with estimated λ=%0.2f and k=%0.2f", ... + lambda_kA(1), lambda_kA(2)), ... + sprintf("PDF for sample 2 with estimated λ=%0.2f and k=%0.2f", ... + lambda_kB(1), lambda_kB(2)), ... + sprintf("PDF for sample 3 with estimated λ=%0.2f and k=%0.2f", ... + lambda_kC(1), lambda_kC(2))}) + title ("Three population samples from different Weibull distibutions") + hold off +***** test + x = 1:50; + [paramhat, paramci] = wblfit (x); + paramhat_out = [28.3636, 1.7130]; + paramci_out = [23.9531, 1.3551; 33.5861, 2.1655]; + assert (paramhat, paramhat_out, 1e-4); + assert (paramci, paramci_out, 1e-4); +***** test + x = 1:50; + [paramhat, paramci] = wblfit (x, 0.01); + paramci_out = [22.7143, 1.2589; 35.4179, 2.3310]; + assert (paramci, paramci_out, 1e-4); +***** error wblfit (ones (2,5)); +***** error wblfit ([-1 2 3 4]); +***** error wblfit ([1, 2, 3, 4, 5], 1.2); +***** error wblfit ([1, 2, 3, 4, 5], 0); +***** error wblfit ([1, 2, 3, 4, 5], "alpha"); +***** error ... + wblfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); +***** error ... + wblfit ([1, 2, 3, 4, 5], [], [1 1 0 1 1]'); +***** error ... + wblfit ([1, 2, 3, 4, 5], 0.05, zeros (1,5), [1 1 0]); +***** error ... + wblfit ([1, 2, 3, 4, 5], [], [], [1 1 0 -1 1]); +***** error ... + wblfit ([1, 2, 3, 4, 5], [], [], [1 1 0 1 1]'); +***** error ... + wblfit ([1, 2, 3, 4, 5], 0.05, [], [], 2); +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_fit/nbinfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/nbinfit.m +***** demo + ## Sample 2 populations from different negative binomial distibutions + randp ("seed", 5); randg ("seed", 5); # for reproducibility + r1 = nbinrnd (2, 0.15, 5000, 1); + randp ("seed", 8); randg ("seed", 8); # for reproducibility + r2 = nbinrnd (5, 0.2, 5000, 1); + r = [r1, r2]; - ## Test Edges - assert (hist3 (Xv, "Edges", {1:10, 1:10}), eye (10)) - assert (hist3 (Xv, "Edges", {3:8, 3:8}), eye (6)) - assert (hist3 (Xv, "Edges", {2:9, 3:8}), [zeros(1, 6); eye(6); zeros(1, 6)]) + ## Plot them normalized and fix their colors + hist (r, [0:51], 1); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + hold on - N_exp = zeros (14); - N_exp(3:12, 3:12) = eye (10); - assert (hist3 (Xv, "Edges", {-1:12, -1:12}), N_exp) + ## Estimate their probability of success + r_psA = nbinfit (r(:,1)); + r_psB = nbinfit (r(:,2)); - ## Test for Nbins - assert (hist3 (Xv), eye (10)) - assert (hist3 (Xv, [10 10]), eye (10)) - assert (hist3 (Xv, "nbins", [10 10]), eye (10)) - assert (hist3 (Xv, [5 5]), eye (5) * 2) + ## Plot their estimated PDFs + x = [0:40]; + y = nbinpdf (x, r_psA(1), r_psA(2)); + plot (x, y, "-pg"); + x = [min(r(:,2)):max(r(:,2))]; + y = nbinpdf (x, r_psB(1), r_psB(2)); + plot (x, y, "-sc"); + ylim ([0, 0.1]) + xlim ([0, 50]) + legend ({"Normalized HIST of sample 1 with r=2 and ps=0.15", ... + "Normalized HIST of sample 2 with r=5 and ps=0.2", ... + sprintf("PDF for sample 1 with estimated r=%0.2f and ps=%0.2f", ... + r_psA(1), r_psA(2)), ... + sprintf("PDF for sample 2 with estimated r=%0.2f and ps=%0.2f", ... + r_psB(1), r_psB(2))}) + title ("Two population samples from negative different binomial distibutions") + hold off +***** test + [paramhat, paramci] = nbinfit ([1:50]); + assert (paramhat, [2.420857, 0.086704], 1e-6); + assert (paramci(:,1), [1.382702; 3.459012], 1e-6); + assert (paramci(:,2), [0.049676; 0.123732], 1e-6); +***** test + [paramhat, paramci] = nbinfit ([1:20]); + assert (paramhat, [3.588233, 0.254697], 1e-6); + assert (paramci(:,1), [0.451693; 6.724774], 1e-6); + assert (paramci(:,2), [0.081143; 0.428251], 1e-6); +***** test + [paramhat, paramci] = nbinfit ([1:10]); + assert (paramhat, [8.8067, 0.6156], 1e-4); + assert (paramci(:,1), [0; 30.7068], 1e-4); + assert (paramci(:,2), [0.0217; 1], 1e-4); +***** test + [paramhat, paramci] = nbinfit ([1:10], 0.05, ones (1, 10)); + assert (paramhat, [8.8067, 0.6156], 1e-4); + assert (paramci(:,1), [0; 30.7068], 1e-4); + assert (paramci(:,2), [0.0217; 1], 1e-4); +***** test + [paramhat, paramci] = nbinfit ([1:11], 0.05, [ones(1, 10), 0]); + assert (paramhat, [8.8067, 0.6156], 1e-4); + assert (paramci(:,1), [0; 30.7068], 1e-4); + assert (paramci(:,2), [0.0217; 1], 1e-4); +***** error nbinfit ([-1 2 3 3]) +***** error nbinfit (ones (2)) +***** error nbinfit ([1 2 1.2 3]) +***** error nbinfit ([1 2 3], 0) +***** error nbinfit ([1 2 3], 1.2) +***** error nbinfit ([1 2 3], [0.02 0.05]) +***** error ... + nbinfit ([1, 2, 3, 4, 5], 0.05, [1, 2, 3, 2]); +***** error ... + nbinfit ([1, 2, 3, 4, 5], 0.05, [1, 2, 3, 2, -1]); +***** error ... + nbinfit ([1, 2, 3, 4, 5], 0.05, [1, 2, 3, 2, 1.5]); +***** error ... + nbinfit ([1, 2, 3, 4, 5], 0.05, struct ("option", 234)); +***** error ... + nbinfit ([1, 2, 3, 4, 5], 0.05, ones (1,5), struct ("option", 234)); +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_fit/binofit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/binofit.m +***** demo + ## Sample 2 populations from different binomial distibutions + rand ("seed", 1); # for reproducibility + r1 = binornd (50, 0.15, 1000, 1); + rand ("seed", 2); # for reproducibility + r2 = binornd (100, 0.5, 1000, 1); + r = [r1, r2]; - N_exp = zeros (7, 5); - N_exp([1 9 10 18 26 27 35]) = [2 1 1 2 1 1 2]; - assert (hist3 (Xv, [7 5]), N_exp) -***** test # bug #51059 - D = [1 1; NaN 2; 3 1; 3 3; 1 NaN; 3 1]; - [c, nn] = hist3 (D, {0:4, 0:4}); - exp_c = zeros (5); - exp_c([7 9 19]) = [1 2 1]; - assert (c, exp_c) - assert (nn, {0:4, 0:4}) + ## Plot them normalized and fix their colors + hist (r, 23, 0.35); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + hold on + + ## Estimate their probability of success + pshatA = binofit (r(:,1), 50); + pshatB = binofit (r(:,2), 100); + + ## Plot their estimated PDFs + x = [min(r(:,1)):max(r(:,1))]; + y = binopdf (x, 50, mean (pshatA)); + plot (x, y, "-pg"); + x = [min(r(:,2)):max(r(:,2))]; + y = binopdf (x, 100, mean (pshatB)); + plot (x, y, "-sc"); + ylim ([0, 0.2]) + legend ({"Normalized HIST of sample 1 with ps=0.15", ... + "Normalized HIST of sample 2 with ps=0.50", ... + sprintf("PDF for sample 1 with estimated ps=%0.2f", ... + mean (pshatA)), ... + sprintf("PDF for sample 2 with estimated ps=%0.2f", ... + mean (pshatB))}) + title ("Two population samples from different binomial distibutions") + hold off ***** test - [c, nn] = hist3 ([1 8]); - exp_c = zeros (10, 10); - exp_c(6, 6) = 1; - exp_nn = {-4:5, 3:12}; - assert (c, exp_c) - assert (nn, exp_nn, eps) + x = 0:3; + [pshat, psci] = binofit (x, 3); + assert (pshat, [0, 0.3333, 0.6667, 1], 1e-4); + assert (psci(1,:), [0, 0.7076], 1e-4); + assert (psci(2,:), [0.0084, 0.9057], 1e-4); + assert (psci(3,:), [0.0943, 0.9916], 1e-4); + assert (psci(4,:), [0.2924, 1.0000], 1e-4); +***** error ... + binofit ([1 2 3 4]) +***** error ... + binofit ([-1, 4, 3, 2], [1, 2, 3, 3]) +***** error binofit (ones(2), [1, 2, 3, 3]) +***** error ... + binofit ([1, 4, 3, 2], [1, 2, -1, 3]) +***** error ... + binofit ([1, 4, 3, 2], [5, 5, 5]) +***** error ... + binofit ([1, 4, 3, 2], [5, 3, 5, 5]) +***** error binofit ([1, 2, 1], 3, 1.2); +***** error binofit ([1, 2, 1], 3, 0); +***** error binofit ([1, 2, 1], 3, "alpha"); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/dist_fit/rayllike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/rayllike.m +***** test + x = [1 3 2 4 5 4 3 4]; + [nlogL, acov] = rayllike (3.25, x); + assert (nlogL, 14.7442, 1e-4) +***** test + x = [1 2 3 4 5]; + f = [1 1 2 3 1]; + [nlogL, acov] = rayllike (3.25, x, [], f); + assert (nlogL, 14.7442, 1e-4) +***** test + x = [1 2 3 4 5 6]; + f = [1 1 2 3 1 0]; + [nlogL, acov] = rayllike (3.25, x, [], f); + assert (nlogL, 14.7442, 1e-4) +***** test + x = [1 2 3 4 5 6]; + c = [0 0 0 0 0 1]; + f = [1 1 2 3 1 0]; + [nlogL, acov] = rayllike (3.25, x, c, f); + assert (nlogL, 14.7442, 1e-4) +***** error rayllike (1) +***** error rayllike ([1 2 3], [1 2]) +***** error ... + rayllike (3.25, ones (10, 2)) +***** error ... + rayllike (3.25, [1 2 3 -4 5]) +***** error ... + rayllike (3.25, [1, 2, 3, 4, 5], [1 1 0]); +***** error ... + rayllike (3.25, [1, 2, 3, 4, 5], [1 1 0 1 1]'); +***** error ... + rayllike (3.25, [1, 2, 3, 4, 5], zeros (1,5), [1 1 0]); +***** error ... + rayllike (3.25, [1, 2, 3, 4, 5], [], [1 1 0 1 1]'); +***** error ... + rayllike (3.25, ones (1, 8), [], [1 1 1 1 1 1 1 -1]) +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_fit/burrlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/burrlike.m +***** error burrlike (3.25) +***** error burrlike ([1, 2, 3], ones (2)) +***** error burrlike ([1, 2, 3], [-1, 3]) +***** error ... + burrlike ([1, 2], [1, 3, 5, 7]) +***** error ... + burrlike ([1, 2, 3, 4], [1, 3, 5, 7]) +***** error ... + burrlike ([1, 2, 3], [1:5], [0, 0, 0]) +***** error ... + burrlike ([1, 2, 3], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) +***** error ... + burrlike ([1, 2, 3], [1:5], [], [1, 1, 1]) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/dist_fit/ricelike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/ricelike.m +***** test + nlogL = ricelike ([15.3057344, 17.6668458], [1:50]); + assert (nlogL, 204.5230311010569, 1e-12); +***** test + nlogL = ricelike ([2.312346885, 1.681228265], [1:5]); + assert (nlogL, 8.65562164930058, 1e-12); +***** error ricelike (3.25) +***** error ricelike ([5, 0.2], ones (2)) +***** error ... + ricelike ([1, 0.2, 3], [1, 3, 5, 7]) +***** error ... + ricelike ([1.5, 0.2], [1:5], [0, 0, 0]) +***** error ... + ricelike ([1.5, 0.2], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) +***** error ... + ricelike ([1.5, 0.2], [1:5], [], [1, 1, 1]) +***** error ... + ricelike ([1.5, 0.2], [1:5], [], [1, 1, 1, 0, -1]) +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/dist_fit/logilike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/logilike.m +***** test + nlogL = logilike ([25.5, 8.7725], [1:50]); + assert (nlogL, 206.6769, 1e-4); +***** test + nlogL = logilike ([3, 0.8645], [1:5]); + assert (nlogL, 9.0699, 1e-4); +***** error logilike (3.25) +***** error logilike ([5, 0.2], ones (2)) +***** error ... + logilike ([1, 0.2, 3], [1, 3, 5, 7]) +***** error ... + logilike ([1.5, 0.2], [1:5], [0, 0, 0]) +***** error ... + logilike ([1.5, 0.2], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) +***** error ... + logilike ([1.5, 0.2], [1:5], [], [1, 1, 1]) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/dist_fit/bisalike.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/bisalike.m +***** test + nlogL = bisalike ([16.2649, 1.0156], [1:50]); + assert (nlogL, 215.5905, 1e-4); +***** test + nlogL = bisalike ([2.5585, 0.5839], [1:5]); + assert (nlogL, 8.9950, 1e-4); +***** error bisalike (3.25) +***** error bisalike ([5, 0.2], ones (2)) +***** error bisalike ([5, 0.2], [-1, 3]) +***** error ... + bisalike ([1, 0.2, 3], [1, 3, 5, 7]) +***** error ... + bisalike ([1.5, 0.2], [1:5], [0, 0, 0]) +***** error ... + bisalike ([1.5, 0.2], [1:5], [0, 0, 0, 0, 0], [1, 1, 1]) +***** error ... + bisalike ([1.5, 0.2], [1:5], [], [1, 1, 1]) +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/dist_fit/gumbelfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/dist_fit/gumbelfit.m +***** demo + ## Sample 3 populations from different Gumbel distibutions + rand ("seed", 1); # for reproducibility + r1 = gumbelrnd (2, 5, 400, 1); + rand ("seed", 11); # for reproducibility + r2 = gumbelrnd (-5, 3, 400, 1); + rand ("seed", 16); # for reproducibility + r3 = gumbelrnd (14, 8, 400, 1); + r = [r1, r2, r3]; - [c, nn] = hist3 ([1 8], [10 11]); - exp_c = zeros (10, 11); - exp_c(6, 6) = 1; - exp_nn = {-4:5, 3:13}; - assert (c, exp_c) - assert (nn, exp_nn, eps) + ## Plot them normalized and fix their colors + hist (r, 25, 0.32); + h = findobj (gca, "Type", "patch"); + set (h(1), "facecolor", "c"); + set (h(2), "facecolor", "g"); + set (h(3), "facecolor", "r"); + ylim ([0, 0.28]) + xlim ([-11, 50]); + hold on + + ## Estimate their MU and BETA parameters + mu_betaA = gumbelfit (r(:,1)); + mu_betaB = gumbelfit (r(:,2)); + mu_betaC = gumbelfit (r(:,3)); + + ## Plot their estimated PDFs + x = [min(r(:)):max(r(:))]; + y = gumbelpdf (x, mu_betaA(1), mu_betaA(2)); + plot (x, y, "-pr"); + y = gumbelpdf (x, mu_betaB(1), mu_betaB(2)); + plot (x, y, "-sg"); + y = gumbelpdf (x, mu_betaC(1), mu_betaC(2)); + plot (x, y, "-^c"); + legend ({"Normalized HIST of sample 1 with μ=2 and β=5", ... + "Normalized HIST of sample 2 with μ=-5 and β=3", ... + "Normalized HIST of sample 3 with μ=14 and β=8", ... + sprintf("PDF for sample 1 with estimated μ=%0.2f and β=%0.2f", ... + mu_betaA(1), mu_betaA(2)), ... + sprintf("PDF for sample 2 with estimated μ=%0.2f and β=%0.2f", ... + mu_betaB(1), mu_betaB(2)), ... + sprintf("PDF for sample 3 with estimated μ=%0.2f and β=%0.2f", ... + mu_betaC(1), mu_betaC(2))}) + title ("Three population samples from different Gumbel distibutions") + hold off ***** test - [c, nn] = hist3 ([1 NaN; 2 3; 6 9; 8 NaN]); - exp_c = zeros (10, 10); - exp_c(2, 1) = 1; - exp_c(8, 10) = 1; - exp_nn = {linspace(1.35, 7.65, 10) linspace(3.3, 8.7, 10)}; - assert (c, exp_c) - assert (nn, exp_nn, eps*100) + x = 1:50; + [paramhat, paramci] = gumbelfit (x); + paramhat_out = [18.3188, 13.0509]; + paramci_out = [14.4882, 10.5294; 22.1495, 16.1763]; + assert (paramhat, paramhat_out, 1e-4); + assert (paramci, paramci_out, 1e-4); ***** test - [c, nn] = hist3 ([1 NaN; 2 NaN; 6 NaN; 8 NaN]); - exp_c = zeros (10, 10); - exp_nn = {linspace(1.35, 7.65, 10) NaN(1, 10)}; - assert (c, exp_c) - assert (nn, exp_nn, eps*100) + x = 1:50; + [paramhat, paramci] = gumbelfit (x, 0.01); + paramci_out = [13.2845, 9.8426; 23.3532, 17.3051]; + assert (paramci, paramci_out, 1e-4); +***** error gumbelfit (ones (2,5)); +***** error ... + gumbelfit (single (ones (1,5))); +***** error ... + gumbelfit ([1, 2, 3, 4, NaN]); +***** error gumbelfit ([1, 2, 3, 4, 5], 1.2); +***** error ... + gumbelfit ([1, 2, 3, 4, 5], 0.05, [1 1 0]); +***** error ... + gumbelfit ([1, 2, 3, 4, 5], 0.05, [], [1 1 0]); +***** error + gamfit ([1, 2, 3], 0.05, [], [1 5 -1]) +***** error ... + gumbelfit ([1, 2, 3, 4, 5], 0.05, [], [], 2); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/cdfcalc.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cdfcalc.m ***** test - [c, nn] = hist3 ([1 NaN; NaN 3; NaN 9; 8 NaN]); - exp_c = zeros (10, 10); - exp_nn = {linspace(1.35, 7.65, 10) linspace(3.3, 8.7, 10)}; - assert (c, exp_c) - assert (nn, exp_nn, eps*100) + x = [2, 4, 3, 2, 4, 3, 2, 5, 6, 4]; + [yCDF, xCDF, n, emsg, eid] = cdfcalc (x); + assert (yCDF, [0, 0.3, 0.5, 0.8, 0.9, 1]'); + assert (xCDF, [2, 3, 4, 5, 6]'); + assert (n, 10); +***** shared x + x = [2, 4, 3, 2, 4, 3, 2, 5, 6, 4]; +***** error yCDF = cdfcalc (x); +***** error [yCDF, xCDF] = cdfcalc (); +***** error [yCDF, xCDF] = cdfcalc (x, x); +***** warning [yCDF, xCDF] = cdfcalc (ones(10,2)); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/einstein.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/einstein.m +***** demo + einstein (0.4, 0.6) +***** demo + einstein (0.2, 0.5) +***** demo + einstein (0.6, 0.1) +***** test + hf = figure ("visible", "off"); + unwind_protect + tiles = einstein (0.4, 0.6); + assert (isstruct (tiles), true); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** error einstein +***** error einstein (0.5) +***** error einstein (0, 0.9) +***** error einstein (0.4, 1) +***** error einstein (-0.4, 1) +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/monotone_smooth.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/monotone_smooth.m +***** error ... + monotone_smooth (1) +***** error ... + monotone_smooth ("char", 1) +***** error ... + monotone_smooth ({1,2,3}, 1) +***** error ... + monotone_smooth (ones(20,3), 1) +***** error ... + monotone_smooth (1, "char") +***** error ... + monotone_smooth (1, {1,2,3}) +***** error ... + monotone_smooth (1, ones(20,3)) +***** error monotone_smooth (ones (10,1), ones(10,1), [1, 2]) +***** error monotone_smooth (ones (10,1), ones(10,1), {2}) +***** error monotone_smooth (ones (10,1), ones(10,1), "char") +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/bartlett_test.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/bartlett_test.m +***** error bartlett_test () +***** error ... + bartlett_test (1, 2, 3, 4); +***** error bartlett_test (randn (50, 2), 0); +***** error ... + bartlett_test (randn (50, 2), [1, 2, 3]); +***** error ... + bartlett_test (randn (50, 1), ones (55, 1)); +***** error ... + bartlett_test (randn (50, 1), ones (50, 2)); +***** error ... + bartlett_test (randn (50, 2), [], 1.2); +***** error ... + bartlett_test (randn (50, 2), [], "alpha"); +***** error ... + bartlett_test (randn (50, 1), [ones(25, 1); 2*ones(25, 1)], 1.2); +***** error ... + bartlett_test (randn (50, 1), [ones(25, 1); 2*ones(25, 1)], "err"); +***** warning ... + bartlett_test (randn (50, 1), [ones(24, 1); 2*ones(25, 1); 3]); +***** test + load examgrades + [h, pval, chisq, df] = bartlett_test (grades); + assert (h, 1); + assert (pval, 7.908647337018238e-08, 1e-14); + assert (chisq, 38.73324, 1e-5); + assert (df, 4); +***** test + load examgrades + [h, pval, chisq, df] = bartlett_test (grades(:,[2:4])); + assert (h, 1); + assert (pval, 0.01172, 1e-5); + assert (chisq, 8.89274, 1e-5); + assert (df, 2); +***** test + load examgrades + [h, pval, chisq, df] = bartlett_test (grades(:,[1,4])); + assert (h, 0); + assert (pval, 0.88118, 1e-5); + assert (chisq, 0.02234, 1e-5); + assert (df, 1); +***** test + load examgrades + grades = [grades; nan(10, 5)]; + [h, pval, chisq, df] = bartlett_test (grades(:,[1,4])); + assert (h, 0); + assert (pval, 0.88118, 1e-5); + assert (chisq, 0.02234, 1e-5); + assert (df, 1); +***** test + load examgrades + [h, pval, chisq, df] = bartlett_test (grades(:,[2,5]), 0.01); + assert (h, 0); + assert (pval, 0.01791, 1e-5); + assert (chisq, 5.60486, 1e-5); + assert (df, 1); +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/vartestn.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/vartestn.m +***** demo + ## Test the null hypothesis that the variances are equal across the five + ## columns of data in the students’ exam grades matrix, grades. + + load examgrades + vartestn (grades) +***** demo + ## Test the null hypothesis that the variances in miles per gallon (MPG) are + ## equal across different model years. + + load carsmall + vartestn (MPG, Model_Year) +***** demo + ## Use Levene’s test to test the null hypothesis that the variances in miles + ## per gallon (MPG) are equal across different model years. + + load carsmall + p = vartestn (MPG, Model_Year, "TestType", "LeveneAbsolute") +***** demo + ## Test the null hypothesis that the variances are equal across the five + ## columns of data in the students’ exam grades matrix, grades, using the + ## Brown-Forsythe test. Suppress the display of the summary table of + ## statistics and the box plot. + + load examgrades + [p, stats] = vartestn (grades, "TestType", "BrownForsythe", "Display", "off") +***** error vartestn (); +***** error vartestn (1); +***** error ... + vartestn ([1, 2, 3, 4, 5, 6, 7]); +***** error ... + vartestn ([1, 2, 3, 4, 5, 6, 7], []); +***** error ... + vartestn ([1, 2, 3, 4, 5, 6, 7], "TestType", "LeveneAbsolute"); +***** error ... + vartestn ([1, 2, 3, 4, 5, 6, 7], [], "TestType", "LeveneAbsolute"); +***** error ... + vartestn ([1, 2, 3, 4, 5, 6, 7], [1, 1, 1, 2, 2, 2, 2], "Display", "some"); +***** error ... + vartestn (ones (50,3), "Display", "some"); +***** error ... + vartestn (ones (50,3), "Display", "off", "testtype", "some"); +***** error ... + vartestn (ones (50,3), [], "som"); +***** error ... + vartestn (ones (50,3), [], "some", "some"); +***** error ... + vartestn (ones (50,3), [1, 2], "Display", "off"); +***** test + load examgrades + [p, stat] = vartestn (grades, "Display", "off"); + assert (p, 7.908647337018238e-08, 1e-14); + assert (stat.chisqstat, 38.7332, 1e-4); + assert (stat.df, 4); +***** test + load examgrades + [p, stat] = vartestn (grades, "Display", "off", "TestType", "LeveneAbsolute"); + assert (p, 9.523239714592791e-07, 1e-14); + assert (stat.fstat, 8.5953, 1e-4); + assert (stat.df, [4, 595]); +***** test + load examgrades + [p, stat] = vartestn (grades, "Display", "off", "TestType", "LeveneQuadratic"); + assert (p, 7.219514351897161e-07, 1e-14); + assert (stat.fstat, 8.7503, 1e-4); + assert (stat.df, [4, 595]); +***** test + load examgrades + [p, stat] = vartestn (grades, "Display", "off", "TestType", "BrownForsythe"); + assert (p, 1.312093241723211e-06, 1e-14); + assert (stat.fstat, 8.4160, 1e-4); + assert (stat.df, [4, 595]); +***** test + load examgrades + [p, stat] = vartestn (grades, "Display", "off", "TestType", "OBrien"); + assert (p, 8.235660885480556e-07, 1e-14); + assert (stat.fstat, 8.6766, 1e-4); + assert (stat.df, [4, 595]); +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/harmmean.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/harmmean.m +***** test + x = [0:10]; + y = [x;x+5;x+10]; + assert (harmmean (x), 0); + m = [0 8.907635160795225 14.30854471766802]; + assert (harmmean (y, 2), m', 4e-14); + assert (harmmean (y, "all"), 0); + y(2,4) = NaN; + m(2) = 9.009855936313949; + assert (harmmean (y, 2), [0 NaN m(3)]', 4e-14); + assert (harmmean (y', "omitnan"), m, 4e-14); + z = y + 20; + assert (harmmean (z, "all"), NaN); + assert (harmmean (z, "all", "includenan"), NaN); + assert (harmmean (z, "all", "omitnan"), 29.1108719858295, 4e-14); + m = [24.59488458841874 NaN 34.71244385944397]; + assert (harmmean (z'), m, 4e-14); + assert (harmmean (z', "includenan"), m, 4e-14); + m(2) = 29.84104075528277; + assert (harmmean (z', "omitnan"), m, 4e-14); + assert (harmmean (z, 2, "omitnan"), m', 4e-14); +***** test + x = repmat ([1:20;6:25], [5 2 6 3]); + assert (size (harmmean (x, [3 2])), [10 1 1 3]); + assert (size (harmmean (x, [1 2])), [1 1 6 3]); + assert (size (harmmean (x, [1 2 4])), [1 1 6]); + assert (size (harmmean (x, [1 4 3])), [1 40]); + assert (size (harmmean (x, [1 2 3 4])), [1 1]); +***** test + x = repmat ([1:20;6:25], [5 2 6 3]); + m = repmat ([5.559045930488016;13.04950789021461], [5 1 1 3]); + assert (harmmean (x, [3 2]), m, 4e-14); + x(2,5,6,3) = NaN; + m(2,3) = NaN; + assert (harmmean (x, [3 2]), m, 4e-14); + m(2,3) = 13.06617961315406; + assert (harmmean (x, [3 2], "omitnan"), m, 4e-14); +***** error harmmean ("char") +***** error harmmean ([1 -1 3]) +***** error ... + harmmean (repmat ([1:20;6:25], [5 2 6 3 5]), -1) +***** error ... + harmmean (repmat ([1:20;6:25], [5 2 6 3 5]), 0) +***** error ... + harmmean (repmat ([1:20;6:25], [5 2 6 3 5]), [1 1]) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/fishertest.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/fishertest.m +***** demo + ## A Fisher's exact test example + + x = [3, 1; 1, 3] + [h, p, stats] = fishertest(x) +***** assert (fishertest ([3, 4; 5, 7]), false); +***** assert (isa (fishertest ([3, 4; 5, 7]), "logical"), true); +***** test + [h, pval, stats] = fishertest ([3, 4; 5, 7]); + assert (pval, 1, 1e-14); + assert (stats.OddsRatio, 1.05); + CI = [0.159222057151289, 6.92429189601808]; + assert (stats.ConfidenceInterval, CI, 1e-14) +***** test + [h, pval, stats] = fishertest ([3, 4; 5, 0]); + assert (pval, 0.08080808080808080, 1e-14); + assert (stats.OddsRatio, 0); + assert (stats.ConfidenceInterval, [-Inf, Inf]) +***** error fishertest (); +***** error fishertest (1, 2, 3, 4, 5, 6); +***** error ... + fishertest (ones (2, 2, 2)); +***** error ... + fishertest ([1, 2; -3, 4]); +***** error ... + fishertest ([1, 2; 3, 4+i]); +***** error ... + fishertest ([1, 2; 3, 4.2]); +***** error ... + fishertest ([NaN, 2; 3, 4]); +***** error ... + fishertest ([1, Inf; 3, 4]); +***** error ... + fishertest (ones (2) * 1e8); +***** error ... + fishertest ([1, 2; 3, 4], "alpha", 0); +***** error ... + fishertest ([1, 2; 3, 4], "alpha", 1.2); +***** error ... + fishertest ([1, 2; 3, 4], "alpha", "val"); +***** error ... + fishertest ([1, 2; 3, 4], "tail", "val"); +***** error ... + fishertest ([1, 2; 3, 4], "alpha", 0.01, "tail", "val"); +***** error ... + fishertest ([1, 2; 3, 4], "alpha", 0.01, "badoption", 3); +19 tests, 19 passed, 0 known failure, 0 skipped +[inst/pcacov.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/pcacov.m +***** demo + x = [ 7 26 6 60; + 1 29 15 52; + 11 56 8 20; + 11 31 8 47; + 7 52 6 33; + 11 55 9 22; + 3 71 17 6; + 1 31 22 44; + 2 54 18 22; + 21 47 4 26; + 1 40 23 34; + 11 66 9 12; + 10 68 8 12 + ]; + Kxx = cov (x); + [coeff, latent, explained] = pcacov (Kxx) +***** test + load hald + Kxx = cov (ingredients); + [coeff,latent,explained] = pcacov(Kxx); + c_out = [-0.0678, -0.6460, 0.5673, 0.5062; ... + -0.6785, -0.0200, -0.5440, 0.4933; ... + 0.0290, 0.7553, 0.4036, 0.5156; ... + 0.7309, -0.1085, -0.4684, 0.4844]; + l_out = [517.7969; 67.4964; 12.4054; 0.2372]; + e_out = [ 86.5974; 11.2882; 2.0747; 0.0397]; + assert (coeff, c_out, 1e-4); + assert (latent, l_out, 1e-4); + assert (explained, e_out, 1e-4); +***** error pcacov (ones (2,3)) +***** error pcacov (ones (3,3,3)) +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/cdfplot.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/cdfplot.m +***** demo + x = randn(100,1); + cdfplot (x); +***** test + hf = figure ("visible", "off"); + unwind_protect + x = [2, 4, 3, 2, 4, 3, 2, 5, 6, 4]; + [hCDF, stats] = cdfplot (x); + assert (stats.min, 2); + assert (stats.max, 6); + assert (stats.median, 3.5); + assert (stats.std, 1.35400640077266, 1e-14); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** test + hf = figure ("visible", "off"); + unwind_protect + x = randn(100,1); + cdfplot (x); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** error cdfplot (); +***** error cdfplot ([x',x']); +***** error cdfplot ([NaN, NaN, NaN, NaN]); +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/regression_ttest.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/regression_ttest.m +***** error regression_ttest (); +***** error regression_ttest (1); +***** error ... + regression_ttest ([1 2 NaN]', [2 3 4]'); +***** error ... + regression_ttest ([1 2 Inf]', [2 3 4]'); +***** error ... + regression_ttest ([1 2 3+i]', [2 3 4]'); +***** error ... + regression_ttest ([1 2 3]', [2 3 NaN]'); +***** error ... + regression_ttest ([1 2 3]', [2 3 Inf]'); +***** error ... + regression_ttest ([1 2 3]', [3 4 3+i]'); +***** error ... + regression_ttest ([1 2 3]', [3 4 4 5]'); +***** error ... + regression_ttest ([1 2 3]', [2 3 4]', "alpha", 0); +***** error ... + regression_ttest ([1 2 3]', [2 3 4]', "alpha", 1.2); +***** error ... + regression_ttest ([1 2 3]', [2 3 4]', "alpha", [.02 .1]); +***** error ... + regression_ttest ([1 2 3]', [2 3 4]', "alpha", "a"); +***** error ... + regression_ttest ([1 2 3]', [2 3 4]', "some", 0.05); +***** error ... + regression_ttest ([1 2 3]', [2 3 4]', "tail", "val"); +***** error ... + regression_ttest ([1 2 3]', [2 3 4]', "alpha", 0.01, "tail", "val"); 16 tests, 16 passed, 0 known failure, 0 skipped +[inst/correlation_test.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/correlation_test.m +***** error correlation_test (); +***** error correlation_test (1); +***** error ... + correlation_test ([1 2 NaN]', [2 3 4]'); +***** error ... + correlation_test ([1 2 Inf]', [2 3 4]'); +***** error ... + correlation_test ([1 2 3+i]', [2 3 4]'); +***** error ... + correlation_test ([1 2 3]', [2 3 NaN]'); +***** error ... + correlation_test ([1 2 3]', [2 3 Inf]'); +***** error ... + correlation_test ([1 2 3]', [3 4 3+i]'); +***** error ... + correlation_test ([1 2 3]', [3 4 4 5]'); +***** error ... + correlation_test ([1 2 3]', [2 3 4]', "alpha", 0); +***** error ... + correlation_test ([1 2 3]', [2 3 4]', "alpha", 1.2); +***** error ... + correlation_test ([1 2 3]', [2 3 4]', "alpha", [.02 .1]); +***** error ... + correlation_test ([1 2 3]', [2 3 4]', "alpha", "a"); +***** error ... + correlation_test ([1 2 3]', [2 3 4]', "some", 0.05); +***** error ... + correlation_test ([1 2 3]', [2 3 4]', "tail", "val"); +***** error ... + correlation_test ([1 2 3]', [2 3 4]', "alpha", 0.01, "tail", "val"); +***** error ... + correlation_test ([1 2 3]', [2 3 4]', "method", 0.01); +***** error ... + correlation_test ([1 2 3]', [2 3 4]', "method", "some"); +***** test + x = [6 7 7 9 10 12 13 14 15 17]; + y = [19 22 27 25 30 28 30 29 25 32]; + [h, pval, stats] = correlation_test (x, y); + assert (stats.corrcoef, corr (x', y'), 1e-14); + assert (pval, 0.0223, 1e-4); +***** test + x = [6 7 7 9 10 12 13 14 15 17]'; + y = [19 22 27 25 30 28 30 29 25 32]'; + [h, pval, stats] = correlation_test (x, y); + assert (stats.corrcoef, corr (x, y), 1e-14); + assert (pval, 0.0223, 1e-4); +20 tests, 20 passed, 0 known failure, 0 skipped +[inst/signtest.m] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/inst/signtest.m +***** error signtest (); +***** error signtest ([]); +***** error signtest (ones(1,10), ones(1,8)); +***** error signtest (ones(1,10), ones(2,10)); +***** error signtest (ones(2,10), 0); +***** error signtest (ones(1,10), zeros(1,10), "alpha", 1.4) +***** error signtest (ones(1,10), zeros(1,10), "tail", "<") +***** error signtest (ones(1,10), zeros(1,10), "method", "some") +***** test + [pval, h, stats] = signtest ([-ones(1, 1000) 1], 0, "tail", "left"); + assert (pval, 1.091701889420221e-218, 1e-14); + assert (h, 1); + assert (stats.zval, -31.5437631079266, 1e-14); +***** test + [pval, h, stats] = signtest ([-2 -1 0 2 1 3 1], 0); + assert (pval, 0.6875000000000006, 1e-14); + assert (h, 0); + assert (stats.zval, NaN); + assert (stats.sign, 4); +***** test + [pval, h, stats] = signtest ([-2 -1 0 2 1 3 1], 0, "method", "approximate"); + assert (pval, 0.6830913983096086, 1e-14); + assert (h, 0); + assert (stats.zval, 0.4082482904638631, 1e-14); + assert (stats.sign, 4); +11 tests, 11 passed, 0 known failure, 0 skipped Checking C++ files ... [src/svmpredict.cc] >>>>> /build/reproducible-path/octave-statistics-1.6.5/src/svmpredict.cc @@ -30402,6 +30438,20 @@ p = svmpredict (single (L), D, model); ***** error p = svmpredict (L, D, 123); 5 tests, 5 passed, 0 known failure, 0 skipped +[src/libsvmread.cc] +>>>>> /build/reproducible-path/octave-statistics-1.6.5/src/libsvmread.cc +***** error [L, D] = libsvmread (24); +***** error ... + D = libsvmread ("filename"); +***** test + [L, D] = libsvmread (file_in_loadpath ("heart_scale.dat")); + assert (size (L), [270, 1]); + assert (size (D), [270, 13]); +***** test + [L, D] = libsvmread (file_in_loadpath ("heart_scale.dat")); + assert (issparse (L), false); + assert (issparse (D), true); +4 tests, 4 passed, 0 known failure, 0 skipped [src/libsvmwrite.cc] >>>>> /build/reproducible-path/octave-statistics-1.6.5/src/libsvmwrite.cc ***** shared L, D @@ -30438,20 +30488,6 @@ ***** error ... model = svmtrain (L, D, "", ""); 4 tests, 4 passed, 0 known failure, 0 skipped -[src/libsvmread.cc] ->>>>> /build/reproducible-path/octave-statistics-1.6.5/src/libsvmread.cc -***** error [L, D] = libsvmread (24); -***** error ... - D = libsvmread ("filename"); -***** test - [L, D] = libsvmread (file_in_loadpath ("heart_scale.dat")); - assert (size (L), [270, 1]); - assert (size (D), [270, 13]); -***** test - [L, D] = libsvmread (file_in_loadpath ("heart_scale.dat")); - assert (issparse (L), false); - assert (issparse (D), true); -4 tests, 4 passed, 0 known failure, 0 skipped Done running the unit tests. Summary: 10345 tests, 10342 passed, 1 known failures, 2 skipped dh_install -O--buildsystem=octave @@ -30488,8 +30524,8 @@ dh_md5sums -O--buildsystem=octave dh_builddeb -O--buildsystem=octave dpkg-deb: building package 'octave-statistics' in '../octave-statistics_1.6.5-3_armhf.deb'. -dpkg-deb: building package 'octave-statistics-common' in '../octave-statistics-common_1.6.5-3_all.deb'. dpkg-deb: building package 'octave-statistics-dbgsym' in '../octave-statistics-dbgsym_1.6.5-3_armhf.deb'. +dpkg-deb: building package 'octave-statistics-common' in '../octave-statistics-common_1.6.5-3_all.deb'. dpkg-genbuildinfo --build=binary -O../octave-statistics_1.6.5-3_armhf.buildinfo dpkg-genchanges --build=binary -O../octave-statistics_1.6.5-3_armhf.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -30497,12 +30533,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/9589/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/9589/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/24856 and its subdirectories -I: Current time: Wed Apr 3 12:47:14 -12 2024 -I: pbuilder-time-stamp: 1712191634 +I: removing directory /srv/workspace/pbuilder/9589 and its subdirectories +I: Current time: Thu Apr 4 15:15:25 +14 2024 +I: pbuilder-time-stamp: 1712193325