Diff of the two buildlogs: -- --- b1/build.log 2024-10-27 13:47:59.548425460 +0000 +++ b2/build.log 2024-10-27 14:19:38.844998202 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat Nov 29 07:52:33 -12 2025 -I: pbuilder-time-stamp: 1764445953 +I: Current time: Mon Oct 28 03:48:03 +14 2024 +I: pbuilder-time-stamp: 1730036883 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -28,54 +28,86 @@ dpkg-source: info: applying test-ClassificationPartitionedModel.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/54561/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/58979/tmp/hooks/D01_modify_environment starting +debug: Running on ionos12-i386. +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 Oct 27 13: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/58979/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/58979/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='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=22 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='i386' + 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]="32" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") + BASH_VERSION='5.2.32(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=10 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='eed34f3166714cefbe84ef8336909f93' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - 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='54561' - PS1='# ' - PS2='> ' + INVOCATION_ID=366ceafc2e5940e9949beb86010dc22d + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + 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=58979 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.k7hC0Whs/pbuilderrc_sO2w --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.k7hC0Whs/b1 --logfile b1/build.log octave-statistics_1.7.0-2.dsc' - SUDO_GID='112' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://213.165.73.152:3128' + 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.k7hC0Whs/pbuilderrc_zdHS --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.k7hC0Whs/b2 --logfile b2/build.log octave-statistics_1.7.0-2.dsc' + SUDO_GID=112 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://46.16.76.132:3128 I: uname -a - Linux ionos6-i386 6.1.0-26-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.112-1 (2024-09-30) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-26-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.112-1 (2024-09-30) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 4 2024 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/54561/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 4 21:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/58979/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -636,7 +668,7 @@ Get: 514 http://deb.debian.org/debian unstable/main i386 octave-dev i386 9.2.0-3+b1 [1004 kB] Get: 515 http://deb.debian.org/debian unstable/main i386 dh-octave all 1.8.0 [22.7 kB] Get: 516 http://deb.debian.org/debian unstable/main i386 octave-io i386 2.6.4-3+b2 [204 kB] -Fetched 209 MB in 2s (87.4 MB/s) +Fetched 209 MB in 4s (58.3 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package netbase. (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 ... 19933 files and directories currently installed.) @@ -2754,7 +2786,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/octave-statistics-1.7.0/ && 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.7.0-2_source.changes +I: user script /srv/workspace/pbuilder/58979/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/58979/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/octave-statistics-1.7.0/ && 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.7.0-2_source.changes dpkg-buildpackage: info: source package octave-statistics dpkg-buildpackage: info: source version 1.7.0-2 dpkg-buildpackage: info: source distribution unstable @@ -2791,13 +2827,13 @@ 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.7.0/debian/tmp/usr/share/octave/packages /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/lib/i386-linux-gnu/octave/packages make[1]: Entering directory '/build/reproducible-path/octave-statistics-1.7.0/src' /usr/bin/mkoctfile --verbose editDistance.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security editDistance.cc -o /tmp/oct-4Q8TFI.o -g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o editDistance.oct /tmp/oct-4Q8TFI.o -shared -Wl,-Bsymbolic -Wl,-z,relro -flto=auto -ffat-lto-objects -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security editDistance.cc -o /tmp/oct-CaDAg6.o +g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o editDistance.oct /tmp/oct-CaDAg6.o -shared -Wl,-Bsymbolic -Wl,-z,relro -flto=auto -ffat-lto-objects -Wl,-z,relro /usr/bin/mkoctfile --verbose libsvmread.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security libsvmread.cc -o /tmp/oct-UgsFMc.o -g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o libsvmread.oct /tmp/oct-UgsFMc.o -shared -Wl,-Bsymbolic -Wl,-z,relro -flto=auto -ffat-lto-objects -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security libsvmread.cc -o /tmp/oct-DiF5lY.o +g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o libsvmread.oct /tmp/oct-DiF5lY.o -shared -Wl,-Bsymbolic -Wl,-z,relro -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-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security libsvmwrite.cc -o /tmp/oct-RtiaSp.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security libsvmwrite.cc -o /tmp/oct-YbE4VH.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]); @@ -2805,26 +2841,26 @@ | | | | long unsigned int size_t {aka unsigned int} | %u -g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o libsvmwrite.oct /tmp/oct-RtiaSp.o -shared -Wl,-Bsymbolic -Wl,-z,relro -flto=auto -ffat-lto-objects -Wl,-z,relro +g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o libsvmwrite.oct /tmp/oct-YbE4VH.o -shared -Wl,-Bsymbolic -Wl,-z,relro -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-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security svmpredict.cc -o /tmp/oct-wTYkrd.o -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security svm.cpp -o /tmp/oct-jYe0OI.o -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security svm_model_octave.cc -o /tmp/oct-aZYrZ8.o -g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o svmpredict.oct /tmp/oct-wTYkrd.o /tmp/oct-jYe0OI.o /tmp/oct-aZYrZ8.o -shared -Wl,-Bsymbolic -Wl,-z,relro -flto=auto -ffat-lto-objects -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security svmpredict.cc -o /tmp/oct-cq5L5m.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security svm.cpp -o /tmp/oct-KSxnYJ.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security svm_model_octave.cc -o /tmp/oct-YzSPE6.o +g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o svmpredict.oct /tmp/oct-cq5L5m.o /tmp/oct-KSxnYJ.o /tmp/oct-YzSPE6.o -shared -Wl,-Bsymbolic -Wl,-z,relro -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-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security svmtrain.cc -o /tmp/oct-IAvJ4e.o -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security svm.cpp -o /tmp/oct-vrs8Lb.o -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security svm_model_octave.cc -o /tmp/oct-5URg6c.o -g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o svmtrain.oct /tmp/oct-IAvJ4e.o /tmp/oct-vrs8Lb.o /tmp/oct-5URg6c.o -shared -Wl,-Bsymbolic -Wl,-z,relro -flto=auto -ffat-lto-objects -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security svmtrain.cc -o /tmp/oct-ffG2sn.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security svm.cpp -o /tmp/oct-SP2hFM.o +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security svm_model_octave.cc -o /tmp/oct-4tASni.o +g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o svmtrain.oct /tmp/oct-ffG2sn.o /tmp/oct-SP2hFM.o /tmp/oct-4tASni.o -shared -Wl,-Bsymbolic -Wl,-z,relro -flto=auto -ffat-lto-objects -Wl,-z,relro /usr/bin/mkoctfile --verbose fcnntrain.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security fcnntrain.cc -o /tmp/oct-Qrdm8A.o -g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o fcnntrain.oct /tmp/oct-Qrdm8A.o -shared -Wl,-Bsymbolic -Wl,-z,relro -flto=auto -ffat-lto-objects -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security fcnntrain.cc -o /tmp/oct-Kpdj0f.o +g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o fcnntrain.oct /tmp/oct-Kpdj0f.o -shared -Wl,-Bsymbolic -Wl,-z,relro -flto=auto -ffat-lto-objects -Wl,-z,relro /usr/bin/mkoctfile --verbose fcnnpredict.cc -g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security fcnnpredict.cc -o /tmp/oct-zPXwZt.o -g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o fcnnpredict.oct /tmp/oct-zPXwZt.o -shared -Wl,-Bsymbolic -Wl,-z,relro -flto=auto -ffat-lto-objects -Wl,-z,relro +g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security fcnnpredict.cc -o /tmp/oct-qHzmiB.o +g++ -I/usr/include/octave-9.2.0/octave/.. -I/usr/include/octave-9.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -ffile-prefix-map=/build/reproducible-path/octave-statistics-1.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -o fcnnpredict.oct /tmp/oct-qHzmiB.o -shared -Wl,-Bsymbolic -Wl,-z,relro -flto=auto -ffat-lto-objects -Wl,-z,relro make[1]: Leaving directory '/build/reproducible-path/octave-statistics-1.7.0/src' copyfile /build/reproducible-path/octave-statistics-1.7.0/./src/editDistance.oct /build/reproducible-path/octave-statistics-1.7.0/./src/fcnnpredict.oct /build/reproducible-path/octave-statistics-1.7.0/./src/fcnntrain.oct /build/reproducible-path/octave-statistics-1.7.0/./src/libsvmread.oct /build/reproducible-path/octave-statistics-1.7.0/./src/libsvmwrite.oct /build/reproducible-path/octave-statistics-1.7.0/./src/svmpredict.oct /build/reproducible-path/octave-statistics-1.7.0/./src/svmtrain.oct /build/reproducible-path/octave-statistics-1.7.0/./src/editDistance.cc-tst /build/reproducible-path/octave-statistics-1.7.0/./src/fcnnpredict.cc-tst /build/reproducible-path/octave-statistics-1.7.0/./src/fcnntrain.cc-tst /build/reproducible-path/octave-statistics-1.7.0/./src/libsvmread.cc-tst /build/reproducible-path/octave-statistics-1.7.0/./src/libsvmwrite.cc-tst /build/reproducible-path/octave-statistics-1.7.0/./src/svmpredict.cc-tst /build/reproducible-path/octave-statistics-1.7.0/./src/svmtrain.cc-tst /build/reproducible-path/octave-statistics-1.7.0/./inst/i686-pc-linux-gnu-api-v59 -warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/mean.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/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 @@ -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.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/std.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/var.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 @@ -2842,7 +2878,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.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/mad.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/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 @@ -2851,7 +2887,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.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/var.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/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 @@ -2860,7 +2896,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.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/median.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/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 @@ -2875,28 +2911,579 @@ Checking package... Run the unit tests... Checking m files ... -warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/mean.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/std.m shadows a core library function warning: called from - /tmp/tmp.oURe6eLqNP at line 12 column 1 + /tmp/tmp.HefmNvV97z at line 12 column 1 -warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/std.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/var.m shadows a core library function warning: called from - /tmp/tmp.oURe6eLqNP at line 12 column 1 + /tmp/tmp.HefmNvV97z at line 12 column 1 -warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/mad.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/median.m shadows a core library function warning: called from - /tmp/tmp.oURe6eLqNP at line 12 column 1 + /tmp/tmp.HefmNvV97z at line 12 column 1 -warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/var.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/mad.m shadows a core library function warning: called from - /tmp/tmp.oURe6eLqNP at line 12 column 1 + /tmp/tmp.HefmNvV97z at line 12 column 1 -warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/median.m shadows a core library function +warning: function /build/reproducible-path/octave-statistics-1.7.0/debian/tmp/usr/share/octave/packages/statistics-1.7.0/shadow9/mean.m shadows a core library function warning: called from - /tmp/tmp.oURe6eLqNP at line 12 column 1 + /tmp/tmp.HefmNvV97z at line 12 column 1 -[inst/pcacov.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/pcacov.m +[inst/squareform.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/cholcov.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/dendrogram.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 +warning: using the gnuplot graphics toolkit is discouraged + +The gnuplot graphics toolkit is not actively maintained and has a number +of limitations that are unlikely to be fixed. Communication with gnuplot +uses a one-directional pipe and limited information is passed back to the +Octave interpreter so most changes made interactively in the plot window +will not be reflected in the graphics properties managed by Octave. For +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. +***** 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/chi2gof.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fitcdiscr.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitcdiscr.m +***** demo + ## Train a linear discriminant classifier for Gamma = 0.5 + ## and plot the decision boundaries. + + load fisheriris + idx = ! strcmp (species, "setosa"); + X = meas(idx,3:4); + Y = cast (strcmpi (species(idx), "virginica"), "double"); + obj = fitcdiscr (X, Y, "Gamma", 0.5) + 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 ("Linear Discriminant Analysis Decision Boundary"); + legend ({"Versicolor Region", "Virginica Region", ... + "Sampled Versicolor", "Sampled Virginica"}, ... + "location", "northwest") + axis tight + hold off +***** test + load fisheriris + Mdl = fitcdiscr (meas, species, "Gamma", 0.5); + [label, score, cost] = predict (Mdl, [2, 2, 2, 2]); + assert (label, {'versicolor'}) + assert (score, [0, 0.9999, 0.0001], 1e-4) + assert (cost, [1, 0.0001, 0.9999], 1e-4) + [label, score, cost] = predict (Mdl, [2.5, 2.5, 2.5, 2.5]); + assert (label, {'versicolor'}) + assert (score, [0, 0.6368, 0.3632], 1e-4) + assert (cost, [1, 0.3632, 0.6368], 1e-4) + assert (class (Mdl), "ClassificationDiscriminant"); + assert ({Mdl.X, Mdl.Y, Mdl.NumObservations}, {meas, species, 150}) + assert ({Mdl.DiscrimType, Mdl.ResponseName}, {"linear", "Y"}) + assert ({Mdl.Gamma, Mdl.MinGamma}, {0.5, 0}) + assert (Mdl.ClassNames, unique (species)) + sigma = [0.265008, 0.046361, 0.083757, 0.019201; ... + 0.046361, 0.115388, 0.027622, 0.016355; ... + 0.083757, 0.027622, 0.185188, 0.021333; ... + 0.019201, 0.016355, 0.021333, 0.041882]; + assert (Mdl.Sigma, sigma, 1e-6) + mu = [5.0060, 3.4280, 1.4620, 0.2460; ... + 5.9360, 2.7700, 4.2600, 1.3260; ... + 6.5880, 2.9740, 5.5520, 2.0260]; + assert (Mdl.Mu, mu, 1e-14) + assert (Mdl.LogDetSigma, -8.6884, 1e-4) +***** error fitcdiscr () +***** error fitcdiscr (ones (4,1)) +***** error + fitcdiscr (ones (4,2), ones (4, 1), "K") +***** error + fitcdiscr (ones (4,2), ones (3, 1)) +***** error + fitcdiscr (ones (4,2), ones (3, 1), "K", 2) +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/knnsearch.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/probit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/normplot.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/mahal.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/pcares.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/pcares.m ***** demo x = [ 7 26 6 60; 1 29 15 52; @@ -2910,186 +3497,1668 @@ 21 47 4 26; 1 40 23 34; 11 66 9 12; - 10 68 8 12 - ]; - Kxx = cov (x); - [coeff, latent, explained] = pcacov (Kxx) + 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) ***** 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)) + 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/loadmodel.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/loadmodel.m -***** error loadmodel () -***** error ... - loadmodel ("fisheriris.mat") -***** error ... - loadmodel ("fail_loadmodel.mdl") -***** error ... - loadmodel ("fail_load_model.mdl") -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/mcnemar_test.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/mcnemar_test.m +[inst/chi2test.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - [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); + x = [11, 3, 8; 2, 9, 14; 12, 13, 28]; + p = chi2test (x); + assert (p, 0.017787, 1e-6); ***** test - [h, pval, chisq] = mcnemar_test ([59,6;16,80]); - assert (h, 1); - assert (pval, 0.034690, 1e-6); - assert (isempty (chisq), true); + x = [11, 3, 8; 2, 9, 14; 12, 13, 28]; + [p, chisq] = chi2test (x); + assert (chisq, 11.9421, 1e-4); ***** 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); + x = [11, 3, 8; 2, 9, 14; 12, 13, 28]; + [p, chisq, df] = chi2test (x); + assert (df, 4); ***** 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); +***** 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 - [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); + [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 - [h, pval, chisq] = mcnemar_test ([59,6;16,80], "exact"); - assert (h, 0); - assert (pval, 0.052479, 1e-6); - assert (isempty (chisq), true); + [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 - [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); + [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 - [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/ttest.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/ttest.m + [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 - 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/adtest.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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); + [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/normalise_distribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/normalise_distribution.m ***** 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); + v = normalise_distribution ([1 2 3], [], 1); + assert (v, [0 0 0]) ***** test - load examgrades - x = grades(:,1); - [h, pval, adstat, cv] = adtest (x, "Distribution", "ev"); - assert (h, false); - assert (pval, 0.071363, 1e-6); + v = normalise_distribution ([1 2 3], [], 2); + assert (v, norminv ([1 3 5] / 6), 3 * eps) ***** test - load examgrades - x = grades(:,1); - [h, pval, adstat, cv] = adtest (x, "Distribution", {"norm", 75, 10}); + 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/dist_stat/unidstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/lognstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/chi2stat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tlsstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/geostat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/logistat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/invgstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncx2stat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/loglstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/normstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/dist_stat/raylstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/poisstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nbinstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ricestat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/bisastat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nakastat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hnstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hygestat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/expstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nctstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/evstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gevstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gamstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/betastat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gpstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncfstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/wblstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/binostat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/plstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/burrstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/unifstat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tristat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/kmeans.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/qqplot.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/trimmean.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/barttest.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/signrank.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/signrank.m +***** test + load gradespaired.mat + [p, h, stats] = signrank (gradespaired(:,1), ... + gradespaired(:,2), 'tail', 'left'); + assert (p, 0.0047, 1e-4); + assert (h, true); + assert (stats.zval, -2.5982, 1e-4); + assert (stats.signedrank, 2017.5); +***** test + load ('gradespaired.mat'); + [p, h, stats] = signrank (gradespaired(:,1), gradespaired(:,2), ... + 'tail', 'left', 'method', 'exact'); + assert (p, 0.0045, 1e-4); + assert (h, true); + assert (stats.zval, NaN); + assert (stats.signedrank, 2017.5); +***** test + load mileage + [p, h, stats] = signrank (mileage(:,2), 33); + assert (p, 0.0312, 1e-4); + assert (h, true); + assert (stats.zval, NaN); + assert (stats.signedrank, 21); +***** test + load mileage + [p, h, stats] = signrank (mileage(:,2), 33, 'tail', 'right'); + assert (p, 0.0156, 1e-4); + assert (h, true); + assert (stats.zval, NaN); + assert (stats.signedrank, 21); +***** test + load mileage + [p, h, stats] = signrank (mileage(:,2), 33, 'tail', 'right', ... + 'alpha', 0.01, 'method', 'approximate'); + assert (p, 0.0180, 1e-4); assert (h, false); - assert (pval, 0.4687, 1e-4); -25 tests, 25 passed, 0 known failure, 0 skipped -[inst/slicesample.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/slicesample.m + assert (stats.zval, 2.0966, 1e-4); + assert (stats.signedrank, 21); +***** error signrank (ones (2)) +***** error ... + signrank ([1, 2, 3, 4], ones (2)) +***** error ... + signrank ([1, 2, 3, 4], [1, 2, 3]) +***** error ... + signrank ([1, 2, 3, 4], [], 'tail') +***** error ... + signrank ([1, 2, 3, 4], [], 'alpha', 1.2) +***** error ... + signrank ([1, 2, 3, 4], [], 'alpha', 0) +***** error ... + signrank ([1, 2, 3, 4], [], 'alpha', -0.05) +***** error ... + signrank ([1, 2, 3, 4], [], 'alpha', "a") +***** error ... + signrank ([1, 2, 3, 4], [], 'alpha', [0.01, 0.05]) +***** error ... + signrank ([1, 2, 3, 4], [], 'tail', 0.01) +***** error ... + signrank ([1, 2, 3, 4], [], 'tail', {"both"}) +***** error ... + signrank ([1, 2, 3, 4], [], 'tail', "some") +***** error ... + signrank ([1, 2, 3, 4], [], 'method', 'exact', 'tail', "some") +***** error ... + signrank ([1, 2, 3, 4], [], 'method', 0.01) +***** error ... + signrank ([1, 2, 3, 4], [], 'method', {"exact"}) +***** error ... + signrank ([1, 2, 3, 4], [], 'method', "some") +***** error ... + signrank ([1, 2, 3, 4], [], 'tail', "both", 'method', "some") +22 tests, 22 passed, 0 known failure, 0 skipped +[inst/rmmissing.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 = [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/evalclusters.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/evalclusters.m +***** demo + load fisheriris; + eva = evalclusters (meas, "kmeans", "calinskiharabasz", "KList", [1:6]) + plot (eva) +***** 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 + 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/hmmestimate.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tiedrank.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/tiedrank.m +***** test + [r,tieadj] = tiedrank ([10, 20, 30, 40, 20]); + assert (r, [1, 2.5, 4, 5, 2.5]); + assert (tieadj, 3); +***** test + [r,tieadj] = tiedrank ([10; 20; 30; 40; 20]); + assert (r, [1; 2.5; 4; 5; 2.5]); + assert (tieadj, 3); +***** test + [r,tieadj] = tiedrank ([10, 20, 30, 40, 20], 1); + assert (r, [1, 2.5, 4, 5, 2.5]); + assert (tieadj, [1; 0; 18]); +***** test + [r,tieadj] = tiedrank ([10, 20, 30, 40, 20], 0, 1); + assert (r, [1, 2.5, 2, 1, 2.5]); + assert (tieadj, 3); +***** test + [r,tieadj] = tiedrank ([10, 20, 30, 40, 20], 1, 1); + assert (r, [1, 2.5, 2, 1, 2.5]); + assert (tieadj, [1; 0; 18]); +***** error tiedrank (ones (2)) +***** error ... + tiedrank ([1, 2, 3, 4, 5], [1, 1]) +***** error ... + tiedrank ([1, 2, 3, 4, 5], "A") +***** error ... + tiedrank ([1, 2, 3, 4, 5], [true, true]) +***** error ... + tiedrank ([1, 2, 3, 4, 5], 0, [1, 1]) +***** error ... + tiedrank ([1, 2, 3, 4, 5], 0, "A") +***** error ... + tiedrank ([1, 2, 3, 4, 5], 0, [true, true]) +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/mhsample.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/mhsample.m ***** demo ## Define function to sample d = 2; @@ -3097,6095 +5166,3692 @@ rand ("seed", 5) # for reproducibility Sigma = rand (d); Sigma = (Sigma + Sigma'); - Sigma += eye (d)*abs (eigs (Sigma, 1, "sa")) * 1.1; + 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); + start = ones (1, 2); nsamples = 500; + sym = true; 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]); + 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)); + 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"); + 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; - 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); + 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)"); + 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); + 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 - start = 0.5; + nchain = 1e4; + start = rand (nchain, 1); 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, .15); - assert (var (smpl, 1), 1, .25); -***** error slicesample (); -***** error slicesample (1); -***** error slicesample (1, 1); -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/dist_obj/ExtremeValueDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (ExtremeValueDistribution, "invalidNAME", "pdf") -***** error ... - plot (ExtremeValueDistribution, "PlotType", "probability") -***** 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) -95 tests, 95 passed, 0 known failure, 0 skipped -[inst/dist_obj/RicianDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (RicianDistribution, "invalidNAME", "pdf") -***** error ... - plot (RicianDistribution, "PlotType", "probability") -***** 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) -97 tests, 97 passed, 0 known failure, 0 skipped -[inst/dist_obj/BirnbaumSaundersDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_obj/BirnbaumSaundersDistribution.m + 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/pdist2.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/multcompare.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/multcompare.m ***** demo - ## Generate a data set of 5000 random samples from a Birnbaum-Saunders - ## distribution with parameters β = 1 and γ = 0.5. Fit a Birnbaum-Saunders - ## distribution to this data and plot a PDF of the fitted distribution - ## superimposed on a histogram of the data - pd = makedist ("BirnbaumSaunders", "beta", 1, "gamma", 0.5) - randg ("seed", 21); - data = random (pd, 5000, 1); - pd = fitdist (data, "BirnbaumSaunders") - plot (pd) - msg = "Fitted Birnbaum-Saunders distribution with a = %0.2f and b = %0.2f"; - title (sprintf (msg, pd.beta, pd.gamma)) + ## Demonstration using balanced one-way ANOVA from anova1 + + x = ones (50, 4) .* [-2, 0, 1, 5]; + randn ("seed", 1); # for reproducibility + x = x + normrnd (0, 2, 50, 4); + groups = {"A", "B", "C", "D"}; + [p, tbl, stats] = anova1 (x, groups, "off"); + multcompare (stats); ***** demo - ## Plot the PDF of a Birnbaum-Saunders distribution, with parameters beta = 1 - ## and gamma = 0.5, truncated at [0, 2] intervals. Generate 10000 random - ## samples from this truncated distribution and superimpose a histogram with - ## 100 bins scaled accordingly - pd = makedist ("BirnbaumSaunders", "beta", 1, "gamma", 0.5) - t = truncate (pd, 0, 2) - randg ("seed", 21); - data = random (t, 10000, 1); - plot (t) - title ("Birnbaum-Saunders distribution (a = 2, b = 4) truncated at [0.1, 0.8]") + ## Demonstration using unbalanced one-way ANOVA example from anovan + + 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]'; + + [P,ATAB, STATS] = anovan (dv, g, "varnames", "score", "display", "off"); + + [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "holm", ... + "ControlGroup", 1, "display", "on") + +***** demo + + ## Demonstration using factorial ANCOVA example from anovan + + 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", "off", "contrasts", ... + {"simple","poly",""}); + + [C, M, H, GNAMES] = multcompare (STATS, "dim", [1 2], "ctype", "holm", ... + "display", "on") + +***** demo + + ## Demonstration using one-way ANOVA from anovan, with fit by weighted least + ## squares to account for heteroskedasticity. + + 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 + [P,ATAB,STATS] = anovan (y, g, "weights", v.^-1, "display", "off"); + [C, M] = multcompare (STATS, "display", "on", "ctype", "mvt") +***** demo + + ## Demonstration of p-value adjustments to control the false discovery rate + ## Data from Westfall (1997) JASA. 92(437):299-306 + + p = [.005708; .023544; .024193; .044895; ... + .048805; .221227; .395867; .693051; .775755]; + + padj = multcompare(p,'ctype','fdr') +***** test + + ## Tests using unbalanced one-way ANOVA example from anovan and anova1 + + ## Test for anovan - compare pairwise comparisons with matlab for CTYPE "lsd" + + 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]'; + + [P, ATAB, STATS] = anovan (dv, g, "varnames", "score", "display", "off"); + [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "lsd", ... + "display", "off"); + assert (C(1,6), 2.85812420217898e-05, 1e-09); + assert (C(2,6), 5.22936741204085e-07, 1e-09); + assert (C(3,6), 2.12794763209146e-08, 1e-09); + assert (C(4,6), 7.82091664406946e-15, 1e-09); + assert (C(5,6), 0.546591417210693, 1e-09); + assert (C(6,6), 0.0845897945254446, 1e-09); + assert (C(7,6), 9.47436557975328e-08, 1e-09); + assert (C(8,6), 0.188873478781067, 1e-09); + assert (C(9,6), 4.08974010364197e-08, 1e-09); + assert (C(10,6), 4.44427348175241e-06, 1e-09); + assert (M(1,1), 10, 1e-09); + assert (M(2,1), 18, 1e-09); + assert (M(3,1), 19, 1e-09); + assert (M(4,1), 21.0001428571429, 1e-09); + assert (M(5,1), 29.0001111111111, 1e-09); + assert (M(1,2), 1.0177537954095, 1e-09); + assert (M(2,2), 1.28736803631001, 1e-09); + assert (M(3,2), 1.0177537954095, 1e-09); + assert (M(4,2), 1.0880245732889, 1e-09); + assert (M(5,2), 0.959547480416536, 1e-09); + + ## Compare "fdr" adjusted p-values to those obtained using p.adjust in R + + [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "fdr", ... + "display", "off"); + assert (C(1,6), 4.08303457454140e-05, 1e-09); + assert (C(2,6), 1.04587348240817e-06, 1e-09); + assert (C(3,6), 1.06397381604573e-07, 1e-09); + assert (C(4,6), 7.82091664406946e-14, 1e-09); + assert (C(5,6), 5.46591417210693e-01, 1e-09); + assert (C(6,6), 1.05737243156806e-01, 1e-09); + assert (C(7,6), 2.36859139493832e-07, 1e-09); + assert (C(8,6), 2.09859420867852e-01, 1e-09); + assert (C(9,6), 1.36324670121399e-07, 1e-09); + assert (C(10,6), 7.40712246958735e-06, 1e-09); + + ## Compare "hochberg" adjusted p-values to those obtained using p.adjust in R + + [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "hochberg", ... + "display", "off"); + assert (C(1,6), 1.14324968087159e-04, 1e-09); + assert (C(2,6), 3.13762044722451e-06, 1e-09); + assert (C(3,6), 1.91515286888231e-07, 1e-09); + assert (C(4,6), 7.82091664406946e-14, 1e-09); + assert (C(5,6), 5.46591417210693e-01, 1e-09); + assert (C(6,6), 2.53769383576334e-01, 1e-09); + assert (C(7,6), 6.63205590582730e-07, 1e-09); + assert (C(8,6), 3.77746957562134e-01, 1e-09); + assert (C(9,6), 3.27179208291358e-07, 1e-09); + assert (C(10,6), 2.22213674087620e-05, 1e-09); + + ## Compare "holm" adjusted p-values to those obtained using p.adjust in R + + [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "holm", ... + "display", "off"); + assert (C(1,6), 1.14324968087159e-04, 1e-09); + assert (C(2,6), 3.13762044722451e-06, 1e-09); + assert (C(3,6), 1.91515286888231e-07, 1e-09); + assert (C(4,6), 7.82091664406946e-14, 1e-09); + assert (C(5,6), 5.46591417210693e-01, 1e-09); + assert (C(6,6), 2.53769383576334e-01, 1e-09); + assert (C(7,6), 6.63205590582730e-07, 1e-09); + assert (C(8,6), 3.77746957562134e-01, 1e-09); + assert (C(9,6), 3.27179208291358e-07, 1e-09); + assert (C(10,6), 2.22213674087620e-05, 1e-09); + + ## Compare "scheffe" adjusted p-values to those obtained using 'scheffe' in Matlab + + [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "scheffe", ... + "display", "off"); + assert (C(1,6), 0.00108105386141085, 1e-09); + assert (C(2,6), 2.7779386789517e-05, 1e-09); + assert (C(3,6), 1.3599854038198e-06, 1e-09); + assert (C(4,6), 7.58830197867751e-13, 1e-09); + assert (C(5,6), 0.984039948220281, 1e-09); + assert (C(6,6), 0.539077018557706, 1e-09); + assert (C(7,6), 5.59475764460574e-06, 1e-09); + assert (C(8,6), 0.771173490574105, 1e-09); + assert (C(9,6), 2.52838425729905e-06, 1e-09); + assert (C(10,6), 0.000200719143889168, 1e-09); + + ## Compare "bonferroni" adjusted p-values to those obtained using p.adjust in R + + [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "bonferroni", ... + "display", "off"); + assert (C(1,6), 2.85812420217898e-04, 1e-09); + assert (C(2,6), 5.22936741204085e-06, 1e-09); + assert (C(3,6), 2.12794763209146e-07, 1e-09); + assert (C(4,6), 7.82091664406946e-14, 1e-09); + assert (C(5,6), 1.00000000000000e+00, 1e-09); + assert (C(6,6), 8.45897945254446e-01, 1e-09); + assert (C(7,6), 9.47436557975328e-07, 1e-09); + assert (C(8,6), 1.00000000000000e+00, 1e-09); + assert (C(9,6), 4.08974010364197e-07, 1e-09); + assert (C(10,6), 4.44427348175241e-05, 1e-09); + + ## Test for anova1 ("equal")- comparison of results from Matlab + + [P, ATAB, STATS] = anova1 (dv, g, "off", "equal"); + [C, M, H, GNAMES] = multcompare (STATS, "ctype", "lsd", "display", "off"); + assert (C(1,6), 2.85812420217898e-05, 1e-09); + assert (C(2,6), 5.22936741204085e-07, 1e-09); + assert (C(3,6), 2.12794763209146e-08, 1e-09); + assert (C(4,6), 7.82091664406946e-15, 1e-09); + assert (C(5,6), 0.546591417210693, 1e-09); + assert (C(6,6), 0.0845897945254446, 1e-09); + assert (C(7,6), 9.47436557975328e-08, 1e-09); + assert (C(8,6), 0.188873478781067, 1e-09); + assert (C(9,6), 4.08974010364197e-08, 1e-09); + assert (C(10,6), 4.44427348175241e-06, 1e-09); + assert (M(1,1), 10, 1e-09); + assert (M(2,1), 18, 1e-09); + assert (M(3,1), 19, 1e-09); + assert (M(4,1), 21.0001428571429, 1e-09); + assert (M(5,1), 29.0001111111111, 1e-09); + assert (M(1,2), 1.0177537954095, 1e-09); + assert (M(2,2), 1.28736803631001, 1e-09); + assert (M(3,2), 1.0177537954095, 1e-09); + assert (M(4,2), 1.0880245732889, 1e-09); + assert (M(5,2), 0.959547480416536, 1e-09); + + ## Test for anova1 ("unequal") - comparison with results from GraphPad Prism 8 + [P, ATAB, STATS] = anova1 (dv, g, "off", "unequal"); + [C, M, H, GNAMES] = multcompare (STATS, "ctype", "lsd", "display", "off"); + assert (C(1,6), 0.001247025266382, 1e-09); + assert (C(2,6), 0.000018037115146, 1e-09); + assert (C(3,6), 0.000002974595187, 1e-09); + assert (C(4,6), 0.000000000786046, 1e-09); + assert (C(5,6), 0.5693192886650109, 1e-09); + assert (C(6,6), 0.110501699029776, 1e-09); + assert (C(7,6), 0.000131226488700, 1e-09); + assert (C(8,6), 0.1912101409715992, 1e-09); + assert (C(9,6), 0.000005385256394, 1e-09); + assert (C(10,6), 0.000074089106171, 1e-09); +***** test + + ## Test for anova2 ("interaction") - comparison with results from Matlab for column effect + 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] = anova2 (popcorn, 3, "off"); + [C, M, H, GNAMES] = multcompare (STATS, "estimate", "column",... + "ctype", "lsd", "display", "off"); + assert (C(1,6), 1.49311100811177e-05, 1e-09); + assert (C(2,6), 2.20506904243535e-07, 1e-09); + assert (C(3,6), 0.00449897860490058, 1e-09); + assert (M(1,1), 6.25, 1e-09); + assert (M(2,1), 4.75, 1e-09); + assert (M(3,1), 4, 1e-09); + assert (M(1,2), 0.152145154862547, 1e-09); + assert (M(2,2), 0.152145154862547, 1e-09); + assert (M(3,2), 0.152145154862547, 1e-09); +***** test + + ## Test for anova2 ("linear") - comparison with results from GraphPad Prism 8 + 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]; + [P, ATAB, STATS] = anova2 (words, 1, "off", "linear"); + [C, M, H, GNAMES] = multcompare (STATS, "estimate", "column",... + "ctype", "lsd", "display", "off"); + assert (C(1,6), 0.000020799832702, 1e-09); + assert (C(2,6), 0.000000035812410, 1e-09); + assert (C(3,6), 0.003038942449215, 1e-09); +***** test + + ## Test for anova2 ("nested") - comparison with results from GraphPad Prism 8 + data = [4.5924 7.3809 21.322; -0.5488 9.2085 25.0426; ... + 6.1605 13.1147 22.66; 2.3374 15.2654 24.1283; ... + 5.1873 12.4188 16.5927; 3.3579 14.3951 10.2129; ... + 6.3092 8.5986 9.8934; 3.2831 3.4945 10.0203]; + [P, ATAB, STATS] = anova2 (data, 4, "off", "nested"); + [C, M, H, GNAMES] = multcompare (STATS, "estimate", "column",... + "ctype", "lsd", "display", "off"); + assert (C(1,6), 0.261031111511073, 1e-09); + assert (C(2,6), 0.065879755907745, 1e-09); + assert (C(3,6), 0.241874613529270, 1e-09); +***** shared visibility_setting + visibility_setting = get (0, "DefaultFigureVisible"); +***** test + set (0, "DefaultFigureVisible", "off"); + + ## Test for kruskalwallis - comparison with results from MATLAB + data = [3,2,4; 5,4,4; 4,2,4; 4,2,4; 4,1,5; ... + 4,2,3; 4,3,5; 4,2,4; 5,2,4; 5,3,3]; + group = [1:3] .* ones (10,3); + [P, ATAB, STATS] = kruskalwallis (data(:), group(:), "off"); + C = multcompare (STATS, "ctype", "lsd", "display", "off"); + assert (C(1,6), 0.000163089828959986, 1e-09); + assert (C(2,6), 0.630298044801257, 1e-09); + assert (C(3,6), 0.00100567660695682, 1e-09); + C = multcompare (STATS, "ctype", "bonferroni", "display", "off"); + assert (C(1,6), 0.000489269486879958, 1e-09); + assert (C(2,6), 1, 1e-09); + assert (C(3,6), 0.00301702982087047, 1e-09); + C = multcompare(STATS, "ctype", "scheffe", "display", "off"); + assert (C(1,6), 0.000819054880289573, 1e-09); + assert (C(2,6), 0.890628039849261, 1e-09); + assert (C(3,6), 0.00447816059021654, 1e-09); + set (0, "DefaultFigureVisible", visibility_setting); +***** test + set (0, "DefaultFigureVisible", "off"); + ## Test for friedman - comparison with results from MATLAB + 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"); + C = multcompare(STATS, "ctype", "lsd", "display", "off"); + assert (C(1,6), 0.227424558028569, 1e-09); + assert (C(2,6), 0.0327204848315735, 1e-09); + assert (C(3,6), 0.353160353315988, 1e-09); + C = multcompare(STATS, "ctype", "bonferroni", "display", "off"); + assert (C(1,6), 0.682273674085708, 1e-09); + assert (C(2,6), 0.0981614544947206, 1e-09); + assert (C(3,6), 1, 1e-09); + C = multcompare(STATS, "ctype", "scheffe", "display", "off"); + assert (C(1,6), 0.482657360384373, 1e-09); + assert (C(2,6), 0.102266573027672, 1e-09); + assert (C(3,6), 0.649836502233148, 1e-09); + set (0, "DefaultFigureVisible", visibility_setting); +***** test + set (0, "DefaultFigureVisible", "off"); + ## Test for fitlm - same comparisons as for first anovan example + y = [ 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 ]'; + X = [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]'; + [TAB,STATS] = fitlm (X,y,"linear","categorical",1,"display","off",... + "contrasts","simple"); + [C, M] = multcompare(STATS, "ctype", "lsd", "display", "off"); + assert (C(1,6), 2.85812420217898e-05, 1e-09); + assert (C(2,6), 5.22936741204085e-07, 1e-09); + assert (C(3,6), 2.12794763209146e-08, 1e-09); + assert (C(4,6), 7.82091664406946e-15, 1e-09); + assert (C(5,6), 0.546591417210693, 1e-09); + assert (C(6,6), 0.0845897945254446, 1e-09); + assert (C(7,6), 9.47436557975328e-08, 1e-09); + assert (C(8,6), 0.188873478781067, 1e-09); + assert (C(9,6), 4.08974010364197e-08, 1e-09); + assert (C(10,6), 4.44427348175241e-06, 1e-09); + assert (M(1,1), 10, 1e-09); + assert (M(2,1), 18, 1e-09); + assert (M(3,1), 19, 1e-09); + assert (M(4,1), 21.0001428571429, 1e-09); + assert (M(5,1), 29.0001111111111, 1e-09); + assert (M(1,2), 1.0177537954095, 1e-09); + assert (M(2,2), 1.28736803631001, 1e-09); + assert (M(3,2), 1.0177537954095, 1e-09); + assert (M(4,2), 1.0880245732889, 1e-09); + assert (M(5,2), 0.959547480416536, 1e-09); + set (0, "DefaultFigureVisible", visibility_setting); +***** test + ## Test p-value adjustments compared to R stats package function p.adjust + ## Data from Westfall (1997) JASA. 92(437):299-306 + p = [.005708; .023544; .024193; .044895; ... + .048805; .221227; .395867; .693051; .775755]; + padj = multcompare (p); + assert (padj(1), 0.051372, 1e-06); + assert (padj(2), 0.188352, 1e-06); + assert (padj(3), 0.188352, 1e-06); + assert (padj(4), 0.269370, 1e-06); + assert (padj(5), 0.269370, 1e-06); + assert (padj(6), 0.884908, 1e-06); + assert (padj(7), 1.000000, 1e-06); + assert (padj(8), 1.000000, 1e-06); + assert (padj(9), 1.000000, 1e-06); + padj = multcompare(p,'ctype','holm'); + assert (padj(1), 0.051372, 1e-06); + assert (padj(2), 0.188352, 1e-06); + assert (padj(3), 0.188352, 1e-06); + assert (padj(4), 0.269370, 1e-06); + assert (padj(5), 0.269370, 1e-06); + assert (padj(6), 0.884908, 1e-06); + assert (padj(7), 1.000000, 1e-06); + assert (padj(8), 1.000000, 1e-06); + assert (padj(9), 1.000000, 1e-06); + padj = multcompare(p,'ctype','hochberg'); + assert (padj(1), 0.051372, 1e-06); + assert (padj(2), 0.169351, 1e-06); + assert (padj(3), 0.169351, 1e-06); + assert (padj(4), 0.244025, 1e-06); + assert (padj(5), 0.244025, 1e-06); + assert (padj(6), 0.775755, 1e-06); + assert (padj(7), 0.775755, 1e-06); + assert (padj(8), 0.775755, 1e-06); + assert (padj(9), 0.775755, 1e-06); + padj = multcompare(p,'ctype','fdr'); + assert (padj(1), 0.0513720, 1e-07); + assert (padj(2), 0.0725790, 1e-07); + assert (padj(3), 0.0725790, 1e-07); + assert (padj(4), 0.0878490, 1e-07); + assert (padj(5), 0.0878490, 1e-07); + assert (padj(6), 0.3318405, 1e-07); + assert (padj(7), 0.5089719, 1e-07); + assert (padj(8), 0.7757550, 1e-07); + assert (padj(9), 0.7757550, 1e-07); +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/regress_gp.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - hist (data, 100, 50) + 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 - ## Generate a data set of 100 random samples from a Birnbaum-Saunders - ## distribution with parameters β = 1 and γ = 0.5. Fit a Birnbaum-Saunders - ## distribution to this data and plot its CDF superimposed over an empirical - ## CDF of the data + ## 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); - pd = makedist ("BirnbaumSaunders", "beta", 1, "gamma", 0.5) - randg ("seed", 21); - data = random (pd, 100, 1); - pd = fitdist (data, "BirnbaumSaunders") - plot (pd, "plottype", "cdf") - title (sprintf ("Fitted Beta distribution with a = %0.2f and b = %0.2f", ... - pd.beta, pd.gamma)) - legend ({"empirical CDF", "fitted CDF"}, "location", "east") -***** 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 ... - plot (BirnbaumSaundersDistribution, "invalidNAME", "pdf") -***** error ... - plot (BirnbaumSaundersDistribution, "PlotType", "probability") -***** 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) -96 tests, 96 passed, 0 known failure, 0 skipped -[inst/dist_obj/BetaDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_obj/BetaDistribution.m + ## 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 - ## Generate a data set of 5000 random samples from a Beta distribution with - ## parameters a = 2 and b = 4. Fit a Beta distribution to this data and plot - ## a PDF of the fitted distribution superimposed on a histogram of the data + ## 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); - pd = makedist ("Beta", "a", 2, "b", 4) - randg ("seed", 21); - data = random (pd, 5000, 1); - pd = fitdist (data, "Beta") - plot (pd) - title (sprintf ("Fitted Beta distribution with a = %0.2f and b = %0.2f", ... - pd.a, pd.b)) + ## 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 - ## Plot the PDF of a Beta distribution, with parameters a = 2 and b = 4, - ## truncated at [0.1, 0.8] intervals. Generate 10000 random samples from - ## this truncated distribution and superimpose a histogram with 100 bins - ## scaled accordingly + ## 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); - pd = makedist ("Beta", "a", 2, "b", 4) - t = truncate (pd, 0.1, 0.8) - randg ("seed", 21); - data = random (t, 10000, 1); - plot (t) - title ("Beta distribution (a = 2, b = 4) truncated at [0.1, 0.8]") + ## 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 - hist (data, 100, 140) + 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 - ## Generate a data set of 100 random samples from a Beta distribution with - ## parameters a = 2 and b = 4. Fit a Beta distribution to this data and plot - ## its CDF superimposed over an empirical CDF of the data + ## RBF fitting on noiseless 1D Data + x = [0:2*pi/7:2*pi]'; + y = 5 * sin (x); - pd = makedist ("Beta", "a", 2, "b", 4) - randg ("seed", 21); - data = random (pd, 100, 1); - pd = fitdist (data, "Beta") - plot (pd, "plottype", "cdf") - title (sprintf ("Fitted Beta distribution with a = %0.2f and b = %0.2f", ... - pd.a, pd.b)) - legend ({"empirical CDF", "fitted CDF"}, "location", "east") + ## 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 - ## Generate a data set of 200 random samples from a Beta distribution with - ## parameters a = 2 and b = 4. Display a probability plot for the Beta - ## distribution fit to the data. + ## RBF fitting on noisy 1D Data + x = [0:2*pi/7:2*pi]'; + x = [x; x]; + y = 5 * sin (x) + randn (size (x)); - pd = makedist ("Beta", "a", 2, "b", 4) - randg ("seed", 21); - data = random (pd, 200, 1); - pd = fitdist (data, "Beta") - plot (pd, "plottype", "probability") - title (sprintf ("Probability plot of a fitted Beta distribution with a = %0.2f and b = %0.2f", ... - pd.a, pd.b)) - legend ({"empirical CDF", "fitted CDF"}, "location", "southeast") -***** 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 ... - plot (BetaDistribution, "invalidNAME", "pdf") -***** error ... - plot (BetaDistribution, "PlotType", "probability") -***** 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) -96 tests, 96 passed, 0 known failure, 0 skipped -[inst/dist_obj/NakagamiDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (NakagamiDistribution, "invalidNAME", "pdf") -***** error ... - plot (NakagamiDistribution, "PlotType", "probability") -***** 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) -95 tests, 95 passed, 0 known failure, 0 skipped -[inst/dist_obj/tLocationScaleDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (tLocationScaleDistribution, "invalidNAME", "pdf") -***** error ... - plot (tLocationScaleDistribution, "PlotType", "probability") -***** 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) -102 tests, 102 passed, 0 known failure, 0 skipped -[inst/dist_obj/LognormalDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (LognormalDistribution, "invalidNAME", "pdf") -***** error ... - plot (LognormalDistribution, "PlotType", "probability") -***** 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) -95 tests, 95 passed, 0 known failure, 0 skipped -[inst/dist_obj/NormalDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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, 3e-16); -***** assert (median (pd), 0); -***** assert (median (t), 0, 3e-16); -***** 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 ... - plot (NormalDistribution, "invalidNAME", "pdf") -***** error ... - plot (NormalDistribution, "PlotType", "probability") -***** 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) -95 tests, 95 passed, 0 known failure, 0 skipped -[inst/dist_obj/ExponentialDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (ExponentialDistribution, "invalidNAME", "pdf") -***** error ... - plot (ExponentialDistribution, "PlotType", "probability") -***** 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) -90 tests, 90 passed, 0 known failure, 0 skipped -[inst/dist_obj/PiecewiseLinearDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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-3); -***** 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 ... - plot (PiecewiseLinearDistribution, "invalidNAME", "pdf") -***** error ... - plot (PiecewiseLinearDistribution, "PlotType", "probability") -***** 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) -63 tests, 63 passed, 0 known failure, 0 skipped -[inst/dist_obj/LoglogisticDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (LoglogisticDistribution, "invalidNAME", "pdf") -***** error ... - plot (LoglogisticDistribution, "PlotType", "probability") -***** 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) -95 tests, 95 passed, 0 known failure, 0 skipped -[inst/dist_obj/GeneralizedExtremeValueDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (GeneralizedExtremeValueDistribution, "invalidNAME", "pdf") -***** error ... - plot (GeneralizedExtremeValueDistribution, "PlotType", "probability") -***** 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) -100 tests, 100 passed, 0 known failure, 0 skipped -[inst/dist_obj/BinomialDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_obj/BinomialDistribution.m -***** shared pd, t, t_inf - pd = BinomialDistribution (5, 0.5); - t = truncate (pd, 2, 4); - t_inf = truncate (pd, 2, Inf); -***** assert (cdf (pd, [0:5]), [0.0312, 0.1875, 0.5, 0.8125, 0.9688, 1], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0.4, 0.8, 1, 1], 1e-4); -***** assert (cdf (t_inf, [0:5]), [0, 0, 0.3846, 0.7692, 0.9615, 1], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.1875, 0.5, 0.8125, 0.9688, NaN], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0.4, 0.8, 1, NaN], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 2, 2, 3, 3, 5], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2, 2, 3, 3, 4], 1e-4); -***** assert (icdf (t_inf, [0:0.2:1]), [2, 2, 3, 3, 4, 5], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 2, 3, 3, 5, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2, 3, 3, 4, NaN], 1e-4); -***** assert (iqr (pd), 1); -***** assert (iqr (t), 1); -***** assert (mean (pd), 2.5, 1e-10); -***** assert (mean (t), 2.8, 1e-10); -***** assert (mean (t_inf), 2.8846, 1e-4); -***** assert (median (pd), 2.5); -***** assert (median (t), 3); -***** assert (pdf (pd, [0:5]), [0.0312, 0.1562, 0.3125, 0.3125, 0.1562, 0.0312], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 0.4, 0.4, 0.2, 0], 1e-4); -***** assert (pdf (t_inf, [0:5]), [0, 0, 0.3846, 0.3846, 0.1923, 0.0385], 1e-4); -***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0, 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.1180, 1e-4); -***** assert (std (t), 0.7483, 1e-4); -***** assert (std (t_inf), 0.8470, 1e-4); -***** assert (var (pd), 1.2500, 1e-4); -***** assert (var (t), 0.5600, 1e-4); -***** assert (var (t_inf), 0.7175, 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 ... - plot (BinomialDistribution, "invalidNAME", "pdf") -***** error ... - plot (BinomialDistribution, "PlotType", "probability") -***** 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) -102 tests, 102 passed, 0 known failure, 0 skipped -[inst/dist_obj/BurrDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_obj/BurrDistribution.m -***** demo - ## Generate a data set of 5000 random samples from a Burr type XII - ## distribution with parameters alpha = 1, c = 2, and k = 1. Fit a Burr type - ## XII distribution to this data and plot a PDF of the fitted distribution - ## superimposed on a histogram of the data + ## Predictive grid of 500 equally spaced locations + xi = [-0.5:(2*pi+1)/499:2*pi+0.5]'; - pd = makedist ("Burr", "alpha", 1, "c", 2, "k", 1) - rand ("seed", 21); - data = random (pd, 5000, 1); - pd = fitdist (data, "Burr") - plot (pd) - msg = strcat (["Fitted Burr type XII distribution with"], ... - [" alpha = %0.2f, c = %0.2f, and k = %0.2f"]); - title (sprintf (msg, pd.alpha, pd.c, pd.k)) -***** demo - ## Plot the PDF of a Burr type XII distribution, with parameters alpha = 1, - ## c = 2, and k = 1, truncated at [0, 2] intervals. Generate 10000 random - ## samples from this truncated distribution and superimpose a histogram with - ## 100 bins scaled accordingly + ## Fit regression model with RBF kernel + [Yfit, Yint, Ysd] = regress_gp (x, y, xi, "rbf"); - pd = makedist ("Burr", "alpha", 1, "c", 2, "k", 1) - t = truncate (pd, 0.5, 2.5) - rand ("seed", 21); - data = random (t, 10000, 1); - plot (t) - title ("Burr type XII distribution (alpha = 1, c = 2, k = 1) truncated at [0.5, 2.5]") + ## Plot fitted data + r = mvnrnd (Yfit, diag (Ysd)', 50); + plot (xi, r', "c-"); hold on - hist (data, 100, 50) + 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/nanmax.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/nanmax.m ***** demo - ## Generate a data set of 100 random samples from a Burr type XII - ## distribution with parameters alpha = 1, c = 2, and k = 1. Fit a Burr type - ## XII distribution to this data and plot its CDF superimposed over an - ## empirical CDF of the data + ## Find the column maximum values and their indices + ## for matrix data with missing values. - pd = makedist ("Burr", "alpha", 1, "c", 2, "k", 1) - rand ("seed", 21); - data = random (pd, 100, 1); - pd = fitdist (data, "Burr") - plot (pd, "plottype", "cdf") - msg = strcat (["Fitted Burr type XII distribution with"], ... - [" alpha = %0.2f, c = %0.2f, and k = %0.2f"]); - title (sprintf (msg, pd.alpha, pd.c, pd.k)) - legend ({"empirical CDF", "fitted CDF"}, "location", "east") -***** 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 ... - plot (BurrDistribution, "invalidNAME", "pdf") -***** error ... - plot (BurrDistribution, "PlotType", "probability") -***** 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) -104 tests, 104 passed, 0 known failure, 0 skipped -[inst/dist_obj/RayleighDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (RayleighDistribution, "invalidNAME", "pdf") -***** error ... - plot (RayleighDistribution, "PlotType", "probability") -***** 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) -90 tests, 90 passed, 0 known failure, 0 skipped -[inst/dist_obj/NegativeBinomialDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_obj/NegativeBinomialDistribution.m -***** shared pd, t, t_inf - pd = NegativeBinomialDistribution (5, 0.5); - t = truncate (pd, 2, 4); - t_inf = truncate (pd, 2, Inf); -***** assert (cdf (pd, [0:5]), [0.0312, 0.1094, 0.2266, 0.3633, 0.5, 0.6230], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0.3, 0.65, 1, 1], 1e-4); -***** assert (cdf (t_inf, [0:5]), [0, 0, 0.1316, 0.2851, 0.4386, 0.5768], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.1094, 0.2266, 0.3633, 0.5000], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0.3, 0.65, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 2, 4, 5, 7, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2, 3, 3, 4, 4], 1e-4); -***** assert (icdf (t_inf, [0:0.2:1]), [2, 3, 4, 6, 8, Inf], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 4, 5, 7, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 3, 3, 4, 4, NaN], 1e-4); -***** assert (iqr (pd), 4); -***** assert (iqr (t), 2); -***** assert (mean (pd), 5); -***** assert (mean (t), 3.0500, 1e-4); -***** assert (mean (t_inf), 5.5263, 1e-4); -***** assert (median (pd), 4); -***** assert (median (t), 3); -***** assert (pdf (pd, [0:5]), [0.0312, 0.0781, 0.1172, 0.1367, 0.1367, 0.1230], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 0.3, 0.35, 0.35, 0], 1e-4); -***** assert (pdf (t_inf, [0:5]), [0, 0, 0.1316, 0.1535, 0.1535, 0.1382], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.0781, 0.1172, 0.1367, 0.1367, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 0.3, 0.35, 0.35, 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), 3.1623, 1e-4); -***** assert (std (t), 0.8047, 1e-4); -***** assert (std (t_inf), 2.9445, 1e-4); -***** assert (var (pd), 10); -***** assert (var (t), 0.6475, 1e-4); -***** assert (var (t_inf), 8.6704, 1e-4); -***** 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 ... - plot (NegativeBinomialDistribution, "invalidNAME", "pdf") -***** error ... - plot (NegativeBinomialDistribution, "PlotType", "probability") -***** 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) -102 tests, 102 passed, 0 known failure, 0 skipped -[inst/dist_obj/UniformDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (UniformDistribution, "invalidNAME", "pdf") -***** error ... - plot (UniformDistribution, "PlotType", "probability") -***** 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) -63 tests, 63 passed, 0 known failure, 0 skipped -[inst/dist_obj/TriangularDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (TriangularDistribution, "invalidNAME", "pdf") -***** error <'probability' PlotType is not supported for 'TriangularDistribution'.> ... - plot (TriangularDistribution, "PlotType", "probability") -***** 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) -69 tests, 69 passed, 0 known failure, 0 skipped -[inst/dist_obj/LoguniformDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (LoguniformDistribution, "invalidNAME", "pdf") -***** error ... - plot (LoguniformDistribution, "PlotType", "probability") -***** 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) -65 tests, 65 passed, 0 known failure, 0 skipped -[inst/dist_obj/MultinomialDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (MultinomialDistribution, "invalidNAME", "pdf") -***** error ... - plot (MultinomialDistribution, "PlotType", "probability") -***** 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) -64 tests, 64 passed, 0 known failure, 0 skipped -[inst/dist_obj/GammaDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (GammaDistribution, "invalidNAME", "pdf") -***** error ... - plot (GammaDistribution, "PlotType", "probability") -***** 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) -96 tests, 96 passed, 0 known failure, 0 skipped -[inst/dist_obj/LogisticDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (LogisticDistribution, "invalidNAME", "pdf") -***** error ... - plot (LogisticDistribution, "PlotType", "probability") -***** 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) -95 tests, 95 passed, 0 known failure, 0 skipped -[inst/dist_obj/HalfNormalDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (HalfNormalDistribution, "invalidNAME", "pdf") -***** error ... - plot (HalfNormalDistribution, "PlotType", "probability") -***** 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) -96 tests, 96 passed, 0 known failure, 0 skipped -[inst/dist_obj/InverseGaussianDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (InverseGaussianDistribution, "invalidNAME", "pdf") -***** error ... - plot (InverseGaussianDistribution, "PlotType", "probability") -***** 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) -96 tests, 96 passed, 0 known failure, 0 skipped -[inst/dist_obj/PoissonDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_obj/PoissonDistribution.m -***** shared pd, t, t_inf - pd = PoissonDistribution; - t = truncate (pd, 2, 4); - t_inf = truncate (pd, 2, Inf); -***** assert (cdf (pd, [0:5]), [0.3679, 0.7358, 0.9197, 0.9810, 0.9963, 0.9994], 1e-4); -***** assert (cdf (t, [0:5]), [0, 0, 0.7059, 0.9412, 1, 1], 1e-4); -***** assert (cdf (t_inf, [0:5]), [0, 0, 0.6961, 0.9281, 0.9861, 0.9978], 1e-4); -***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.7358, 0.9197, 0.9810, 0.9963], 1e-4); -***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0.7059, 0.9412, 1], 1e-4); -***** assert (icdf (pd, [0:0.2:1]), [0, 0, 1, 1, 2, Inf], 1e-4); -***** assert (icdf (t, [0:0.2:1]), [2, 2, 2, 2, 3, 4], 1e-4); -***** assert (icdf (t_inf, [0:0.2:1]), [2, 2, 2, 2, 3, Inf], 1e-4); -***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 1, 1, 2, Inf, NaN], 1e-4); -***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2, 2, 3, 4, NaN], 1e-4); -***** assert (iqr (pd), 2); -***** assert (iqr (t), 1); -***** assert (mean (pd), 1); -***** assert (mean (t), 2.3529, 1e-4); -***** assert (mean (t_inf), 2.3922, 1e-4); -***** assert (median (pd), 1); -***** assert (median (t), 2); -***** assert (median (t_inf), 2); -***** assert (pdf (pd, [0:5]), [0.3679, 0.3679, 0.1839, 0.0613, 0.0153, 0.0031], 1e-4); -***** assert (pdf (t, [0:5]), [0, 0, 0.7059, 0.2353, 0.0588, 0], 1e-4); -***** assert (pdf (t_inf, [0:5]), [0, 0, 0.6961, 0.2320, 0.0580, 0.0116], 1e-4); -***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.3679, 0.1839, 0.0613, 0.0153, NaN], 1e-4); -***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 0.7059, 0.2353, 0.0588, 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.5882, 1e-4); -***** assert (std (t_inf), 0.6738, 1e-4); -***** assert (var (pd), 1); -***** assert (var (t), 0.3460, 1e-4); -***** assert (var (t_inf), 0.4540, 1e-4); -***** 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 ... - plot (PoissonDistribution, "invalidNAME", "pdf") -***** error ... - plot (PoissonDistribution, "PlotType", "probability") -***** 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) -97 tests, 97 passed, 0 known failure, 0 skipped -[inst/dist_obj/GeneralizedParetoDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (GeneralizedParetoDistribution, "invalidNAME", "pdf") -***** error ... - plot (GeneralizedParetoDistribution, "PlotType", "probability") -***** 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) -100 tests, 100 passed, 0 known failure, 0 skipped -[inst/dist_obj/WeibullDistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... - plot (WeibullDistribution, "invalidNAME", "pdf") -***** error ... - plot (WeibullDistribution, "PlotType", "probability") -***** 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) -97 tests, 97 passed, 0 known failure, 0 skipped -[inst/regression_ttest.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/normplot.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/normplot.m -***** demo - h = normplot([1:20]); -***** demo - h = normplot([1:20;5:2:44]'); + x = magic (3); + x([1, 6:9]) = NaN + [y, ind] = nanmax (x) ***** 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 -warning: using the gnuplot graphics toolkit is discouraged + ## Find the maximum of all the values in an array, ignoring missing values. + ## Create a 2-by-5-by-3 array x with some missing values. -The gnuplot graphics toolkit is not actively maintained and has a number -of limitations that are unlikely to be fixed. Communication with gnuplot -uses a one-directional pipe and limited information is passed back to the -Octave interpreter so most changes made interactively in the plot window -will not be reflected in the graphics properties managed by Octave. For -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. + x = reshape (1:30, [2, 5, 3]); + x([10:12, 25]) = NaN + + ## Find the maximum of the elements of x. + + y = nanmax (x, [], 'all') +***** 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])) +***** shared x, y + x(:,:,1) = [1.77, -0.005, NaN, -2.95; NaN, 0.34, NaN, 0.19]; + x(:,:,2) = [1.77, -0.005, NaN, -2.95; NaN, 0.34, NaN, 0.19] + 5; + y = x; + y(2,3,1) = 0.51; +***** assert (nanmax (x, [], [1, 2])(:), [1.77;6.77]) +***** assert (nanmax (x, [], [1, 3])(:), [6.77;5.34;NaN;5.19]) +***** assert (nanmax (x, [], [2, 3])(:), [6.77;5.34]) +***** assert (nanmax (x, [], [1, 2, 3]), 6.77) +***** assert (nanmax (x, [], 'all'), 6.77) +***** assert (nanmax (y, [], [1, 3])(:), [6.77;5.34;0.51;5.19]) +***** assert (nanmax (x(1,:,1), x(2,:,1)), [1.77, 0.34, NaN, 0.19]) +***** assert (nanmax (x(1,:,2), x(2,:,2)), [6.77, 5.34, NaN, 5.19]) +***** assert (nanmax (y(1,:,1), y(2,:,1)), [1.77, 0.34, 0.51, 0.19]) +***** assert (nanmax (y(1,:,2), y(2,:,2)), [6.77, 5.34, NaN, 5.19]) ***** 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/mhsample.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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); + xx = repmat ([1:20;6:25], [5 2 6 3]); + assert (size (nanmax (xx, [], [3, 2])), [10, 1, 1, 3]); + assert (size (nanmax (xx, [], [1, 2])), [1, 1, 6, 3]); + assert (size (nanmax (xx, [], [1, 2, 4])), [1, 1, 6]); + assert (size (nanmax (xx, [], [1, 4, 3])), [1, 40]); + assert (size (nanmax (xx, [], [1, 2, 3, 4])), [1, 1]); +***** assert (nanmax (ones (2), [], 3), ones (2, 2)) +***** assert (nanmax (ones (2, 2, 2), [], 99), ones (2, 2, 2)) +***** assert (nanmax (magic (3), [], 3), magic (3)) +***** assert (nanmax (magic (3), [], [1, 3]), [8, 9, 7]) +***** assert (nanmax (magic (3), [], [1, 99]), [8, 9, 7]) +***** assert (nanmax (ones (2), 3), 3 * ones (2,2)) +***** error ... + nanmax (y, [], [1, 1, 2]) +***** error ... + [v, idx] = nanmax(x, y, [1 2]) +24 tests, 24 passed, 0 known failure, 0 skipped +[inst/vartest2.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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/pca.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/pca.m -***** shared COEFF,SCORE,latent,tsquare,m,x,R,V,lambda,i,S,F + 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/dist_fit/invglike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/invglike.m ***** 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); + nlogL = invglike ([25.5, 19.6973], [1:50]); + assert (nlogL, 219.1516, 1e-4); ***** 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) + 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/gumbelfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; - 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 + ## 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 - 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) + 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 - [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/pdist.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/linkage.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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"); + 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/logllike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/logllike.m ***** test - warning off Octave:clustering - assert (cond (linkage (pdist (x), "centroid")), 27.457477, t); - warning on Octave:clustering -***** warning linkage (pdist (x), "median"); + [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 - 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/@cvpartition/cvpartition.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/@cvpartition/cvpartition.m + [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/geofit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/geofit.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 - C = cvpartition (ones (10, 1)); - assert (isa (C, "cvpartition"), true); -***** 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"); + ## 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 - 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"); + x = 0:5; + [pshat, psci] = geofit (x); + assert (pshat, 0.2857, 1e-4); + assert (psci, [0.092499; 0.478929], 1e-5); ***** 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"); -***** 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"); -***** 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"); -***** 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/test.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]')) + 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/expfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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) ***** 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.7.0/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.7.0/inst/@cvpartition/set.m -***** shared C - C = cvpartition (ones (10, 1), "KFold", 5); + 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 - 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/@cvpartition/repartition.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/@cvpartition/repartition.m + 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/gumbellike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/gumbellike.m ***** test - C = cvpartition (ones (10, 1), "KFold", 5); - Cnew = repartition (C); - assert (isa (Cnew, "cvpartition"), true); + 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 - 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/display.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/@cvpartition/display.m + 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 - 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); + 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/evfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/evfit.m +***** 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]; + + ## 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 - C = cvpartition (ones (10, 1), "HoldOut", 5); - s = evalc ("display (C)"); - sout = "HoldOut cross validation partition"; - assert (strcmpi (s(1:length (sout)), sout), true); + 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 - 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); + 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/nakalike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/nakalike.m ***** 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); + nlogL = nakalike ([0.735504, 858.5], [1:50]); + assert (nlogL, 202.8689, 1e-4); ***** 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/training.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]')) + nlogL = nakalike ([1.17404, 11], [1:5]); + assert (nlogL, 8.6976, 1e-4); ***** 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/normalise_distribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/normalise_distribution.m + nlogL = nakalike ([1.17404, 11], [1:5], [], [1, 1, 1, 1, 1]); + assert (nlogL, 8.6976, 1e-4); ***** test - v = normalise_distribution ([1 2 3], [], 1); - assert (v, [0 0 0]) + 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/lognlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/lognlike.m ***** test - v = normalise_distribution ([1 2 3], [], 2); - assert (v, norminv ([1 3 5] / 6), 3 * eps) + 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 - v = normalise_distribution ([1 2 3]', [], 2); - assert (v, [0 0 0]') + 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 - v = normalise_distribution ([1 2 3]', [], 1); - assert (v, norminv ([1 3 5]' / 6), 3 * eps) + 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 - v = normalise_distribution ([1 1 2 2 3 3], [], 2); - assert (v, norminv ([3 3 7 7 11 11] / 12), 3 * eps) + 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 - v = normalise_distribution ([1 1 2 2 3 3]', [], 1); - assert (v, norminv ([3 3 7 7 11 11]' / 12), 3 * eps) + 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.7.0/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]; + + ## 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 - A = randn ( 10 ); - N = normalise_distribution (A, @normcdf); - assert (A, N, 10000 * eps) + 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 - 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: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/logifit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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) + paramhat = logifit ([1:50]); + paramhat_out = [25.5, 8.7724]; + assert (paramhat, paramhat_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) + paramhat = logifit ([1:5]); + paramhat_out = [3, 0.8645]; + assert (paramhat, paramhat_out, 1e-4); ***** 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); + paramhat = logifit ([1:6], [], [], [1 1 1 1 1 0]); + paramhat_out = [3, 0.8645]; + assert (paramhat, paramhat_out, 1e-4); ***** 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/binotest.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/silhouette.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/cmdscale.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/levene_test.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]); + 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/gevlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/gevlike.m ***** 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]); + 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 - 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]); + 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 - 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]); + 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 - 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]); + 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/explike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/explike.m ***** 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]); + 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 - 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]); + 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/gevfit_lmom.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gplike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/gplike.m ***** 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]); + 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/clusterdata.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/clusterdata.m +[inst/dist_fit/tlsfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/tlsfit.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]; + ## 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]; - 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/ppplot.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fitcnet.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitcnet.m -***** demo - ## Train a Neural Network on the Fisher's Iris data set and display - ## a confusion chart with the classification results. + ## 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 - load fisheriris - Mdl = fitcnet (meas, species); - pred_species = resubPredict (Mdl); - confusionchart (species, pred_species); + ## 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 - load fisheriris - x = meas; - y = grp2idx (species); - Mdl = fitcnet (x, y, "IterationLimit", 50); - assert (class (Mdl), "ClassificationNeuralNetwork"); - assert (numel (Mdl.ModelParameters.LayerWeights), 2); - assert (size (Mdl.ModelParameters.LayerWeights{1}), [10, 5]); - assert (size (Mdl.ModelParameters.LayerWeights{2}), [3, 11]); -***** error fitcnet () -***** error fitcnet (ones (4,1)) -***** error - fitcnet (ones (4,2), ones (4, 1), 'LayerSizes') -***** error - fitcnet (ones (4,2), ones (3, 1)) -***** error - fitcnet (ones (4,2), ones (3, 1), 'LayerSizes', 2) -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/fitrgam.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitrgam.m + 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 + 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/lognfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/lognfit.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; + ## 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]; - # calculate y - y = f1(x1) + f2(x2); + ## 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 - # add noise - y = y + y .* 0.2 .* rand (50,1); - X = [x1, x2]; + ## Estimate their mu and sigma parameters + mu_sigmaA = lognfit (r(:,1)); + mu_sigmaB = lognfit (r(:,2)); + mu_sigmaC = lognfit (r(:,3)); - # create an object - a = fitrgam (X, y, "tol", 1e-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 - 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}, {[]}) + 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/hnlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/hnlike.m ***** 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/pcares.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/pcares.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) + x = 1:20; + paramhat = hnfit (x, 0); + [nlogL, acov] = hnlike (paramhat, x); + assert (nlogL, 64.179177404891300, 1e-14); ***** 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/multcompare.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/multcompare.m -***** demo - - ## Demonstration using balanced one-way ANOVA from anova1 - - x = ones (50, 4) .* [-2, 0, 1, 5]; - randn ("seed", 1); # for reproducibility - x = x + normrnd (0, 2, 50, 4); - groups = {"A", "B", "C", "D"}; - [p, tbl, stats] = anova1 (x, groups, "off"); - multcompare (stats); + 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/unifit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; - ## Demonstration using unbalanced one-way ANOVA example from anovan - - 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]'; - - [P,ATAB, STATS] = anovan (dv, g, "varnames", "score", "display", "off"); + ## 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 - [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "holm", ... - "ControlGroup", 1, "display", "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/evlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nakafit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; - ## Demonstration using factorial ANCOVA example from anovan - - 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", "off", "contrasts", ... - {"simple","poly",""}); + ## 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 - [C, M, H, GNAMES] = multcompare (STATS, "dim", [1 2], "ctype", "holm", ... - "display", "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/tlslike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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.7.0/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]; - ## Demonstration using one-way ANOVA from anovan, with fit by weighted least - ## squares to account for heteroskedasticity. - - 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]'; + ## 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 - 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]'; + ## Estimate their α and β parameters + s_sigmaA = ricefit (r(:,1)); + s_sigmaB = ricefit (r(:,2)); + s_sigmaC = ricefit (r(:,3)); - [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 - [P,ATAB,STATS] = anovan (y, g, "weights", v.^-1, "display", "off"); - [C, M] = multcompare (STATS, "display", "on", "ctype", "mvt") + ## 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/normfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; - ## Demonstration of p-value adjustments to control the false discovery rate - ## Data from Westfall (1997) JASA. 92(437):299-306 + ## 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 - p = [.005708; .023544; .024193; .044895; ... - .048805; .221227; .395867; .693051; .775755]; + ## Estimate their mu and sigma parameters + [muhat, sigmahat] = normfit (r); - padj = multcompare(p,'ctype','fdr') + ## 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/normlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 + 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 + 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 + 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 + 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/gamlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/binolike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gevfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; - ## Tests using unbalanced one-way ANOVA example from anovan and anova1 - - ## Test for anovan - compare pairwise comparisons with matlab for CTYPE "lsd" - - 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]'; - - [P, ATAB, STATS] = anovan (dv, g, "varnames", "score", "display", "off"); - [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "lsd", ... - "display", "off"); - assert (C(1,6), 2.85812420217898e-05, 1e-09); - assert (C(2,6), 5.22936741204085e-07, 1e-09); - assert (C(3,6), 2.12794763209146e-08, 1e-09); - assert (C(4,6), 7.82091664406946e-15, 1e-09); - assert (C(5,6), 0.546591417210693, 1e-09); - assert (C(6,6), 0.0845897945254446, 1e-09); - assert (C(7,6), 9.47436557975328e-08, 1e-09); - assert (C(8,6), 0.188873478781067, 1e-09); - assert (C(9,6), 4.08974010364197e-08, 1e-09); - assert (C(10,6), 4.44427348175241e-06, 1e-09); - assert (M(1,1), 10, 1e-09); - assert (M(2,1), 18, 1e-09); - assert (M(3,1), 19, 1e-09); - assert (M(4,1), 21.0001428571429, 1e-09); - assert (M(5,1), 29.0001111111111, 1e-09); - assert (M(1,2), 1.0177537954095, 1e-09); - assert (M(2,2), 1.28736803631001, 1e-09); - assert (M(3,2), 1.0177537954095, 1e-09); - assert (M(4,2), 1.0880245732889, 1e-09); - assert (M(5,2), 0.959547480416536, 1e-09); - - ## Compare "fdr" adjusted p-values to those obtained using p.adjust in R - - [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "fdr", ... - "display", "off"); - assert (C(1,6), 4.08303457454140e-05, 1e-09); - assert (C(2,6), 1.04587348240817e-06, 1e-09); - assert (C(3,6), 1.06397381604573e-07, 1e-09); - assert (C(4,6), 7.82091664406946e-14, 1e-09); - assert (C(5,6), 5.46591417210693e-01, 1e-09); - assert (C(6,6), 1.05737243156806e-01, 1e-09); - assert (C(7,6), 2.36859139493832e-07, 1e-09); - assert (C(8,6), 2.09859420867852e-01, 1e-09); - assert (C(9,6), 1.36324670121399e-07, 1e-09); - assert (C(10,6), 7.40712246958735e-06, 1e-09); - - ## Compare "hochberg" adjusted p-values to those obtained using p.adjust in R - - [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "hochberg", ... - "display", "off"); - assert (C(1,6), 1.14324968087159e-04, 1e-09); - assert (C(2,6), 3.13762044722451e-06, 1e-09); - assert (C(3,6), 1.91515286888231e-07, 1e-09); - assert (C(4,6), 7.82091664406946e-14, 1e-09); - assert (C(5,6), 5.46591417210693e-01, 1e-09); - assert (C(6,6), 2.53769383576334e-01, 1e-09); - assert (C(7,6), 6.63205590582730e-07, 1e-09); - assert (C(8,6), 3.77746957562134e-01, 1e-09); - assert (C(9,6), 3.27179208291358e-07, 1e-09); - assert (C(10,6), 2.22213674087620e-05, 1e-09); - - ## Compare "holm" adjusted p-values to those obtained using p.adjust in R + ## 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 - [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "holm", ... - "display", "off"); - assert (C(1,6), 1.14324968087159e-04, 1e-09); - assert (C(2,6), 3.13762044722451e-06, 1e-09); - assert (C(3,6), 1.91515286888231e-07, 1e-09); - assert (C(4,6), 7.82091664406946e-14, 1e-09); - assert (C(5,6), 5.46591417210693e-01, 1e-09); - assert (C(6,6), 2.53769383576334e-01, 1e-09); - assert (C(7,6), 6.63205590582730e-07, 1e-09); - assert (C(8,6), 3.77746957562134e-01, 1e-09); - assert (C(9,6), 3.27179208291358e-07, 1e-09); - assert (C(10,6), 2.22213674087620e-05, 1e-09); + ## Estimate their k, sigma, and mu parameters + k_sigma_muA = gevfit (r(:,1)); + k_sigma_muB = gevfit (r(:,2)); - ## Compare "scheffe" adjusted p-values to those obtained using 'scheffe' in Matlab + ## 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 + 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/gpfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; - [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "scheffe", ... - "display", "off"); - assert (C(1,6), 0.00108105386141085, 1e-09); - assert (C(2,6), 2.7779386789517e-05, 1e-09); - assert (C(3,6), 1.3599854038198e-06, 1e-09); - assert (C(4,6), 7.58830197867751e-13, 1e-09); - assert (C(5,6), 0.984039948220281, 1e-09); - assert (C(6,6), 0.539077018557706, 1e-09); - assert (C(7,6), 5.59475764460574e-06, 1e-09); - assert (C(8,6), 0.771173490574105, 1e-09); - assert (C(9,6), 2.52838425729905e-06, 1e-09); - assert (C(10,6), 0.000200719143889168, 1e-09); + ## 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 - ## Compare "bonferroni" adjusted p-values to those obtained using p.adjust in R + ## Estimate their α and β parameters + k_sigmaA = gpfit (r(:,1), theta); + k_sigmaB = gpfit (r(:,2), theta); - [C, M, H, GNAMES] = multcompare (STATS, "dim", 1, "ctype", "bonferroni", ... - "display", "off"); - assert (C(1,6), 2.85812420217898e-04, 1e-09); - assert (C(2,6), 5.22936741204085e-06, 1e-09); - assert (C(3,6), 2.12794763209146e-07, 1e-09); - assert (C(4,6), 7.82091664406946e-14, 1e-09); - assert (C(5,6), 1.00000000000000e+00, 1e-09); - assert (C(6,6), 8.45897945254446e-01, 1e-09); - assert (C(7,6), 9.47436557975328e-07, 1e-09); - assert (C(8,6), 1.00000000000000e+00, 1e-09); - assert (C(9,6), 4.08974010364197e-07, 1e-09); - assert (C(10,6), 4.44427348175241e-05, 1e-09); + ## 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/raylfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; - ## Test for anova1 ("equal")- comparison of results from Matlab + ## 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 - [P, ATAB, STATS] = anova1 (dv, g, "off", "equal"); - [C, M, H, GNAMES] = multcompare (STATS, "ctype", "lsd", "display", "off"); - assert (C(1,6), 2.85812420217898e-05, 1e-09); - assert (C(2,6), 5.22936741204085e-07, 1e-09); - assert (C(3,6), 2.12794763209146e-08, 1e-09); - assert (C(4,6), 7.82091664406946e-15, 1e-09); - assert (C(5,6), 0.546591417210693, 1e-09); - assert (C(6,6), 0.0845897945254446, 1e-09); - assert (C(7,6), 9.47436557975328e-08, 1e-09); - assert (C(8,6), 0.188873478781067, 1e-09); - assert (C(9,6), 4.08974010364197e-08, 1e-09); - assert (C(10,6), 4.44427348175241e-06, 1e-09); - assert (M(1,1), 10, 1e-09); - assert (M(2,1), 18, 1e-09); - assert (M(3,1), 19, 1e-09); - assert (M(4,1), 21.0001428571429, 1e-09); - assert (M(5,1), 29.0001111111111, 1e-09); - assert (M(1,2), 1.0177537954095, 1e-09); - assert (M(2,2), 1.28736803631001, 1e-09); - assert (M(3,2), 1.0177537954095, 1e-09); - assert (M(4,2), 1.0880245732889, 1e-09); - assert (M(5,2), 0.959547480416536, 1e-09); + ## Estimate their lambda parameter + sigmaA = raylfit (r(:,1)); + sigmaB = raylfit (r(:,2)); + sigmaC = raylfit (r(:,3)); - ## Test for anova1 ("unequal") - comparison with results from GraphPad Prism 8 - [P, ATAB, STATS] = anova1 (dv, g, "off", "unequal"); - [C, M, H, GNAMES] = multcompare (STATS, "ctype", "lsd", "display", "off"); - assert (C(1,6), 0.001247025266382, 1e-09); - assert (C(2,6), 0.000018037115146, 1e-09); - assert (C(3,6), 0.000002974595187, 1e-09); - assert (C(4,6), 0.000000000786046, 1e-09); - assert (C(5,6), 0.5693192886650109, 1e-09); - assert (C(6,6), 0.110501699029776, 1e-09); - assert (C(7,6), 0.000131226488700, 1e-09); - assert (C(8,6), 0.1912101409715992, 1e-09); - assert (C(9,6), 0.000005385256394, 1e-09); - assert (C(10,6), 0.000074089106171, 1e-09); + ## 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 - - ## Test for anova2 ("interaction") - comparison with results from Matlab for column effect - 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] = anova2 (popcorn, 3, "off"); - [C, M, H, GNAMES] = multcompare (STATS, "estimate", "column",... - "ctype", "lsd", "display", "off"); - assert (C(1,6), 1.49311100811177e-05, 1e-09); - assert (C(2,6), 2.20506904243535e-07, 1e-09); - assert (C(3,6), 0.00449897860490058, 1e-09); - assert (M(1,1), 6.25, 1e-09); - assert (M(2,1), 4.75, 1e-09); - assert (M(3,1), 4, 1e-09); - assert (M(1,2), 0.152145154862547, 1e-09); - assert (M(2,2), 0.152145154862547, 1e-09); - assert (M(3,2), 0.152145154862547, 1e-09); + 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 - - ## Test for anova2 ("linear") - comparison with results from GraphPad Prism 8 - 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]; - [P, ATAB, STATS] = anova2 (words, 1, "off", "linear"); - [C, M, H, GNAMES] = multcompare (STATS, "estimate", "column",... - "ctype", "lsd", "display", "off"); - assert (C(1,6), 0.000020799832702, 1e-09); - assert (C(2,6), 0.000000035812410, 1e-09); - assert (C(3,6), 0.003038942449215, 1e-09); + 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 - - ## Test for anova2 ("nested") - comparison with results from GraphPad Prism 8 - data = [4.5924 7.3809 21.322; -0.5488 9.2085 25.0426; ... - 6.1605 13.1147 22.66; 2.3374 15.2654 24.1283; ... - 5.1873 12.4188 16.5927; 3.3579 14.3951 10.2129; ... - 6.3092 8.5986 9.8934; 3.2831 3.4945 10.0203]; - [P, ATAB, STATS] = anova2 (data, 4, "off", "nested"); - [C, M, H, GNAMES] = multcompare (STATS, "estimate", "column",... - "ctype", "lsd", "display", "off"); - assert (C(1,6), 0.261031111511073, 1e-09); - assert (C(2,6), 0.065879755907745, 1e-09); - assert (C(3,6), 0.241874613529270, 1e-09); -***** shared visibility_setting - visibility_setting = get (0, "DefaultFigureVisible"); + 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 - set (0, "DefaultFigureVisible", "off"); + 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/binofit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; - ## Test for kruskalwallis - comparison with results from MATLAB - data = [3,2,4; 5,4,4; 4,2,4; 4,2,4; 4,1,5; ... - 4,2,3; 4,3,5; 4,2,4; 5,2,4; 5,3,3]; - group = [1:3] .* ones (10,3); - [P, ATAB, STATS] = kruskalwallis (data(:), group(:), "off"); - C = multcompare (STATS, "ctype", "lsd", "display", "off"); - assert (C(1,6), 0.000163089828959986, 1e-09); - assert (C(2,6), 0.630298044801257, 1e-09); - assert (C(3,6), 0.00100567660695682, 1e-09); - C = multcompare (STATS, "ctype", "bonferroni", "display", "off"); - assert (C(1,6), 0.000489269486879958, 1e-09); - assert (C(2,6), 1, 1e-09); - assert (C(3,6), 0.00301702982087047, 1e-09); - C = multcompare(STATS, "ctype", "scheffe", "display", "off"); - assert (C(1,6), 0.000819054880289573, 1e-09); - assert (C(2,6), 0.890628039849261, 1e-09); - assert (C(3,6), 0.00447816059021654, 1e-09); - set (0, "DefaultFigureVisible", visibility_setting); + ## 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 - set (0, "DefaultFigureVisible", "off"); - ## Test for friedman - comparison with results from MATLAB - 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"); - C = multcompare(STATS, "ctype", "lsd", "display", "off"); - assert (C(1,6), 0.227424558028569, 1e-09); - assert (C(2,6), 0.0327204848315735, 1e-09); - assert (C(3,6), 0.353160353315988, 1e-09); - C = multcompare(STATS, "ctype", "bonferroni", "display", "off"); - assert (C(1,6), 0.682273674085708, 1e-09); - assert (C(2,6), 0.0981614544947206, 1e-09); - assert (C(3,6), 1, 1e-09); - C = multcompare(STATS, "ctype", "scheffe", "display", "off"); - assert (C(1,6), 0.482657360384373, 1e-09); - assert (C(2,6), 0.102266573027672, 1e-09); - assert (C(3,6), 0.649836502233148, 1e-09); - set (0, "DefaultFigureVisible", visibility_setting); + 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/nbinlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/betalike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/betalike.m ***** test - set (0, "DefaultFigureVisible", "off"); - ## Test for fitlm - same comparisons as for first anovan example - y = [ 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 ]'; - X = [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]'; - [TAB,STATS] = fitlm (X,y,"linear","categorical",1,"display","off",... - "contrasts","simple"); - [C, M] = multcompare(STATS, "ctype", "lsd", "display", "off"); - assert (C(1,6), 2.85812420217898e-05, 1e-09); - assert (C(2,6), 5.22936741204085e-07, 1e-09); - assert (C(3,6), 2.12794763209146e-08, 1e-09); - assert (C(4,6), 7.82091664406946e-15, 1e-09); - assert (C(5,6), 0.546591417210693, 1e-09); - assert (C(6,6), 0.0845897945254446, 1e-09); - assert (C(7,6), 9.47436557975328e-08, 1e-09); - assert (C(8,6), 0.188873478781067, 1e-09); - assert (C(9,6), 4.08974010364197e-08, 1e-09); - assert (C(10,6), 4.44427348175241e-06, 1e-09); - assert (M(1,1), 10, 1e-09); - assert (M(2,1), 18, 1e-09); - assert (M(3,1), 19, 1e-09); - assert (M(4,1), 21.0001428571429, 1e-09); - assert (M(5,1), 29.0001111111111, 1e-09); - assert (M(1,2), 1.0177537954095, 1e-09); - assert (M(2,2), 1.28736803631001, 1e-09); - assert (M(3,2), 1.0177537954095, 1e-09); - assert (M(4,2), 1.0880245732889, 1e-09); - assert (M(5,2), 0.959547480416536, 1e-09); - set (0, "DefaultFigureVisible", visibility_setting); + 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 - ## Test p-value adjustments compared to R stats package function p.adjust - ## Data from Westfall (1997) JASA. 92(437):299-306 - p = [.005708; .023544; .024193; .044895; ... - .048805; .221227; .395867; .693051; .775755]; - padj = multcompare (p); - assert (padj(1), 0.051372, 1e-06); - assert (padj(2), 0.188352, 1e-06); - assert (padj(3), 0.188352, 1e-06); - assert (padj(4), 0.269370, 1e-06); - assert (padj(5), 0.269370, 1e-06); - assert (padj(6), 0.884908, 1e-06); - assert (padj(7), 1.000000, 1e-06); - assert (padj(8), 1.000000, 1e-06); - assert (padj(9), 1.000000, 1e-06); - padj = multcompare(p,'ctype','holm'); - assert (padj(1), 0.051372, 1e-06); - assert (padj(2), 0.188352, 1e-06); - assert (padj(3), 0.188352, 1e-06); - assert (padj(4), 0.269370, 1e-06); - assert (padj(5), 0.269370, 1e-06); - assert (padj(6), 0.884908, 1e-06); - assert (padj(7), 1.000000, 1e-06); - assert (padj(8), 1.000000, 1e-06); - assert (padj(9), 1.000000, 1e-06); - padj = multcompare(p,'ctype','hochberg'); - assert (padj(1), 0.051372, 1e-06); - assert (padj(2), 0.169351, 1e-06); - assert (padj(3), 0.169351, 1e-06); - assert (padj(4), 0.244025, 1e-06); - assert (padj(5), 0.244025, 1e-06); - assert (padj(6), 0.775755, 1e-06); - assert (padj(7), 0.775755, 1e-06); - assert (padj(8), 0.775755, 1e-06); - assert (padj(9), 0.775755, 1e-06); - padj = multcompare(p,'ctype','fdr'); - assert (padj(1), 0.0513720, 1e-07); - assert (padj(2), 0.0725790, 1e-07); - assert (padj(3), 0.0725790, 1e-07); - assert (padj(4), 0.0878490, 1e-07); - assert (padj(5), 0.0878490, 1e-07); - assert (padj(6), 0.3318405, 1e-07); - assert (padj(7), 0.5089719, 1e-07); - assert (padj(8), 0.7757550, 1e-07); - assert (padj(9), 0.7757550, 1e-07); + 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/kmeans.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/kmeans.m +[inst/dist_fit/nbinfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/nbinfit.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]; + ## 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]; - ## Perform clustering - rand ("seed", 1) # for reproducibility - [idx, centers] = kmeans (data, 2); + ## 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 - ## 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 + ## Estimate their probability of success + r_psA = nbinfit (r(:,1)); + r_psB = nbinfit (r(:,2)); - load fisheriris - X = meas(:,3:4); + ## 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/bisafit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; - figure; - plot (X(:,1), X(:,2), "k*", "MarkerSize", 5); - title ("Fisher's Iris Data"); - xlabel ("Petal Lengths (cm)"); - ylabel ("Petal Widths (cm)"); + ## 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 - ## 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(:)]; + ## Estimate their α and β parameters + beta_gammaA = bisafit (r(:,1)); + beta_gammaB = bisafit (r(:,2)); + beta_gammaC = bisafit (r(:,3)); - 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"); + ## 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/poisslike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/poisslike.m +***** test + 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/loglfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/loglfit.m ***** 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]; + ## 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]; - 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); + ## 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 - 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"); + + ## 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/wbllike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/wbllike.m +***** 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); +***** 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); +***** 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/betafit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/betafit.m ***** 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]; + ## 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]; - ## Partition the training data into three clusters by using kmeans + ## 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 - rand ("seed", 1) # for reproducibility - [idx, C] = kmeans (X, 3); + ## Estimate their shape parameters + a_b_A = betafit (r(:,1)); + a_b_B = betafit (r(:,2)); - ## Plot the clusters and the cluster centroids + ## 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 + 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 + 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 + 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/gamfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; - figure - gscatter (X(:,1), X(:,2), idx, "bgm", "***"); + ## 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 - 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]; + ## Estimate their α and β parameters + a_bA = gamfit (r(:,1)); + a_bB = gamfit (r(:,2)); + a_bC = gamfit (r(:,3)); - ## Classify the test data set using the existing clusters - ## Find the nearest centroid from each test data point by using pdist2 + ## 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/wblfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; - D = pdist2 (C, Xtest, "euclidean"); - [group, ~] = find (D == min (D)); + ## 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 - ## Plot the test data and label the test data using idx_test with gscatter + ## Estimate their lambda parameter + lambda_kA = wblfit (r(:,1)); + lambda_kB = wblfit (r(:,2)); + lambda_kC = wblfit (r(:,3)); - 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"); + ## 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 - 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]); + 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 - 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]); + 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/ricelike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/ricelike.m ***** 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]); + nlogL = ricelike ([15.3057344, 17.6668458], [1:50]); + assert (nlogL, 204.5230311010569, 1e-12); ***** test - kmeans (rand (4,3), 2, "start", rand (2,3, 5), "replicates", 5, - "emptyAction", "singleton"); + 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/rayllike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/rayllike.m ***** test - kmeans (rand (3,4), 2, "start", "sample", "emptyAction", "singleton"); + x = [1 3 2 4 5 4 3 4]; + [nlogL, acov] = rayllike (3.25, x); + assert (nlogL, 14.7442, 1e-4) ***** test - kmeans (rand (3,4), 2, "start", "plus", "emptyAction", "singleton"); + 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 - kmeans (rand (3,4), 2, "start", "cluster", "emptyAction", "singleton"); + 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 - kmeans (rand (3,4), 2, "start", "uniform", "emptyAction", "singleton"); + 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/logilike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/logilike.m ***** test - kmeans (rand (4,3), 2, "distance", "sqeuclidean", "emptyAction", "singleton"); + nlogL = logilike ([25.5, 8.7725], [1:50]); + assert (nlogL, 206.6769, 1e-4); ***** test - kmeans (rand (4,3), 2, "distance", "cityblock", "emptyAction", "singleton"); + 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/burrfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; + + ## 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 - kmeans (rand (4,3), 2, "distance", "cosine", "emptyAction", "singleton"); + 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 - kmeans (rand (4,3), 2, "distance", "correlation", "emptyAction", "singleton"); + 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 - kmeans (rand (4,3), 2, "distance", "hamming", "emptyAction", "singleton"); + 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 - 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/cophenet.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/cophenet.m + 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/unidfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/unidfit.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/fitcdiscr.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitcdiscr.m + ## 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/poissfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/poissfit.m ***** demo - ## Train a linear discriminant classifier for Gamma = 0.5 - ## and plot the decision boundaries. + ## 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]; - load fisheriris - idx = ! strcmp (species, "setosa"); - X = meas(idx,3:4); - Y = cast (strcmpi (species(idx), "virginica"), "double"); - obj = fitcdiscr (X, Y, "Gamma", 0.5) - 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 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 - figure - scatter (XGrid(gidx,1), XGrid(gidx,2), "markerfacecolor", "magenta"); + ## 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 + 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/burrlike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/invgfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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 ("Linear Discriminant Analysis Decision Boundary"); - legend ({"Versicolor Region", "Virginica Region", ... - "Sampled Versicolor", "Sampled Virginica"}, ... - "location", "northwest") - axis tight + + ## 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 - load fisheriris - Mdl = fitcdiscr (meas, species, "Gamma", 0.5); - [label, score, cost] = predict (Mdl, [2, 2, 2, 2]); - assert (label, {'versicolor'}) - assert (score, [0, 0.9999, 0.0001], 1e-4) - assert (cost, [1, 0.0001, 0.9999], 1e-4) - [label, score, cost] = predict (Mdl, [2.5, 2.5, 2.5, 2.5]); - assert (label, {'versicolor'}) - assert (score, [0, 0.6368, 0.3632], 1e-4) - assert (cost, [1, 0.3632, 0.6368], 1e-4) - assert (class (Mdl), "ClassificationDiscriminant"); - assert ({Mdl.X, Mdl.Y, Mdl.NumObservations}, {meas, species, 150}) - assert ({Mdl.DiscrimType, Mdl.ResponseName}, {"linear", "Y"}) - assert ({Mdl.Gamma, Mdl.MinGamma}, {0.5, 0}) - assert (Mdl.ClassNames, unique (species)) - sigma = [0.265008, 0.046361, 0.083757, 0.019201; ... - 0.046361, 0.115388, 0.027622, 0.016355; ... - 0.083757, 0.027622, 0.185188, 0.021333; ... - 0.019201, 0.016355, 0.021333, 0.041882]; - assert (Mdl.Sigma, sigma, 1e-6) - mu = [5.0060, 3.4280, 1.4620, 0.2460; ... - 5.9360, 2.7700, 4.2600, 1.3260; ... - 6.5880, 2.9740, 5.5520, 2.0260]; - assert (Mdl.Mu, mu, 1e-14) - assert (Mdl.LogDetSigma, -8.6884, 1e-4) -***** error fitcdiscr () -***** error fitcdiscr (ones (4,1)) -***** error - fitcdiscr (ones (4,2), ones (4, 1), "K") -***** error - fitcdiscr (ones (4,2), ones (3, 1)) -***** error - fitcdiscr (ones (4,2), ones (3, 1), "K", 2) -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/bartlett_test.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]); + paramhat = invgfit ([1:50]); + paramhat_out = [25.5, 19.6973]; + assert (paramhat, paramhat_out, 1e-4); ***** 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); + 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/bisalike.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/bisalike.m ***** 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); + 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/kstest2.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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(:,[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)); + assert (h, false); + assert (p, 0.1222791870137312, 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", "larger"); + assert (h, false); + assert (p, 0.1844421391011258, 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/regression_ftest.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/barttest.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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) + [h, p] = kstest2 (grades(:,1), grades(:,2), "tail", "smaller"); + assert (h, false); + assert (p, 0.06115357930171663, 1e-14); ***** 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 ? + 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/cdfcalc.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/cdfcalc.m ***** 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/canoncorr.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/monotone_smooth.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 + 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/vartestn.m] >>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/vartestn.m ***** demo @@ -9267,1398 +8933,2419 @@ assert (stat.fstat, 8.6766, 1e-4); assert (stat.df, [4, 595]); 17 tests, 17 passed, 0 known failure, 0 skipped -[inst/violin.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/violin.m +[inst/jackknife.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/jackknife.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))(:); + 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 - h = violin (x, "color", "c"); - axis tight - set (h.violin, "linewidth", 2); - set (gca, "xgrid", "on"); - xlabel ("Variables") - ylabel ("Values") + figure(); + hist ([s', j'], 0:sqrt(1/12)/10:2*sqrt(1/12)) ***** 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 + 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/fitlm.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitlm.m +***** demo + y = [ 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 ]'; + X = [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]'; - subplot(1,2,2) - title ("Grade 3 heights - horizontal"); - set (gca, "ytick", 1:2, "yticklabel", {"girls"; "boys"}); - violin (data, "horizontal", "Nbins", 10); - axis tight + [TAB,STATS] = fitlm (X,y,"linear","CategoricalVars",1,"display","on"); ***** demo - clf - data = exprnd (0.1, 500,4); - violin (data, "nbins", {5,10,50,100}); - axis ([0 5 0 max(data(:))]) + 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'}; + + [TAB, STATS] = fitlm ({brands(:),popper(:)},popcorn(:),"interactions",... + "CategoricalVars",[1,2],"display","on"); +***** test + y = [ 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 ]'; + X = [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]'; + [TAB,STATS] = fitlm (X,y,"continuous",[],"display","off"); + [TAB,STATS] = fitlm (X,y,"CategoricalVars",1,"display","off"); + [TAB,STATS] = fitlm (X,y,"constant","categorical",1,"display","off"); + [TAB,STATS] = fitlm (X,y,"linear","categorical",1,"display","off"); + [TAB,STATS] = fitlm (X,y,[0,0;1,0],"categorical",1,"display","off"); + assert (TAB{2,2}, 10, 1e-04); + assert (TAB{3,2}, 7.99999999999999, 1e-09); + assert (TAB{4,2}, 8.99999999999999, 1e-09); + assert (TAB{5,2}, 11.0001428571429, 1e-09); + assert (TAB{6,2}, 19.0001111111111, 1e-09); + assert (TAB{2,3}, 1.01775379540949, 1e-09); + assert (TAB{3,3}, 1.64107868458008, 1e-09); + assert (TAB{4,3}, 1.43932122062479, 1e-09); + assert (TAB{5,3}, 1.48983900477565, 1e-09); + assert (TAB{6,3}, 1.3987687997822, 1e-09); + assert (TAB{2,6}, 9.82555903510687, 1e-09); + assert (TAB{3,6}, 4.87484242844031, 1e-09); + assert (TAB{4,6}, 6.25294748040552, 1e-09); + assert (TAB{5,6}, 7.38344399756088, 1e-09); + assert (TAB{6,6}, 13.5834536158296, 1e-09); + assert (TAB{3,7}, 2.85812420217862e-05, 1e-12); + assert (TAB{4,7}, 5.22936741204002e-07, 1e-06); + assert (TAB{5,7}, 2.12794763209106e-08, 1e-07); + assert (TAB{6,7}, 7.82091664406755e-15, 1e-08); +***** 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 = bsxfun (@times, ones(6,1), [1,2,3]); + popper = bsxfun (@times, [1;1;1;2;2;2], ones(1,3)); + + [TAB, STATS] = fitlm ({brands(:),popper(:)},popcorn(:),"interactions",... + "categoricalvars",[1,2],"display","off"); + assert (TAB{2,2}, 5.66666666666667, 1e-09); + assert (TAB{3,2}, -1.33333333333333, 1e-09); + assert (TAB{4,2}, -2.16666666666667, 1e-09); + assert (TAB{5,2}, 1.16666666666667, 1e-09); + assert (TAB{6,2}, -0.333333333333334, 1e-09); + assert (TAB{7,2}, -0.166666666666667, 1e-09); + assert (TAB{2,3}, 0.215165741455965, 1e-09); + assert (TAB{3,3}, 0.304290309725089, 1e-09); + assert (TAB{4,3}, 0.304290309725089, 1e-09); + assert (TAB{5,3}, 0.304290309725089, 1e-09); + assert (TAB{6,3}, 0.43033148291193, 1e-09); + assert (TAB{7,3}, 0.43033148291193, 1e-09); + assert (TAB{2,6}, 26.3362867542108, 1e-09); + assert (TAB{3,6}, -4.38178046004138, 1e-09); + assert (TAB{4,6}, -7.12039324756724, 1e-09); + assert (TAB{5,6}, 3.83405790253621, 1e-09); + assert (TAB{6,6}, -0.774596669241495, 1e-09); + assert (TAB{7,6}, -0.387298334620748, 1e-09); + assert (TAB{2,7}, 5.49841502258254e-12, 1e-09); + 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/bar3.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/bar3.m ***** demo - clf - data = exprnd (0.1, 500,4); - violin (data, "color", jet(4)); - axis ([0 5 0 max(data(:))]) + ## Ploting 5 bars in the same series. + + z = [50; 40; 30; 20; 10]; + bar3 (z); ***** 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(:))]) + ## Ploting 5 bars in different groups. + + z = [50, 40, 30, 20, 10]; + bar3 (z); ***** 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(:))]) + ## A 3D bar graph with each series corresponding to a column in z. + + z = [1, 4, 7; 2, 5, 8; 3, 6, 9; 4, 7, 10]; + bar3 (z); +***** demo + ## Specify y-axis locations as tick names. y must be a column vector! + + y = [1950, 1960, 1970, 1980, 1990]'; + z = [16, 8, 4, 2, 1]'; + bar3 (y, z); +***** demo + ## Plot 3 series as a grouped plot without any space between the grouped bars + + z = [70 50 33 10; 75 55 35 15; 80 60 40 20]; + bar3 (z, 1, 'grouped'); +***** demo + ## Plot a stacked style 3D bar graph + + z = [19, 30, 21, 30; 40, 16, 32, 12]; + b = bar3 (z, 0.5, 'stacked'); +***** error bar3 ("A") +***** error bar3 ({2,3,4,5}) +***** error ... + bar3 ([1,2,3]', ones (2)) +***** error ... + bar3 ([1:5], 1.2) +***** error ... + bar3 ([1:5]', ones (5), 1.2) +***** error ... + bar3 ([1:5]', ones (5), [0.8, 0.7]) +***** error ... + bar3 (ones (5), 'width') +***** error ... + bar3 (ones (5), 'width', 1.2) +***** error ... + bar3 (ones (5), 'width', [0.8, 0.8, 0.8]) +***** error ... + bar3 (ones (5), 'color') +***** error ... + bar3 (ones (5), 'color', [0.8, 0.8]) +***** error ... + bar3 (ones (5), 'color', "brown") +***** error ... + bar3 (ones (5), 'color', {"r", "k", "c", "m", "brown"}) +***** error ... + bar3 (ones (5), 'xlabel') +***** error ... + bar3 (ones (5), 'xlabel', 4) +***** error ... + bar3 (ones (5), 'ylabel') +***** error ... + bar3 (ones (5), 'ylabel', 4) +***** error bar3 (ones (5), 'this', 4) +***** error ... + bar3 (ones (5), 'xlabel', {"A", "B", "C"}) +***** error ... + bar3 (ones (5), 'ylabel', {"A", "B", "C"}) +20 tests, 20 passed, 0 known failure, 0 skipped +[inst/rangesearch.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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 + [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 - 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 + [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 - 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 + [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 - 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 + [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 - 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/dist_stat/unidstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_stat/unidstat.m -***** error unidstat () -***** error unidstat ({}) -***** error unidstat ("") -***** error unidstat (i) + [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 - 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/nakastat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + [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 - [m, v] = nakastat (1, 1); - assert (m, 0.8862269254, 1e-10); - assert (v, 0.2146018366, 1e-10); + 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 - [m, v] = nakastat (1, 2); - assert (m, 1.25331413731, 1e-10); - assert (v, 0.42920367321, 1e-10); + 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 - [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/expstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_stat/expstat.m -***** error expstat () -***** error expstat ({}) -***** error expstat ("") -***** error expstat (i) + [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 - 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/nbinstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + [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 - 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); + [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 - 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/plstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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) + [idx, D] = rangesearch (X, Y, 2); + assert (idx, {[1]; [1, 2]}); + assert (D, {[1.4142]; [1.4142, 1.4142]}, 1e-4); ***** 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/burrstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + 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 - [m, v] = burrstat (1, 2, 5); - assert (m, 0.4295, 1e-4); - assert (v, 0.0655, 1e-4); + [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 - [m, v] = burrstat (1, 1, 1); - assert (m, Inf); - assert (v, Inf); + [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/princomp.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/princomp.m +***** shared COEFF,SCORE,latent,tsquare,m,x,R,V,lambda,i,S,F ***** 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/ncfstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/bisastat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + 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 - 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); + 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 - 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/gevstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + 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 - 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); + [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/ztest.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 + 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 + 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 + 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/dist_stat/unifstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) +[inst/cl_multinom.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hist3.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/hist3.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) ***** 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); + 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 - 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/gamstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + 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 - 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); + 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 - 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/logistat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + for i = 10 + assert (size (hist3 (rand (9, 2), "Edges", {[0:.2:1]; [0:.2:1]})), [6 6]) + endfor ***** test - [m, v] = logistat (0, 1); - assert (m, 0); - assert (v, 3.2899, 0.001); + 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 - [m, v] = logistat (0, 0.8); - assert (m, 0); - assert (v, 2.1055, 0.001); + 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 - [m, v] = logistat (1, 0.6); - assert (m, 1); - assert (v, 1.1844, 0.001); + 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 - [m, v] = logistat (0, 0.4); - assert (m, 0); - assert (v, 0.5264, 0.001); + 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 - [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/binostat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + 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 - 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); + [~, 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 - 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); + 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 - 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/lognstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + [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 - 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); + [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 - 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/hygestat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + [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 - 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); + [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/isoutlier.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/isoutlier.m +***** demo + A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; + TF = isoutlier (A, "mean") +***** demo + ## Use a moving detection method to detect local outliers in a sine wave + + 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 - 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.7.0/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) + 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 - 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/chi2stat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_stat/chi2stat.m -***** error chi2stat () -***** error chi2stat ({}) -***** error chi2stat ("") -***** error chi2stat (i) + 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 - 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/fstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + 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 - 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); + A = magic(5) + diag(200*ones(1,5)); + T = logical (eye (5)); + assert (isoutlier (A, 2), T) ***** 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/betastat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + 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 - 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); + 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 - 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); + 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 - 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/ncx2stat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/geostat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_stat/geostat.m -***** error geostat () -***** error geostat ({}) -***** error geostat ("") -***** error geostat (i) + 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 - 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/tstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_stat/tstat.m -***** error tstat () -***** error tstat ({}) -***** error tstat ("") -***** error tstat (i) + 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 - 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); + 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 + 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 + 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 + 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 + 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 + 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/cdfplot.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/dist_stat/wblstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) +[inst/bar3h.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/bar3h.m +***** demo + ## Ploting 5 bars in the same series. + + y = [50; 40; 30; 20; 10]; + bar3h (y); +***** demo + ## Ploting 5 bars in different groups. + + y = [50, 40, 30, 20, 10]; + bar3h (y); +***** demo + ## A 3D bar graph with each series corresponding to a column in y. + + y = [1, 4, 7; 2, 5, 8; 3, 6, 9; 4, 7, 10]; + bar3h (y); +***** demo + ## Specify z-axis locations as tick names. z must be a column vector! + + z = [1950, 1960, 1970, 1980, 1990]'; + y = [16, 8, 4, 2, 1]'; + bar3h (z, y); +***** demo + ## Plot 3 series as a grouped plot without any space between the grouped bars + + y = [70 50 33 10; 75 55 35 15; 80 60 40 20]; + bar3h (y, 1, 'grouped'); +***** demo + ## Plot a stacked style 3D bar graph + + y = [19, 30, 21, 30; 40, 16, 32, 12]; + b = bar3h (y, 0.5, 'stacked'); +***** error bar3h ("A") +***** error bar3h ({2,3,4,5}) +***** error ... + bar3h ([1,2,3]', ones (2)) +***** error ... + bar3h ([1:5], 1.2) +***** error ... + bar3h ([1:5]', ones (5), 1.2) +***** error ... + bar3h ([1:5]', ones (5), [0.8, 0.7]) +***** error ... + bar3h (ones (5), 'width') +***** error ... + bar3h (ones (5), 'width', 1.2) +***** error ... + bar3h (ones (5), 'width', [0.8, 0.8, 0.8]) +***** error ... + bar3h (ones (5), 'color') +***** error ... + bar3h (ones (5), 'color', [0.8, 0.8]) +***** error ... + bar3h (ones (5), 'color', "brown") +***** error ... + bar3h (ones (5), 'color', {"r", "k", "c", "m", "brown"}) +***** error ... + bar3h (ones (5), 'xlabel') +***** error ... + bar3h (ones (5), 'xlabel', 4) +***** error ... + bar3h (ones (5), 'zlabel') +***** error ... + bar3h (ones (5), 'zlabel', 4) +***** error bar3h (ones (5), 'this', 4) +***** error ... + bar3h (ones (5), 'xlabel', {"A", "B", "C"}) +***** error ... + bar3h (ones (5), 'zlabel', {"A", "B", "C"}) +20 tests, 20 passed, 0 known failure, 0 skipped +[inst/standardizeMissing.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fitcsvm.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitcsvm.m +***** demo + ## Use a subset of Fisher's iris data set + + load fisheriris + inds = ! strcmp (species, 'setosa'); + X = meas(inds, [3,4]); + Y = species(inds); + + ## Train a linear SVM classifier + SVMModel = fitcsvm (X, Y) + + ## Plot a scatter diagram of the data and circle the support vectors. + sv = SVMModel.SupportVectors; + figure + gscatter (X(:,1), X(:,2), Y) + hold on + plot (sv(:,1), sv(:,2), 'ko', 'MarkerSize', 10) + legend ('versicolor', 'virginica', 'Support Vector') + hold off ***** 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); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = {"a"; "a"; "b"; "b"}; + a = fitcsvm (x, y); + assert (class (a), "ClassificationSVM"); + assert ({a.X, a.Y}, {x, y}) + assert (a.NumObservations, 4) + assert ({a.ResponseName, a.PredictorNames}, {"Y", {"x1", "x2", "x3"}}) + assert (a.ModelParameters.SVMtype, "c_svc") + assert (a.ClassNames, {"a"; "b"}) ***** 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/loglstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; + y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; + a = fitcsvm (x, y); + assert (class (a), "ClassificationSVM"); + assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "linear"}) + assert (a.ModelParameters.BoxConstraint, 1) + assert (a.ModelParameters.KernelOffset, 0) + assert (a.ClassNames, [1; -1]) ***** test - [m, v] = loglstat (0, 1); - assert (m, Inf, 0.001); - assert (v, Inf, 0.001); + x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; + y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; + a = fitcsvm (x, y, "KernelFunction", "rbf", "BoxConstraint", 2, ... + "KernelOffset", 2); + assert (class (a), "ClassificationSVM"); + assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "rbf"}) + assert (a.ModelParameters.BoxConstraint, 2) + assert (a.ModelParameters.KernelOffset, 2) + assert (isempty (a.Alpha), true) + assert (isempty (a.Beta), false) ***** test - [m, v] = loglstat (0, 0.8); - assert (m, 4.2758, 0.001); - assert (v, Inf, 0.001); + x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; + y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; + a = fitcsvm (x, y, "KernelFunction", "polynomial", "PolynomialOrder", 3); + assert (class (a), "ClassificationSVM"); + assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "polynomial"}) + assert (a.ModelParameters.PolynomialOrder, 3) + assert (isempty (a.Alpha), true) + assert (isempty (a.Beta), false) ***** test - [m, v] = loglstat (0, 0.6); - assert (m, 1.9820, 0.001); - assert (v, Inf, 0.001); + x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; + y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; + a = fitcsvm (x, y, "KernelFunction", "linear", "PolynomialOrder", 3); + assert (class (a), "ClassificationSVM"); + assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "linear"}) + assert (a.ModelParameters.PolynomialOrder, 3) + assert (isempty (a.Alpha), false) + assert (isempty (a.Beta), true) ***** test - [m, v] = loglstat (0, 0.4); - assert (m, 1.3213, 0.001); - assert (v, 2.5300, 0.001); + x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; + y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; + a = fitcsvm (x, y, "KernelFunction", "linear", "CrossVal", 'on'); + assert (class (a), "ClassificationPartitionedModel"); + assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "linear"}) + assert (a.ModelParameters.PolynomialOrder, 3) + assert (isempty (a.Trained{1}.Alpha), false) + assert (isempty (a.Trained{1}.Beta), true) +***** error fitcsvm () +***** error fitcsvm (ones (4,1)) +***** error + fitcsvm (ones (4,2), ones (4, 1), 'KFold') +***** error + fitcsvm (ones (4,2), ones (3, 1)) +***** error + fitcsvm (ones (4,2), ones (3, 1), 'KFold', 2) +***** error + fitcsvm (ones (4,2), ones (4, 1), "CrossVal", 2) +***** error + fitcsvm (ones (4,2), ones (4, 1), "CrossVal", 'a') +***** error ... + fitcsvm (ones (4,2), ones (4, 1), "KFold", 10, "Holdout", 0.3) +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/mcnemar_test.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/mcnemar_test.m ***** 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/evstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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.7.0/inst/dist_stat/poisstat.m -***** error poisstat () -***** error poisstat ({}) -***** error poisstat ("") -***** error poisstat (i) + [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); ***** 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/gpstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/invgstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + [h, pval, chisq] = mcnemar_test ([59,6;16,80]); + assert (h, 1); + assert (pval, 0.034690, 1e-6); + assert (isempty (chisq), true); ***** test - [m, v] = invgstat (1, 1); - assert (m, 1); - assert (v, 1); + [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 - [m, v] = invgstat (2, 1); - assert (m, 2); - assert (v, 8); + [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 - [m, v] = invgstat (2, 2); - assert (m, 2); - assert (v, 4); + [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 - [m, v] = invgstat (2, 2.5); - assert (m, 2); - assert (v, 3.2); + [h, pval, chisq] = mcnemar_test ([59,6;16,80], "exact"); + assert (h, 0); + assert (pval, 0.052479, 1e-6); + assert (isempty (chisq), true); ***** 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/normstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + [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 - 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); + [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/ecdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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/nctstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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); + 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/regression_ttest.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/raylstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_stat/raylstat.m -***** error raylstat () -***** error raylstat ({}) -***** error raylstat ("") -***** error raylstat (i) +[inst/confusionchart.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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/tlsstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ()", "Invalid call"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (0, 1, 0); - assert (m, NaN); - assert (v, NaN); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 1; 2 2; 3 3])", "invalid argument"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (0, 1, 1); - assert (m, NaN); - assert (v, NaN); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'xxx', 1)", "invalid property"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (2, 1, 1); - assert (m, NaN); - assert (v, NaN); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'XLabel', 1)", "XLabel .* string"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (-2, 1, 1); - assert (m, NaN); - assert (v, NaN); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'YLabel', [1 0])", ... + ".* YLabel .* string"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (0, 1, 2); - assert (m, 0); - assert (v, NaN); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'Title', .5)", ".* Title .* string"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (2, 1, 2); - assert (m, 2); - assert (v, NaN); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'FontName', [])", ... + ".* FontName .* string"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (-2, 1, 2); - assert (m, -2); - assert (v, NaN); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'FontSize', 'b')", ... + ".* FontSize .* numeric"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (0, 2, 2); - assert (m, 0); - assert (v, NaN); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'DiagonalColor', 'h')", ... + ".* DiagonalColor .* color"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (2, 2, 2); - assert (m, 2); - assert (v, NaN); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'OffDiagonalColor', [])", ... + ".* OffDiagonalColor .* color"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (-2, 2, 2); - assert (m, -2); - assert (v, NaN); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'Normalization', '')", ... + ".* invalid .* Normalization"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (0, 1, 3); - assert (m, 0); - assert (v, 3); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'ColumnSummary', [])", ... + ".* invalid .* ColumnSummary"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (0, 2, 3); - assert (m, 0); - assert (v, 6); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'RowSummary', 1)", ... + ".* invalid .* RowSummary"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (2, 1, 3); - assert (m, 2); - assert (v, 3); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'GridVisible', .1)", ... + ".* invalid .* GridVisible"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (2, 2, 3); - assert (m, 2); - assert (v, 6); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'HandleVisibility', .1)", ... + ".* invalid .* HandleVisibility"); + set (0, "DefaultFigureVisible", visibility_setting); ***** test - [m, v] = tlsstat (-2, 1, 3); - assert (m, -2); - assert (v, 3); + set (0, "DefaultFigureVisible", "off"); + fail ("confusionchart ([1 2], [0 1], 'OuterPosition', .1)", ... + ".* invalid .* OuterPosition"); + set (0, "DefaultFigureVisible", visibility_setting); ***** 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/ricestat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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); + 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/anova1.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/anova1.m +***** demo + x = meshgrid (1:6); + randn ("seed", 15); # for reproducibility + x = x + normrnd (0, 1, 6, 6); + anova1 (x, [], 'off'); +***** demo + x = meshgrid (1:6); + randn ("seed", 15); # for reproducibility + x = x + normrnd (0, 1, 6, 6); + [p, atab] = anova1(x); +***** demo + x = ones (50, 4) .* [-2, 0, 1, 5]; + randn ("seed", 13); # for reproducibility + x = x + normrnd (0, 2, 50, 4); + groups = {"A", "B", "C", "D"}; + anova1 (x, groups); +***** demo + y = [54 87 45; 23 98 39; 45 64 51; 54 77 49; 45 89 50; 47 NaN 55]; + g = [1 2 3 ; 1 2 3 ; 1 2 3 ; 1 2 3 ; 1 2 3 ; 1 2 3 ]; + anova1 (y(:), g(:), "on", "unequal"); +***** 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] = anova1 (data, group, "off"); + assert (p, 0.022661, 1e-6); + assert (tbl{2,5}, 2.2969, 1e-4); + assert (tbl{2,3}, 9, 0); + assert (tbl{4,2}, 0.003903, 1e-6); + data = reshape (data, 10, 10); + [p, tbl, stats] = anova1 (data, [], "off"); + assert (p, 0.022661, 1e-6); + assert (tbl{2,5}, 2.2969, 1e-4); + assert (tbl{2,3}, 9, 0); + assert (tbl{4,2}, 0.003903, 1e-6); + means = [0.998, 0.9991, 0.9954, 0.9982, 0.9919, 0.9988, 1.0015, 1.0004, 0.9983, 0.9948]; + N = 10 * ones (1, 10); + assert (stats.means, means, 1e-6); + assert (length (stats.gnames), 10, 0); + assert (stats.n, N, 0); +***** test + y = [54 87 45; 23 98 39; 45 64 51; 54 77 49; 45 89 50; 47 NaN 55]; + g = [1 2 3 ; 1 2 3 ; 1 2 3 ; 1 2 3 ; 1 2 3 ; 1 2 3 ]; + [p, tbl] = anova1 (y(:), g(:), "off", "equal"); + assert (p, 0.00004163, 1e-6); + assert (tbl{2,5}, 22.573418, 1e-6); + assert (tbl{2,3}, 2, 0); + assert (tbl{3,3}, 14, 0); + [p, tbl] = anova1 (y(:), g(:), "off", "unequal"); + assert (p, 0.00208877, 1e-8); + assert (tbl{2,5}, 15.523192, 1e-6); + assert (tbl{2,3}, 2, 0); + assert (tbl{2,4}, 7.5786897, 1e-6); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/hmmviterbi.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/harmmean.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/bartlett_test.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/dist_stat/hnstat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) +[inst/combnk.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/combnk.m +***** demo + c = combnk (1:5, 2); + disp ("All pairs of integers between 1 and 5:"); + disp (c); ***** test - [m, v] = hnstat (0, 1); - assert (m, 0.7979, 1e-4); - assert (v, 0.3634, 1e-4); + c = combnk (1:3, 2); + assert (c, [1, 2; 1, 3; 2, 3]); ***** test - [m, v] = hnstat (2, 1); - assert (m, 2.7979, 1e-4); - assert (v, 0.3634, 1e-4); + c = combnk (1:3, 6); + assert (isempty (c)); ***** test - [m, v] = hnstat (2, 2); - assert (m, 3.5958, 1e-4); - assert (v, 1.4535, 1e-4); + c = combnk ({1, 2, 3}, 2); + assert (c, {1, 2; 1, 3; 2, 3}); ***** test - [m, v] = hnstat (2, 2.5); - assert (m, 3.9947, 1e-4); - assert (v, 2.2711, 1e-4); + 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/randsample.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/randsample.m ***** test - [m, v] = hnstat (1.5, 0.5); - assert (m, 1.8989, 1e-4); - assert (v, 0.0908, 1e-4); + 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/adtest.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - [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/rangesearch.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/rangesearch.m + 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/binotest.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/binotest.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 + % 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/fitgmdist.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitgmdist.m +***** demo + ## Generate a two-cluster problem + C1 = randn (100, 2) + 2; + C2 = randn (100, 2) - 2; + data = [C1; C2]; - ## 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; + ## Perform clustering + GMModel = fitgmdist (data, 2); + ## Plot the result 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); + [heights, bins] = hist3([C1; C2]); + [xx, yy] = meshgrid(bins{1}, bins{2}); + bbins = [xx(:), yy(:)]; + contour (reshape (GMModel.pdf (bbins), size (heights))); +***** 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) ***** 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); + 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/friedman.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/friedman.m +***** demo + load popcorn; + friedman (popcorn, 3); +***** demo + load popcorn; + [p, atab] = friedman (popcorn, 3, "off"); + disp (p); ***** 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); + 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 - [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); + 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/wblplot.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - [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); + 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/vartest.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - [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); + load carsmall + [h, pval, ci] = vartest (MPG, 7^2); + assert (h, 1); + assert (pval, 0.04335086742174443, 1e-14); + assert (ci, [49.397; 88.039], 1e-3); +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/fullfact.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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); + A = fullfact (2); + assert (A, [0, 0; 0, 1; 1, 0; 1, 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); + A = fullfact ([1, 2]); + assert (A, [1, 1; 1, 2]); ***** 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); + 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/hotelling_t2test2.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - [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); + 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/hmmgenerate.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/hmmgenerate.m ***** 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); + len = 25; + transprob = [0.8, 0.2; 0.4, 0.6]; + outprob = [0.2, 0.4, 0.4; 0.7, 0.2, 0.1]; + [sequence, states] = hmmgenerate (len, transprob, outprob); + assert (length (sequence), len); + assert (length (states), len); + assert (min (sequence) >= 1); + assert (max (sequence) <= columns (outprob)); + assert (min (states) >= 1); + assert (max (states) <= rows (transprob)); ***** test - [idx, D] = rangesearch (X, Y, 2); - assert (idx, {[1]; [1, 2]}); - assert (D, {[1.4142]; [1.4142, 1.4142]}, 1e-4); + len = 25; + 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"}; + [sequence, states] = hmmgenerate (len, transprob, outprob, ... + "symbols", symbols, "statenames", statenames); + assert (length (sequence), len); + assert (length (states), len); + assert (strcmp (sequence, "A") + strcmp (sequence, "B") + ... + 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/histfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/histfit.m +***** demo + histfit (randn (100, 1)) +***** demo + histfit (poissrnd (2, 1000, 1), 10, "Poisson") +***** demo + histfit (betarnd (3, 10, 1000, 1), 10, "beta") ***** 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); + 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 - [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); + 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 - [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/inconsistent.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + 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 ***** 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/sigma_pts.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)); + hf = figure ("visible", "off"); + unwind_protect + histfit (randn (100, 1)); + unwind_protect_cleanup + close (hf); + end_unwind_protect ***** test - p = sigma_pts (5); - assert (mean (p), zeros(1,5), sqrt(eps)); - assert (cov (p), eye(5), sqrt(eps)); + hf = figure ("visible", "off"); + unwind_protect + histfit (poissrnd (2, 1000, 1), 10, "Poisson"); + unwind_protect_cleanup + close (hf); + end_unwind_protect ***** test - m = randn(1, 5); - p = sigma_pts (5, m); - assert (mean (p), m, sqrt(eps)); - assert (cov (p), eye(5), sqrt(eps)); + hf = figure ("visible", "off"); + unwind_protect + histfit (betarnd (3, 10, 1000, 1), 10, "beta"); + unwind_protect_cleanup + close (hf); + end_unwind_protect ***** 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/cluster.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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) + hf = figure ("visible", "off"); + unwind_protect + ax = gca (); + histfit (ax, randn (100, 1)); + unwind_protect_cleanup + close (hf); + end_unwind_protect ***** test -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/grp2idx.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/grp2idx.m + hf = figure ("visible", "off"); + unwind_protect + ax = gca (); + histfit (ax, poissrnd (2, 1000, 1), 10, "Poisson"); + unwind_protect_cleanup + close (hf); + end_unwind_protect ***** 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')) + hf = figure ("visible", "off"); + unwind_protect + ax = gca (); + histfit (ax, betarnd (3, 10, 1000, 1), 10, "beta"); + unwind_protect_cleanup + close (hf); + end_unwind_protect ***** 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/ridge.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/ridge.m + hf = figure ("visible", "off"); + unwind_protect + ax = axes ("parent", hf); + fail ("histfit (ax)", "histfit: too few input arguments."); + unwind_protect_cleanup + close (hf); + end_unwind_protect +***** error ... + histfit ('wer') +***** error histfit ([NaN, NaN, NaN]); +***** error ... + histfit (randn (100, 1), 5.6) +***** error ... + histfit (randn (100, 1), 8, 5) +***** error ... + histfit (randn (100, 1), 8, {'normal'}) +***** error ... + histfit (randn (100, 1), 8, 'Kernel') +***** error ... + histfit (randn (100, 1), 8, 'ASDASDASD') +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/nanmin.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/nanmin.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; - - 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") + ## Find the column minimum values and their indices + ## for matrix data with missing values. + x = magic (3); + x([1, 6:9]) = NaN + [y, ind] = nanmin (x) ***** demo + ## Find the minimum of all the values in an array, ignoring missing values. + ## Create a 2-by-5-by-3 array x with some missing values. - 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) + x = reshape (1:30, [2, 5, 3]); + x([10:12, 25]) = NaN - hold on - plot(y(idxTest),y(idxTest),"r") - xlabel('Actual MPG') - ylabel('Predicted MPG') - hold off + ## Find the minimum of the elements of x. + y = nanmin (x, [], 'all') +***** assert (nanmin ([2, 4, NaN, 7]), 2) +***** assert (nanmin ([2, 4, NaN, -Inf]), -Inf) +***** 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])) +***** shared x, y + x(:,:,1) = [1.77, -0.005, NaN, -2.95; NaN, 0.34, NaN, 0.19]; + x(:,:,2) = [1.77, -0.005, NaN, -2.95; NaN, 0.34, NaN, 0.19] + 5; + y = x; + y(2,3,1) = 0.51; +***** assert (nanmin (x, [], [1, 2])(:), [-2.95; 2.05]) +***** assert (nanmin (x, [], [1, 3])(:), [1.77; -0.005; NaN; -2.95]) +***** assert (nanmin (x, [], [2, 3])(:), [-2.95; 0.19]) +***** assert (nanmin (x, [], [1, 2, 3]), -2.95) +***** assert (nanmin (x, [], 'all'), -2.95) +***** assert (nanmin (y, [], [1, 3])(:), [1.77; -0.005; 0.51; -2.95]) +***** assert (nanmin (x(1,:,1), x(2,:,1)), [1.77, -0.005, NaN, -2.95]) +***** assert (nanmin (x(1,:,2), x(2,:,2)), [6.77, 4.995, NaN, 2.05]) +***** assert (nanmin (y(1,:,1), y(2,:,1)), [1.77, -0.005, 0.51, -2.95]) +***** assert (nanmin (y(1,:,2), y(2,:,2)), [6.77, 4.995, NaN, 2.05]) ***** test - b = ridge ([1 2 3 4]', [1 2 3 4; 2 3 4 5]', 1); - assert (b, [0.5533; 0.5533], 1e-4); + xx = repmat ([1:20;6:25], [5 2 6 3]); + assert (size (nanmin (xx, [], [3, 2])), [10, 1, 1, 3]); + assert (size (nanmin (xx, [], [1, 2])), [1, 1, 6, 3]); + assert (size (nanmin (xx, [], [1, 2, 4])), [1, 1, 6]); + assert (size (nanmin (xx, [], [1, 4, 3])), [1, 40]); + assert (size (nanmin (xx, [], [1, 2, 3, 4])), [1, 1]); +***** assert (nanmin (ones (2), [], 3), ones (2, 2)) +***** assert (nanmin (ones (2, 2, 2), [], 99), ones (2, 2, 2)) +***** assert (nanmin (magic (3), [], 3), magic (3)) +***** assert (nanmin (magic (3), [], [1, 3]), [3, 1, 2]) +***** assert (nanmin (magic (3), [], [1, 99]), [3, 1, 2]) +***** assert (nanmin (ones (2), 3), ones (2,2)) +***** error ... + nanmin (y, [], [1, 1, 2]) +***** error ... + [v, idx] = nanmin(x, y, [1 2]) +24 tests, 24 passed, 0 known failure, 0 skipped +[inst/ztest2.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/monotone_smooth.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/signtest.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/signtest.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); + [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 - load acetylene - x = [x1, x2, x3]; - b = ridge (y, x, 0); - assert (b,[10.2273;1.97128;-0.601818],1e-4); + [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 - load acetylene - x = [x1, x2, x3]; - b = ridge (y, x, 0.0005); - assert (b,[10.2233;1.9712;-0.6056],1e-4); + [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); +***** error signtest (ones (2)) +***** error ... + signtest ([1, 2, 3, 4], ones (2)) +***** error ... + signtest ([1, 2, 3, 4], [1, 2, 3]) +***** error ... + signtest ([1, 2, 3, 4], [], 'tail') +***** error ... + signtest ([1, 2, 3, 4], [], 'alpha', 1.2) +***** error ... + signtest ([1, 2, 3, 4], [], 'alpha', 0) +***** error ... + signtest ([1, 2, 3, 4], [], 'alpha', -0.05) +***** error ... + signtest ([1, 2, 3, 4], [], 'alpha', "a") +***** error ... + signtest ([1, 2, 3, 4], [], 'alpha', [0.01, 0.05]) +***** error ... + signtest ([1, 2, 3, 4], [], 'tail', 0.01) +***** error ... + signtest ([1, 2, 3, 4], [], 'tail', {"both"}) +***** error ... + signtest ([1, 2, 3, 4], [], 'tail', "some") +***** error ... + signtest ([1, 2, 3, 4], [], 'method', 'exact', 'tail', "some") +***** error ... + signtest ([1, 2, 3, 4], [], 'method', 0.01) +***** error ... + signtest ([1, 2, 3, 4], [], 'method', {"exact"}) +***** error ... + signtest ([1, 2, 3, 4], [], 'method', "some") +***** error ... + signtest ([1, 2, 3, 4], [], 'tail', "both", 'method', "some") +20 tests, 20 passed, 0 known failure, 0 skipped +[inst/runstest.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/runstest.m ***** test - load acetylene - x = [x1, x2, x3]; - b = ridge (y, x, 0.001); - assert (b,[10.2194;1.9711;-0.6094],1e-4); + ## 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 - load acetylene - x = [x1, x2, x3]; - b = ridge (y, x, 0.002); - assert (b,[10.2116;1.9709;-0.6169],1e-4); + [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 - load acetylene - x = [x1, x2, x3]; - b = ridge (y, x, 0.005); - assert (b,[10.1882;1.9704;-0.6393],1e-4); + [h, p, stats] = runstest (x, [], "method", "approximate"); + assert (h, 0); + assert (p, 0.6481, 1e-4); + assert (stats.z, 0.456435464587638, 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 + [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/pdist.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fitcnet.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitcnet.m +***** demo + ## Train a Neural Network on the Fisher's Iris data set and display + ## a confusion chart with the classification results. + + load fisheriris + Mdl = fitcnet (meas, species); + pred_species = resubPredict (Mdl); + confusionchart (species, pred_species); +***** test + load fisheriris + x = meas; + y = grp2idx (species); + Mdl = fitcnet (x, y, "IterationLimit", 50); + assert (class (Mdl), "ClassificationNeuralNetwork"); + assert (numel (Mdl.ModelParameters.LayerWeights), 2); + assert (size (Mdl.ModelParameters.LayerWeights{1}), [10, 5]); + assert (size (Mdl.ModelParameters.LayerWeights{2}), [3, 11]); +***** error fitcnet () +***** error fitcnet (ones (4,1)) +***** error + fitcnet (ones (4,2), ones (4, 1), 'LayerSizes') +***** error + fitcnet (ones (4,2), ones (3, 1)) +***** error + fitcnet (ones (4,2), ones (3, 1), 'LayerSizes', 2) +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/cmdscale.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/correlation_test.m] >>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/correlation_test.m ***** error correlation_test (); @@ -10708,9515 +11395,3276 @@ assert (stats.corrcoef, corr (x, y), 1e-14); assert (pval, 0.0223, 1e-4); 20 tests, 20 passed, 0 known failure, 0 skipped -[inst/cdfplot.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/cdfplot.m +[inst/sampsizepwr.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/sampsizepwr.m ***** demo - x = randn(100,1); - cdfplot (x); + ## 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 - 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 + mu1 = sampsizepwr ("t", [100, 10], [], 0.8, 60); + assert (mu1, 103.67704316, 1e-8); ***** 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/confusionmat.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/confusionmat.m + [N1,N2] = sampsizepwr ("t2", [100, 10], 110, 0.6, [], "ratio", 1.5); + assert (N1, 9); + assert (N2, 14); ***** 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/crossval.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/crossval.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 - 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/crosstab.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]) + nout = sampsizepwr ("t", [100, 5], 102, 0.80); + assert (nout, 52); ***** test - load carbig - [table, chisq, p, labels] = crosstab (cyl4, when, org); - assert (table(2,3,1), 38); - assert (labels{3,3}, "Japan"); + power = sampsizepwr ("t", [20, 5], 25, [], 5, "Tail", "right"); + assert (power, 0.5797373588621888, 1e-14); ***** 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/vartest2.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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"); + nout = sampsizepwr ("t", [20, 5], 25, 0.99, [], "Tail", "right"); + assert (nout, 18); ***** 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/qqplot.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/qqplot.m + p1out = sampsizepwr ("t", [20, 5], [], 0.95, 10, "Tail", "right"); + assert (p1out, 25.65317979360237, 1e-14); ***** 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/dist_fun/burrrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/poisscdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hygepdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 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")) + pwr = sampsizepwr ("t2", [1.4, 0.2], 1.7, [], 5, "Ratio", 2); + assert (pwr, 0.716504004686586, 1e-14); ***** 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/gamrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/logipdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/logipdf.m -***** demo - ## Plot various PDFs from the logistic distribution - x = -5:0.01:20; - y1 = logipdf (x, 5, 2); - y2 = logipdf (x, 9, 3); - y3 = logipdf (x, 9, 4); - y4 = logipdf (x, 6, 2); - y5 = logipdf (x, 2, 1); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c", x, y5, "-m") - grid on - ylim ([0, 0.3]) - legend ({"μ = 5, σ = 2", "μ = 9, σ = 3", "μ = 9, σ = 4", ... - "μ = 6, σ = 2", "μ = 2, σ = 1"}, "location", "northeast") - title ("Logistic PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-Inf -log(4) 0 log(4) Inf]; - y = [0, 0.16, 1/4, 0.16, 0]; -***** assert (logipdf ([x, NaN], 0, 1), [y, NaN], eps) -***** assert (logipdf (x, 0, [-2, -1, 0, 1, 2]), [nan(1, 3), y([4:5])], eps) -***** assert (logipdf (single ([x, NaN]), 0, 1), single ([y, NaN]), eps ("single")) -***** assert (logipdf ([x, NaN], single (0), 1), single ([y, NaN]), eps ("single")) -***** assert (logipdf ([x, NaN], 0, single (1)), single ([y, NaN]), eps ("single")) -***** error logipdf () -***** error logipdf (1) -***** error ... - logipdf (1, 2) -***** error ... - logipdf (1, ones (2), ones (3)) -***** error ... - logipdf (ones (2), 1, ones (3)) -***** error ... - logipdf (ones (2), ones (3), 1) -***** error logipdf (i, 2, 3) -***** error logipdf (1, i, 3) -***** error logipdf (1, 2, i) -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/dist_fun/gumbelinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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) - p = [0.05, 0.5, 0.95]; - x = gumbelinv(p); -***** assert (gumbelcdf(x), p, 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) -23 tests, 23 passed, 0 known failure, 0 skipped -[inst/dist_fun/raylinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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") + n = sampsizepwr ("t2", [1.4, 0.2], 1.7, 0.9, []); + assert (n, 11); ***** 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); + [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/kstest.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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/expinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nbincdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/nbincdf.m + 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/silhouette.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/silhouette.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/tricdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/tricdf.m + 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/anovan.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/anovan.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/logicdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/logicdf.m + + # 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 - ## 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/ncx2pdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/ncx2pdf.m + + # 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 - ## Plot various PDFs from the noncentral chi-squared distribution - x = 0:0.1:10; - y1 = ncx2pdf (x, 2, 1); - y2 = ncx2pdf (x, 2, 2); - y3 = ncx2pdf (x, 2, 3); - y4 = ncx2pdf (x, 4, 1); - y5 = ncx2pdf (x, 4, 2); - y6 = ncx2pdf (x, 4, 3); - plot (x, y1, "-r", x, y2, "-g", x, y3, "-k", ... - x, y4, "-m", x, y5, "-c", x, y6, "-y") - grid on - xlim ([0, 10]) - ylim ([0, 0.32]) - legend ({"df = 2, λ = 1", "df = 2, λ = 2", ... - "df = 2, λ = 3", "df = 4, λ = 1", ... - "df = 4, λ = 2", "df = 4, λ = 3"}, "location", "northeast") - title ("Noncentral chi-squared PDF") - xlabel ("values in x") - ylabel ("density") + + # 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 - ## Compare the noncentral chi-squared PDF with LAMBDA = 2 to the - ## chi-squared PDF with the same number of degrees of freedom (4). - x = 0:0.1:10; - y1 = ncx2pdf (x, 4, 2); - y2 = chi2pdf (x, 4); - plot (x, y1, "-", x, y2, "-"); - grid on - xlim ([0, 10]) - ylim ([0, 0.32]) - legend ({"Noncentral T(10,1)", "T(10)"}, "location", "northwest") - title ("Noncentral chi-squared vs chi-squared PDFs") - xlabel ("values in x") - ylabel ("density") -***** shared x1, df, d1 - x1 = [-Inf, 2, NaN, 4, Inf]; - df = [2, 0, -1, 1, 4]; - d1 = [1, NaN, 3, -1, 2]; -***** assert (ncx2pdf (x1, df, d1), [0, NaN, NaN, NaN, 0]); -***** assert (ncx2pdf (x1, df, 1), [0, 0.07093996461786045, NaN, ... - 0.06160064323277038, 0], 1e-14); -***** assert (ncx2pdf (x1, df, 3), [0, 0.1208364909271113, NaN, ... - 0.09631299762429098, 0], 1e-14); -***** assert (ncx2pdf (x1, df, 2), [0, 0.1076346446244688, NaN, ... - 0.08430464047296625, 0], 1e-14); -***** assert (ncx2pdf (x1, 2, d1), [0, NaN, NaN, NaN, 0]); -***** assert (ncx2pdf (2, df, d1), [0.1747201674611283, NaN, NaN, ... - NaN, 0.1076346446244688], 1e-14); -***** assert (ncx2pdf (4, df, d1), [0.09355987820265799, NaN, NaN, ... - NaN, 0.1192317192431485], 1e-14); -***** error ncx2pdf () -***** error ncx2pdf (1) -***** error ncx2pdf (1, 2) -***** error ... - ncx2pdf (ones (3), ones (2), ones (2)) -***** error ... - ncx2pdf (ones (2), ones (3), ones (2)) -***** error ... - ncx2pdf (ones (2), ones (2), ones (3)) -***** error ncx2pdf (i, 2, 2) -***** error ncx2pdf (2, i, 2) -***** error ncx2pdf (2, 2, i) -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fun/vmrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncfpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/ncfpdf.m + # 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 - ## 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") + + # 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 - ## 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/unifrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/unifrnd.m -***** assert (size (unifrnd (1, 1)), [1 1]) -***** assert (size (unifrnd (1, ones (2,1))), [2, 1]) -***** assert (size (unifrnd (1, ones (2,2))), [2, 2]) -***** assert (size (unifrnd (ones (2,1), 1)), [2, 1]) -***** assert (size (unifrnd (ones (2,2), 1)), [2, 2]) -***** assert (size (unifrnd (1, 1, 3)), [3, 3]) -***** assert (size (unifrnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (unifrnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (unifrnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (unifrnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (unifrnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (unifrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (unifrnd (1, 1)), "double") -***** assert (class (unifrnd (1, single (1))), "single") -***** assert (class (unifrnd (1, single ([1, 1]))), "single") -***** assert (class (unifrnd (single (1), 1)), "single") -***** assert (class (unifrnd (single ([1, 1]), 1)), "single") -***** error unifrnd () -***** error unifrnd (1) -***** error ... - unifrnd (ones (3), ones (2)) -***** error ... - unifrnd (ones (2), ones (3)) -***** error unifrnd (i, 2, 3) -***** error unifrnd (1, i, 3) -***** error ... - unifrnd (1, 2, -1) -***** error ... - unifrnd (1, 2, 1.2) -***** error ... - unifrnd (1, 2, ones (2)) -***** error ... - unifrnd (1, 2, [2 -1 2]) -***** error ... - unifrnd (1, 2, [2 0 2.5]) -***** error ... - unifrnd (1, 2, 2, -1, 5) -***** error ... - unifrnd (1, 2, 2, 1.5, 5) -***** error ... - unifrnd (2, ones (2), 3) -***** error ... - unifrnd (2, ones (2), [3, 2]) -***** error ... - unifrnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/invgpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/invgpdf.m -***** demo - ## Plot various PDFs from the inverse Gaussian distribution - x = 0:0.001:3; - y1 = invgpdf (x, 1, 0.2); - y2 = invgpdf (x, 1, 1); - y3 = invgpdf (x, 1, 3); - y4 = invgpdf (x, 3, 0.2); - y5 = invgpdf (x, 3, 1); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c", x, y5, "-y") - grid on - xlim ([0, 3]) - ylim ([0, 3]) - legend ({"μ = 1, σ = 0.2", "μ = 1, σ = 1", "μ = 1, σ = 3", ... - "μ = 3, σ = 0.2", "μ = 3, σ = 1"}, "location", "northeast") - title ("Inverse Gaussian PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-Inf, -1, 0, 1/2, 1, Inf]; - y = [0, 0, 0, 0.8788, 0.3989, 0]; -***** assert (invgpdf ([x, NaN], 1, 1), [y, NaN], 1e-4) -***** assert (invgpdf (x, 1, [-2, -1, 0, 1, 1, 1]), [nan(1,3), y([4:6])], 1e-4) -***** assert (class (hncdf (single ([x, NaN]), 1, 1)), "single") -***** assert (class (hncdf ([x, NaN], 1, single (1))), "single") -***** assert (class (hncdf ([x, NaN], single (1), 1)), "single") -***** error invgpdf () -***** error invgpdf (1) -***** error invgpdf (1, 2) -***** error ... - invgpdf (1, ones (2), ones (3)) -***** error ... - invgpdf (ones (2), 1, ones (3)) -***** error ... - invgpdf (ones (2), ones (3), 1) -***** error invgpdf (i, 2, 3) -***** error invgpdf (1, i, 3) -***** error invgpdf (1, 2, i) -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/dist_fun/gppdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/norminv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/bvtcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/bvtcdf.m -***** 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); -***** 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/cauchypdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tripdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/tripdf.m + # 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 - ## 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/gampdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/gampdf.m + + # 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 - ## 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/binocdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/binocdf.m + + # 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 - ## 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/lognpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/lognpdf.m + + # 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 - ## 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/bisapdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/bisapdf.m + + # 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 - ## 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") + + # 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 - ## 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/plinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/plinv.m + + # 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 - ## 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") + + # 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 - p = 0:0.2:1; - data = plinv (p, [0, 1], [0, 1]); - assert (data, p); + 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 - p = 0:0.2:1; - data = plinv (p, [0, 2], [0, 1]); - assert (data, 2 * p); + 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 - 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]); + 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 - 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/riceinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/raylcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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") + 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 - 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); + 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 - 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/copulacdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/copulacdf.m + 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 - 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); + 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 - 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); + 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 - 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); + 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 - 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); + 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 - 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/bisacdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nbininv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/wblcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/wblcdf.m + 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/kruskalwallis.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/kruskalwallis.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, 1e-16) -***** 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, 1e-16) -***** assert (wblcdf (x, ones (1,5), 1), y, 1e-16) -***** 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], 1e-16) -***** 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/gprnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/gprnd.m -***** assert (size (gprnd (0, 1, 0)), [1, 1]) -***** assert (size (gprnd (0, 1, zeros (2,1))), [2, 1]) -***** assert (size (gprnd (0, 1, zeros (2,2))), [2, 2]) -***** assert (size (gprnd (0, ones (2,1), 0)), [2, 1]) -***** assert (size (gprnd (0, ones (2,2), 0)), [2, 2]) -***** assert (size (gprnd (zeros (2,1), 1, 0)), [2, 1]) -***** assert (size (gprnd (zeros (2,2), 1, 0)), [2, 2]) -***** assert (size (gprnd (0, 1, 0, 3)), [3, 3]) -***** assert (size (gprnd (0, 1, 0, [4 1])), [4, 1]) -***** assert (size (gprnd (0, 1, 0, 4, 1)), [4, 1]) -***** assert (size (gprnd (1,1,0)), [1, 1]) -***** assert (size (gprnd (1, 1, zeros (2,1))), [2, 1]) -***** assert (size (gprnd (1, 1, zeros (2,2))), [2, 2]) -***** assert (size (gprnd (1, ones (2,1), 0)), [2, 1]) -***** assert (size (gprnd (1, ones (2,2), 0)), [2, 2]) -***** assert (size (gprnd (ones (2,1), 1, 0)), [2, 1]) -***** assert (size (gprnd (ones (2,2), 1, 0)), [2, 2]) -***** assert (size (gprnd (1, 1, 0, 3)), [3, 3]) -***** assert (size (gprnd (1, 1, 0, [4 1])), [4, 1]) -***** assert (size (gprnd (1, 1, 0, 4, 1)), [4, 1]) -***** assert (size (gprnd (-1, 1, 0)), [1, 1]) -***** assert (size (gprnd (-1, 1, zeros (2,1))), [2, 1]) -***** assert (size (gprnd (1, -1, zeros (2,2))), [2, 2]) -***** assert (size (gprnd (-1, ones (2,1), 0)), [2, 1]) -***** assert (size (gprnd (-1, ones (2,2), 0)), [2, 2]) -***** assert (size (gprnd (-ones (2,1), 1, 0)), [2, 1]) -***** assert (size (gprnd (-ones (2,2), 1, 0)), [2, 2]) -***** assert (size (gprnd (-1, 1, 0, 3)), [3, 3]) -***** assert (size (gprnd (-1, 1, 0, [4, 1])), [4, 1]) -***** assert (size (gprnd (-1, 1, 0, 4, 1)), [4, 1]) -***** assert (class (gprnd (0, 1, 0)), "double") -***** assert (class (gprnd (0, 1, single (0))), "single") -***** assert (class (gprnd (0, 1, single ([0, 0]))), "single") -***** assert (class (gprnd (0, single (1),0)), "single") -***** assert (class (gprnd (0, single ([1, 1]),0)), "single") -***** assert (class (gprnd (single (0), 1, 0)), "single") -***** assert (class (gprnd (single ([0, 0]), 1, 0)), "single") -***** error gprnd () -***** error gprnd (1) -***** error gprnd (1, 2) -***** error ... - gprnd (ones (3), ones (2), ones (2)) -***** error ... - gprnd (ones (2), ones (3), ones (2)) -***** error ... - gprnd (ones (2), ones (2), ones (3)) -***** error gprnd (i, 2, 3) -***** error gprnd (1, i, 3) -***** error gprnd (1, 2, i) -***** error ... - gprnd (1, 2, 3, -1) -***** error ... - gprnd (1, 2, 3, 1.2) -***** error ... - gprnd (1, 2, 3, ones (2)) -***** error ... - gprnd (1, 2, 3, [2 -1 2]) -***** error ... - gprnd (1, 2, 3, [2 0 2.5]) -***** error ... - gprnd (1, 2, 3, 2, -1, 5) -***** error ... - gprnd (1, 2, 3, 2, 1.5, 5) -***** error ... - gprnd (2, ones (2), 2, 3) -***** error ... - gprnd (2, ones (2), 2, [3, 2]) -***** error ... - gprnd (2, ones (2), 2, 3, 2) -56 tests, 56 passed, 0 known failure, 0 skipped -[inst/dist_fun/unidinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/unidinv.m + x = meshgrid (1:6); + x = x + normrnd (0, 1, 6, 6); + kruskalwallis (x, [], 'off'); ***** 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/gumbelrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/geoinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/geoinv.m + x = meshgrid (1:6); + x = x + normrnd (0, 1, 6, 6); + [p, atab] = kruskalwallis(x); ***** demo - ## Plot various iCDFs from the geometric distribution - p = 0.001:0.001:0.999; - x1 = geoinv (p, 0.2); - x2 = geoinv (p, 0.5); - x3 = geoinv (p, 0.7); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r") - grid on - ylim ([0, 10]) - legend ({"ps = 0.2", "ps = 0.5", "ps = 0.7"}, "location", "northwest") - title ("Geometric iCDF") - xlabel ("probability") - ylabel ("values in x (number of failures)") -***** shared p - p = [-1 0 0.75 1 2]; -***** assert (geoinv (p, 0.5*ones (1,5)), [NaN 0 1 Inf NaN]) -***** assert (geoinv (p, 0.5), [NaN 0 1 Inf NaN]) -***** assert (geoinv (p, 0.5*[1 -1 NaN 4 1]), [NaN NaN NaN NaN NaN]) -***** assert (geoinv ([p(1:2) NaN p(4:5)], 0.5), [NaN 0 NaN Inf NaN]) -***** assert (geoinv ([p, NaN], 0.5), [NaN 0 1 Inf NaN NaN]) -***** assert (geoinv (single ([p, NaN]), 0.5), single ([NaN 0 1 Inf NaN NaN])) -***** assert (geoinv ([p, NaN], single (0.5)), single ([NaN 0 1 Inf NaN NaN])) -***** error geoinv () -***** error geoinv (1) -***** error ... - geoinv (ones (3), ones (2)) -***** error ... - geoinv (ones (2), ones (3)) -***** error ... - geoinv (i, 2) -***** error ... - geoinv (2, i) -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/dist_fun/wishrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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) + 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/inconsistent.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/linkage.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ranksum.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nansum.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/dist_fun/evinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/evinv.m +[inst/qrandn.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/qrandn.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/iwishpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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) + z = qrandn (-5, 5e6); + [c x] = hist (z,linspace(-1.5,1.5,200),1); + figure(1) + plot(x,c,"r."); axis tight; axis([-1.5,1.5]); + + z = qrandn (-0.14286, 5e6); + [c x] = hist (z,linspace(-2,2,200),1); + figure(2) + plot(x,c,"r."); axis tight; axis([-2,2]); + + z = qrandn (2.75, 5e6); + [c x] = hist (z,linspace(-1e3,1e3,1e3),1); + figure(3) + semilogy(x,c,"r."); axis tight; axis([-100,100]); + + # --------- + # Figures from the reference paper. +***** error qrandn ([1 2], 1) +***** error qrandn (4, 1) +***** error qrandn (3, 1) +***** error qrandn (2.5, 1, 2, 3) +***** error qrandn (2.5) +***** test + q = 1.5; + s = [2, 3]; + z = qrandn (q, s); + assert (isnumeric (z) && isequal (size (z), s)); 6 tests, 6 passed, 0 known failure, 0 skipped -[inst/dist_fun/exprnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nctrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/cauchyrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/vmcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/bisarnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/bisarnd.m -***** assert (size (bisarnd (1, 1)), [1 1]) -***** assert (size (bisarnd (1, ones (2,1))), [2, 1]) -***** assert (size (bisarnd (1, ones (2,2))), [2, 2]) -***** assert (size (bisarnd (ones (2,1), 1)), [2, 1]) -***** assert (size (bisarnd (ones (2,2), 1)), [2, 2]) -***** assert (size (bisarnd (1, 1, 3)), [3, 3]) -***** assert (size (bisarnd (1, 1, [4, 1])), [4, 1]) -***** assert (size (bisarnd (1, 1, 4, 1)), [4, 1]) -***** assert (size (bisarnd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (bisarnd (1, 1, 0, 1)), [0, 1]) -***** assert (size (bisarnd (1, 1, 1, 0)), [1, 0]) -***** assert (size (bisarnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (bisarnd (1, 1)), "double") -***** assert (class (bisarnd (1, single (1))), "single") -***** assert (class (bisarnd (1, single ([1, 1]))), "single") -***** assert (class (bisarnd (single (1), 1)), "single") -***** assert (class (bisarnd (single ([1, 1]), 1)), "single") -***** error bisarnd () -***** error bisarnd (1) -***** error ... - bisarnd (ones (3), ones (2)) -***** error ... - bisarnd (ones (2), ones (3)) -***** error bisarnd (i, 2, 3) -***** error bisarnd (1, i, 3) -***** error ... - bisarnd (1, 2, -1) -***** error ... - bisarnd (1, 2, 1.2) -***** error ... - bisarnd (1, 2, ones (2)) -***** error ... - bisarnd (1, 2, [2 -1 2]) -***** error ... - bisarnd (1, 2, [2 0 2.5]) -***** error ... - bisarnd (1, 2, 2, -1, 5) -***** error ... - bisarnd (1, 2, 2, 1.5, 5) -***** error ... - bisarnd (2, ones (2), 3) -***** error ... - bisarnd (2, ones (2), [3, 2]) -***** error ... - bisarnd (2, ones (2), 3, 2) -33 tests, 33 passed, 0 known failure, 0 skipped -[inst/dist_fun/gevpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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") +[inst/hotelling_t2test.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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); + randn ("seed", 1); + x = randn (50000, 5); + [h, pval, stats] = hotelling_t2test (x); + assert (h, 0); + assert (stats.df1, 5); + assert (stats.df2, 49995); ***** 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/wblinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/wblinv.m + 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/regress.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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.HefmNvV97z at line 1350 column 31 + +1 test, 1 passed, 0 known failure, 0 skipped +[inst/logit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/boxplot.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/boxplot.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/geornd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/finv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/finv.m + 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 - ## Plot various iCDFs from the 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") - 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") - 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 (0.025, 10, 1e6), 0.3247, 1e-4) -***** assert (finv (0.025, 10, 1e7), 0.3247, 1e-4) -***** assert (finv (0.025, 10, 1e10), 0.3247, 1e-4) -***** assert (finv (0.025, 10, 1e255), 0.3247, 1e-4) -***** assert (finv (0.025, 10, Inf), 0.3247, 1e-4) -***** 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) -24 tests, 24 passed, 0 known failure, 0 skipped -[inst/dist_fun/jsucdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/vmpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/vmpdf.m + 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 - ## 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/exppdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/exppdf.m + 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 - ## 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/copularnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/copularnd.m + 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 - theta = 0.5; - r = copularnd ("Gaussian", theta); - assert (size (r), [1, 2]); - assert (all ((r >= 0) & (r <= 1))); + 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 - theta = 0.5; - df = 2; - r = copularnd ("t", theta, df); - assert (size (r), [1, 2]); - assert (all ((r >= 0) & (r <= 1))); + 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 ***** test - theta = 0.5; - r = copularnd ("Clayton", theta); - assert (size (r), [1, 2]); - assert (all ((r >= 0) & (r <= 1))); + hf = figure ("visible", "off"); + unwind_protect + hold on + [a, b] = boxplot (rand (10, 3)); + assert (ishold, true); + unwind_protect_cleanup + close (hf); + end_unwind_protect +34 tests, 34 passed, 0 known failure, 0 skipped +[inst/levene_test.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - theta = 0.5; - n = 2; - r = copularnd ("Clayton", theta, n); - assert (size (r), [n, 2]); - assert (all ((r >= 0) & (r <= 1))); + 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 - 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/gevcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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") + 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 - 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); + 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 - 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/gevrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/chi2inv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/raylpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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") + 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 - 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); + 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 - 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/plcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/plcdf.m + 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/gscatter.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/gscatter.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") + 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 - data = 0:0.2:1; - p = plcdf (data, [0, 1], [0, 1]); - assert (p, data); + 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/manova1.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/manova1.m +***** demo + load carbig + [d,p] = manova1([MPG, Acceleration, Weight, Displacement], Origin) ***** test - data = 0:0.2:1; - p = plcdf (data, [0, 2], [0, 1]); - assert (p, 0.5 * data); + 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 - data = 0:0.2:1; - p = plcdf (data, [0, 1], [0, 0.5]); - assert (p, 0.5 * data); + 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/@cvpartition/get.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/test.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - data = 0:0.2:1; - p = plcdf (data, [0, 0.5], [0, 1]); - assert (p, [0, 0.4, 0.8, 1, 1, 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/repartition.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/@cvpartition/repartition.m ***** 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/tlsrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/mvtcdfqmc.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/mvtcdfqmc.m -***** error mvtcdfqmc (1, 2, 3); -***** error mvtcdfqmc (1, 2, 3, 4, 5, 6, 7, 8); + C = cvpartition (ones (10, 1), "KFold", 5); + Cnew = repartition (C); + assert (isa (Cnew, "cvpartition"), true); +***** 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/dist_fun/loglcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/geocdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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") +[inst/@cvpartition/display.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/@cvpartition/display.m ***** 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); + 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 = 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/geopdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nctpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/nctpdf.m + 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 + 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/@cvpartition/training.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 + 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/set.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/@cvpartition/set.m +***** shared C + C = cvpartition (ones (10, 1), "KFold", 5); +***** 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) +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@cvpartition/cvpartition.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/@cvpartition/cvpartition.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") + ## 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 + C = cvpartition (ones (10, 1)); + assert (isa (C, "cvpartition"), true); +***** 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"); +***** 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"); +***** 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"); +***** 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"); +***** 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"); +***** 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/sigma_pts.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/sigma_pts.m ***** demo - ## Compare the noncentral T PDF with MU = 1 to the T PDF - ## with the same number of degrees of freedom (10). + 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); - 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/triinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/triinv.m -***** demo - ## Plot various iCDFs from the triangular distribution - p = 0.001:0.001:0.999; - x1 = triinv (p, 3, 6, 4); - x2 = triinv (p, 1, 5, 2); - x3 = triinv (p, 2, 9, 3); - x4 = triinv (p, 2, 9, 5); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") - grid on - ylim ([0, 10]) - legend ({"a = 3, b = 6, c = 4", "a = 1, b = 5, c = 2", ... - "a = 2, b = 9, c = 3", "a = 2, b = 9, c = 5"}, ... - "location", "northwest") - title ("Triangular CDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p, y - p = [-1, 0, 0.02, 0.5, 0.98, 1, 2]; - y = [NaN, 0, 0.1, 0.5, 0.9, 1, NaN] + 1; -***** assert (triinv (p, ones (1, 7), 1.5 * ones (1, 7), 2 * ones (1, 7)), y, eps) -***** assert (triinv (p, 1 * ones (1, 7), 1.5, 2), y, eps) -***** assert (triinv (p, 1, 1.5, 2 * ones (1, 7)), y, eps) -***** assert (triinv (p, 1, 1.5*ones (1,7), 2), y, eps) -***** assert (triinv (p, 1, 1.5, 2), y, eps) -***** assert (triinv (p, [1, 1, NaN, 1, 1, 1, 1], 1.5, 2), [y(1:2), NaN, y(4:7)], eps) -***** assert (triinv (p, 1, 1.5 * [1, 1, NaN, 1, 1, 1, 1], 2), [y(1:2), NaN, y(4:7)], eps) -***** assert (triinv (p, 1, 1.5, 2 * [1, 1, NaN, 1, 1, 1, 1]), [y(1:2), NaN, y(4:7)], eps) -***** assert (triinv ([p, NaN], 1, 1.5, 2), [y, NaN], eps) -***** assert (triinv (single ([p, NaN]), 1, 1.5, 2), single ([y, NaN]), eps('single')) -***** assert (triinv ([p, NaN], single (1), 1.5, 2), single ([y, NaN]), eps('single')) -***** assert (triinv ([p, NaN], 1, single (1.5), 2), single ([y, NaN]), eps('single')) -***** assert (triinv ([p, NaN], 1, 1.5, single (2)), single ([y, NaN]), eps('single')) -***** error triinv () -***** error triinv (1) -***** error triinv (1, 2) -***** error triinv (1, 2, 3) -***** error ... - triinv (1, 2, 3, 4, 5) -***** error ... - triinv (ones (3), ones (2), ones(2), ones(2)) -***** error ... - triinv (ones (2), ones (3), ones(2), ones(2)) -***** error ... - triinv (ones (2), ones (2), ones(3), ones(2)) -***** error ... - triinv (ones (2), ones (2), ones(2), ones(3)) -***** error triinv (i, 2, 3, 4) -***** error triinv (1, i, 3, 4) -***** error triinv (1, 2, i, 4) -***** error triinv (1, 2, 3, i) -26 tests, 26 passed, 0 known failure, 0 skipped -[inst/dist_fun/jsupdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/binoinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/normpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nakarnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/wblrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/vminv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/bisainv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/burrcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gamcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/betacdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/dist_fun/betainv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/betainv.m + 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/glmfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/glmfit.m ***** demo - ## Plot various iCDFs from the Beta distribution - p = 0.001:0.001:0.999; - x1 = betainv (p, 0.5, 0.5); - x2 = betainv (p, 5, 1); - x3 = betainv (p, 1, 3); - x4 = betainv (p, 2, 2); - x5 = betainv (p, 2, 5); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-m") - grid on - legend ({"α = β = 0.5", "α = 5, β = 1", "α = 1, β = 3", ... - "α = 2, β = 2", "α = 2, β = 5"}, "location", "southeast") - title ("Beta iCDF") - xlabel ("probability") - ylabel ("values in x") -***** shared p - p = [-1 0 0.75 1 2]; -***** assert (betainv (p, ones (1,5), 2*ones (1,5)), [NaN 0 0.5 1 NaN], eps) -***** assert (betainv (p, 1, 2*ones (1,5)), [NaN 0 0.5 1 NaN], eps) -***** assert (betainv (p, ones (1,5), 2), [NaN 0 0.5 1 NaN], eps) -***** assert (betainv (p, [1 0 NaN 1 1], 2), [NaN NaN NaN 1 NaN]) -***** assert (betainv (p, 1, 2*[1 0 NaN 1 1]), [NaN NaN NaN 1 NaN]) -***** assert (betainv ([p(1:2) NaN p(4:5)], 1, 2), [NaN 0 NaN 1 NaN]) -***** assert (betainv ([p, NaN], 1, 2), [NaN 0 0.5 1 NaN NaN], eps) -***** assert (betainv (single ([p, NaN]), 1, 2), single ([NaN 0 0.5 1 NaN NaN])) -***** assert (betainv ([p, NaN], single (1), 2), single ([NaN 0 0.5 1 NaN NaN]), eps("single")) -***** assert (betainv ([p, NaN], 1, single (2)), single ([NaN 0 0.5 1 NaN NaN]), eps("single")) -***** error betainv () -***** error betainv (1) -***** error betainv (1,2) -***** error betainv (1,2,3,4) -***** error ... - betainv (ones (3), ones (2), ones (2)) -***** error ... - betainv (ones (2), ones (3), ones (2)) -***** error ... - betainv (ones (2), ones (2), ones (3)) -***** error betainv (i, 2, 2) -***** error betainv (2, i, 2) -***** error betainv (2, 2, i) -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/dist_fun/ricepdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/ricepdf.m + rand ("seed", 1); + X = rand (100, 1); + b_true = [0.5; -1.2]; + mu = exp (b_true(1) + b_true(2) * X); + randp ("seed", 1); + y = poissrnd (mu); + ## Fit a GLM model using the poisson distribution + [b,dev] = glmfit (X, y, 'poisson'); ***** 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/fcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/fcdf.m + x = [2100 2300 2500 2700 2900 3100 3300 3500 3700 3900 4100 4300]'; + n = [48 42 31 34 31 21 23 23 21 16 17 21]'; + y = [1 2 0 3 8 8 14 17 19 15 17 21]'; + [b,dev] = glmfit (x,[y n],'binomial','Link','probit'); +***** 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); +***** test + rand ("seed", 1); + X1 = rand (50, 1); + X2 = rand (50, 1) * 0.5; + b_true = [0.4; 1.5; -0.7]; + mu_true = exp (b_true(1) + b_true(2) * X1 + b_true(3) * X2); + randp ("seed", 1); + y = poissrnd(mu_true); + [b, dev] = glmfit ([X1, X2], y, "poisson", "link", "log"); + assert (b(1), b_true(1), 1); + assert (b(2), b_true(2), 1); + assert (b(3), b_true(3), 1); + assert (dev < 60, true); +***** error glmfit () +***** error glmfit (1) +***** error glmfit (1, 2) +***** error ... + glmfit (rand (6, 1), rand (6, 1), 'poisson', 'link') +***** error ... + glmfit ('abc', rand (6, 1), 'poisson') +***** error ... + glmfit (rand (5, 2), 'abc', 'poisson') +***** error ... + glmfit (rand (5, 2), rand (6, 1), 'poisson') +***** error ... + glmfit (rand (6, 2), rand (6, 1), 3) +***** error ... + glmfit (rand (6, 2), rand (6, 1), {'poisson'}) +***** error ... + glmfit (rand (5, 2), rand (5, 3), 'binomial') +***** error ... + glmfit (rand (5, 2), rand (5, 2), 'normal') +***** error ... + glmfit (rand (5, 2), rand (5, 1), 'gamma') +***** error ... + glmfit (rand (5, 2), rand (5, 1), 'inverse gaussian') +***** error ... + glmfit (rand (5, 2), rand (5, 1), 'loguniform') +***** error ... + glmfit (rand(5,2), rand(5,1), 'poisson', 'link', {'log'}) +***** error ... + glmfit (rand(5,2), rand(5,1), 'poisson', 'link', {'log', 'hijy'}) +***** error ... + glmfit (rand(5,2), rand(5,1), 'poisson', 'link', {'log','dfv','dfgvd'}) +***** error ... + glmfit (rand(5,2), rand(5,1), 'poisson', 'link', {@log, 'derivative', @exp}) +***** error ... + glmfit (rand(5,2), rand(5,1), 'poisson', 'link', {@exp, @log, @(x) eye(e)}) +***** error ... + glmfit (rand(5,2), rand(5,1), 'poisson', 'link', 'somelinkfunction') +***** error ... + glmfit (rand(5,2), rand(5,1), 'poisson', 'link', 2) +***** error ... + glmfit (rand(5,2), rand(5,1), 'poisson', 'link', 'log', 'constant', 0) +***** error ... + glmfit (rand(5,2), rand(5,1), 'poisson', 'link', 'log', 'constant', 'asda') +***** error ... + glmfit (rand(5,2), rand(5,1), 'poisson', 'param', 'log', 'constant', 'on') +26 tests, 26 passed, 0 known failure, 0 skipped +[inst/logistic_regression.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/Regression/RegressionGAM.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Regression/RegressionGAM.m ***** 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/hncdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/hncdf.m + ## 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 - ## Plot various CDFs from the half-normal distribution - x = 0:0.001:10; - p1 = hncdf (x, 0, 1); - p2 = hncdf (x, 0, 2); - p3 = hncdf (x, 0, 3); - p4 = hncdf (x, 0, 5); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") - grid on - xlim ([0, 10]) - legend ({"μ = 0, σ = 1", "μ = 0, σ = 2", ... - "μ = 0, σ = 3", "μ = 0, σ = 5"}, "location", "southeast") - title ("Half-normal CDF") - xlabel ("values in x") - ylabel ("probability") -***** demo - ## Plot half-normal against normal cumulative distribution function - x = -5:0.001:5; - p1 = hncdf (x, 0, 1); - p2 = normcdf (x); - plot (x, p1, "-b", x, p2, "-g") - grid on - xlim ([-5, 5]) - legend ({"half-normal with μ = 0, σ = 1", ... - "standart normal (μ = 0, σ = 1)"}, "location", "southeast") - title ("Half-normal against standard normal CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, p1, p1u, y2, y2u, y3, y3u - x = [-Inf, -1, 0, 1/2, 1, Inf]; - p1 = [0, 0, 0, 0.3829, 0.6827, 1]; - p1u = [1, 1, 1, 0.6171, 0.3173, 0]; -***** assert (hncdf (x, zeros (1,6), ones (1,6)), p1, 1e-4) -***** assert (hncdf (x, 0, 1), p1, 1e-4) -***** assert (hncdf (x, 0, ones (1,6)), p1, 1e-4) -***** assert (hncdf (x, zeros (1,6), 1), p1, 1e-4) -***** assert (hncdf (x, 0, [1, 1, 1, NaN, 1, 1]), [p1(1:3), NaN, p1(5:6)], 1e-4) -***** assert (hncdf (x, [0, 0, 0, NaN, 0, 0], 1), [p1(1:3), NaN, p1(5:6)], 1e-4) -***** assert (hncdf ([x(1:3), NaN, x(5:6)], 0, 1), [p1(1:3), NaN, p1(5:6)], 1e-4) -***** assert (hncdf (x, zeros (1,6), ones (1,6), "upper"), p1u, 1e-4) -***** assert (hncdf (x, 0, 1, "upper"), p1u, 1e-4) -***** assert (hncdf (x, 0, ones (1,6), "upper"), p1u, 1e-4) -***** assert (hncdf (x, zeros (1,6), 1, "upper"), p1u, 1e-4) -***** assert (class (hncdf (single ([x, NaN]), 0, 1)), "single") -***** assert (class (hncdf ([x, NaN], 0, single (1))), "single") -***** assert (class (hncdf ([x, NaN], single (0), 1)), "single") -***** error hncdf () -***** error hncdf (1) -***** error hncdf (1, 2) -***** error hncdf (1, 2, 3, "tail") -***** error hncdf (1, 2, 3, 5) -***** error ... - hncdf (ones (3), ones (2), ones(2)) -***** error ... - hncdf (ones (2), ones (3), ones(2)) -***** error ... - hncdf (ones (2), ones (2), ones(3)) -***** error hncdf (i, 2, 3) -***** error hncdf (1, i, 3) -***** error hncdf (1, 2, i) -25 tests, 25 passed, 0 known failure, 0 skipped -[inst/dist_fun/invginv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/evpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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") + ## 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 = 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/laplacecdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/burrpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/betapdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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])) + 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 = 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/mvnpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hygeinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/hygeinv.m -***** demo - ## Plot various iCDFs from the hypergeometric 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") - 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") - xlabel ("probability") - ylabel ("values in p (number of successes)") -***** 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/invgrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]) + 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/crosstab.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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/invgcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/invgcdf.m -***** demo - ## Plot various CDFs from the inverse Gaussian distribution - x = 0:0.001:3; - p1 = invgcdf (x, 1, 0.2); - p2 = invgcdf (x, 1, 1); - p3 = invgcdf (x, 1, 3); - p4 = invgcdf (x, 3, 0.2); - p5 = invgcdf (x, 3, 1); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-y") - grid on - xlim ([0, 3]) - legend ({"μ = 1, σ = 0.2", "μ = 1, σ = 1", "μ = 1, σ = 3", ... - "μ = 3, σ = 0.2", "μ = 3, σ = 1"}, "location", "southeast") - title ("Inverse Gaussian CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, p1, p1u, y2, y2u, y3, y3u - x = [-Inf, -1, 0, 1/2, 1, Inf]; - p1 = [0, 0, 0, 0.3650, 0.6681, 1]; - p1u = [1, 1, 1, 0.6350, 0.3319, 0]; -***** assert (invgcdf (x, ones (1,6), ones (1,6)), p1, 1e-4) -***** assert (invgcdf (x, 1, 1), p1, 1e-4) -***** assert (invgcdf (x, 1, ones (1,6)), p1, 1e-4) -***** assert (invgcdf (x, ones (1,6), 1), p1, 1e-4) -***** assert (invgcdf (x, 1, [1, 1, 1, NaN, 1, 1]), [p1(1:3), NaN, p1(5:6)], 1e-4) -***** assert (invgcdf (x, [1, 1, 1, NaN, 1, 1], 1), [p1(1:3), NaN, p1(5:6)], 1e-4) -***** assert (invgcdf ([x(1:3), NaN, x(5:6)], 1, 1), [p1(1:3), NaN, p1(5:6)], 1e-4) -***** assert (invgcdf (x, ones (1,6), ones (1,6), "upper"), p1u, 1e-4) -***** assert (invgcdf (x, 1, 1, "upper"), p1u, 1e-4) -***** assert (invgcdf (x, 1, ones (1,6), "upper"), p1u, 1e-4) -***** assert (invgcdf (x, ones (1,6), 1, "upper"), p1u, 1e-4) -***** assert (class (invgcdf (single ([x, NaN]), 1, 1)), "single") -***** assert (class (invgcdf ([x, NaN], 1, single (1))), "single") -***** assert (class (invgcdf ([x, NaN], single (1), 1)), "single") -***** error invgcdf () -***** error invgcdf (1) -***** error invgcdf (1, 2) -***** error invgcdf (1, 2, 3, "tail") -***** error invgcdf (1, 2, 3, 5) -***** error ... - invgcdf (ones (3), ones (2), ones(2)) -***** error ... - invgcdf (ones (2), ones (3), ones(2)) -***** error ... - invgcdf (ones (2), ones (2), ones(3)) -***** error invgcdf (i, 2, 3) -***** error invgcdf (1, i, 3) -***** error invgcdf (1, 2, i) -25 tests, 25 passed, 0 known failure, 0 skipped -[inst/dist_fun/nbinpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncx2rnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/logiinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/logiinv.m -***** demo - ## Plot various iCDFs from the logistic 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") - grid on - legend ({"μ = 5, σ = 2", "μ = 9, σ = 3", "μ = 9, σ = 4", ... - "μ = 6, σ = 2", "μ = 2, σ = 1"}, "location", "southeast") - title ("Logistic iCDF") - xlabel ("probability") - ylabel ("x") + load carbig + [table, chisq, p, labels] = crosstab (cyl4, when, org); + assert (table(2,3,1), 38); + assert (labels{3,3}, "Japan"); ***** test - p = [0.01:0.01:0.99]; - assert (logiinv (p, 0, 1), log (p ./ (1-p)), 25*eps); + 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/dist_wrap/mle.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/icdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_wrap/icdf.m ***** 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 -[inst/dist_fun/lognrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/loglrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/mnpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/mnpdf.m + 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/makedist.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_wrap/makedist.m ***** test - x = [1, 4, 2]; - pk = [0.2, 0.5, 0.3]; - y = mnpdf (x, pk); - assert (y, 0.11812, 0.001); + pd = makedist ("beta"); + assert (class (pd), "BetaDistribution"); + assert (pd.a, 1); + assert (pd.b, 1); ***** 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/unidpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 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/normcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/unifcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gumbelpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/gumbelpdf.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/plpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/plpdf.m -***** demo - ## Plot various PDFs 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]; - y1 = plpdf (data, x1, Fx1); - y2 = plpdf (data, x2, Fx2); - plot (data, y1, "-b", data, y2, "g") - grid on - ylim ([0, 0.6]) - xlim ([0, 10]) - legend ({"x1, Fx1", "x2, Fx2"}, "location", "northeast") - title ("Piecewise linear CDF") - xlabel ("values in data") - ylabel ("density") -***** shared x, Fx - x = [0, 1, 3, 4, 7, 10]; - Fx = [0, 0.2, 0.5, 0.6, 0.7, 1]; -***** assert (plpdf (0.5, x, Fx), 0.2, eps); -***** assert (plpdf (1.5, x, Fx), 0.15, eps); -***** assert (plpdf (3.5, x, Fx), 0.1, eps); -***** assert (plpdf (5, x, Fx), 0.1/3, eps); -***** assert (plpdf (8, x, Fx), 0.1, eps); -***** error plpdf () -***** error plpdf (1) -***** error plpdf (1, 2) -***** error ... - plpdf (1, [0, 1, 2], [0, 1]) -***** error ... - plpdf (1, [0], [1]) -***** error ... - plpdf (1, [0, 1, 2], [0, 1, 1.5]) -***** error ... - plpdf (1, [0, 1, 2], [0, i, 1]) -***** error ... - plpdf (i, [0, 1, 2], [0, 0.5, 1]) -***** error ... - plpdf (1, [0, i, 2], [0, 0.5, 1]) -***** error ... - plpdf (1, [0, 1, 2], [0, 0.5i, 1]) -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fun/nakacdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncx2cdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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") + pd = makedist ("beta", "a", 5); + assert (pd.a, 5); + assert (pd.b, 1); ***** 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); + pd = makedist ("beta", "b", 5); + assert (pd.a, 1); + assert (pd.b, 5); ***** test - p = ncx2cdf (12, 10, 3); - assert (p, 0.4845555602398649, 1e-14); + pd = makedist ("beta", "a", 3, "b", 5); + assert (pd.a, 3); + assert (pd.b, 5); ***** test - p = ncx2cdf (2, 3, 2); - assert (p, 0.2207330870741212, 1e-14); + pd = makedist ("binomial"); + assert (class (pd), "BinomialDistribution"); + assert (pd.N, 1); + assert (pd.p, 0.5); ***** test - p = ncx2cdf (2, 3, 2, "upper"); - assert (p, 0.7792669129258789, 1e-14); + pd = makedist ("binomial", "N", 5); + assert (pd.N, 5); + assert (pd.p, 0.5); ***** 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/ricecdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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") + pd = makedist ("binomial", "p", 0.2); + assert (pd.N, 1); + assert (pd.p, 0.2); ***** 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); + pd = makedist ("binomial", "N", 3, "p", 0.3); + assert (pd.N, 3); + assert (pd.p, 0.3); ***** 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); + pd = makedist ("birnbaumsaunders"); + assert (class (pd), "BirnbaumSaundersDistribution"); + assert (pd.beta, 1); + assert (pd.gamma, 1); ***** 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); + pd = makedist ("birnbaumsaunders", "beta", 5); + assert (pd.beta, 5); + assert (pd.gamma, 1); ***** 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/unidrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/logirnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/trnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hninv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/mnrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/mnrnd.m + pd = makedist ("birnbaumsaunders", "gamma", 5); + assert (pd.beta, 1); + assert (pd.gamma, 5); ***** 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); + pd = makedist ("birnbaumsaunders", "beta", 3, "gamma", 5); + assert (pd.beta, 3); + assert (pd.gamma, 5); ***** 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)); + pd = makedist ("burr"); + assert (class (pd), "BurrDistribution"); + assert (pd.alpha, 1); + assert (pd.c, 1); + assert (pd.k, 1); ***** 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/wishpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nakapdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/nakapdf.m -***** demo - ## Plot various PDFs from the Nakagami distribution - x = 0:0.01:3; - y1 = nakapdf (x, 0.5, 1); - y2 = nakapdf (x, 1, 1); - y3 = nakapdf (x, 1, 2); - y4 = nakapdf (x, 1, 3); - y5 = nakapdf (x, 2, 1); - y6 = nakapdf (x, 2, 2); - y7 = nakapdf (x, 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 - xlim ([0, 3]) - ylim ([0, 2]) - legend ({"μ = 0.5, ω = 1", "μ = 1, ω = 1", "μ = 1, ω = 2", ... - "μ = 1, ω = 3", "μ = 2, ω = 1", "μ = 2, ω = 2", ... - "μ = 5, ω = 1"}, "location", "northeast") - title ("Nakagami PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-1, 0, 1, 2, Inf]; - y = [0, 0, 0.73575888234288467, 0.073262555554936715, 0]; -***** assert (nakapdf (x, ones (1,5), ones (1,5)), y, eps) -***** assert (nakapdf (x, 1, 1), y, eps) -***** assert (nakapdf (x, [1, 1, NaN, 1, 1], 1), [y(1:2), NaN, y(4:5)], eps) -***** assert (nakapdf (x, 1, [1, 1, NaN, 1, 1]), [y(1:2), NaN, y(4:5)], eps) -***** assert (nakapdf ([x, NaN], 1, 1), [y, NaN], eps) -***** assert (nakapdf (single ([x, NaN]), 1, 1), single ([y, NaN])) -***** assert (nakapdf ([x, NaN], single (1), 1), single ([y, NaN])) -***** assert (nakapdf ([x, NaN], 1, single (1)), single ([y, NaN])) -***** error nakapdf () -***** error nakapdf (1) -***** error nakapdf (1, 2) -***** error ... - nakapdf (ones (3), ones (2), ones(2)) -***** error ... - nakapdf (ones (2), ones (3), ones(2)) -***** error ... - nakapdf (ones (2), ones (2), ones(3)) -***** error nakapdf (i, 4, 3) -***** error nakapdf (1, i, 3) -***** error nakapdf (1, 4, i) -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/dist_fun/wienrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hygecdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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) + pd = makedist ("burr", "k", 5); + assert (pd.alpha, 1); + assert (pd.c, 1); + assert (pd.k, 5); ***** test - p = hygecdf (x, 10, [1 2 3 4 5], 2, "upper"); - assert (p, [1, 34/90, 2/30, 0, 0], 10*eps); + pd = makedist ("burr", "c", 5); + assert (pd.alpha, 1); + assert (pd.c, 5); + assert (pd.k, 1); ***** 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/loglinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/tcdf.m -***** demo - ## Plot various CDFs from the Student's T distribution - x = -5:0.01:5; - p1 = tcdf (x, 1); - p2 = tcdf (x, 2); - p3 = tcdf (x, 5); - p4 = tcdf (x, Inf); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-m") - grid on - xlim ([-5, 5]) - ylim ([0, 1]) - legend ({"df = 1", "df = 2", ... - "df = 5", 'df = \infty'}, "location", "southeast") - title ("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 (tcdf (x, ones (1,4)), y, eps) -***** assert (tcdf (x, 1), y, eps) -***** assert (tcdf (x, [0 1 NaN 1]), [NaN 1/2 NaN 1], eps) -***** assert (tcdf ([x(1:2) NaN x(4)], 1), [y(1:2) NaN y(4)], eps) -***** assert (tcdf (2, 3, "upper"), 0.0697, 1e-4) -***** assert (tcdf (205, 5, "upper"), 2.6206e-11, 1e-14) -***** assert (tcdf ([x, NaN], 1), [y, NaN], eps) -***** assert (tcdf (single ([x, NaN]), 1), single ([y, NaN]), eps ("single")) -***** assert (tcdf ([x, NaN], single (1)), single ([y, NaN]), eps ("single")) -***** error tcdf () -***** error tcdf (1) -***** error tcdf (1, 2, "uper") -***** error tcdf (1, 2, 3) -***** error ... - tcdf (ones (3), ones (2)) -***** error ... - tcdf (ones (3), ones (2)) -***** error ... - tcdf (ones (3), ones (2), "upper") -***** error tcdf (i, 2) -***** error tcdf (2, i) -***** shared tol_rel - tol_rel = 10 * eps; -***** assert (tcdf (10^(-10), 2.5), 0.50000000003618087, -tol_rel) -***** assert (tcdf (10^(-11), 2.5), 0.50000000000361809, -tol_rel) -***** assert (tcdf (10^(-12), 2.5), 0.50000000000036181, -tol_rel) -***** assert (tcdf (10^(-13), 2.5), 0.50000000000003618, -tol_rel) -***** assert (tcdf (10^(-14), 2.5), 0.50000000000000362, -tol_rel) -***** assert (tcdf (10^(-15), 2.5), 0.50000000000000036, -tol_rel) -***** assert (tcdf (10^(-16), 2.5), 0.50000000000000004, -tol_rel) -***** assert (tcdf (-10^1, 2.5), 2.2207478836537124e-03, -tol_rel) -***** assert (tcdf (-10^2, 2.5), 7.1916492116661878e-06, -tol_rel) -***** assert (tcdf (-10^3, 2.5), 2.2747463948307452e-08, -tol_rel) -***** 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/plrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/iwishrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gumbelcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/loglpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/mvtrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/mvtrnd.m + pd = makedist ("burr", "alpha", 3, "c", 5); + assert (pd.alpha, 3); + assert (pd.c, 5); + assert (pd.k, 1); ***** test - rho = [1, 0.5; 0.5, 1]; - df = 3; - n = 10; - r = mvtrnd (rho, df, n); - assert (size (r), [10, 2]); + pd = makedist ("burr", "k", 3, "c", 5); + assert (pd.alpha, 1); + assert (pd.c, 5); + assert (pd.k, 3); ***** 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/poissrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/evcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/raylrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/chi2rnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/laplacepdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/laplacepdf.m -***** demo - ## Plot various PDFs from the Laplace distribution - x = -10:0.01:10; - y1 = laplacepdf (x, 0, 1); - y2 = laplacepdf (x, 0, 2); - y3 = laplacepdf (x, 0, 4); - y4 = laplacepdf (x, -5, 4); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") - grid on - xlim ([-10, 10]) - ylim ([0, 0.6]) - legend ({"μ = 0, β = 1", "μ = 0, β = 2", ... - "μ = 0, β = 4", "μ = -5, β = 4"}, "location", "northeast") - title ("Laplace PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-Inf -log(2) 0 log(2) Inf]; - y = [0, 1/4, 1/2, 1/4, 0]; -***** assert (laplacepdf ([x, NaN], 0, 1), [y, NaN]) -***** assert (laplacepdf (x, 0, [-2, -1, 0, 1, 2]), [nan(1, 3), 0.25, 0]) -***** assert (laplacepdf (single ([x, NaN]), 0, 1), single ([y, NaN])) -***** assert (laplacepdf ([x, NaN], single (0), 1), single ([y, NaN])) -***** assert (laplacepdf ([x, NaN], 0, single (1)), single ([y, NaN])) -***** error laplacepdf () -***** error laplacepdf (1) -***** error ... - laplacepdf (1, 2) -***** error laplacepdf (1, 2, 3, 4) -***** error ... - laplacepdf (1, ones (2), ones (3)) -***** error ... - laplacepdf (ones (2), 1, ones (3)) -***** error ... - laplacepdf (ones (2), ones (3), 1) -***** error laplacepdf (i, 2, 3) -***** error laplacepdf (1, i, 3) -***** error laplacepdf (1, 2, i) -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fun/normrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hygernd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/cauchycdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/cauchycdf.m -***** demo - ## Plot various CDFs from the Cauchy distribution - x = -5:0.01:5; - p1 = cauchycdf (x, 0, 0.5); - p2 = cauchycdf (x, 0, 1); - p3 = cauchycdf (x, 0, 2); - p4 = cauchycdf (x, -2, 1); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") - grid on - xlim ([-5, 5]) - legend ({"x0 = 0, γ = 0.5", "x0 = 0, γ = 1", ... - "x0 = 0, γ = 2", "x0 = -2, γ = 1"}, "location", "southeast") - title ("Cauchy CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, y - x = [-1 0 0.5 1 2]; - y = 1/pi * atan ((x-1) / 2) + 1/2; -***** assert (cauchycdf (x, ones (1,5), 2*ones (1,5)), y) -***** assert (cauchycdf (x, 1, 2*ones (1,5)), y) -***** assert (cauchycdf (x, ones (1,5), 2), y) -***** assert (cauchycdf (x, [-Inf 1 NaN 1 Inf], 2), [NaN y(2) NaN y(4) NaN]) -***** assert (cauchycdf (x, 1, 2*[0 1 NaN 1 Inf]), [NaN y(2) NaN y(4) NaN]) -***** assert (cauchycdf ([x(1:2) NaN x(4:5)], 1, 2), [y(1:2) NaN y(4:5)]) -***** assert (cauchycdf ([x, NaN], 1, 2), [y, NaN]) -***** assert (cauchycdf (single ([x, NaN]), 1, 2), single ([y, NaN]), eps ("single")) -***** assert (cauchycdf ([x, NaN], single (1), 2), single ([y, NaN]), eps ("single")) -***** assert (cauchycdf ([x, NaN], 1, single (2)), single ([y, NaN]), eps ("single")) -***** error cauchycdf () -***** error cauchycdf (1) -***** error ... - cauchycdf (1, 2) -***** error ... - cauchycdf (1, 2, 3, 4, 5) -***** error cauchycdf (1, 2, 3, "tail") -***** error cauchycdf (1, 2, 3, 4) -***** error ... - cauchycdf (ones (3), ones (2), ones (2)) -***** error ... - cauchycdf (ones (2), ones (3), ones (2)) -***** error ... - cauchycdf (ones (2), ones (2), ones (3)) -***** error cauchycdf (i, 2, 2) -***** error cauchycdf (2, i, 2) -***** error cauchycdf (2, 2, i) -22 tests, 22 passed, 0 known failure, 0 skipped -[inst/dist_fun/frnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nakainv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nctcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/nctcdf.m -***** 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") -***** 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") + pd = makedist ("exponential"); + assert (class (pd), "ExponentialDistribution"); + assert (pd.mu, 1); ***** 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); + pd = makedist ("exponential", "mu", 5); + assert (pd.mu, 5); ***** test - p = nctcdf (12, 10, 3); - assert (p, 0.9997719343243797, 1e-14); + pd = makedist ("extremevalue"); + assert (class (pd), "ExtremeValueDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); ***** test - p = nctcdf (2, 3, 2); - assert (p, 0.4430757822176028, 1e-14); + pd = makedist ("extremevalue", "mu", 5); + assert (class (pd), "ExtremeValueDistribution"); + assert (pd.mu, 5); + assert (pd.sigma, 1); ***** test - p = nctcdf (2, 3, 2, "upper"); - assert (p, 0.5569242177823971, 1e-14); + pd = makedist ("ev", "sigma", 5); + assert (class (pd), "ExtremeValueDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 5); ***** 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/evrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tlspdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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") + pd = makedist ("ev", "mu", -3, "sigma", 5); + assert (class (pd), "ExtremeValueDistribution"); + assert (pd.mu, -3); + assert (pd.sigma, 5); ***** 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); -***** 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/unidcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nctinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/nctinv.m -***** demo - ## Plot various iCDFs from the noncentral T distribution - p = 0.001:0.001:0.999; - x1 = nctinv (p, 1, 0); - x2 = nctinv (p, 4, 0); - x3 = nctinv (p, 1, 2); - x4 = nctinv (p, 4, 2); - plot (p, x1, "-r", p, x2, "-g", p, x3, "-k", p, x4, "-m") - grid on - ylim ([-5, 5]) - legend ({"df = 1, μ = 0", "df = 4, μ = 0", ... - "df = 1, μ = 2", "df = 4, μ = 2"}, "location", "northwest") - title ("Noncentral T iCDF") - xlabel ("probability") - ylabel ("values in x") -***** demo - ## Compare the noncentral T iCDF with MU = 1 to the T iCDF - ## with the same number of degrees of freedom (10). - - p = 0.001:0.001:0.999; - x1 = nctinv (p, 10, 1); - x2 = tinv (p, 10); - plot (p, x1, "-", p, x2, "-"); - grid on - ylim ([-5, 5]) - legend ({"Noncentral T(10,1)", "T(10)"}, "location", "northwest") - title ("Noncentral T vs T quantile functions") - xlabel ("probability") - ylabel ("values in x") + pd = makedist ("gamma"); + assert (class (pd), "GammaDistribution"); + assert (pd.a, 1); + assert (pd.b, 1); ***** test - x = [-Inf,-0.3347,0.1756,0.5209,0.8279,1.1424,1.5021,1.9633,2.6571,4.0845,Inf]; - assert (nctinv ([0:0.1:1], 2, 1), x, 1e-4); + pd = makedist ("gamma", "a", 5); + assert (pd.a, 5); + assert (pd.b, 1); ***** test - x = [-Inf,1.5756,2.0827,2.5343,3.0043,3.5406,4.2050,5.1128,6.5510,9.6442,Inf]; - assert (nctinv ([0:0.1:1], 2, 3), x, 1e-4); + pd = makedist ("gamma", "b", 5); + assert (pd.a, 1); + assert (pd.b, 5); ***** test - x = [-Inf,2.2167,2.9567,3.7276,4.6464,5.8455,7.5619,10.3327,15.7569,31.8159,Inf]; - assert (nctinv ([0:0.1:1], 1, 4), x, 1e-4); + pd = makedist ("gamma", "a", 3, "b", 5); + assert (pd.a, 3); + assert (pd.b, 5); ***** test - x = [1.7791 1.9368 2.0239 2.0801 2.1195 2.1489]; - assert (nctinv (0.05, [1, 2, 3, 4, 5, 6], 4), x, 1e-4); + pd = makedist ("GeneralizedExtremeValue"); + assert (class (pd), "GeneralizedExtremeValueDistribution"); + assert (pd.k, 0); + assert (pd.sigma, 1); + assert (pd.mu, 0); ***** test - x = [-0.7755, 0.3670, 1.2554, 2.0239, 2.7348, 3.4154]; - assert (nctinv (0.05, 3, [1, 2, 3, 4, 5, 6]), x, 1e-4); + pd = makedist ("GeneralizedExtremeValue", "k", 5); + assert (pd.k, 5); + assert (pd.sigma, 1); + assert (pd.mu, 0); ***** test - x = [-0.7183, 0.3624, 1.2878, 2.1195, -3.5413, 3.6430]; - assert (nctinv (0.05, 5, [1, 2, 3, 4, -1, 6]), x, 1e-4); + pd = makedist ("GeneralizedExtremeValue", "sigma", 5); + assert (pd.k, 0); + assert (pd.sigma, 5); + assert (pd.mu, 0); ***** test - assert (nctinv (0.996, 5, 8), 30.02610554063658, 2e-11); -***** error nctinv () -***** error nctinv (1) -***** error nctinv (1, 2) -***** error ... - nctinv (ones (3), ones (2), ones (2)) -***** error ... - nctinv (ones (2), ones (3), ones (2)) -***** error ... - nctinv (ones (2), ones (2), ones (3)) -***** error nctinv (i, 2, 2) -***** error nctinv (2, i, 2) -***** error nctinv (2, 2, i) -16 tests, 16 passed, 0 known failure, 0 skipped -[inst/dist_fun/hnpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/hnpdf.m -***** demo - ## Plot various PDFs from the half-normal distribution - x = 0:0.001:10; - y1 = hnpdf (x, 0, 1); - y2 = hnpdf (x, 0, 2); - y3 = hnpdf (x, 0, 3); - y4 = hnpdf (x, 0, 5); - plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") - grid on - xlim ([0, 10]) - ylim ([0, 0.9]) - legend ({"μ = 0, σ = 1", "μ = 0, σ = 2", ... - "μ = 0, σ = 3", "μ = 0, σ = 5"}, "location", "northeast") - title ("Half-normal PDF") - xlabel ("values in x") - ylabel ("density") -***** demo - ## Plot half-normal against normal probability density function - x = -5:0.001:5; - y1 = hnpdf (x, 0, 1); - y2 = normpdf (x); - plot (x, y1, "-b", x, y2, "-g") - grid on - xlim ([-5, 5]) - ylim ([0, 0.9]) - legend ({"half-normal with μ = 0, σ = 1", ... - "standart normal (μ = 0, σ = 1)"}, "location", "northeast") - title ("Half-normal against standard normal PDF") - xlabel ("values in x") - ylabel ("density") -***** shared x, y - x = [-Inf, -1, 0, 1/2, 1, Inf]; - y = [0, 0, 0.7979, 0.7041, 0.4839, 0]; -***** assert (hnpdf ([x, NaN], 0, 1), [y, NaN], 1e-4) -***** assert (hnpdf (x, 0, [-2, -1, 0, 1, 1, 1]), [nan(1,3), y([4:6])], 1e-4) -***** assert (class (hncdf (single ([x, NaN]), 0, 1)), "single") -***** assert (class (hncdf ([x, NaN], 0, single (1))), "single") -***** assert (class (hncdf ([x, NaN], single (0), 1)), "single") -***** error hnpdf () -***** error hnpdf (1) -***** error hnpdf (1, 2) -***** error ... - hnpdf (1, ones (2), ones (3)) -***** error ... - hnpdf (ones (2), 1, ones (3)) -***** error ... - hnpdf (ones (2), ones (3), 1) -***** error hnpdf (i, 2, 3) -***** error hnpdf (1, i, 3) -***** error hnpdf (1, 2, i) -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/dist_fun/bvncdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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" + pd = makedist ("GeneralizedExtremeValue", "k", 3, "sigma", 5); + assert (pd.k, 3); + assert (pd.sigma, 5); + assert (pd.mu, 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 = 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); + pd = makedist ("GeneralizedExtremeValue", "mu", 3, "sigma", 5); + assert (pd.k, 0); + assert (pd.sigma, 5); + assert (pd.mu, 3); ***** 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, 3e-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/hnrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]) + pd = makedist ("GeneralizedPareto"); + assert (class (pd), "GeneralizedParetoDistribution"); + assert (pd.k, 1); + assert (pd.sigma, 1); + assert (pd.theta, 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/binornd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/binornd.m -***** assert (size (binornd (2, 1/2)), [1 1]) -***** assert (size (binornd (2 * ones (2, 1), 1/2)), [2, 1]) -***** assert (size (binornd (2 * ones (2, 2), 1/2)), [2, 2]) -***** assert (size (binornd (2, 1/2 * ones (2, 1))), [2, 1]) -***** assert (size (binornd (1, 1/2 * ones (2, 2))), [2, 2]) -***** assert (size (binornd (ones (2, 1), 1)), [2, 1]) -***** assert (size (binornd (ones (2, 2), 1)), [2, 2]) -***** assert (size (binornd (2, 1/2, 3)), [3, 3]) -***** assert (size (binornd (1, 1, [4, 1])), [4, 1]) -***** assert (size (binornd (1, 1, 4, 1)), [4, 1]) -***** assert (size (binornd (1, 1, 4, 1, 5)), [4, 1, 5]) -***** assert (size (binornd (1, 1, 0, 1)), [0, 1]) -***** assert (size (binornd (1, 1, 1, 0)), [1, 0]) -***** assert (size (binornd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) -***** assert (class (binornd (1, 1)), "double") -***** assert (class (binornd (1, single (0))), "single") -***** assert (class (binornd (1, single ([0, 0]))), "single") -***** assert (class (binornd (1, single (1), 2)), "single") -***** assert (class (binornd (1, single ([1, 1]), 1, 2)), "single") -***** assert (class (binornd (single (1), 1, 2)), "single") -***** assert (class (binornd (single ([1, 1]), 1, 1, 2)), "single") -***** error binornd () -***** error binornd (1) -***** error ... - binornd (ones (3), ones (2)) -***** error ... - binornd (ones (2), ones (3)) -***** error binornd (i, 2) -***** error binornd (1, i) -***** error ... - binornd (1, 1/2, -1) -***** error ... - binornd (1, 1/2, 1.2) -***** error ... - binornd (1, 1/2, ones (2)) -***** error ... - binornd (1, 1/2, [2 -1 2]) -***** error ... - binornd (1, 1/2, [2 0 2.5]) -***** error ... - binornd (1, 1/2, 2, -1, 5) -***** error ... - binornd (1, 1/2, 2, 1.5, 5) -***** error ... - binornd (2, 1/2 * ones (2), 3) -***** error ... - binornd (2, 1/2 * ones (2), [3, 2]) -***** error ... - binornd (2, 1/2 * ones (2), 3, 2) -***** error ... - binornd (2 * ones (2), 1/2, 3) -***** error ... - binornd (2 * ones (2), 1/2, [3, 2]) -***** error ... - binornd (2 * ones (2), 1/2, 3, 2) -40 tests, 40 passed, 0 known failure, 0 skipped -[inst/dist_fun/gevinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/gevinv.m -***** demo - ## Plot various iCDFs from the generalized extreme value distribution - p = 0.001:0.001:0.999; - x1 = gevinv (p, 1, 1, 1); - x2 = gevinv (p, 0.5, 1, 1); - x3 = gevinv (p, 1, 1, 5); - x4 = gevinv (p, 1, 2, 5); - x5 = gevinv (p, 1, 5, 5); - x6 = gevinv (p, 1, 0.5, 5); - plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", ... - p, x4, "-c", p, x5, "-m", p, x6, "-k") - grid on - ylim ([-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", "northwest") - title ("Generalized extreme value iCDF") - xlabel ("probability") - ylabel ("values in x") + pd = makedist ("GeneralizedPareto", "k", 5); + assert (pd.k, 5); + assert (pd.sigma, 1); + assert (pd.theta, 1); ***** test - p = 0.1:0.1:0.9; - k = 0; - sigma = 1; - mu = 0; - x = gevinv (p, k, sigma, mu); - c = gevcdf(x, k, sigma, mu); - assert (c, p, 0.001); + pd = makedist ("GeneralizedPareto", "sigma", 5); + assert (pd.k, 1); + assert (pd.sigma, 5); + assert (pd.theta, 1); ***** test - p = 0.1:0.1:0.9; - k = 1; - sigma = 1; - mu = 0; - x = gevinv (p, k, sigma, mu); - c = gevcdf(x, k, sigma, mu); - assert (c, p, 0.001); + pd = makedist ("GeneralizedPareto", "k", 3, "sigma", 5); + assert (pd.k, 3); + assert (pd.sigma, 5); + assert (pd.theta, 1); ***** test - p = 0.1:0.1:0.9; - k = 0.3; - sigma = 1; - mu = 0; - x = gevinv (p, k, sigma, mu); - c = gevcdf(x, k, sigma, mu); - assert (c, p, 0.001); -***** error gevinv () -***** error gevinv (1) -***** error gevinv (1, 2) -***** error gevinv (1, 2, 3) -***** error ... - gevinv (ones (3), ones (2), ones(2), ones(2)) -***** error ... - gevinv (ones (2), ones (3), ones(2), ones(2)) -***** error ... - gevinv (ones (2), ones (2), ones(3), ones(2)) -***** error ... - gevinv (ones (2), ones (2), ones(2), ones(3)) -***** error gevinv (i, 2, 3, 4) -***** error gevinv (1, i, 3, 4) -***** error gevinv (1, 2, i, 4) -***** error gevinv (1, 2, 3, i) -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/dist_fun/tinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/mvtcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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"); + pd = makedist ("GeneralizedPareto", "theta", 3, "sigma", 5); + assert (pd.k, 1); + assert (pd.sigma, 5); + assert (pd.theta, 3); ***** 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); + pd = makedist ("HalfNormal"); + assert (class (pd), "HalfNormalDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); ***** 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); + pd = makedist ("HalfNormal", "mu", 5); + assert (pd.mu, 5); + assert (pd.sigma, 1); ***** 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/mvncdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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"); + pd = makedist ("HalfNormal", "sigma", 5); + assert (pd.mu, 0); + assert (pd.sigma, 5); ***** 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); + pd = makedist ("HalfNormal", "mu", 3, "sigma", 5); + assert (pd.mu, 3); + assert (pd.sigma, 5); ***** 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); + pd = makedist ("InverseGaussian"); + assert (class (pd), "InverseGaussianDistribution"); + assert (pd.mu, 1); + assert (pd.lambda, 1); ***** 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, 3e-16); + pd = makedist ("InverseGaussian", "mu", 5); + assert (pd.mu, 5); + assert (pd.lambda, 1); ***** 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); + pd = makedist ("InverseGaussian", "lambda", 5); + assert (pd.mu, 1); + assert (pd.lambda, 5); ***** 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); + pd = makedist ("InverseGaussian", "mu", 3, "lambda", 5); + assert (pd.mu, 3); + assert (pd.lambda, 5); ***** 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/gpcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/cauchyinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tlsinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/copulapdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/copulapdf.m + pd = makedist ("logistic"); + assert (class (pd), "LogisticDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); ***** 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); + pd = makedist ("logistic", "mu", 5); + assert (pd.mu, 5); + assert (pd.sigma, 1); ***** 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); + pd = makedist ("logistic", "sigma", 5); + assert (pd.mu, 0); + assert (pd.sigma, 5); ***** 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); + pd = makedist ("logistic", "mu", 3, "sigma", 5); + assert (pd.mu, 3); + assert (pd.sigma, 5); ***** 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/unifpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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.7.0/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 -[inst/dist_fun/trirnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/fpdf.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") - 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") - 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/ricernd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/burrinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/wblpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nbinrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncfcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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") + pd = makedist ("loglogistic"); + assert (class (pd), "LoglogisticDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); ***** 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); + pd = makedist ("loglogistic", "mu", 5); + assert (pd.mu, 5); + assert (pd.sigma, 1); ***** test - p = ncfcdf (12, 10, 3, 2); - assert (p, 0.9582287900447416, 1e-14); + pd = makedist ("loglogistic", "sigma", 5); + assert (pd.mu, 0); + assert (pd.sigma, 5); ***** test - p = ncfcdf (2, 3, 2, 1); - assert (p, 0.5731985522994989, 1e-14); + pd = makedist ("loglogistic", "mu", 3, "sigma", 5); + assert (pd.mu, 3); + assert (pd.sigma, 5); ***** test - p = ncfcdf (2, 3, 2, 1, "upper"); - assert (p, 0.4268014477004823, 1e-14); + pd = makedist ("Lognormal"); + assert (class (pd), "LognormalDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); ***** 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/logninv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tlscdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/poissinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/laplacernd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/chi2cdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/laplaceinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/mvtpdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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. - - 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/binopdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/mvnrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/chi2pdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gpinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/gpinv.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") - 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/betarnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncfinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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") + pd = makedist ("Lognormal", "mu", 5); + assert (pd.mu, 5); + assert (pd.sigma, 1); ***** 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); + pd = makedist ("Lognormal", "sigma", 5); + assert (pd.mu, 0); + assert (pd.sigma, 5); ***** 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); + pd = makedist ("Lognormal", "mu", -3, "sigma", 5); + assert (pd.mu, -3); + assert (pd.sigma, 5); ***** 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); + pd = makedist ("Loguniform"); + assert (class (pd), "LoguniformDistribution"); + assert (pd.Lower, 1); + assert (pd.Upper, 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); + pd = makedist ("Loguniform", "Lower", 2); + assert (pd.Lower, 2); + assert (pd.Upper, 4); ***** 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); + pd = makedist ("Loguniform", "Lower", 1, "Upper", 3); + assert (pd.Lower, 1); + assert (pd.Upper, 3); ***** 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); + pd = makedist ("Multinomial"); + assert (class (pd), "MultinomialDistribution"); + assert (pd.Probabilities, [0.5, 0.5]); ***** 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/unifinv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/expcdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/expcdf.m -***** demo - ## Plot various CDFs from the exponential distribution - x = 0:0.01:5; - p1 = expcdf (x, 2/3); - p2 = expcdf (x, 1.0); - p3 = expcdf (x, 2.0); - plot (x, p1, "-b", x, p2, "-g", x, p3, "-r") - grid on - legend ({"μ = 2/3", "μ = 1", "μ = 2"}, "location", "southeast") - title ("Exponential CDF") - xlabel ("values in x") - ylabel ("probability") -***** shared x, p - x = [-1 0 0.5 1 Inf]; - p = [0, 1 - exp(-x(2:end)/2)]; -***** assert (expcdf (x, 2 * ones (1, 5)), p, 1e-16) -***** assert (expcdf (x, 2), p, 1e-16) -***** assert (expcdf (x, 2 * [1, 0, NaN, 1, 1]), [0, NaN, NaN, p(4:5)], 1e-16) -***** assert (expcdf ([x, NaN], 2), [p, NaN], 1e-16) -***** assert (expcdf (single ([x, NaN]), 2), single ([p, NaN])) -***** assert (expcdf ([x, NaN], single (2)), single ([p, NaN])) + 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 - [p, plo, pup] = expcdf (1, 2, 3); - assert (p, 0.39346934028737, 1e-14); - assert (plo, 0.08751307220484, 1e-14); - assert (pup, 0.93476821257933, 1e-14); + pd = makedist ("Nakagami"); + assert (class (pd), "NakagamiDistribution"); + assert (pd.mu, 1); + assert (pd.omega, 1); ***** test - [p, plo, pup] = expcdf (1, 2, 2, 0.1); - assert (p, 0.39346934028737, 1e-14); - assert (plo, 0.14466318041675, 1e-14); - assert (pup, 0.79808291849140, 1e-14); + pd = makedist ("Nakagami", "mu", 5); + assert (class (pd), "NakagamiDistribution"); + assert (pd.mu, 5); + assert (pd.omega, 1); ***** test - [p, plo, pup] = expcdf (1, 2, 2, 0.1, "upper"); - assert (p, 0.60653065971263, 1e-14); - assert (plo, 0.20191708150860, 1e-14); - assert (pup, 0.85533681958325, 1e-14); -***** error expcdf () -***** error expcdf (1, 2 ,3 ,4 ,5, 6) -***** error expcdf (1, 2, 3, 4, "uper") -***** error ... - expcdf (ones (3), ones (2)) -***** error ... - expcdf (2, 3, [1, 2]) -***** error ... - [p, plo, pup] = expcdf (1, 2) -***** error [p, plo, pup] = ... - expcdf (1, 2, 3, 0) -***** error [p, plo, pup] = ... - expcdf (1, 2, 3, 1.22) -***** error [p, plo, pup] = ... - expcdf (1, 2, 3, "alpha", "upper") -***** error expcdf (i, 2) -***** error expcdf (2, i) -***** error ... - [p, plo, pup] = expcdf (1, 2, -1, 0.04) -21 tests, 21 passed, 0 known failure, 0 skipped -[inst/dist_fun/poisspdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncx2inv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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") + pd = makedist ("Nakagami", "omega", 0.3); + assert (class (pd), "NakagamiDistribution"); + assert (pd.mu, 1); + assert (pd.omega, 0.3); ***** 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); + pd = makedist ("NegativeBinomial"); + assert (class (pd), "NegativeBinomialDistribution"); + assert (pd.R, 1); + assert (pd.P, 0.5); ***** 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); + pd = makedist ("NegativeBinomial", "R", 5); + assert (class (pd), "NegativeBinomialDistribution"); + assert (pd.R, 5); + assert (pd.P, 0.5); ***** 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); + pd = makedist ("NegativeBinomial", "p", 0.3); + assert (class (pd), "NegativeBinomialDistribution"); + assert (pd.R, 1); + assert (pd.P, 0.3); ***** 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); + pd = makedist ("Normal"); + assert (class (pd), "NormalDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); ***** 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); + pd = makedist ("Normal", "mu", 5); + assert (class (pd), "NormalDistribution"); + assert (pd.mu, 5); + assert (pd.sigma, 1); ***** 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); + pd = makedist ("Normal", "sigma", 5); + assert (class (pd), "NormalDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 5); ***** 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/gaminv.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncfrnd.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/cl_multinom.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nansum.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/combnk.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/combnk.m -***** demo - c = combnk (1:5, 2); - disp ("All pairs of integers between 1 and 5:"); - disp (c); + pd = makedist ("Normal", "mu", -3, "sigma", 5); + assert (class (pd), "NormalDistribution"); + assert (pd.mu, -3); + assert (pd.sigma, 5); ***** test - c = combnk (1:3, 2); - assert (c, [1, 2; 1, 3; 2, 3]); + pd = makedist ("PiecewiseLinear"); + assert (class (pd), "PiecewiseLinearDistribution"); + assert (pd.x, [0; 1]); + assert (pd.Fx, [0; 1]); ***** test - c = combnk (1:3, 6); - assert (isempty (c)); + 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 - c = combnk ({1, 2, 3}, 2); - assert (c, {1, 2; 1, 3; 2, 3}); + pd = makedist ("Poisson"); + assert (class (pd), "PoissonDistribution"); + assert (pd.lambda, 1); ***** 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/gmdistribution.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/gmdistribution.m + pd = makedist ("Poisson", "lambda", 5); + assert (pd.lambda, 5); ***** 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/runstest.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/runstest.m + pd = makedist ("Rayleigh"); + assert (class (pd), "RayleighDistribution"); + assert (pd.sigma, 1); ***** 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]; + pd = makedist ("Rayleigh", "sigma", 5); + assert (pd.sigma, 5); ***** 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); + pd = makedist ("Rician"); + assert (class (pd), "RicianDistribution"); + assert (pd.s, 1); + assert (pd.sigma, 1); ***** test - [h, p, stats] = runstest (x, [], "method", "approximate"); - assert (h, 0); - assert (p, 0.6481, 1e-4); - assert (stats.z, 0.456435464587638, 1e-14); + pd = makedist ("Rician", "s", 3); + assert (pd.s, 3); + assert (pd.sigma, 1); ***** 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/kstest.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]) + pd = makedist ("Rician", "sigma", 3); + assert (pd.s, 1); + assert (pd.sigma, 3); ***** test - load examgrades - [h, p] = kstest (grades(:,1)); - assert (h, true); - assert (p, 7.58603305206105e-107, 1e-14); + 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 - 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/harmmean.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/harmmean.m + pd = makedist ("tlocationscale"); + assert (class (pd), "tLocationScaleDistribution"); + assert (pd.mu, 0); + assert (pd.sigma, 1); + assert (pd.nu, 5); ***** 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); + pd = makedist ("tlocationscale", "mu", 5); + assert (pd.mu, 5); + assert (pd.sigma, 1); + assert (pd.nu, 5); ***** 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]); + pd = makedist ("tlocationscale", "sigma", 2); + assert (pd.mu, 0); + assert (pd.sigma, 2); + assert (pd.nu, 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/grpstats.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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"); + pd = makedist ("tlocationscale", "mu", 5, "sigma", 2); + assert (pd.mu, 5); + assert (pd.sigma, 2); + assert (pd.nu, 5); ***** test - load carsmall - means = grpstats (Acceleration, Origin); - assert (means, [14.4377; 18.0500; 15.8867; 16.3778; 16.6000; 15.5000], 0.001); + pd = makedist ("tlocationscale", "nu", 1, "sigma", 2); + assert (pd.mu, 0); + assert (pd.sigma, 2); + assert (pd.nu, 1); ***** 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]); + pd = makedist ("tlocationscale", "mu", -2, "sigma", 3, "nu", 1); + assert (pd.mu, -2); + assert (pd.sigma, 3); + assert (pd.nu, 1); ***** test - load carsmall - [grpMin,grpMax,grp] = grpstats (Acceleration, Origin, {"min","max","gname"}); - assert (grp', {"USA", "France", "Japan", "Germany", "Sweden", "Italy"}); + pd = makedist ("Triangular"); + assert (class (pd), "TriangularDistribution"); + assert (pd.A, 0); + assert (pd.B, 0.5); + assert (pd.C, 1); ***** 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/evalclusters.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/evalclusters.m -***** demo - load fisheriris; - eva = evalclusters (meas, "kmeans", "calinskiharabasz", "KList", [1:6]) - plot (eva) -***** 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 ("Triangular", "A", -2); + assert (pd.A, -2); + assert (pd.B, 0.5); + assert (pd.C, 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/fitlm.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitlm.m -***** demo - y = [ 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 ]'; - X = [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]'; - - [TAB,STATS] = fitlm (X,y,"linear","CategoricalVars",1,"display","on"); -***** demo - 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'}; - - [TAB, STATS] = fitlm ({brands(:),popper(:)},popcorn(:),"interactions",... - "CategoricalVars",[1,2],"display","on"); + pd = makedist ("Triangular", "A", 0.5, "B", 0.9); + assert (pd.A, 0.5); + assert (pd.B, 0.9); + assert (pd.C, 1); ***** test - y = [ 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 ]'; - X = [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]'; - [TAB,STATS] = fitlm (X,y,"continuous",[],"display","off"); - [TAB,STATS] = fitlm (X,y,"CategoricalVars",1,"display","off"); - [TAB,STATS] = fitlm (X,y,"constant","categorical",1,"display","off"); - [TAB,STATS] = fitlm (X,y,"linear","categorical",1,"display","off"); - [TAB,STATS] = fitlm (X,y,[0,0;1,0],"categorical",1,"display","off"); - assert (TAB{2,2}, 10, 1e-04); - assert (TAB{3,2}, 7.99999999999999, 1e-09); - assert (TAB{4,2}, 8.99999999999999, 1e-09); - assert (TAB{5,2}, 11.0001428571429, 1e-09); - assert (TAB{6,2}, 19.0001111111111, 1e-09); - assert (TAB{2,3}, 1.01775379540949, 1e-09); - assert (TAB{3,3}, 1.64107868458008, 1e-09); - assert (TAB{4,3}, 1.43932122062479, 1e-09); - assert (TAB{5,3}, 1.48983900477565, 1e-09); - assert (TAB{6,3}, 1.3987687997822, 1e-09); - assert (TAB{2,6}, 9.82555903510687, 1e-09); - assert (TAB{3,6}, 4.87484242844031, 1e-09); - assert (TAB{4,6}, 6.25294748040552, 1e-09); - assert (TAB{5,6}, 7.38344399756088, 1e-09); - assert (TAB{6,6}, 13.5834536158296, 1e-09); - assert (TAB{3,7}, 2.85812420217862e-05, 1e-12); - assert (TAB{4,7}, 5.22936741204002e-07, 1e-06); - assert (TAB{5,7}, 2.12794763209106e-08, 1e-07); - assert (TAB{6,7}, 7.82091664406755e-15, 1e-08); + pd = makedist ("Triangular", "A", 1, "B", 2, "C", 5); + assert (pd.A, 1); + assert (pd.B, 2); + assert (pd.C, 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 = bsxfun (@times, ones(6,1), [1,2,3]); - popper = bsxfun (@times, [1;1;1;2;2;2], ones(1,3)); - - [TAB, STATS] = fitlm ({brands(:),popper(:)},popcorn(:),"interactions",... - "categoricalvars",[1,2],"display","off"); - assert (TAB{2,2}, 5.66666666666667, 1e-09); - assert (TAB{3,2}, -1.33333333333333, 1e-09); - assert (TAB{4,2}, -2.16666666666667, 1e-09); - assert (TAB{5,2}, 1.16666666666667, 1e-09); - assert (TAB{6,2}, -0.333333333333334, 1e-09); - assert (TAB{7,2}, -0.166666666666667, 1e-09); - assert (TAB{2,3}, 0.215165741455965, 1e-09); - assert (TAB{3,3}, 0.304290309725089, 1e-09); - assert (TAB{4,3}, 0.304290309725089, 1e-09); - assert (TAB{5,3}, 0.304290309725089, 1e-09); - assert (TAB{6,3}, 0.43033148291193, 1e-09); - assert (TAB{7,3}, 0.43033148291193, 1e-09); - assert (TAB{2,6}, 26.3362867542108, 1e-09); - assert (TAB{3,6}, -4.38178046004138, 1e-09); - assert (TAB{4,6}, -7.12039324756724, 1e-09); - assert (TAB{5,6}, 3.83405790253621, 1e-09); - assert (TAB{6,6}, -0.774596669241495, 1e-09); - assert (TAB{7,6}, -0.387298334620748, 1e-09); - assert (TAB{2,7}, 5.49841502258254e-12, 1e-09); - 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"); + pd = makedist ("Uniform"); + assert (class (pd), "UniformDistribution"); + assert (pd.Lower, 0); + assert (pd.Upper, 1); ***** 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/fitcgam.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitcgam.m -***** demo - ## Train a GAM classifier for binary classification - ## using specific data and plot the decision boundaries. - - ## Define specific data - X = [1, 2; 2, 3; 3, 3; 4, 5; 5, 5; ... - 6, 7; 7, 8; 8, 8; 9, 9; 10, 10]; - Y = [0; 0; 0; 0; 0; ... - 1; 1; 1; 1; 1]; - - ## Train the GAM model - obj = fitcgam (X, Y, "Interactions", "all"); - - ## Create a grid of values for prediction - x1 = [min(X(:,1)):0.1:max(X(:,1))]; - x2 = [min(X(:,2)):0.1:max(X(:,2))]; - [x1G, x2G] = meshgrid (x1, x2); - XGrid = [x1G(:), x2G(:)]; - pred = predict (obj, XGrid); - - ## Plot decision boundaries and data points - predNumeric = str2double (pred); - gidx = predNumeric > 0.5; - - 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("Feature 1"); - ylabel("Feature 2"); - title("Generalized Additive Model (GAM) Decision Boundary"); - legend({"Class 1 Region", "Class 0 Region", ... - "Class 1 Samples", "Class 0 Samples"}, ... - "location", "northwest") - axis tight - hold off + pd = makedist ("Uniform", "Lower", -2); + assert (pd.Lower, -2); + assert (pd.Upper, 1); ***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = [0; 0; 1; 1]; - PredictorNames = {'Feature1', 'Feature2', 'Feature3'}; - a = fitcgam (x, y, "PredictorNames", PredictorNames); - assert (class (a), "ClassificationGAM"); - assert ({a.X, a.Y, a.NumObservations}, {x, y, 4}) - assert ({a.NumPredictors, a.ResponseName}, {3, "Y"}) - assert (a.ClassNames, {'0'; '1'}) - assert (a.PredictorNames, PredictorNames) - assert (a.BaseModel.Intercept, 0) + pd = makedist ("Uniform", "Lower", 1, "Upper", 3); + assert (pd.Lower, 1); + assert (pd.Upper, 3); ***** test - x = [1, 2; 3, 4; 5, 6; 7, 8; 9, 10]; - y = [1; 0; 1; 0; 1]; - a = fitcgam (x, y, "interactions", "all"); - assert (class (a), "ClassificationGAM"); - assert ({a.X, a.Y, a.NumObservations}, {x, y, 5}) - assert ({a.NumPredictors, a.ResponseName}, {2, "Y"}) - assert (a.ClassNames, {'1'; '0'}) - assert (a.PredictorNames, {'x1', 'x2'}) - assert (a.ModelwInt.Intercept, 0.4055, 1e-1) + pd = makedist ("Weibull"); + assert (class (pd), "WeibullDistribution"); + assert (pd.lambda, 1); + assert (pd.k, 1); ***** test - load fisheriris - inds = strcmp (species,'versicolor') | strcmp (species,'virginica'); - X = meas(inds, :); - Y = species(inds, :)'; - Y = strcmp (Y, 'virginica')'; - a = fitcgam (X, Y, 'Formula', 'Y ~ x1 + x2 + x3 + x4 + x1:x2 + x2:x3'); - assert (class (a), "ClassificationGAM"); - assert ({a.X, a.Y, a.NumObservations}, {X, Y, 100}) - assert ({a.NumPredictors, a.ResponseName}, {4, "Y"}) - assert (a.ClassNames, {'0'; '1'}) - assert (a.Formula, 'Y ~ x1 + x2 + x3 + x4 + x1:x2 + x2:x3') - assert (a.PredictorNames, {'x1', 'x2', 'x3', 'x4'}) - assert (a.ModelwInt.Intercept, 0) -***** error fitcgam () -***** error fitcgam (ones (4,1)) -***** error - fitcgam (ones (4,2), ones (4, 1), "K") -***** error - fitcgam (ones (4,2), ones (3, 1)) -***** error - fitcgam (ones (4,2), ones (3, 1), "K", 2) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/Classification/ClassificationNeuralNetwork.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/ClassificationNeuralNetwork.m -***** error ... - ClassificationNeuralNetwork () -***** error ... - ClassificationNeuralNetwork (ones(10,2)) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones (5,1)) -***** error ... - ClassificationNeuralNetwork (ones (5,3), ones (5,1), "standardize", "a") -***** error ... - ClassificationNeuralNetwork (ones (5,2), ones (5,1), "PredictorNames", ["A"]) -***** error ... - ClassificationNeuralNetwork (ones (5,2), ones (5,1), "PredictorNames", "A") -***** error ... - ClassificationNeuralNetwork (ones (5,2), ones (5,1), "PredictorNames", {"A", "B", "C"}) -***** error ... - ClassificationNeuralNetwork (ones (5,2), ones (5,1), "ResponseName", {"Y"}) -***** error ... - ClassificationNeuralNetwork (ones (5,2), ones (5,1), "ResponseName", 1) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones (10,1), "ClassNames", @(x)x) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones (10,1), "ClassNames", ['a']) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones (10,1), "ClassNames", [1, 2]) -***** error ... - ClassificationNeuralNetwork (ones(5,2), {'a';'b';'a';'a';'b'}, "ClassNames", {'a','c'}) -***** error ... - ClassificationNeuralNetwork (ones(10,2), logical (ones (10,1)), "ClassNames", [true, false]) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LayerSizes", -1) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LayerSizes", 0.5) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LayerSizes", [1,-2]) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LayerSizes", [10,20,30.5]) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LearningRate", -0.1) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LearningRate", [0.1, 0.01]) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LearningRate", "a") -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "Activations", 123) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "Activations", "unsupported_type") -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LayerSizes", [10, 5], ... - "Activations", {"sigmoid", "unsupported_type"}) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "Activations", {"sigmoid", "relu", "softmax"}) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "OutputLayerActivation", 123) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "OutputLayerActivation", "unsupported_type") -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "IterationLimit", -1) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "IterationLimit", 0.5) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "IterationLimit", [1,2]) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "ScoreTransform", [1,2]) -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "ScoreTransform", "unsupported_type") -***** error ... - ClassificationNeuralNetwork (ones(10,2), ones(10,1), "some", "some") -***** error ... - ClassificationNeuralNetwork ([1;2;3;'a';4], ones (5,1)) -***** error ... - ClassificationNeuralNetwork ([1;2;3;Inf;4], ones (5,1)) -***** shared x, y, objST, Mdl - load fisheriris - x = meas; - y = grp2idx (species); - Mdl = fitcnet (x, y, "IterationLimit", 100); -***** error ... - predict (Mdl) -***** error ... - predict (Mdl, []) -***** error ... - predict (Mdl, 1) + pd = makedist ("Weibull", "lambda", 3); + assert (pd.lambda, 3); + assert (pd.k, 1); ***** test - objST = fitcnet (x, y, "IterationLimit", 100); - objST.ScoreTransform = "a"; -***** error ... - [labels, scores] = predict (objST, x); -***** error ... - [labels, scores] = resubPredict (objST); + 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/fitdist.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_wrap/fitdist.m ***** test - CVMdl = crossval (Mdl, "KFold", 5); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (CVMdl.KFold == 5) - assert (class (CVMdl.Trained{1}), "CompactClassificationNeuralNetwork") - assert (CVMdl.CrossValidatedModel, "ClassificationNeuralNetwork") + 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 - CVMdl = crossval (Mdl, "HoldOut", 0.2); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (class (CVMdl.Trained{1}), "CompactClassificationNeuralNetwork") - assert (CVMdl.CrossValidatedModel, "ClassificationNeuralNetwork") -***** error ... - crossval (Mdl, "KFold") -***** error ... - crossval (Mdl, "KFold", 5, "leaveout", 'on') -***** error ... - crossval (Mdl, "KFold", 'a') -***** error ... - crossval (Mdl, "KFold", 1) -***** error ... - crossval (Mdl, "KFold", -1) -***** error ... - crossval (Mdl, "KFold", 11.5) -***** error ... - crossval (Mdl, "KFold", [1,2]) -***** error ... - crossval (Mdl, "Holdout", 'a') -***** error ... - crossval (Mdl, "Holdout", 11.5) -***** error ... - crossval (Mdl, "Holdout", -1) -***** error ... - crossval (Mdl, "Holdout", 0) -***** error ... - crossval (Mdl, "Holdout", 1) -***** error ... - crossval (Mdl, "Leaveout", 1) -***** error ... - crossval (Mdl, "CVPartition", 1) -***** error ... - crossval (Mdl, "CVPartition", 'a') -***** error ... - crossval (Mdl, "some", "some") -59 tests, 59 passed, 0 known failure, 0 skipped -[inst/Classification/ClassificationSVM.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/ClassificationSVM.m -***** demo - ## Create a Support Vector Machine classifier and determine margin for test - ## data. - load fisheriris - rng(1); ## For reproducibility - - ## Select indices of the non-setosa species - inds = !strcmp(species, 'setosa'); - - ## Select features and labels for non-setosa species - X = meas(inds, 3:4); - Y = grp2idx(species(inds)); - - ## Convert labels to +1 and -1 - unique_classes = unique(Y); - Y(Y == unique_classes(1)) = -1; - Y(Y == unique_classes(2)) = 1; - - ## Partition data for training and testing - cv = cvpartition(Y, 'HoldOut', 0.15); - X_train = X(training(cv), :); - Y_train = Y(training(cv)); - X_test = X(test(cv), :); - Y_test = Y(test(cv)); - - ## Train the SVM model - CVSVMModel = fitcsvm(X_train, Y_train); - - ## Calculate margins - m = margin(CVSVMModel, X_test, Y_test); - disp(m); -***** demo - ## Create a Support Vector Machine classifier and determine loss for test - ## data. - load fisheriris - rng(1); ## For reproducibility - - ## Select indices of the non-setosa species - inds = !strcmp(species, 'setosa'); - - ## Select features and labels for non-setosa species - X = meas(inds, 3:4); - Y = grp2idx(species(inds)); - - ## Convert labels to +1 and -1 - unique_classes = unique(Y); - Y(Y == unique_classes(1)) = -1; - Y(Y == unique_classes(2)) = 1; - - ## Randomly partition the data into training and testing sets - cv = cvpartition(Y, 'HoldOut', 0.3); # 30% data for testing, 60% for training - - X_train = X(training(cv), :); - Y_train = Y(training(cv)); - - X_test = X(test(cv), :); - Y_test = Y(test(cv)); - - ## Train the SVM model - SVMModel = fitcsvm(X_train, Y_train); - - ## Calculate loss - - L = loss(SVMModel,X_test,Y_test,'LossFun','binodeviance') - L = loss(SVMModel,X_test,Y_test,'LossFun','classiferror') - L = loss(SVMModel,X_test,Y_test,'LossFun','exponential') - L = loss(SVMModel,X_test,Y_test,'LossFun','hinge') - L = loss(SVMModel,X_test,Y_test,'LossFun','logit') - L = loss(SVMModel,X_test,Y_test,'LossFun','quadratic') + 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 = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1; 4, 5, 6; 7, 8, 9; ... - 3, 2, 1; 4, 5, 6; 7, 8, 9; 3, 2, 1; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = [1; 2; 3; 4; 2; 3; 4; 2; 3; 4; 2; 3; 4]; - a = ClassificationSVM (x, y, "ClassNames", [1, 2]); - assert (class (a), "ClassificationSVM"); - assert (a.RowsUsed, [1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0]'); - assert ({a.X, a.Y}, {x, y}) - assert (a.NumObservations, 5) - assert ({a.ResponseName, a.PredictorNames}, {"Y", {"x1", "x2", "x3"}}) - assert ({a.ClassNames, a.ModelParameters.SVMtype}, {[1; 2], "c_svc"}) + 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 = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; - y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; - a = ClassificationSVM (x, y); - assert (class (a), "ClassificationSVM"); - assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "linear"}) - assert (a.ModelParameters.BoxConstraint, 1) - assert (a.ClassNames, [1; -1]) - assert (a.ModelParameters.KernelOffset, 0) + 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 - x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; - y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; - a = ClassificationSVM (x, y, "KernelFunction", "rbf", "BoxConstraint", 2, ... - "KernelOffset", 2); - assert (class (a), "ClassificationSVM"); - assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "rbf"}) - assert (a.ModelParameters.BoxConstraint, 2) - assert (a.ModelParameters.KernelOffset, 2) + 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 - x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; - y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; - a = ClassificationSVM (x, y, "KernelFunction", "polynomial", ... - "PolynomialOrder", 3); - assert (class (a), "ClassificationSVM"); - assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "polynomial"}) - assert (a.ModelParameters.PolynomialOrder, 3) -***** error ClassificationSVM () -***** error ... - ClassificationSVM (ones(10,2)) -***** error ... - ClassificationSVM (ones(10,2), ones (5,1)) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "Standardize", 'a') -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "PredictorNames", ['x1';'x2']) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "PredictorNames", {'x1','x2','x3'}) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "ResponseName", {'Y'}) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "ResponseName", 21) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "ClassNames", @(x)x) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "ClassNames", ['a']) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "ClassNames", [1, 2]) -***** error ... - ClassificationSVM (ones(5,2), {'a';'b';'a';'a';'b'}, "ClassNames", {'a','c'}) -***** error ... - ClassificationSVM (ones(10,2), logical (ones (10,1)), "ClassNames", [true, false]) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "Prior", {"asd"}) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "Prior", ones (2)) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "Cost", [1:4]) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "Cost", {0,1;1,0}) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "Cost", 'a') -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "svmtype", 123) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "svmtype", 'some_type') -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "OutlierFraction", -1) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "KernelFunction", 123) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "KernelFunction", "fcn") -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "PolynomialOrder", -1) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "PolynomialOrder", 0.5) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "PolynomialOrder", [1,2]) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "KernelScale", -1) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "KernelScale", 0) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "KernelScale", [1, 2]) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "KernelScale", "invalid") -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "KernelOffset", -1) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "KernelOffset", [1,2]) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "BoxConstraint", -1) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "BoxConstraint", 0) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "BoxConstraint", [1, 2]) -***** error ... - ClassificationSVM (ones(10,2), ones (10,1), "BoxConstraint", "invalid") -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "nu", -0.5) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "nu", 0) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "nu", 1.5) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "CacheSize", -1) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "CacheSize", [1,2]) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "Tolerance", -0.1) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "Tolerance", [0.1,0.2]) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "shrinking", 2) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "shrinking", -1) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "shrinking", [1 0]) -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "invalid_name", 'c_svc') -***** error ... - ClassificationSVM (ones(10,2), ones(10,1), "SVMtype", 'c_svc') -***** error ... - ClassificationSVM (ones(10,2), [1;1;1;1;2;2;2;2;3;3]) -***** error ... - ClassificationSVM ([ones(9,2);2,Inf], ones(10,1)) -***** error ... - ClassificationSVM (ones (5,2), ones (5,1), "Prior", [0,1]) -***** error ... - ClassificationSVM (ones (5,2), [1;1;2;2;3], "ClassNames", [1,2], "Prior", [0,0.4,0.6]) -***** error ... - ClassificationSVM (ones (5,2), [1;1;2;2;3], "ClassNames", [1,2], "Cost", ones (3)) -***** shared x, y, x_train, x_test, y_train, y_test, objST - load fisheriris - inds = ! strcmp (species, 'setosa'); - x = meas(inds, 3:4); - y = grp2idx (species(inds)); + 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 - xc = [min(x); mean(x); max(x)]; - obj = fitcsvm (x, y, 'KernelFunction', 'rbf', 'Tolerance', 1e-7); - assert (isempty (obj.Alpha), true) - assert (sum (obj.IsSupportVector), numel (obj.Beta)) - [label, score] = predict (obj, xc); - assert (label, [1; 2; 2]); - assert (score(:,1), [0.99285; -0.080296; -0.93694], 1e-5); - assert (score(:,1), -score(:,2), eps) - obj = fitPosterior (obj); - [label, probs] = predict (obj, xc); - assert (probs(:,2), [0.97555; 0.428164; 0.030385], 1e-5); - assert (probs(:,1) + probs(:,2), [1; 1; 1], 0.05) + 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 - obj = fitcsvm (x, y); - assert (isempty (obj.Beta), true) - assert (sum (obj.IsSupportVector), numel (obj.Alpha)) - assert (numel (obj.Alpha), 24) - assert (obj.Bias, -14.415, 1e-3) - xc = [min(x); mean(x); max(x)]; - label = predict (obj, xc); - assert (label, [1; 2; 2]); -***** error ... - predict (ClassificationSVM (ones (40,2), ones (40,1))) -***** error ... - predict (ClassificationSVM (ones (40,2), ones (40,1)), []) -***** error ... - predict (ClassificationSVM (ones (40,2), ones (40,1)), 1) + 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 - objST = fitcsvm (x, y); - objST.ScoreTransform = "a"; -***** error ... - [labels, scores] = predict (objST, x); -***** error ... - [labels, scores] = resubPredict (objST); + x = burrrnd (1, 2, 1, 100, 1); + pd = fitdist (x, "Burr"); + [phat, pci] = burrfit (x); + assert ([pd.alpha, pd.c, pd.k], phat); + assert (paramci (pd), pci); ***** test - rand ("seed", 1); - CVSVMModel = fitcsvm (x, y, 'KernelFunction', 'rbf', 'HoldOut', 0.15, ... - 'Tolerance', 1e-7); - obj = CVSVMModel.Trained{1}; - testInds = test (CVSVMModel.Partition); - expected_margin = [2.0000; 0.8579; 1.6690; 3.4141; 3.4552; ... - 2.6605; 3.5251; -4.0000; -6.3411; -6.4511; ... - -3.0532; -7.5054; -1.6700; -5.6227; -7.3640]; - computed_margin = margin (obj, x(testInds,:), y(testInds,:)); - assert (computed_margin, expected_margin, 1e-4); -***** error ... - margin (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1))) -***** error ... - margin (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2)) -***** error ... - margin (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), [], zeros (2)) -***** error ... - margin (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), 1, zeros (2)) -***** error ... - margin (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), []) -***** error ... - margin (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), 1) + x1 = burrrnd (1, 2, 1, 100, 1); + x2 = burrrnd (1, 0.5, 2, 100, 1); + pd = fitdist ([x1; x2], "burr", "By", [ones(100,1); 2*ones(100,1)]); + [phat, pci] = burrfit (x1); + assert ([pd(1).alpha, pd(1).c, pd(1).k], phat); + assert (paramci (pd(1)), pci); + [phat, pci] = burrfit (x2); + assert ([pd(2).alpha, pd(2).c, pd(2).k], phat); + assert (paramci (pd(2)), pci); ***** test - rand ("seed", 1); - CVSVMModel = fitcsvm (x, y, 'KernelFunction', 'rbf', 'HoldOut', 0.15); - obj = CVSVMModel.Trained{1}; - testInds = test (CVSVMModel.Partition); - L1 = loss (obj, x(testInds,:), y(testInds,:), 'LossFun', 'binodeviance'); - L2 = loss (obj, x(testInds,:), y(testInds,:), 'LossFun', 'classiferror'); - L3 = loss (obj, x(testInds,:), y(testInds,:), 'LossFun', 'exponential'); - L4 = loss (obj, x(testInds,:), y(testInds,:), 'LossFun', 'hinge'); - L5 = loss (obj, x(testInds,:), y(testInds,:), 'LossFun', 'logit'); - L6 = loss (obj, x(testInds,:), y(testInds,:), 'LossFun', 'quadratic'); - assert (L1, 2.8711, 1e-4); - assert (L2, 0.5333, 1e-4); - assert (L3, 10.9685, 1e-4); - assert (L4, 1.9827, 1e-4); - assert (L5, 1.5849, 1e-4); - assert (L6, 7.6739, 1e-4); -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1))) -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2)) -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... - ones(2,1), "LossFun") -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), [], zeros (2)) -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), 1, zeros (2)) -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), []) -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), 1) -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... - ones (2,1), "LossFun", 1) -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... - ones (2,1), "LossFun", "some") -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... - ones (2,1), "Weights", ['a','b']) -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... - ones (2,1), "Weights", 'a') -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... - ones (2,1), "Weights", [1,2,3]) -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... - ones (2,1), "Weights", 3) -***** error ... - loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... - ones (2,1), "some", "some") -***** error ... - resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "LossFun") -***** error ... - resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "LossFun", 1) -***** error ... - resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "LossFun", "some") -***** error ... - resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "Weights", ['a','b']) -***** error ... - resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "Weights", 'a') -***** error ... - resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "Weights", [1,2,3]) -***** error ... - resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "Weights", 3) -***** error ... - resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "some", "some") + x = exprnd (1, 100, 1); + pd = fitdist (x, "exponential"); + [muhat, muci] = expfit (x); + assert ([pd.mu], muhat); + assert (paramci (pd), muci); ***** test - SVMModel = fitcsvm (x, y); - CVMdl = crossval (SVMModel, "KFold", 5); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (CVMdl.KFold == 5) - assert (class (CVMdl.Trained{1}), "CompactClassificationSVM") - assert (CVMdl.CrossValidatedModel, "ClassificationSVM") + 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 - obj = fitcsvm (x, y); - CVMdl = crossval (obj, "HoldOut", 0.2); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (class (CVMdl.Trained{1}), "CompactClassificationSVM") - assert (CVMdl.CrossValidatedModel, "ClassificationSVM") + 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 - obj = fitcsvm (x, y); - CVMdl = crossval (obj, "LeaveOut", 'on'); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (class (CVMdl.Trained{1}), "CompactClassificationSVM") - assert (CVMdl.CrossValidatedModel, "ClassificationSVM") -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "KFold") -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), ... - "KFold", 5, "leaveout", 'on') -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "KFold", 'a') -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "KFold", 1) -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "KFold", -1) -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "KFold", 11.5) -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "KFold", [1,2]) -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "Holdout", 'a') -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "Holdout", 11.5) -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "Holdout", -1) -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "Holdout", 0) -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "Holdout", 1) -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "Leaveout", 1) -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "CVPartition", 1) -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "CVPartition", 'a') -***** error ... - crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "some", "some") -114 tests, 114 passed, 0 known failure, 0 skipped -[inst/Classification/ClassificationPartitionedModel.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/ClassificationPartitionedModel.m -***** demo - - load fisheriris - x = meas; - y = species; - - ## Create a KNN classifier model - obj = fitcknn (x, y, "NumNeighbors", 5, "Standardize", 1); - - ## Create a partition for 5-fold cross-validation - partition = cvpartition (y, "KFold", 5); - - ## Create the ClassificationPartitionedModel object - cvModel = crossval (obj, 'cvPartition', partition) -***** demo - - load fisheriris - x = meas; - y = species; - - ## Create a KNN classifier model - obj = fitcknn (x, y, "NumNeighbors", 5, "Standardize", 1); - - ## Create the ClassificationPartitionedModel object - cvModel = crossval (obj); - - ## Predict the class labels for the observations not used for training - [label, score, cost] = kfoldPredict (cvModel); - fprintf ("Cross-validated accuracy = %1.2f%% (%d/%d)\n", ... - sum (strcmp (label, y)) / numel (y) *100, ... - sum (strcmp (label, y)), numel (y)) + 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 - load fisheriris - a = fitcdiscr (meas, species, "gamma", 0.3); - cvModel = crossval (a, "KFold", 5); - assert (class (cvModel), "ClassificationPartitionedModel"); - assert (cvModel.NumObservations, 150); - assert (numel (cvModel.Trained), 5); - assert (class (cvModel.Trained{1}), "CompactClassificationDiscriminant"); - assert (cvModel.CrossValidatedModel, "ClassificationDiscriminant"); - assert (cvModel.KFold, 5); + 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 - load fisheriris - a = fitcdiscr (meas, species, "gamma", 0.5, "fillcoeffs", "off"); - cvModel = crossval (a, "HoldOut", 0.3); - assert (class (cvModel), "ClassificationPartitionedModel"); - assert ({cvModel.X, cvModel.Y}, {meas, species}); - assert (cvModel.NumObservations, 150); - assert (numel (cvModel.Trained), 1); - assert (class (cvModel.Trained{1}), "CompactClassificationDiscriminant"); - assert (cvModel.CrossValidatedModel, "ClassificationDiscriminant"); + 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 - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - a = fitcgam (x, y, "Interactions", "all"); - cvModel = crossval (a, "KFold", 5); - assert (class (cvModel), "ClassificationPartitionedModel"); - assert (cvModel.NumObservations, 4); - assert (numel (cvModel.Trained), 5); - assert (class (cvModel.Trained{1}), "CompactClassificationGAM"); - assert (cvModel.CrossValidatedModel, "ClassificationGAM"); - assert (cvModel.KFold, 5); + 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 - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - a = fitcgam (x, y); - cvModel = crossval (a, "LeaveOut", "on"); - assert (class (cvModel), "ClassificationPartitionedModel"); - assert ({cvModel.X, cvModel.Y}, {x, y}); - assert (cvModel.NumObservations, 4); - assert (numel (cvModel.Trained), 4); - assert (class (cvModel.Trained{1}), "CompactClassificationGAM"); - assert (cvModel.CrossValidatedModel, "ClassificationGAM"); + 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 = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - a = fitcknn (x, y); - partition = cvpartition (y, "KFold", 5); - cvModel = ClassificationPartitionedModel (a, partition); - assert (class (cvModel), "ClassificationPartitionedModel"); - assert (class (cvModel.Trained{1}), "ClassificationKNN"); - assert (cvModel.NumObservations, 4); - assert (cvModel.ModelParameters.NumNeighbors, 1); - assert (cvModel.ModelParameters.NSMethod, "kdtree"); - assert (cvModel.ModelParameters.Distance, "euclidean"); - assert (! cvModel.ModelParameters.Standardize); + 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 = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - a = fitcknn (x, y, "NSMethod", "exhaustive"); - partition = cvpartition (y, "HoldOut", 0.2); - cvModel = ClassificationPartitionedModel (a, partition); - assert (class (cvModel), "ClassificationPartitionedModel"); - assert (class (cvModel.Trained{1}), "ClassificationKNN"); - assert ({cvModel.X, cvModel.Y}, {x, y}); - assert (cvModel.NumObservations, 4); - assert (cvModel.ModelParameters.NumNeighbors, 1); - assert (cvModel.ModelParameters.NSMethod, "exhaustive"); - assert (cvModel.ModelParameters.Distance, "euclidean"); - assert (! cvModel.ModelParameters.Standardize); + 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 - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - k = 3; - a = fitcknn (x, y, "NumNeighbors" ,k); - partition = cvpartition (y, "LeaveOut"); - cvModel = ClassificationPartitionedModel (a, partition); - assert (class (cvModel), "ClassificationPartitionedModel"); - assert (class (cvModel.Trained{1}), "ClassificationKNN"); - assert ({cvModel.X, cvModel.Y}, {x, y}); - assert (cvModel.NumObservations, 4); - assert (cvModel.ModelParameters.NumNeighbors, k); - assert (cvModel.ModelParameters.NSMethod, "kdtree"); - assert (cvModel.ModelParameters.Distance, "euclidean"); - assert (! cvModel.ModelParameters.Standardize); + 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 - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = {"a"; "a"; "b"; "b"}; - a = fitcnet (x, y, "IterationLimit", 50); - cvModel = crossval (a, "KFold", 5); - assert (class (cvModel), "ClassificationPartitionedModel"); - assert (cvModel.NumObservations, 4); - assert (numel (cvModel.Trained), 5); - assert (class (cvModel.Trained{1}), "CompactClassificationNeuralNetwork"); - assert (cvModel.CrossValidatedModel, "ClassificationNeuralNetwork"); - assert (cvModel.KFold, 5); + 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 = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = {"a"; "a"; "b"; "b"}; - a = fitcnet (x, y, "LayerSizes", [5, 3]); - cvModel = crossval (a, "LeaveOut", "on"); - assert (class (cvModel), "ClassificationPartitionedModel"); - assert ({cvModel.X, cvModel.Y}, {x, y}); - assert (cvModel.NumObservations, 4); - assert (numel (cvModel.Trained), 4); - assert (class (cvModel.Trained{1}), "CompactClassificationNeuralNetwork"); - assert (cvModel.CrossValidatedModel, "ClassificationNeuralNetwork"); + 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 - load fisheriris - inds = ! strcmp (species, 'setosa'); - x = meas(inds, 3:4); - y = grp2idx (species(inds)); - SVMModel = fitcsvm (x,y); - CVMdl = crossval (SVMModel, "KFold", 5); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (CVMdl.KFold == 5) - assert (class (CVMdl.Trained{1}), "CompactClassificationSVM") - assert (CVMdl.CrossValidatedModel, "ClassificationSVM"); + 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 - load fisheriris - inds = ! strcmp (species, 'setosa'); - x = meas(inds, 3:4); - y = grp2idx (species(inds)); - obj = fitcsvm (x, y); - CVMdl = crossval (obj, "HoldOut", 0.2); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (class (CVMdl.Trained{1}), "CompactClassificationSVM") - assert (CVMdl.CrossValidatedModel, "ClassificationSVM"); + 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 - load fisheriris - inds = ! strcmp (species, 'setosa'); - x = meas(inds, 3:4); - y = grp2idx (species(inds)); - obj = fitcsvm (x, y); - CVMdl = crossval (obj, "LeaveOut", 'on'); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (class (CVMdl.Trained{1}), "CompactClassificationSVM") - assert (CVMdl.CrossValidatedModel, "ClassificationSVM"); -***** error ... - ClassificationPartitionedModel () -***** error ... - ClassificationPartitionedModel (ClassificationKNN (ones (4,2), ones (4,1))) + 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 - load fisheriris - a = fitcdiscr (meas, species, "gamma", 0.5, "fillcoeffs", "off"); - cvModel = crossval (a, "Kfold", 4); - [label, score, cost] = kfoldPredict (cvModel); - assert (class(cvModel), "ClassificationPartitionedModel"); - assert ({cvModel.X, cvModel.Y}, {meas, species}); - assert (cvModel.NumObservations, 150); -***** # assert (label, {"b"; "b"; "a"; "a"}); -***** # assert (score, [4.5380e-01, 5.4620e-01; 2.4404e-01, 7.5596e-01; ... -***** # 9.9392e-01, 6.0844e-03; 9.9820e-01, 1.8000e-03], 1e-4); -***** # assert (cost, [5.4620e-01, 4.5380e-01; 7.5596e-01, 2.4404e-01; ... -***** # 6.0844e-03, 9.9392e-01; 1.8000e-03, 9.9820e-01], 1e-4); + 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 - x = ones(4, 11); - y = {"a"; "a"; "b"; "b"}; - k = 3; - a = fitcknn (x, y, "NumNeighbors", k); - partition = cvpartition (y, "LeaveOut"); - cvModel = ClassificationPartitionedModel (a, partition); - [label, score, cost] = kfoldPredict (cvModel); - assert (class(cvModel), "ClassificationPartitionedModel"); - assert ({cvModel.X, cvModel.Y}, {x, y}); - assert (cvModel.NumObservations, 4); - assert (cvModel.ModelParameters.NumNeighbors, k); - assert (cvModel.ModelParameters.NSMethod, "exhaustive"); - assert (cvModel.ModelParameters.Distance, "euclidean"); - assert (! cvModel.ModelParameters.Standardize); - assert (label, {"b"; "b"; "a"; "a"}); - assert (score, [0.3333, 0.6667; 0.3333, 0.6667; 0.6667, 0.3333; ... - 0.6667, 0.3333], 1e-4); - assert (cost, [0.6667, 0.3333; 0.6667, 0.3333; 0.3333, 0.6667; ... - 0.3333, 0.6667], 1e-4); -***** error ... - [label, score, cost] = kfoldPredict (crossval (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)))) -***** error ... - [label, score, cost] = kfoldPredict (crossval (ClassificationNeuralNetwork (ones (40,2), randi ([1, 2], 40, 1)))) -18 tests, 18 passed, 0 known failure, 0 skipped -[inst/Classification/CompactClassificationNeuralNetwork.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/CompactClassificationNeuralNetwork.m -***** demo - ## Create a neural network classifier and its compact version - # and compare their size - - load fisheriris - X = meas; - Y = species; - - Mdl = fitcnet (X, Y, 'ClassNames', unique (species)) - CMdl = crossval (Mdl); - - whos ('Mdl', 'CMdl') -***** error ... - CompactClassificationDiscriminant (1) -***** shared x, y, CMdl - load fisheriris - x = meas; - y = grp2idx (species); - Mdl = fitcnet (x, y, "IterationLimit", 100); - CMdl = compact (Mdl); -***** error ... - predict (CMdl) -***** error ... - predict (CMdl, []) -***** error ... - predict (CMdl, 1) + 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 - CMdl.ScoreTransform = "a"; -***** error ... - [labels, scores] = predict (CMdl, x); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/Classification/ClassificationKNN.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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) + 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); +77 tests, 77 passed, 0 known failure, 0 skipped +[inst/dist_wrap/pdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/cdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/random.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fitcknn.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitcknn.m ***** demo - load fisheriris - x = meas; - y = species; - obj = fitcknn (x, y, "NumNeighbors", 5, "Standardize", 1); + ## Train a k-nearest neighbor classifier for k = 10 + ## and plot the decision boundaries. - ## Create a cross-validated model - CVMdl = crossval (obj) -***** demo load fisheriris - x = meas; - y = species; - covMatrix = cov (x); - - ## Fit the k-NN model using the 'mahalanobis' distance - ## and the custom covariance matrix - obj = fitcknn(x, y, 'NumNeighbors', 5, 'Distance','mahalanobis', ... - 'Cov', covMatrix); - - ## Create a partition model using cvpartition - Partition = cvpartition (size (x, 1), 'kfold', 12); - - ## Create cross-validated model using 'cvPartition' name-value argument - CVMdl = crossval (obj, 'cvPartition', Partition) + 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))); - ## Access the trained model from first fold of cross-validation - CVMdl.Trained{1} -***** demo - X = [1, 2; 3, 4; 5, 6]; - Y = {'A'; 'B'; 'A'}; - model = fitcknn (X, Y); - customLossFun = @(C, S, W, Cost) sum (W .* sum (abs (C - S), 2)); - ## Calculate loss using custom loss function - L = loss (model, X, Y, 'LossFun', customLossFun) -***** demo - X = [1, 2; 3, 4; 5, 6]; - Y = {'A'; 'B'; 'A'}; - model = fitcknn (X, Y); - ## Calculate loss using 'mincost' loss function - L = loss (model, X, Y, 'LossFun', 'mincost') -***** demo - X = [1, 2; 3, 4; 5, 6]; - Y = ['1'; '2'; '3']; - model = fitcknn (X, Y); - X_test = [3, 3; 5, 7]; - Y_test = ['1'; '2']; - ## Specify custom Weights - W = [1; 2]; - L = loss (model, X_test, Y_test, 'LossFun', 'logit', 'Weights', W); -***** demo - load fisheriris - mdl = fitcknn (meas, species); - X = mean (meas); - Y = {'versicolor'}; - m = margin (mdl, X, Y) -***** demo - X = [1, 2; 4, 5; 7, 8; 3, 2]; - Y = [2; 1; 3; 2]; - ## Train the model - mdl = fitcknn (X, Y); - ## Specify Vars and Labels - Vars = 1; - Labels = 2; - ## Calculate partialDependence - [pd, x, y] = partialDependence (mdl, Vars, Labels); -***** demo - X = [1, 2; 4, 5; 7, 8; 3, 2]; - Y = [2; 1; 3; 2]; - ## Train the model - mdl = fitcknn (X, Y); - ## Specify Vars and Labels - Vars = 1; - Labels = 1; - queryPoints = [linspace(0, 1, 3)', linspace(0, 1, 3)']; - ## Calculate partialDependence using queryPoints - [pd, x, y] = partialDependence (mdl, Vars, Labels, 'QueryPoints', ... - queryPoints) + 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); + a = fitcknn (x, y); assert (class (a), "ClassificationKNN"); assert ({a.X, a.Y, a.NumNeighbors}, {x, y, 1}) assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) @@ -20224,7 +14672,7 @@ ***** 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"); + a = fitcknn (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"}) @@ -20233,7 +14681,7 @@ 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); + a = fitcknn (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"}) @@ -20242,7 +14690,7 @@ x = ones (4, 11); y = ["a"; "a"; "b"; "b"]; k = 10; - a = ClassificationKNN (x, y, "NumNeighbors" ,k); + a = fitcknn (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"}) @@ -20251,7 +14699,7 @@ 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"); + a = fitcknn (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"}) @@ -20260,7 +14708,7 @@ 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"); + a = fitcknn (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"}) @@ -20269,7 +14717,7 @@ 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); + a = fitcknn (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"}) @@ -20280,7 +14728,7 @@ 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); + a = fitcknn (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"}) @@ -20291,7 +14739,7 @@ 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"); + a = fitcknn (x, y, "Scale" , s, "Distance", "seuclidean"); assert (class (a), "ClassificationKNN"); assert ({a.DistParameter}, {s}) assert ({a.NSMethod, a.Distance}, {"exhaustive", "seuclidean"}) @@ -20299,43 +14747,43 @@ ***** 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"); + a = fitcknn (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"); + a = fitcknn (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"); + a = fitcknn (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); + a = fitcknn (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); + a = fitcknn (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); + a = fitcknn (x, y); assert (class (a), "ClassificationKNN") assert (a.Prior, [0.5; 0.5]) assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) @@ -20344,7 +14792,7 @@ 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"); + a = fitcknn (x, y, "Prior", "empirical"); assert (class (a), "ClassificationKNN") assert (a.Prior, prior) assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) @@ -20353,7 +14801,7 @@ 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"); + a = fitcknn (x, y, "Prior", "empirical"); assert (class (a), "ClassificationKNN") assert (a.Prior, prior) assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) @@ -20362,7 +14810,7 @@ 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"); + a = fitcknn (x, y, "Prior", "uniform"); assert (class (a), "ClassificationKNN") assert (a.Prior, prior) assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) @@ -20371,7 +14819,7 @@ 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); + a = fitcknn (x, y, "Cost", cost); assert (class (a), "ClassificationKNN") assert (a.Cost, [1, 0; 0, 1]) assert ({a.NSMethod, a.Distance}, {"kdtree", "euclidean"}) @@ -20380,1129 +14828,2930 @@ 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" ); + a = fitcknn (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}) ***** test - x = [1, 2; 3, 4; 5,6; 5, 8]; - y = {'9'; '9'; '6'; '7'}; - a = ClassificationKNN (x, y); - assert (a.Prior, [0.5; 0.25; 0.25]) -***** test - load fisheriris - x = meas; - y = species; - ClassNames = {'setosa', 'versicolor', 'virginica'}; - a = ClassificationKNN (x, y, 'ClassNames', ClassNames); - assert (a.ClassNames, ClassNames') -***** 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(10,2), ones (10,1), "ClassNames", @(x)x) -***** error ... - ClassificationKNN (ones(10,2), ones (10,1), "ClassNames", ['a']) -***** error ... - ClassificationKNN (ones(10,2), ones (10,1), "ClassNames", [1, 2]) -***** error ... - ClassificationKNN (ones(5,2), {'a';'b';'a';'a';'b'}, "ClassNames", {'a','c'}) -***** error ... - ClassificationKNN (ones(10,2), logical (ones (10,1)), "ClassNames", [true, false]) -***** 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) + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + a = fitcknn (x, y, "NSMethod", "exhaustive", "CrossVal", "on"); + assert (class (a), "ClassificationPartitionedModel"); + assert ({a.X, a.Y, a.Trained{1}.NumNeighbors}, {x, y, 1}) + assert (a.ModelParameters.NSMethod, "exhaustive") + assert (a.ModelParameters.Distance, "euclidean") + assert ({a.Trained{1}.BucketSize}, {50}) +***** error fitcknn () +***** error fitcknn (ones (4,1)) +***** error + fitcknn (ones (4,2), ones (4, 1), "K") +***** error + fitcknn (ones (4,2), ones (3, 1)) +***** error + fitcknn (ones (4,2), ones (3, 1), "K", 2) +***** error + fitcknn (ones (4,2), ones (4, 1), "CrossVal", 2) +***** error + fitcknn (ones (4,2), ones (4, 1), "CrossVal", 'a') +***** error ... + fitcknn (ones (4,2), ones (4, 1), "KFold", 10, "Holdout", 0.3) +29 tests, 29 passed, 0 known failure, 0 skipped +[inst/einstein.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/einstein.m +***** demo + einstein (0.4, 0.6) +***** demo + einstein (0.2, 0.5) +***** demo + einstein (0.6, 0.1) ***** 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) + 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/fitrgam.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitrgam.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 an object + a = fitrgam (X, y, "tol", 1e-3) ***** 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]) + 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 - 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) + 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/fillmissing.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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) + 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 - 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) + 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 - 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) + 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 - 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) + 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 - 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) + 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 - 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) + 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 - 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) + 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 - 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) + 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 - 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) + 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 - 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) + 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]) ***** 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) + 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 - 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) + 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 - 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) + 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 - 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) +***** 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 - load fisheriris - model = fitcknn (meas, species, 'NumNeighbors', 5); - X = mean (meas); - Y = {'versicolor'}; - L = loss (model, X, Y); - assert (L, 0) + 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 = [1, 2; 3, 4; 5, 6]; - Y = {'A'; 'B'; 'A'}; - model = fitcknn (X, Y); - X_test = [1, 6; 3, 3]; - Y_test = {'A'; 'B'}; - L = loss (model, X_test, Y_test); - assert (abs (L - 0.6667) > 1e-5) + 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 = [1, 2; 3, 4; 5, 6]; - Y = {'A'; 'B'; 'A'}; - model = fitcknn (X, Y); - X_with_nan = [1, 2; NaN, 4]; - Y_test = {'A'; 'B'}; - L = loss (model, X_with_nan, Y_test); - assert (abs (L - 0.3333) < 1e-4) + 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 - X = [1, 2; 3, 4; 5, 6]; - Y = {'A'; 'B'; 'A'}; - model = fitcknn (X, Y); - X_with_nan = [1, 2; NaN, 4]; - Y_test = {'A'; 'B'}; - L = loss (model, X_with_nan, Y_test, 'LossFun', 'logit'); - assert (isnan (L)) + [~, 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])); ***** test - X = [1, 2; 3, 4; 5, 6]; - Y = {'A'; 'B'; 'A'}; - model = fitcknn (X, Y); - customLossFun = @(C, S, W, Cost) sum (W .* sum (abs (C - S), 2)); - L = loss (model, X, Y, 'LossFun', customLossFun); - assert (L, 0) + [A, idx] = fillmissing ([1, 2, 5], "movmedian", 3, "missinglocations", logical ([0, 1, 0])); + assert (A, [1, 3, 5]); + assert (idx, logical ([0, 1, 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 - X = [1, 2; 3, 4; 5, 6]; - Y = [1; 2; 1]; - model = fitcknn (X, Y); - L = loss (model, X, Y, 'LossFun', 'classiferror'); - assert (L, 0) + [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 = [1, 2; 3, 4; 5, 6]; - Y = [true; false; true]; - model = fitcknn (X, Y); - L = loss (model, X, Y, 'LossFun', 'binodeviance'); - assert (abs (L - 0.1269) < 1e-4) + 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 = [1, 2; 3, 4; 5, 6]; - Y = ['1'; '2'; '1']; - model = fitcknn (X, Y); - L = loss (model, X, Y, 'LossFun', 'classiferror'); - assert (L, 0) + 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 - X = [1, 2; 3, 4; 5, 6]; - Y = ['1'; '2'; '3']; - model = fitcknn (X, Y); - X_test = [3, 3]; - Y_test = ['1']; - L = loss (model, X_test, Y_test, 'LossFun', 'quadratic'); - assert (L, 1) + [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) +380 tests, 379 passed, 0 known failure, 1 skipped +[inst/grpstats.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - X = [1, 2; 3, 4; 5, 6]; - Y = ['1'; '2'; '3']; - model = fitcknn (X, Y); - X_test = [3, 3; 5, 7]; - Y_test = ['1'; '2']; - L = loss (model, X_test, Y_test, 'LossFun', 'classifcost'); - assert (L, 1) + load carsmall + means = grpstats (Acceleration, Origin); + assert (means, [14.4377; 18.0500; 15.8867; 16.3778; 16.6000; 15.5000], 0.001); ***** test - X = [1, 2; 3, 4; 5, 6]; - Y = ['1'; '2'; '3']; - model = fitcknn (X, Y); - X_test = [3, 3; 5, 7]; - Y_test = ['1'; '2']; - L = loss (model, X_test, Y_test, 'LossFun', 'hinge'); - assert (L, 1) + 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 - X = [1, 2; 3, 4; 5, 6]; - Y = ['1'; '2'; '3']; - model = fitcknn (X, Y); - X_test = [3, 3; 5, 7]; - Y_test = ['1'; '2']; - W = [1; 2]; - L = loss (model, X_test, Y_test, 'LossFun', 'logit', 'Weights', W); - assert (abs (L - 0.6931) < 1e-4) -***** error ... - loss (ClassificationKNN (ones (4,2), ones (4,1))) -***** error ... - loss (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2)) -***** error ... - loss (ClassificationKNN (ones (40,2), randi ([1, 2], 40, 1)), [], zeros (2)) -***** error ... - loss (ClassificationKNN (ones (40,2), randi ([1, 2], 40, 1)), 1, zeros (2)) -***** error ... - loss (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2), ... - ones (4,1), 'LossFun') -***** error ... - loss (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2), ones (3,1)) -***** error ... - loss (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2), ... - ones (4,1), 'LossFun', 'a') -***** error ... - loss (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2), ... - ones (4,1), 'Weights', 'w') + 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/ppplot.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/Clustering/ClusterCriterion.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Clustering/ClusterCriterion.m +***** error ... + ClusterCriterion ("1", "kmeans", [1:6]) +***** error ... + ClusterCriterion ([1, 2, 1, 3, 2, 4, 3], "k", [1:6]) +***** error ... + ClusterCriterion ([1, 2, 1; 3, 2, 4], 1, [1:6]) +***** error ... + ClusterCriterion ([1, 2, 1; 3, 2, 4], ones (2, 2, 2), [1:6]) +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/Clustering/GapEvaluation.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Clustering/GapEvaluation.m ***** test load fisheriris - mdl = fitcknn (meas, species, 'NumNeighbors', 5); - X = mean (meas); - Y = {'versicolor'}; - m = margin (mdl, X, Y); - assert (m, 1) + eva = evalclusters (meas([1:50],:), "kmeans", "gap", "KList", [1:3], ... + "referencedistribution", "uniform"); + assert (class (eva), "GapEvaluation"); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/Clustering/SilhouetteEvaluation.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Clustering/SilhouetteEvaluation.m ***** test - X = [1, 2; 3, 4; 5, 6]; - Y = [1; 2; 3]; - mdl = fitcknn (X, Y); - m = margin (mdl, X, Y); - assert (m, [1; 1; 1]) + load fisheriris + eva = evalclusters (meas, "kmeans", "silhouette", "KList", [1:6]); + assert (class (eva), "SilhouetteEvaluation"); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/Clustering/CalinskiHarabaszEvaluation.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Clustering/CalinskiHarabaszEvaluation.m ***** test - X = [7, 8; 9, 10]; - Y = ['1'; '2']; - mdl = fitcknn (X, Y); - m = margin (mdl, X, Y); - assert (m, [1; 1]) + load fisheriris + eva = evalclusters (meas, "kmeans", "calinskiharabasz", "KList", [1:6]); + assert (class (eva), "CalinskiHarabaszEvaluation"); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/Clustering/DaviesBouldinEvaluation.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Clustering/DaviesBouldinEvaluation.m ***** test - X = [11, 12]; - Y = {'1'}; - mdl = fitcknn (X, Y); - m = margin (mdl, X, Y); - assert (isnan (m)) + load fisheriris + eva = evalclusters (meas, "kmeans", "DaviesBouldin", "KList", [1:6]); + assert (class (eva), "DaviesBouldinEvaluation"); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/shadow9/std.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 = [1, 2; 3, 4; 5, 6]; - Y = [1; 2; 3]; - mdl = fitcknn (X, Y); - X1 = [15, 16]; - Y1 = [1]; - m = margin (mdl, X1, Y1); - assert (m, -1) -***** error ... - margin (ClassificationKNN (ones (4,2), ones (4,1))) -***** error ... - margin (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2)) -***** error ... - margin (ClassificationKNN (ones (40,2), randi ([1, 2], 40, 1)), [], zeros (2)) -***** error ... - margin (ClassificationKNN (ones (40,2), randi ([1, 2], 40, 1)), 1, zeros (2)) -***** error ... - margin (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2), ones (3,1)) -***** shared X, Y, mdl - X = [1, 2; 4, 5; 7, 8; 3, 2]; - Y = [2; 1; 3; 2]; - mdl = fitcknn (X, Y); + 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 - Vars = 1; - Labels = 2; - [pd, x, y] = partialDependence (mdl, Vars, Labels); - pdm = [0.7500, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000]; - assert (pd, pdm) + 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 - Vars = 1; - Labels = 2; - [pd, x, y] = partialDependence (mdl, Vars, Labels, ... - 'NumObservationsToSample', 5); - pdm = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - assert (abs (pdm - pd) < 1) + 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 - Vars = 1; - Labels = 2; - [pd, x, y] = partialDependence (mdl, Vars, Labels, 'UseParallel', true); - pdm = [0.7500, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000]; - assert (pd, pdm) + 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 - Vars = [1, 2]; - Labels = 1; - queryPoints = {linspace(0, 1, 3)', linspace(0, 1, 3)'}; - [pd, x, y] = partialDependence (mdl, Vars, Labels, 'QueryPoints', ... - queryPoints, 'UseParallel', true); - pdm = [0, 0, 0; 0, 0, 0; 0, 0, 0]; - assert (pd, pdm) + 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 - Vars = 1; - Labels = [1; 2]; - [pd, x, y] = partialDependence (mdl, Vars, Labels); - pdm = [0.2500, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.2500, 0.2500, 0.2500, ... - 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, ... - 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, ... - 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, ... - 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, ... - 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, ... - 0.2500, 0.2500; 0.7500, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... - 0.5000, 0.5000, 0.5000]; - assert (pd, pdm) + [~, 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 - Vars = [1, 2]; - Labels = [1; 2]; - queryPoints = {linspace(0, 1, 3)', linspace(0, 1, 3)'}; - [pd, x, y] = partialDependence (mdl, Vars, Labels, 'QueryPoints', queryPoints); - pdm(:,:,1) = [0, 0, 0; 1, 1, 1]; - pdm(:,:,2) = [0, 0, 0; 1, 1, 1]; - pdm(:,:,3) = [0, 0, 0; 1, 1, 1]; - assert (pd, pdm) + [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 - X1 = [1; 2; 4; 5; 7; 8; 3; 2]; - X2 = ['2'; '3'; '1'; '3'; '1'; '3'; '2'; '2']; - X = [X1, double(X2)]; - Y = [1; 2; 3; 3; 2; 1; 2; 1]; - mdl = fitcknn (X, Y, 'ClassNames', {'1', '2', '3'}); - Vars = 1; - Labels = 1; - [pd, x, y] = partialDependence (mdl, Vars, Labels); - pdm = [1.0000, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, ... - 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, ... - 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3750, ... - 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, ... - 0.3750, 0.3750, 0.3750, 0.3750, 0.7500, 0.7500, 0.7500, 0.7500, 0.7500, ... - 0.7500, 0.7500, 0.7500]; - assert (pd, pdm) + 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 - X1 = [1; 2; 4; 5; 7; 8; 3; 2]; - X2 = ['2'; '3'; '1'; '3'; '1'; '3'; '2'; '2']; - X = [X1, double(X2)]; - Y = [1; 2; 3; 3; 2; 1; 2; 1]; - predictorNames = {'Feature1', 'Feature2'}; - mdl = fitcknn (X, Y, 'PredictorNames', predictorNames); - Vars = 'Feature1'; - Labels = 1; - [pd, x, y] = partialDependence (mdl, Vars, Labels); - pdm = [1.0000, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, ... - 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, ... - 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3750, ... - 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, ... - 0.3750, 0.3750, 0.3750, 0.3750, 0.7500, 0.7500, 0.7500, 0.7500, 0.7500, ... - 0.7500, 0.7500, 0.7500]; - assert (pd, pdm) + 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.7.0/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 - X1 = [1; 2; 4; 5; 7; 8; 3; 2]; - X2 = ['2'; '3'; '1'; '3'; '1'; '3'; '2'; '2']; - X = [X1, double(X2)]; - Y = [1; 2; 3; 3; 2; 1; 2; 1]; - predictorNames = {'Feature1', 'Feature2'}; - mdl = fitcknn (X, Y, 'PredictorNames', predictorNames); - new_X1 = [10; 5; 6; 8; 9; 20; 35; 6]; - new_X2 = ['2'; '2'; '1'; '2'; '1'; '3'; '3'; '2']; - new_X = [new_X1, double(new_X2)]; - Vars = 'Feature1'; - Labels = 1; - [pd, x, y] = partialDependence (mdl, Vars, Labels, new_X); - pdm = [0, 0, 0, 0, 0, 0.2500, 0.2500, 0.2500, 0.2500, 0.7500, 0.7500, ... - 0.7500, 0.7500, 0.7500, 0.7500, 1.0000, 1.0000, 1.0000, 1.0000, 1.0000, ... - 1.0000, 1.0000, 1.0000, 1.0000, 1.0000, 1.0000, 1.0000, 1.0000, 1.0000, ... - 1.0000, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; - assert (pd, pdm) -***** error ... - partialDependence (ClassificationKNN (ones (4,2), ones (4,1))) -***** error ... - partialDependence (ClassificationKNN (ones (4,2), ones (4,1)), 1) -***** error ... - partialDependence (ClassificationKNN (ones (4,2), ones (4,1)), 1, ... - ones (4,1), 'NumObservationsToSample') -***** error ... - partialDependence (ClassificationKNN (ones (4,2), ones (4,1)), 1, ... - ones (4,1), 2) -***** shared x, y, obj - load fisheriris - x = meas; - y = species; - covMatrix = cov (x); - obj = fitcknn (x, y, 'NumNeighbors', 5, 'Distance', ... - 'mahalanobis', 'Cov', covMatrix); + 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 - CVMdl = crossval (obj); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (CVMdl.KFold == 10) - assert (CVMdl.ModelParameters.NumNeighbors == 5) - assert (strcmp (CVMdl.ModelParameters.Distance, "mahalanobis")) - assert (class (CVMdl.Trained{1}), "ClassificationKNN") - assert (!CVMdl.ModelParameters.Standardize) + 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 - CVMdl = crossval (obj, "KFold", 5); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (CVMdl.KFold == 5) - assert (CVMdl.ModelParameters.NumNeighbors == 5) - assert (strcmp (CVMdl.ModelParameters.Distance, "mahalanobis")) - assert (class (CVMdl.Trained{1}), "ClassificationKNN") - assert (CVMdl.ModelParameters.Standardize == obj.Standardize) + 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 - obj = fitcknn (x, y, "NumNeighbors", 5, "Distance", "cityblock"); - CVMdl = crossval (obj, "HoldOut", 0.2); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (CVMdl.ModelParameters.NumNeighbors == 5) - assert (strcmp (CVMdl.ModelParameters.Distance, "cityblock")) - assert (class (CVMdl.Trained{1}), "ClassificationKNN") - assert (CVMdl.ModelParameters.Standardize == obj.Standardize) + 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 - obj = fitcknn (x, y, "NumNeighbors", 10, "Distance", "cityblock"); - CVMdl = crossval (obj, "LeaveOut", 'on'); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (CVMdl.ModelParameters.NumNeighbors == 10) - assert (strcmp (CVMdl.ModelParameters.Distance, "cityblock")) - assert (class (CVMdl.Trained{1}), "ClassificationKNN") - assert (CVMdl.ModelParameters.Standardize == obj.Standardize) + 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 - obj = fitcknn (x, y, "NumNeighbors", 10, "Distance", "cityblock"); - partition = cvpartition (y, 'KFold', 3); - CVMdl = crossval (obj, 'cvPartition', partition); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert (CVMdl.KFold == 3) - assert (CVMdl.ModelParameters.NumNeighbors == 10) - assert (strcmp (CVMdl.ModelParameters.Distance, "cityblock")) - assert (class (CVMdl.Trained{1}), "ClassificationKNN") - assert (CVMdl.ModelParameters.Standardize == obj.Standardize) -***** error ... - crossval (ClassificationKNN (ones (4,2), ones (4,1)), "kfold") -***** error... - crossval (ClassificationKNN (ones (4,2), ones (4,1)), "kfold", 12, "holdout", 0.2) -***** error ... - crossval (ClassificationKNN (ones (4,2), ones (4,1)), "kfold", 'a') -***** error ... - crossval (ClassificationKNN (ones (4,2), ones (4,1)), "holdout", 2) -***** error ... - crossval (ClassificationKNN (ones (4,2), ones (4,1)), "leaveout", 1) -***** error ... - crossval (ClassificationKNN (ones (4,2), ones (4,1)), "cvpartition", 1) + [~, 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/Classification/ConfusionMatrixChart.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 +[inst/shadow9/median.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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/Classification/CompactClassificationSVM.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/CompactClassificationSVM.m -***** demo - ## Create a support vectors machine classifier and its compact version - # and compare their size - - load fisheriris - X = meas; - Y = species; - - Mdl = fitcsvm (X, Y, 'ClassNames', unique (species)) - CMdl = crossval (Mdl); + x = [1, 2, 3, 4, 5, 6]; + x2 = x'; + y = [1, 2, 3, 4, 5, 6, 7]; + y2 = y'; - whos ('Mdl', 'CMdl') -***** error ... - CompactClassificationSVM (1) -***** shared x, y, CMdl - load fisheriris - inds = ! strcmp (species, 'setosa'); - x = meas(inds, 3:4); - y = grp2idx (species(inds)); + 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 - xc = [min(x); mean(x); max(x)]; - Mdl = fitcsvm (x, y, 'KernelFunction', 'rbf', 'Tolerance', 1e-7); - CMdl = compact (Mdl); - assert (isempty (CMdl.Alpha), true) - assert (sum (CMdl.IsSupportVector), numel (CMdl.Beta)) - [label, score] = predict (CMdl, xc); - assert (label, [1; 2; 2]); - assert (score(:,1), [0.99285; -0.080296; -0.93694], 1e-5); - assert (score(:,1), -score(:,2), eps) + in = [1 2 3]; + out = 2; + assert (median (in, "default"), median (in)); + assert (median (in, "default"), out); ***** test - Mdl = fitcsvm (x, y); - CMdl = compact (Mdl); - assert (isempty (CMdl.Beta), true) - assert (sum (CMdl.IsSupportVector), numel (CMdl.Alpha)) - assert (numel (CMdl.Alpha), 24) - assert (CMdl.Bias, -14.415, 1e-3) - xc = [min(x); mean(x); max(x)]; - label = predict (CMdl, xc); - assert (label, [1; 2; 2]); -***** error ... - predict (CMdl) -***** error ... - predict (CMdl, []) -***** error ... - predict (CMdl, 1) + 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 - CMdl.ScoreTransform = "a"; -***** error ... - [labels, scores] = predict (CMdl, x); + 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 - rand ("seed", 1); - C = cvpartition (y, 'HoldOut', 0.15); - Mdl = fitcsvm (x(training (C),:), y(training (C)), ... - 'KernelFunction', 'rbf', 'Tolerance', 1e-7); - CMdl = compact (Mdl); - testInds = test (C); - expected_margin = [2.0000; 0.8579; 1.6690; 3.4141; 3.4552; ... - 2.6605; 3.5251; -4.0000; -6.3411; -6.4511; ... - -3.0532; -7.5054; -1.6700; -5.6227; -7.3640]; - computed_margin = margin (CMdl, x(testInds,:), y(testInds,:)); - assert (computed_margin, expected_margin, 1e-4); -***** error ... - margin (CMdl) -***** error ... - margin (CMdl, zeros (2)) -***** error ... - margin (CMdl, [], 1) -***** error ... - margin (CMdl, 1, 1) -***** error ... - margin (CMdl, [1, 2], []) -***** error ... - margin (CMdl, [1, 2], [1; 2]) + 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 - rand ("seed", 1); - C = cvpartition (y, 'HoldOut', 0.15); - Mdl = fitcsvm (x(training (C),:), y(training (C)), ... - 'KernelFunction', 'rbf', 'Tolerance', 1e-7); - CMdl = compact (Mdl); - testInds = test (C); - L1 = loss (CMdl, x(testInds,:), y(testInds,:), 'LossFun', 'binodeviance'); - L2 = loss (CMdl, x(testInds,:), y(testInds,:), 'LossFun', 'classiferror'); - L3 = loss (CMdl, x(testInds,:), y(testInds,:), 'LossFun', 'exponential'); - L4 = loss (CMdl, x(testInds,:), y(testInds,:), 'LossFun', 'hinge'); - L5 = loss (CMdl, x(testInds,:), y(testInds,:), 'LossFun', 'logit'); - L6 = loss (CMdl, x(testInds,:), y(testInds,:), 'LossFun', 'quadratic'); - assert (L1, 2.8711, 1e-4); - assert (L2, 0.5333, 1e-4); - assert (L3, 10.9685, 1e-4); - assert (L4, 1.9827, 1e-4); - assert (L5, 1.5849, 1e-4); - assert (L6, 7.6739, 1e-4); -***** error ... - loss (CMdl) -***** error ... - loss (CMdl, zeros (2)) -***** error ... - loss (CMdl, [1, 2], 1, "LossFun") -***** error ... - loss (CMdl, [], zeros (2)) -***** error ... - loss (CMdl, 1, zeros (2)) -***** error ... - loss (CMdl, [1, 2], []) -***** error ... - loss (CMdl, [1, 2], [1; 2]) -***** error ... - loss (CMdl, [1, 2], 1, "LossFun", 1) -***** error ... - loss (CMdl, [1, 2], 1, "LossFun", "some") -***** error ... - loss (CMdl, [1, 2], 1, "Weights", ['a', 'b']) -***** error ... - loss (CMdl, [1, 2], 1, "Weights", 'a') -***** error ... - loss (CMdl, [1, 2], 1, "Weights", [1, 2]) -***** error ... - loss (CMdl, [1, 2], 1, "some", "some") -29 tests, 29 passed, 0 known failure, 0 skipped -[inst/Classification/CompactClassificationGAM.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/CompactClassificationGAM.m -***** demo - ## Create a generalized additive model classifier and its compact version - # and compare their size + 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.7.0/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; - load fisheriris - X = meas; - Y = species; + ## 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"); - Mdl = fitcdiscr (X, Y, 'ClassNames', unique (species)) - CMdl = crossval (Mdl); + ## 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"); - whos ('Mdl', 'CMdl') -***** test - Mdl = CompactClassificationGAM (); - assert (class (Mdl), "CompactClassificationGAM") + ## 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 = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = [0; 0; 1; 1]; - PredictorNames = {'Feature1', 'Feature2', 'Feature3'}; - Mdl = fitcgam (x, y, "PredictorNames", PredictorNames); - CMdl = compact (Mdl); - assert (class (CMdl), "CompactClassificationGAM"); - assert ({CMdl.NumPredictors, CMdl.ResponseName}, {3, "Y"}) - assert (CMdl.ClassNames, {'0'; '1'}) - assert (CMdl.PredictorNames, PredictorNames) - assert (CMdl.BaseModel.Intercept, 0) + 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 - load fisheriris - inds = strcmp (species,'versicolor') | strcmp (species,'virginica'); - X = meas(inds, :); - Y = species(inds, :)'; - Y = strcmp (Y, 'virginica')'; - Mdl = fitcgam (X, Y, 'Formula', 'Y ~ x1 + x2 + x3 + x4 + x1:x2 + x2:x3'); - CMdl = compact (Mdl); - assert (class (CMdl), "CompactClassificationGAM"); - assert ({CMdl.NumPredictors, CMdl.ResponseName}, {4, "Y"}) - assert (CMdl.ClassNames, {'0'; '1'}) - assert (CMdl.Formula, 'Y ~ x1 + x2 + x3 + x4 + x1:x2 + x2:x3') - assert (CMdl.PredictorNames, {'x1', 'x2', 'x3', 'x4'}) - assert (CMdl.ModelwInt.Intercept, 0) + 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 = [2, 3, 5; 4, 6, 8; 1, 2, 3; 7, 8, 9; 5, 4, 3]; - Y = [0; 1; 0; 1; 1]; - Mdl = fitcgam (X, Y, 'Knots', [4, 4, 4], 'Order', [3, 3, 3]); - CMdl = compact (Mdl); - assert (class (CMdl), "CompactClassificationGAM"); - assert ({CMdl.NumPredictors, CMdl.ResponseName}, {3, "Y"}) - assert (CMdl.ClassNames, {'0'; '1'}) - assert (CMdl.PredictorNames, {'x1', 'x2', 'x3'}) - assert (CMdl.Knots, [4, 4, 4]) - assert (CMdl.Order, [3, 3, 3]) - assert (CMdl.DoF, [7, 7, 7]) - assert (CMdl.BaseModel.Intercept, 0.4055, 1e-1) -***** error ... - CompactClassificationGAM (1) + 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 = [1, 2; 3, 4; 5, 6; 7, 8; 9, 10]; - y = [1; 0; 1; 0; 1]; - Mdl = fitcgam (x, y, "interactions", "all"); - CMdl = compact (Mdl); - l = {'0'; '0'; '0'; '0'; '0'}; - s = [0.3760, 0.6240; 0.4259, 0.5741; 0.3760, 0.6240; ... - 0.4259, 0.5741; 0.3760, 0.6240]; - [labels, scores] = predict (CMdl, x); - assert (class (CMdl), "CompactClassificationGAM"); - assert ({CMdl.NumPredictors, CMdl.ResponseName}, {2, "Y"}) - assert (CMdl.ClassNames, {'1'; '0'}) - assert (CMdl.PredictorNames, {'x1', 'x2'}) - assert (CMdl.ModelwInt.Intercept, 0.4055, 1e-1) - assert (labels, l) - assert (scores, s, 1e-1) + 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 = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = [0; 0; 1; 1]; - interactions = [false, true, false; true, false, true; false, true, false]; - Mdl = fitcgam (x, y, "learningrate", 0.2, "interactions", interactions); - CMdl = compact (Mdl); - [label, score] = predict (CMdl, x, "includeinteractions", true); - l = {'0'; '0'; '1'; '1'}; - s = [0.5106, 0.4894; 0.5135, 0.4865; 0.4864, 0.5136; 0.4847, 0.5153]; - assert (class (CMdl), "CompactClassificationGAM"); - assert ({CMdl.NumPredictors, CMdl.ResponseName}, {3, "Y"}) - assert (CMdl.ClassNames, {'0'; '1'}) - assert (CMdl.PredictorNames, {'x1', 'x2', 'x3'}) - assert (CMdl.ModelwInt.Intercept, 0) - assert (label, l) - assert (score, s, 1e-1) -***** shared CMdl - Mdl = fitcgam (ones (4,2), ones (4,1)); - CMdl = compact (Mdl); -***** error ... - predict (CMdl) -***** error ... - predict (CMdl, []) -***** error ... - predict (CMdl, 1) -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/Classification/CompactClassificationDiscriminant.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/CompactClassificationDiscriminant.m + 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)) +***** 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, 80 passed, 0 known failure, 0 skipped +[inst/cophenet.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/cophenet.m ***** demo - ## Create a discriminant analysis classifier and its compact version - # and compare their size - + 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/confusionmat.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/crossval.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/crossval.m +***** test load fisheriris - X = meas; - Y = species; + 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); - Mdl = fitcdiscr (X, Y, 'ClassNames', unique (species)) - CMdl = crossval (Mdl); + ## 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)); - whos ('Mdl', 'CMdl') + 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/manovacluster.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/manovacluster.m +***** demo + load carbig + X = [MPG Acceleration Weight Displacement]; + [d, p, stats] = manova1 (X, Origin); + manovacluster (stats) ***** test - load fisheriris - x = meas; - y = species; - PredictorNames = {'Sepal Length', 'Sepal Width', 'Petal Length', 'Petal Width'}; - Mdl = fitcdiscr (x, y, "PredictorNames", PredictorNames); - CMdl = compact (Mdl); - sigma = [0.265008, 0.092721, 0.167514, 0.038401; ... - 0.092721, 0.115388, 0.055244, 0.032710; ... - 0.167514, 0.055244, 0.185188, 0.042665; ... - 0.038401, 0.032710, 0.042665, 0.041882]; - mu = [5.0060, 3.4280, 1.4620, 0.2460; ... - 5.9360, 2.7700, 4.2600, 1.3260; ... - 6.5880, 2.9740, 5.5520, 2.0260]; - xCentered = [ 9.4000e-02, 7.2000e-02, -6.2000e-02, -4.6000e-02; ... - -1.0600e-01, -4.2800e-01, -6.2000e-02, -4.6000e-02; ... - -3.0600e-01, -2.2800e-01, -1.6200e-01, -4.6000e-02]; - assert (class (CMdl), "CompactClassificationDiscriminant"); - assert ({CMdl.DiscrimType, CMdl.ResponseName}, {"linear", "Y"}) - assert ({CMdl.Gamma, CMdl.MinGamma}, {0, 0}, 1e-15) - assert (CMdl.ClassNames, unique (species)) - assert (CMdl.Sigma, sigma, 1e-6) - assert (CMdl.Mu, mu, 1e-14) - assert (CMdl.XCentered([1:3],:), xCentered, 1e-14) - assert (CMdl.LogDetSigma, -9.9585, 1e-4) - assert (CMdl.PredictorNames, PredictorNames) + 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/loadmodel.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/loadmodel.m +***** error loadmodel () +***** error ... + loadmodel ("fisheriris.mat") +***** error ... + loadmodel ("fail_loadmodel.mdl") +***** error ... + loadmodel ("fail_load_model.mdl") +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/violin.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - load fisheriris - x = meas; - y = species; - Mdl = fitcdiscr (x, y, "Gamma", 0.5); - CMdl = compact (Mdl); - sigma = [0.265008, 0.046361, 0.083757, 0.019201; ... - 0.046361, 0.115388, 0.027622, 0.016355; ... - 0.083757, 0.027622, 0.185188, 0.021333; ... - 0.019201, 0.016355, 0.021333, 0.041882]; - mu = [5.0060, 3.4280, 1.4620, 0.2460; ... - 5.9360, 2.7700, 4.2600, 1.3260; ... - 6.5880, 2.9740, 5.5520, 2.0260]; - xCentered = [ 9.4000e-02, 7.2000e-02, -6.2000e-02, -4.6000e-02; ... - -1.0600e-01, -4.2800e-01, -6.2000e-02, -4.6000e-02; ... - -3.0600e-01, -2.2800e-01, -1.6200e-01, -4.6000e-02]; - assert (class (CMdl), "CompactClassificationDiscriminant"); - assert ({CMdl.DiscrimType, CMdl.ResponseName}, {"linear", "Y"}) - assert ({CMdl.Gamma, CMdl.MinGamma}, {0.5, 0}) - assert (CMdl.ClassNames, unique (species)) - assert (CMdl.Sigma, sigma, 1e-6) - assert (CMdl.Mu, mu, 1e-14) - assert (CMdl.XCentered([1:3],:), xCentered, 1e-14) - assert (CMdl.LogDetSigma, -8.6884, 1e-4) -***** error ... - CompactClassificationDiscriminant (1) + 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 - load fisheriris - x = meas; - y = species; - Mdl = fitcdiscr (meas, species, "Gamma", 0.5); - CMdl = compact (Mdl); - [label, score, cost] = predict (CMdl, [2, 2, 2, 2]); - assert (label, {'versicolor'}) - assert (score, [0, 0.9999, 0.0001], 1e-4) - assert (cost, [1, 0.0001, 0.9999], 1e-4) - [label, score, cost] = predict (CMdl, [2.5, 2.5, 2.5, 2.5]); - assert (label, {'versicolor'}) - assert (score, [0, 0.6368, 0.3632], 1e-4) - assert (cost, [1, 0.3632, 0.6368], 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 - load fisheriris - x = meas; - y = species; - xc = [min(x); mean(x); max(x)]; - Mdl = fitcdiscr (x, y); - CMdl = compact (Mdl); - [label, score, cost] = predict (CMdl, xc); - l = {'setosa'; 'versicolor'; 'virginica'}; - s = [1, 0, 0; 0, 1, 0; 0, 0, 1]; - c = [0, 1, 1; 1, 0, 1; 1, 1, 0]; - assert (label, l) - assert (score, s, 1e-4) - assert (cost, c, 1e-4) -***** shared MODEL - X = rand (10,2); - Y = [ones(5,1);2*ones(5,1)]; - MODEL = compact (ClassificationDiscriminant (X, Y)); -***** error ... - predict (MODEL) -***** error ... - predict (MODEL, []) -***** error ... - predict (MODEL, 1) + 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 - load fisheriris - model = fitcdiscr (meas, species); - x = mean (meas); - y = {'versicolor'}; - L = loss (model, x, y); - assert (L, 0) + 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, 2; 3, 4; 5, 6]; - y = {'A'; 'B'; 'A'}; - model = fitcdiscr (x, y, "Gamma", 0.4); - x_test = [1, 6; 3, 3]; - y_test = {'A'; 'B'}; - L = loss (model, x_test, y_test); - assert (L, 0.3333, 1e-4) + 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/procrustes.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/dcov.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ff2n.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - x = [1, 2; 3, 4; 5, 6; 7, 8]; - y = ['1'; '2'; '3'; '1']; - model = fitcdiscr (x, y, "gamma" , 0.5); - x_test = [3, 3]; - y_test = ['1']; - L = loss (model, x_test, y_test, 'LossFun', 'quadratic'); - assert (L, 0.2423, 1e-4) + A = ff2n (3); + assert (A, fullfact (3)); ***** test - x = [1, 2; 3, 4; 5, 6; 7, 8]; - y = ['1'; '2'; '3'; '1']; - model = fitcdiscr (x, y, "gamma" , 0.5); - x_test = [3, 3; 5, 7]; - y_test = ['1'; '2']; - L = loss (model, x_test, y_test, 'LossFun', 'classifcost'); - assert (L, 0.3333, 1e-4) + A = ff2n (8); + assert (A, fullfact (8)); +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/cluster.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - x = [1, 2; 3, 4; 5, 6; 7, 8]; - y = ['1'; '2'; '3'; '1']; - model = fitcdiscr (x, y, "gamma" , 0.5); - x_test = [3, 3; 5, 7]; - y_test = ['1'; '2']; - L = loss (model, x_test, y_test, 'LossFun', 'hinge'); - assert (L, 0.5886, 1e-4) +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/fishertest.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - x = [1, 2; 3, 4; 5, 6; 7, 8]; - y = ['1'; '2'; '3'; '1']; - model = fitcdiscr (x, y, "gamma" , 0.5); - x_test = [3, 3; 5, 7]; - y_test = ['1'; '2']; - W = [1; 2]; - L = loss (model, x_test, y_test, 'LossFun', 'logit', 'Weights', W); - assert (L, 0.5107, 1e-4) + [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 - x = [1, 2; 3, 4; 5, 6]; - y = {'A'; 'B'; 'A'}; - model = fitcdiscr (x, y, "gamma" , 0.5); - x_with_nan = [1, 2; NaN, 4]; - y_test = {'A'; 'B'}; - L = loss (model, x_with_nan, y_test); - assert (L, 0.3333, 1e-4) + [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.7.0/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 - x = [1, 2; 3, 4; 5, 6]; - y = {'A'; 'B'; 'A'}; - model = fitcdiscr (x, y); - x_with_nan = [1, 2; NaN, 4]; - y_test = {'A'; 'B'}; - L = loss (model, x_with_nan, y_test, 'LossFun', 'logit'); - assert (isnan (L)) + 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/tabulate.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - x = [1, 2; 3, 4; 5, 6]; - y = {'A'; 'B'; 'A'}; - model = fitcdiscr (x, y); - customLossFun = @(C, S, W, Cost) sum (W .* sum (abs (C - S), 2)); - L = loss (model, x, y, 'LossFun', customLossFun); - assert (L, 0.8889, 1e-4) + 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 - x = [1, 2; 3, 4; 5, 6]; - y = [1; 2; 1]; - model = fitcdiscr (x, y); - L = loss (model, x, y, 'LossFun', 'classiferror'); - assert (L, 0.3333, 1e-4) -***** error ... - loss (MODEL) -***** error ... - loss (MODEL, ones (4,2)) -***** error ... - loss (MODEL, ones (4,2), ones (4,1), 'LossFun') -***** error ... - loss (MODEL, ones (4,2), ones (3,1)) -***** error ... - loss (MODEL, ones (4,2), ones (4,1), 'LossFun', 'a') -***** error ... - loss (MODEL, ones (4,2), ones (4,1), 'Weights', 'w') - load fisheriris - mdl = fitcdiscr (meas, species); - X = mean (meas); - Y = {'versicolor'}; - m = margin (mdl, X, Y); - assert (m, 1, 1e-6) + 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/optimalleaforder.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/plsregress.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - X = [1, 2; 3, 4; 5, 6]; - Y = [1; 2; 1]; - mdl = fitcdiscr (X, Y, "gamma", 0.5); - m = margin (mdl, X, Y); - assert (m, [0.3333; -0.3333; 0.3333], 1e-4) -***** error ... - margin (MODEL) -***** error ... - margin (MODEL, ones (4,2)) -***** error ... - margin (MODEL, ones (4,2), ones (3,1)) -28 tests, 28 passed, 0 known failure, 0 skipped -[inst/Classification/ClassificationGAM.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/ClassificationGAM.m + 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/fitcgam.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitcgam.m ***** demo ## Train a GAM classifier for binary classification ## using specific data and plot the decision boundaries. @@ -21514,19 +17763,37 @@ 1; 1; 1; 1; 1]; ## Train the GAM model - obj = fitcgam (X, Y, "Interactions", "all") + obj = fitcgam (X, Y, "Interactions", "all"); ## Create a grid of values for prediction x1 = [min(X(:,1)):0.1:max(X(:,1))]; x2 = [min(X(:,2)):0.1:max(X(:,2))]; [x1G, x2G] = meshgrid (x1, x2); XGrid = [x1G(:), x2G(:)]; - [labels, score] = predict (obj, XGrid); + pred = predict (obj, XGrid); + + ## Plot decision boundaries and data points + predNumeric = str2double (pred); + gidx = predNumeric > 0.5; + + 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("Feature 1"); + ylabel("Feature 2"); + title("Generalized Additive Model (GAM) Decision Boundary"); + legend({"Class 1 Region", "Class 0 Region", ... + "Class 1 Samples", "Class 0 Samples"}, ... + "location", "northwest") + axis tight + hold off ***** test x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; y = [0; 0; 1; 1]; PredictorNames = {'Feature1', 'Feature2', 'Feature3'}; - a = ClassificationGAM (x, y, "PredictorNames", PredictorNames); + a = fitcgam (x, y, "PredictorNames", PredictorNames); assert (class (a), "ClassificationGAM"); assert ({a.X, a.Y, a.NumObservations}, {x, y, 4}) assert ({a.NumPredictors, a.ResponseName}, {3, "Y"}) @@ -21534,475 +17801,238 @@ assert (a.PredictorNames, PredictorNames) assert (a.BaseModel.Intercept, 0) ***** test - load fisheriris - inds = strcmp (species,'versicolor') | strcmp (species,'virginica'); - X = meas(inds, :); - Y = species(inds, :)'; - Y = strcmp (Y, 'virginica')'; - a = ClassificationGAM (X, Y, 'Formula', 'Y ~ x1 + x2 + x3 + x4 + x1:x2 + x2:x3'); - assert (class (a), "ClassificationGAM"); - assert ({a.X, a.Y, a.NumObservations}, {X, Y, 100}) - assert ({a.NumPredictors, a.ResponseName}, {4, "Y"}) - assert (a.ClassNames, {'0'; '1'}) - assert (a.Formula, 'Y ~ x1 + x2 + x3 + x4 + x1:x2 + x2:x3') - assert (a.PredictorNames, {'x1', 'x2', 'x3', 'x4'}) - assert (a.ModelwInt.Intercept, 0) -***** test - X = [2, 3, 5; 4, 6, 8; 1, 2, 3; 7, 8, 9; 5, 4, 3]; - Y = [0; 1; 0; 1; 1]; - a = ClassificationGAM (X, Y, 'Knots', [4, 4, 4], 'Order', [3, 3, 3]); - assert (class (a), "ClassificationGAM"); - assert ({a.X, a.Y, a.NumObservations}, {X, Y, 5}) - assert ({a.NumPredictors, a.ResponseName}, {3, "Y"}) - assert (a.ClassNames, {'0'; '1'}) - assert (a.PredictorNames, {'x1', 'x2', 'x3'}) - assert (a.Knots, [4, 4, 4]) - assert (a.Order, [3, 3, 3]) - assert (a.DoF, [7, 7, 7]) - assert (a.BaseModel.Intercept, 0.4055, 1e-1) -***** error ClassificationGAM () -***** error ... - ClassificationGAM (ones(4, 1)) -***** error ... - ClassificationGAM (ones (4,2), ones (1,4)) -***** error ... - ClassificationGAM (ones (5,2), ones (5,1), "PredictorNames", ["A"]) -***** error ... - ClassificationGAM (ones (5,2), ones (5,1), "PredictorNames", "A") -***** error ... - ClassificationGAM (ones (5,2), ones (5,1), "PredictorNames", {"A", "B", "C"}) -***** error ... - ClassificationGAM (ones (5,2), ones (5,1), "ResponseName", {"Y"}) -***** error ... - ClassificationGAM (ones (5,2), ones (5,1), "ResponseName", 1) -***** error ... - ClassificationGAM (ones(10,2), ones (10,1), "ClassNames", @(x)x) -***** error ... - ClassificationGAM (ones(10,2), ones (10,1), "ClassNames", ['a']) -***** error ... - ClassificationGAM (ones(10,2), ones (10,1), "ClassNames", [1, 2]) -***** error ... - ClassificationGAM (ones(5,2), {'a';'b';'a';'a';'b'}, "ClassNames", {'a','c'}) -***** error ... - ClassificationGAM (ones(10,2), logical (ones (10,1)), "ClassNames", [true, false]) -***** error ... - ClassificationGAM (ones (5,2), ones (5,1), "Cost", [1, 2]) -***** error ... - ClassificationGAM (ones (5,2), ones (5,1), "Cost", "string") -***** error ... - ClassificationGAM (ones (5,2), ones (5,1), "Cost", {eye(2)}) -***** test x = [1, 2; 3, 4; 5, 6; 7, 8; 9, 10]; y = [1; 0; 1; 0; 1]; - a = ClassificationGAM (x, y, "interactions", "all"); - l = {'0'; '0'; '0'; '0'; '0'}; - s = [0.3760, 0.6240; 0.4259, 0.5741; 0.3760, 0.6240; ... - 0.4259, 0.5741; 0.3760, 0.6240]; - [labels, scores] = predict (a, x); + a = fitcgam (x, y, "interactions", "all"); assert (class (a), "ClassificationGAM"); assert ({a.X, a.Y, a.NumObservations}, {x, y, 5}) assert ({a.NumPredictors, a.ResponseName}, {2, "Y"}) assert (a.ClassNames, {'1'; '0'}) assert (a.PredictorNames, {'x1', 'x2'}) assert (a.ModelwInt.Intercept, 0.4055, 1e-1) - assert (labels, l) - assert (scores, s, 1e-1) ***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = [0; 0; 1; 1]; - interactions = [false, true, false; true, false, true; false, true, false]; - a = fitcgam (x, y, "learningrate", 0.2, "interactions", interactions); - [label, score] = predict (a, x, "includeinteractions", true); - l = {'0'; '0'; '1'; '1'}; - s = [0.5106, 0.4894; 0.5135, 0.4865; 0.4864, 0.5136; 0.4847, 0.5153]; + load fisheriris + inds = strcmp (species,'versicolor') | strcmp (species,'virginica'); + X = meas(inds, :); + Y = species(inds, :)'; + Y = strcmp (Y, 'virginica')'; + a = fitcgam (X, Y, 'Formula', 'Y ~ x1 + x2 + x3 + x4 + x1:x2 + x2:x3'); assert (class (a), "ClassificationGAM"); - assert ({a.X, a.Y, a.NumObservations}, {x, y, 4}) - assert ({a.NumPredictors, a.ResponseName}, {3, "Y"}) + assert ({a.X, a.Y, a.NumObservations}, {X, Y, 100}) + assert ({a.NumPredictors, a.ResponseName}, {4, "Y"}) assert (a.ClassNames, {'0'; '1'}) - assert (a.PredictorNames, {'x1', 'x2', 'x3'}) + assert (a.Formula, 'Y ~ x1 + x2 + x3 + x4 + x1:x2 + x2:x3') + assert (a.PredictorNames, {'x1', 'x2', 'x3', 'x4'}) assert (a.ModelwInt.Intercept, 0) - assert (label, l) - assert (score, s, 1e-1) -***** error ... - predict (ClassificationGAM (ones (4,2), ones (4,1))) -***** error ... - predict (ClassificationGAM (ones (4,2), ones (4,1)), []) -***** error ... - predict (ClassificationGAM (ones (4,2), ones (4,1)), 1) -***** shared x, y, obj - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = [0; 0; 1; 1]; - obj = fitcgam (x, y); +***** error fitcgam () +***** error fitcgam (ones (4,1)) +***** error + fitcgam (ones (4,2), ones (4, 1), "K") +***** error + fitcgam (ones (4,2), ones (3, 1)) +***** error + fitcgam (ones (4,2), ones (3, 1), "K", 2) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/pca.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/pca.m +***** shared COEFF,SCORE,latent,tsquare,m,x,R,V,lambda,i,S,F ***** test - CVMdl = crossval (obj); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (CVMdl.KFold == 10) - assert (class (CVMdl.Trained{1}), "CompactClassificationGAM") - assert (CVMdl.CrossValidatedModel, "ClassificationGAM") + 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 - CVMdl = crossval (obj, "KFold", 5); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (CVMdl.KFold == 5) - assert (class (CVMdl.Trained{1}), "CompactClassificationGAM") - assert (CVMdl.CrossValidatedModel, "ClassificationGAM") + 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 - CVMdl = crossval (obj, "HoldOut", 0.2); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (class (CVMdl.Trained{1}), "CompactClassificationGAM") - assert (CVMdl.CrossValidatedModel, "ClassificationGAM") + 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 - partition = cvpartition (y, 'KFold', 3); - CVMdl = crossval (obj, 'cvPartition', partition); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert (CVMdl.KFold == 3) - assert (class (CVMdl.Trained{1}), "CompactClassificationGAM") - assert (CVMdl.CrossValidatedModel, "ClassificationGAM") -***** error ... - crossval (obj, "kfold") -***** error... - crossval (obj, "kfold", 12, "holdout", 0.2) -***** error ... - crossval (obj, "kfold", 'a') -***** error ... - crossval (obj, "holdout", 2) -***** error ... - crossval (obj, "leaveout", 1) -***** error ... - crossval (obj, "cvpartition", 1) -34 tests, 34 passed, 0 known failure, 0 skipped -[inst/Classification/ClassificationDiscriminant.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/ClassificationDiscriminant.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/ridge.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/ridge.m ***** demo - ## Create discriminant classifier - ## Evaluate some model predictions on new data. + ## 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") - load fisheriris - x = meas; - y = species; - xc = [min(x); mean(x); max(x)]; - obj = fitcdiscr (x, y); - [label, score, cost] = predict (obj, xc); -***** demo - load fisheriris - model = fitcdiscr (meas, species); - X = mean (meas); - Y = {'versicolor'}; - ## Compute loss for discriminant model - L = loss (model, X, Y) -***** demo - load fisheriris - mdl = fitcdiscr (meas, species); - X = mean (meas); - Y = {'versicolor'}; - ## Margin for discriminant model - m = margin (mdl, X, Y) ***** demo - load fisheriris - x = meas; - y = species; - obj = fitcdiscr (x, y, "gamma", 0.4); - ## Cross-validation for discriminant model - CVMdl = crossval (obj) -***** test - load fisheriris - x = meas; - y = species; - PredictorNames = {'Sepal Length', 'Sepal Width', 'Petal Length', 'Petal Width'}; - Mdl = ClassificationDiscriminant (x, y, "PredictorNames", PredictorNames); - sigma = [0.265008, 0.092721, 0.167514, 0.038401; ... - 0.092721, 0.115388, 0.055244, 0.032710; ... - 0.167514, 0.055244, 0.185188, 0.042665; ... - 0.038401, 0.032710, 0.042665, 0.041882]; - mu = [5.0060, 3.4280, 1.4620, 0.2460; ... - 5.9360, 2.7700, 4.2600, 1.3260; ... - 6.5880, 2.9740, 5.5520, 2.0260]; - xCentered = [ 9.4000e-02, 7.2000e-02, -6.2000e-02, -4.6000e-02; ... - -1.0600e-01, -4.2800e-01, -6.2000e-02, -4.6000e-02; ... - -3.0600e-01, -2.2800e-01, -1.6200e-01, -4.6000e-02]; - assert (class (Mdl), "ClassificationDiscriminant"); - assert ({Mdl.X, Mdl.Y, Mdl.NumObservations}, {x, y, 150}) - assert ({Mdl.DiscrimType, Mdl.ResponseName}, {"linear", "Y"}) - assert ({Mdl.Gamma, Mdl.MinGamma}, {0, 0}, 1e-15) - assert (Mdl.ClassNames, unique (species)) - assert (Mdl.Sigma, sigma, 1e-6) - assert (Mdl.Mu, mu, 1e-14) - assert (Mdl.XCentered([1:3],:), xCentered, 1e-14) - assert (Mdl.LogDetSigma, -9.9585, 1e-4) - assert (Mdl.PredictorNames, PredictorNames) -***** test - load fisheriris - x = meas; - y = species; - Mdl = ClassificationDiscriminant (x, y, "Gamma", 0.5); - sigma = [0.265008, 0.046361, 0.083757, 0.019201; ... - 0.046361, 0.115388, 0.027622, 0.016355; ... - 0.083757, 0.027622, 0.185188, 0.021333; ... - 0.019201, 0.016355, 0.021333, 0.041882]; - mu = [5.0060, 3.4280, 1.4620, 0.2460; ... - 5.9360, 2.7700, 4.2600, 1.3260; ... - 6.5880, 2.9740, 5.5520, 2.0260]; - xCentered = [ 9.4000e-02, 7.2000e-02, -6.2000e-02, -4.6000e-02; ... - -1.0600e-01, -4.2800e-01, -6.2000e-02, -4.6000e-02; ... - -3.0600e-01, -2.2800e-01, -1.6200e-01, -4.6000e-02]; - assert (class (Mdl), "ClassificationDiscriminant"); - assert ({Mdl.X, Mdl.Y, Mdl.NumObservations}, {x, y, 150}) - assert ({Mdl.DiscrimType, Mdl.ResponseName}, {"linear", "Y"}) - assert ({Mdl.Gamma, Mdl.MinGamma}, {0.5, 0}) - assert (Mdl.ClassNames, unique (species)) - assert (Mdl.Sigma, sigma, 1e-6) - assert (Mdl.Mu, mu, 1e-14) - assert (Mdl.XCentered([1:3],:), xCentered, 1e-14) - assert (Mdl.LogDetSigma, -8.6884, 1e-4) -***** shared X, Y, MODEL - X = rand (10,2); - Y = [ones(5,1);2*ones(5,1)]; - MODEL = ClassificationDiscriminant (X, Y); -***** error ClassificationDiscriminant () -***** error ... - ClassificationDiscriminant (ones(4, 1)) -***** error ... - ClassificationDiscriminant (ones (4,2), ones (1,4)) -***** error ... - ClassificationDiscriminant (X, Y, "PredictorNames", ["A"]) -***** error ... - ClassificationDiscriminant (X, Y, "PredictorNames", "A") -***** error ... - ClassificationDiscriminant (X, Y, "PredictorNames", {"A", "B", "C"}) -***** error ... - ClassificationDiscriminant (X, Y, "ResponseName", {"Y"}) -***** error ... - ClassificationDiscriminant (X, Y, "ResponseName", 1) -***** error ... - ClassificationDiscriminant (X, Y, "ClassNames", @(x)x) -***** error ... - ClassificationDiscriminant (X, Y, "ClassNames", ['a']) -***** error ... - ClassificationDiscriminant (X, ones (10,1), "ClassNames", [1, 2]) -***** error ... - ClassificationDiscriminant ([1;2;3;4;5], {'a';'b';'a';'a';'b'}, "ClassNames", {'a','c'}) -***** error ... - ClassificationDiscriminant (X, logical (ones (10,1)), "ClassNames", [true, false]) -***** error ... - ClassificationDiscriminant (X, Y, "Prior", {"1", "2"}) -***** error ... - ClassificationDiscriminant (X, ones (10,1), "Prior", [1 2]) -***** error ... - ClassificationDiscriminant (X, Y, "Cost", [1, 2]) -***** error ... - ClassificationDiscriminant (X, Y, "Cost", "string") -***** error ... - ClassificationDiscriminant (X, Y, "Cost", {eye(2)}) -***** error ... - ClassificationDiscriminant (X, Y, "Cost", ones (3)) -***** error ... - ClassificationDiscriminant (ones (5,2), [1; 1; 2; 2; 2]) -***** error ... - ClassificationDiscriminant (ones (5,2), [1; 1; 2; 2; 2], "PredictorNames", {"A", "B"}) -***** error ... - ClassificationDiscriminant ([1,2;2,2;3,2;4,2;5,2], ones (5, 1)) -***** error ... - ClassificationDiscriminant ([1,2;2,2;3,2;4,2;5,2], ones (5, 1), "PredictorNames", {"A", "B"}) -***** test - load fisheriris - x = meas; - y = species; - Mdl = fitcdiscr (meas, species, "Gamma", 0.5); - [label, score, cost] = predict (Mdl, [2, 2, 2, 2]); - assert (label, {'versicolor'}) - assert (score, [0, 0.9999, 0.0001], 1e-4) - assert (cost, [1, 0.0001, 0.9999], 1e-4) - [label, score, cost] = predict (Mdl, [2.5, 2.5, 2.5, 2.5]); - assert (label, {'versicolor'}) - assert (score, [0, 0.6368, 0.3632], 1e-4) - assert (cost, [1, 0.3632, 0.6368], 1e-4) -***** test - load fisheriris - x = meas; - y = species; - xc = [min(x); mean(x); max(x)]; - Mdl = fitcdiscr (x, y); - [label, score, cost] = predict (Mdl, xc); - l = {'setosa'; 'versicolor'; 'virginica'}; - s = [1, 0, 0; 0, 1, 0; 0, 0, 1]; - c = [0, 1, 1; 1, 0, 1; 1, 1, 0]; - assert (label, l) - assert (score, s, 1e-4) - assert (cost, c, 1e-4) -***** error ... - predict (MODEL) -***** error ... - predict (MODEL, []) -***** error ... - predict (MODEL, 1) -***** test - load fisheriris - model = fitcdiscr (meas, species); - x = mean (meas); - y = {'versicolor'}; - L = loss (model, x, y); - assert (L, 0) -***** test - x = [1, 2; 3, 4; 5, 6]; - y = {'A'; 'B'; 'A'}; - model = fitcdiscr (x, y, "Gamma", 0.4); - x_test = [1, 6; 3, 3]; - y_test = {'A'; 'B'}; - L = loss (model, x_test, y_test); - assert (L, 0.3333, 1e-4) -***** test - x = [1, 2; 3, 4; 5, 6; 7, 8]; - y = ['1'; '2'; '3'; '1']; - model = fitcdiscr (x, y, "gamma" , 0.5); - x_test = [3, 3]; - y_test = ['1']; - L = loss (model, x_test, y_test, 'LossFun', 'quadratic'); - assert (L, 0.2423, 1e-4) -***** test - x = [1, 2; 3, 4; 5, 6; 7, 8]; - y = ['1'; '2'; '3'; '1']; - model = fitcdiscr (x, y, "gamma" , 0.5); - x_test = [3, 3; 5, 7]; - y_test = ['1'; '2']; - L = loss (model, x_test, y_test, 'LossFun', 'classifcost'); - assert (L, 0.3333, 1e-4) -***** test - x = [1, 2; 3, 4; 5, 6; 7, 8]; - y = ['1'; '2'; '3'; '1']; - model = fitcdiscr (x, y, "gamma" , 0.5); - x_test = [3, 3; 5, 7]; - y_test = ['1'; '2']; - L = loss (model, x_test, y_test, 'LossFun', 'hinge'); - assert (L, 0.5886, 1e-4) -***** test - x = [1, 2; 3, 4; 5, 6; 7, 8]; - y = ['1'; '2'; '3'; '1']; - model = fitcdiscr (x, y, "gamma" , 0.5); - x_test = [3, 3; 5, 7]; - y_test = ['1'; '2']; - W = [1; 2]; - L = loss (model, x_test, y_test, 'LossFun', 'logit', 'Weights', W); - assert (L, 0.5107, 1e-4) -***** test - x = [1, 2; 3, 4; 5, 6]; - y = {'A'; 'B'; 'A'}; - model = fitcdiscr (x, y, "gamma" , 0.5); - x_with_nan = [1, 2; NaN, 4]; - y_test = {'A'; 'B'}; - L = loss (model, x_with_nan, y_test); - assert (L, 0.3333, 1e-4) + + 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 + ***** test - x = [1, 2; 3, 4; 5, 6]; - y = {'A'; 'B'; 'A'}; - model = fitcdiscr (x, y); - x_with_nan = [1, 2; NaN, 4]; - y_test = {'A'; 'B'}; - L = loss (model, x_with_nan, y_test, 'LossFun', 'logit'); - assert (isnan (L)) + b = ridge ([1 2 3 4]', [1 2 3 4; 2 3 4 5]', 1); + assert (b, [0.5533; 0.5533], 1e-4); ***** test - x = [1, 2; 3, 4; 5, 6]; - y = {'A'; 'B'; 'A'}; - model = fitcdiscr (x, y); - customLossFun = @(C, S, W, Cost) sum (W .* sum (abs (C - S), 2)); - L = loss (model, x, y, 'LossFun', customLossFun); - assert (L, 0.8889, 1e-4) + b = ridge ([1 2 3 4]', [1 2 3 4; 2 3 4 5]', 2); + assert (b, [0.4841; 0.4841], 1e-4); ***** test - x = [1, 2; 3, 4; 5, 6]; - y = [1; 2; 1]; - model = fitcdiscr (x, y); - L = loss (model, x, y, 'LossFun', 'classiferror'); - assert (L, 0.3333, 1e-4) -***** error ... - loss (MODEL) -***** error ... - loss (MODEL, ones (4,2)) -***** error ... - loss (MODEL, [], zeros (2)) -***** error ... - loss (MODEL, 1, zeros (2)) -***** error ... - loss (MODEL, ones (4,2), ones (4,1), 'LossFun') -***** error ... - loss (MODEL, ones (4,2), ones (3,1)) -***** error ... - loss (MODEL, ones (4,2), ones (4,1), 'LossFun', 'a') -***** error ... - loss (MODEL, ones (4,2), ones (4,1), 'Weights', 'w') - load fisheriris - mdl = fitcdiscr (meas, species); - X = mean (meas); - Y = {'versicolor'}; - m = margin (mdl, X, Y); - assert (m, 1, 1e-6) + load acetylene + x = [x1, x2, x3]; + b = ridge (y, x, 0); + assert (b,[10.2273;1.97128;-0.601818],1e-4); ***** test - X = [1, 2; 3, 4; 5, 6]; - Y = [1; 2; 1]; - mdl = fitcdiscr (X, Y, "gamma", 0.5); - m = margin (mdl, X, Y); - assert (m, [0.3333; -0.3333; 0.3333], 1e-4) -***** error ... - margin (MODEL) -***** error ... - margin (MODEL, ones (4,2)) -***** error ... - margin (MODEL, [], zeros (2)) -***** error ... - margin (MODEL, 1, zeros (2)) -***** error ... - margin (MODEL, ones (4,2), ones (3,1)) -***** shared x, y, obj - load fisheriris - x = meas; - y = species; - obj = fitcdiscr (x, y, "gamma", 0.4); + load acetylene + x = [x1, x2, x3]; + b = ridge (y, x, 0.0005); + assert (b,[10.2233;1.9712;-0.6056],1e-4); ***** test - CVMdl = crossval (obj); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (CVMdl.KFold == 10) - assert (class (CVMdl.Trained{1}), "CompactClassificationDiscriminant") - assert (CVMdl.CrossValidatedModel, "ClassificationDiscriminant") + load acetylene + x = [x1, x2, x3]; + b = ridge (y, x, 0.001); + assert (b,[10.2194;1.9711;-0.6094],1e-4); ***** test - CVMdl = crossval (obj, "KFold", 3); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (CVMdl.KFold == 3) - assert (class (CVMdl.Trained{1}), "CompactClassificationDiscriminant") - assert (CVMdl.CrossValidatedModel, "ClassificationDiscriminant") + load acetylene + x = [x1, x2, x3]; + b = ridge (y, x, 0.002); + assert (b,[10.2116;1.9709;-0.6169],1e-4); ***** test - CVMdl = crossval (obj, "HoldOut", 0.2); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (class (CVMdl.Trained{1}), "CompactClassificationDiscriminant") - assert (CVMdl.CrossValidatedModel, "ClassificationDiscriminant") + load acetylene + x = [x1, x2, x3]; + b = ridge (y, x, 0.005); + assert (b,[10.1882;1.9704;-0.6393],1e-4); ***** test - CVMdl = crossval (obj, "LeaveOut", 'on'); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert ({CVMdl.X, CVMdl.Y}, {x, y}) - assert (class (CVMdl.Trained{1}), "CompactClassificationDiscriminant") - assert (CVMdl.CrossValidatedModel, "ClassificationDiscriminant") + 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/stepwisefit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/stepwisefit.m ***** test - partition = cvpartition (y, 'KFold', 3); - CVMdl = crossval (obj, 'cvPartition', partition); - assert (class (CVMdl), "ClassificationPartitionedModel") - assert (CVMdl.KFold == 3) - assert (class (CVMdl.Trained{1}), "CompactClassificationDiscriminant") - assert (CVMdl.CrossValidatedModel, "ClassificationDiscriminant") -***** error ... - crossval (obj, "kfold") -***** error... - crossval (obj, "kfold", 12, "holdout", 0.2) -***** error ... - crossval (obj, "kfold", 'a') -***** error ... - crossval (obj, "holdout", 2) -***** error ... - crossval (obj, "leaveout", 1) -***** error ... - crossval (obj, "cvpartition", 1) -65 tests, 65 passed, 0 known failure, 0 skipped + % 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/x2fx.m] >>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/x2fx.m ***** test @@ -22021,249 +18051,6 @@ ***** 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/fitcknn.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitcknn.m -***** 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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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 = fitcknn (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}) -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = ["a"; "a"; "b"; "b"]; - a = fitcknn (x, y, "NSMethod", "exhaustive", "CrossVal", "on"); - assert (class (a), "ClassificationPartitionedModel"); - assert ({a.X, a.Y, a.Trained{1}.NumNeighbors}, {x, y, 1}) - assert (a.ModelParameters.NSMethod, "exhaustive") - assert (a.ModelParameters.Distance, "euclidean") - assert ({a.Trained{1}.BucketSize}, {50}) -***** error fitcknn () -***** error fitcknn (ones (4,1)) -***** error - fitcknn (ones (4,2), ones (4, 1), "K") -***** error - fitcknn (ones (4,2), ones (3, 1)) -***** error - fitcknn (ones (4,2), ones (3, 1), "K", 2) -***** error - fitcknn (ones (4,2), ones (4, 1), "CrossVal", 2) -***** error - fitcknn (ones (4,2), ones (4, 1), "CrossVal", 'a') -***** error ... - fitcknn (ones (4,2), ones (4, 1), "KFold", 10, "Holdout", 0.3) -29 tests, 29 passed, 0 known failure, 0 skipped -[inst/optimalleaforder.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/anova2.m] >>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/anova2.m ***** demo @@ -22353,11219 +18140,15551 @@ 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/stepwisefit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/stepwisefit.m +[inst/gmdistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/gmdistribution.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/ecdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 + 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); - ## 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:"); + [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)); - ## 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/cdfcalc.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fitcsvm.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitcsvm.m -***** demo - ## Use a subset of Fisher's iris data set + D = GM.mahal ([1;0]); + assert (D - M(1,:), zeros (1,2), 1e-6); - load fisheriris - inds = ! strcmp (species, 'setosa'); - X = meas(inds, [3,4]); - Y = species(inds); + P = GM.posterior ([0 1]); + assert (P - P2(2,:), zeros (1,2), 1e-6); - ## Train a linear SVM classifier - SVMModel = fitcsvm (X, Y) + R = GM.random(20); + assert (size(R), [20, 2]); - ## Plot a scatter diagram of the data and circle the support vectors. - sv = SVMModel.SupportVectors; - figure - gscatter (X(:,1), X(:,2), Y) - hold on - plot (sv(:,1), sv(:,2), 'ko', 'MarkerSize', 10) - legend ('versicolor', 'virginica', 'Support Vector') - hold off -***** test - x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; - y = {"a"; "a"; "b"; "b"}; - a = fitcsvm (x, y); - assert (class (a), "ClassificationSVM"); - assert ({a.X, a.Y}, {x, y}) - assert (a.NumObservations, 4) - assert ({a.ResponseName, a.PredictorNames}, {"Y", {"x1", "x2", "x3"}}) - assert (a.ModelParameters.SVMtype, "c_svc") - assert (a.ClassNames, {"a"; "b"}) -***** test - x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; - y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; - a = fitcsvm (x, y); - assert (class (a), "ClassificationSVM"); - assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "linear"}) - assert (a.ModelParameters.BoxConstraint, 1) - assert (a.ModelParameters.KernelOffset, 0) - assert (a.ClassNames, [1; -1]) -***** test - x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; - y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; - a = fitcsvm (x, y, "KernelFunction", "rbf", "BoxConstraint", 2, ... - "KernelOffset", 2); - assert (class (a), "ClassificationSVM"); - assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "rbf"}) - assert (a.ModelParameters.BoxConstraint, 2) - assert (a.ModelParameters.KernelOffset, 2) - assert (isempty (a.Alpha), true) - assert (isempty (a.Beta), false) -***** test - x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; - y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; - a = fitcsvm (x, y, "KernelFunction", "polynomial", "PolynomialOrder", 3); - assert (class (a), "ClassificationSVM"); - assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "polynomial"}) - assert (a.ModelParameters.PolynomialOrder, 3) - assert (isempty (a.Alpha), true) - assert (isempty (a.Beta), false) -***** test - x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; - y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; - a = fitcsvm (x, y, "KernelFunction", "linear", "PolynomialOrder", 3); - assert (class (a), "ClassificationSVM"); - assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "linear"}) - assert (a.ModelParameters.PolynomialOrder, 3) - assert (isempty (a.Alpha), false) - assert (isempty (a.Beta), true) -***** test - x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; - y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; - a = fitcsvm (x, y, "KernelFunction", "linear", "CrossVal", 'on'); - assert (class (a), "ClassificationPartitionedModel"); - assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "linear"}) - assert (a.ModelParameters.PolynomialOrder, 3) - assert (isempty (a.Trained{1}.Alpha), false) - assert (isempty (a.Trained{1}.Beta), true) -***** error fitcsvm () -***** error fitcsvm (ones (4,1)) -***** error - fitcsvm (ones (4,2), ones (4, 1), 'KFold') -***** error - fitcsvm (ones (4,2), ones (3, 1)) -***** error - fitcsvm (ones (4,2), ones (3, 1), 'KFold', 2) -***** error - fitcsvm (ones (4,2), ones (4, 1), "CrossVal", 2) -***** error - fitcsvm (ones (4,2), ones (4, 1), "CrossVal", 'a') -***** error ... - fitcsvm (ones (4,2), ones (4, 1), "KFold", 10, "Holdout", 0.3) -14 tests, 14 passed, 0 known failure, 0 skipped -[inst/hmmviterbi.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/hmmviterbi.m + R = GM.random(); + assert (size(R), [1, 2]); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/mnrfit.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/mnrfit.m +***** error mnrfit (ones (50,1)) +***** error ... + mnrfit ({1 ;2 ;3 ;4 ;5}, ones (5,1)) +***** error ... + mnrfit (ones (50, 4, 2), ones (50, 1)) +***** error ... + mnrfit (ones (50, 4), ones (50, 1, 3)) +***** error ... + mnrfit (ones (50, 4), ones (45,1)) +***** error ... + mnrfit (ones (5, 4), {1 ;2 ;3 ;4 ;5}) +***** error ... + mnrfit (ones (5, 4), ones (5, 1), "model") +***** error ... + mnrfit (ones (5, 4), {"q","q";"w","w";"q","q";"w","w";"q","q"}) +***** error ... + mnrfit (ones (5, 4), [1, 2; 1, 2; 1, 2; 1, 2; 1, 2]) +***** error ... + mnrfit (ones (5, 4), [1; -1; 1; 2; 1]) +***** error ... + mnrfit (ones (5, 4), [1; 2; 3; 2; 1], "model", "nominal") +***** error ... + mnrfit (ones (5, 4), [1; 2; 3; 2; 1], "model", "hierarchical") +***** error ... + mnrfit (ones (5, 4), [1; 2; 3; 2; 1], "model", "whatever") +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/ttest2.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/ttest2.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); + 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/ttest.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/ttest.m ***** 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/pdist2.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fishertest.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tabulate.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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) + 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/ismissing.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/dist_obj/RayleighDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (RayleighDistribution, "invalidNAME", "pdf") +***** error ... + plot (RayleighDistribution, "PlotType", "probability") +***** 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) +90 tests, 90 passed, 0 known failure, 0 skipped +[inst/dist_obj/LoguniformDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (LoguniformDistribution, "invalidNAME", "pdf") +***** error ... + plot (LoguniformDistribution, "PlotType", "probability") +***** 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) +65 tests, 65 passed, 0 known failure, 0 skipped +[inst/dist_obj/NormalDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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, 3e-16); +***** assert (median (pd), 0); +***** assert (median (t), 0, 3e-16); +***** 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 ... + plot (NormalDistribution, "invalidNAME", "pdf") +***** error ... + plot (NormalDistribution, "PlotType", "probability") +***** 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) +95 tests, 95 passed, 0 known failure, 0 skipped +[inst/dist_obj/RicianDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (RicianDistribution, "invalidNAME", "pdf") +***** error ... + plot (RicianDistribution, "PlotType", "probability") +***** 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) +97 tests, 97 passed, 0 known failure, 0 skipped +[inst/dist_obj/TriangularDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (TriangularDistribution, "invalidNAME", "pdf") +***** error <'probability' PlotType is not supported for 'TriangularDistribution'.> ... + plot (TriangularDistribution, "PlotType", "probability") +***** 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) +69 tests, 69 passed, 0 known failure, 0 skipped +[inst/dist_obj/BetaDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_obj/BetaDistribution.m ***** 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,:) + ## Generate a data set of 5000 random samples from a Beta distribution with + ## parameters a = 2 and b = 4. Fit a Beta distribution to this data and plot + ## a PDF of the fitted distribution superimposed on a histogram of the data - last = table(end-6:end,:) + pd = makedist ("Beta", "a", 2, "b", 4) + randg ("seed", 21); + data = random (pd, 5000, 1); + pd = fitdist (data, "Beta") + plot (pd) + title (sprintf ("Fitted Beta distribution with a = %0.2f and b = %0.2f", ... + pd.a, pd.b)) ***** demo - ## Create a frequency table from a character array - load carsmall + ## Plot the PDF of a Beta distribution, with parameters a = 2 and b = 4, + ## truncated at [0.1, 0.8] intervals. Generate 10000 random samples from + ## this truncated distribution and superimpose a histogram with 100 bins + ## scaled accordingly - ## Tabulate the data in the Origin variable, which shows the - ## country of origin of each car in the data set - tabulate (Origin) + pd = makedist ("Beta", "a", 2, "b", 4) + t = truncate (pd, 0.1, 0.8) + randg ("seed", 21); + data = random (t, 10000, 1); + plot (t) + title ("Beta distribution (a = 2, b = 4) truncated at [0.1, 0.8]") + hold on + hist (data, 100, 140) + hold off ***** 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); + ## Generate a data set of 100 random samples from a Beta distribution with + ## parameters a = 2 and b = 4. Fit a Beta distribution to this data and plot + ## its CDF superimposed over an empirical CDF of the data - ## 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/signtest.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/signtest.m -***** 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); -***** error signtest (ones (2)) -***** error ... - signtest ([1, 2, 3, 4], ones (2)) -***** error ... - signtest ([1, 2, 3, 4], [1, 2, 3]) -***** error ... - signtest ([1, 2, 3, 4], [], 'tail') -***** error ... - signtest ([1, 2, 3, 4], [], 'alpha', 1.2) -***** error ... - signtest ([1, 2, 3, 4], [], 'alpha', 0) -***** error ... - signtest ([1, 2, 3, 4], [], 'alpha', -0.05) -***** error ... - signtest ([1, 2, 3, 4], [], 'alpha', "a") -***** error ... - signtest ([1, 2, 3, 4], [], 'alpha', [0.01, 0.05]) -***** error ... - signtest ([1, 2, 3, 4], [], 'tail', 0.01) -***** error ... - signtest ([1, 2, 3, 4], [], 'tail', {"both"}) -***** error ... - signtest ([1, 2, 3, 4], [], 'tail', "some") -***** error ... - signtest ([1, 2, 3, 4], [], 'method', 'exact', 'tail', "some") -***** error ... - signtest ([1, 2, 3, 4], [], 'method', 0.01) -***** error ... - signtest ([1, 2, 3, 4], [], 'method', {"exact"}) -***** error ... - signtest ([1, 2, 3, 4], [], 'method', "some") -***** error ... - signtest ([1, 2, 3, 4], [], 'tail', "both", 'method', "some") -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/kstest2.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/einstein.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/geomean.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ztest.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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 - 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 - 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/qrandn.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/qrandn.m + pd = makedist ("Beta", "a", 2, "b", 4) + randg ("seed", 21); + data = random (pd, 100, 1); + pd = fitdist (data, "Beta") + plot (pd, "plottype", "cdf") + title (sprintf ("Fitted Beta distribution with a = %0.2f and b = %0.2f", ... + pd.a, pd.b)) + legend ({"empirical CDF", "fitted CDF"}, "location", "east") ***** demo - z = qrandn (-5, 5e6); - [c x] = hist (z,linspace(-1.5,1.5,200),1); - figure(1) - plot(x,c,"r."); axis tight; axis([-1.5,1.5]); - - z = qrandn (-0.14286, 5e6); - [c x] = hist (z,linspace(-2,2,200),1); - figure(2) - plot(x,c,"r."); axis tight; axis([-2,2]); - - z = qrandn (2.75, 5e6); - [c x] = hist (z,linspace(-1e3,1e3,1e3),1); - figure(3) - semilogy(x,c,"r."); axis tight; axis([-100,100]); + ## Generate a data set of 200 random samples from a Beta distribution with + ## parameters a = 2 and b = 4. Display a probability plot for the Beta + ## distribution fit to the data. - # --------- - # Figures from the reference paper. -***** error qrandn ([1 2], 1) -***** error qrandn (4, 1) -***** error qrandn (3, 1) -***** error qrandn (2.5, 1, 2, 3) -***** error qrandn (2.5) -***** test - q = 1.5; - s = [2, 3]; - z = qrandn (q, s); - assert (isnumeric (z) && isequal (size (z), s)); -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/bar3.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/bar3.m + pd = makedist ("Beta", "a", 2, "b", 4) + randg ("seed", 21); + data = random (pd, 200, 1); + pd = fitdist (data, "Beta") + plot (pd, "plottype", "probability") + title (sprintf ("Probability plot of a fitted Beta distribution with a = %0.2f and b = %0.2f", ... + pd.a, pd.b)) + legend ({"empirical CDF", "fitted CDF"}, "location", "southeast") +***** 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 ... + plot (BetaDistribution, "invalidNAME", "pdf") +***** error ... + plot (BetaDistribution, "PlotType", "probability") +***** 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) +96 tests, 96 passed, 0 known failure, 0 skipped +[inst/dist_obj/BirnbaumSaundersDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_obj/BirnbaumSaundersDistribution.m ***** demo - ## Ploting 5 bars in the same series. + ## Generate a data set of 5000 random samples from a Birnbaum-Saunders + ## distribution with parameters β = 1 and γ = 0.5. Fit a Birnbaum-Saunders + ## distribution to this data and plot a PDF of the fitted distribution + ## superimposed on a histogram of the data - z = [50; 40; 30; 20; 10]; - bar3 (z); + pd = makedist ("BirnbaumSaunders", "beta", 1, "gamma", 0.5) + randg ("seed", 21); + data = random (pd, 5000, 1); + pd = fitdist (data, "BirnbaumSaunders") + plot (pd) + msg = "Fitted Birnbaum-Saunders distribution with a = %0.2f and b = %0.2f"; + title (sprintf (msg, pd.beta, pd.gamma)) ***** demo - ## Ploting 5 bars in different groups. + ## Plot the PDF of a Birnbaum-Saunders distribution, with parameters beta = 1 + ## and gamma = 0.5, truncated at [0, 2] intervals. Generate 10000 random + ## samples from this truncated distribution and superimpose a histogram with + ## 100 bins scaled accordingly - z = [50, 40, 30, 20, 10]; - bar3 (z); + pd = makedist ("BirnbaumSaunders", "beta", 1, "gamma", 0.5) + t = truncate (pd, 0, 2) + randg ("seed", 21); + data = random (t, 10000, 1); + plot (t) + title ("Birnbaum-Saunders distribution (a = 2, b = 4) truncated at [0.1, 0.8]") + hold on + hist (data, 100, 50) + hold off ***** demo - ## A 3D bar graph with each series corresponding to a column in z. + ## Generate a data set of 100 random samples from a Birnbaum-Saunders + ## distribution with parameters β = 1 and γ = 0.5. Fit a Birnbaum-Saunders + ## distribution to this data and plot its CDF superimposed over an empirical + ## CDF of the data - z = [1, 4, 7; 2, 5, 8; 3, 6, 9; 4, 7, 10]; - bar3 (z); + pd = makedist ("BirnbaumSaunders", "beta", 1, "gamma", 0.5) + randg ("seed", 21); + data = random (pd, 100, 1); + pd = fitdist (data, "BirnbaumSaunders") + plot (pd, "plottype", "cdf") + title (sprintf ("Fitted Beta distribution with a = %0.2f and b = %0.2f", ... + pd.beta, pd.gamma)) + legend ({"empirical CDF", "fitted CDF"}, "location", "east") +***** 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 ... + plot (BirnbaumSaundersDistribution, "invalidNAME", "pdf") +***** error ... + plot (BirnbaumSaundersDistribution, "PlotType", "probability") +***** 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) +96 tests, 96 passed, 0 known failure, 0 skipped +[inst/dist_obj/NegativeBinomialDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_obj/NegativeBinomialDistribution.m +***** shared pd, t, t_inf + pd = NegativeBinomialDistribution (5, 0.5); + t = truncate (pd, 2, 4); + t_inf = truncate (pd, 2, Inf); +***** assert (cdf (pd, [0:5]), [0.0312, 0.1094, 0.2266, 0.3633, 0.5, 0.6230], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0.3, 0.65, 1, 1], 1e-4); +***** assert (cdf (t_inf, [0:5]), [0, 0, 0.1316, 0.2851, 0.4386, 0.5768], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.1094, 0.2266, 0.3633, 0.5000], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0.3, 0.65, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 2, 4, 5, 7, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2, 3, 3, 4, 4], 1e-4); +***** assert (icdf (t_inf, [0:0.2:1]), [2, 3, 4, 6, 8, Inf], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 4, 5, 7, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 3, 3, 4, 4, NaN], 1e-4); +***** assert (iqr (pd), 4); +***** assert (iqr (t), 2); +***** assert (mean (pd), 5); +***** assert (mean (t), 3.0500, 1e-4); +***** assert (mean (t_inf), 5.5263, 1e-4); +***** assert (median (pd), 4); +***** assert (median (t), 3); +***** assert (pdf (pd, [0:5]), [0.0312, 0.0781, 0.1172, 0.1367, 0.1367, 0.1230], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 0.3, 0.35, 0.35, 0], 1e-4); +***** assert (pdf (t_inf, [0:5]), [0, 0, 0.1316, 0.1535, 0.1535, 0.1382], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.0781, 0.1172, 0.1367, 0.1367, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 0.3, 0.35, 0.35, 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), 3.1623, 1e-4); +***** assert (std (t), 0.8047, 1e-4); +***** assert (std (t_inf), 2.9445, 1e-4); +***** assert (var (pd), 10); +***** assert (var (t), 0.6475, 1e-4); +***** assert (var (t_inf), 8.6704, 1e-4); +***** 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 ... + plot (NegativeBinomialDistribution, "invalidNAME", "pdf") +***** error ... + plot (NegativeBinomialDistribution, "PlotType", "probability") +***** 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) +102 tests, 102 passed, 0 known failure, 0 skipped +[inst/dist_obj/InverseGaussianDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (InverseGaussianDistribution, "invalidNAME", "pdf") +***** error ... + plot (InverseGaussianDistribution, "PlotType", "probability") +***** 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) +96 tests, 96 passed, 0 known failure, 0 skipped +[inst/dist_obj/NakagamiDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (NakagamiDistribution, "invalidNAME", "pdf") +***** error ... + plot (NakagamiDistribution, "PlotType", "probability") +***** 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) +95 tests, 95 passed, 0 known failure, 0 skipped +[inst/dist_obj/BurrDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_obj/BurrDistribution.m ***** demo - ## Specify y-axis locations as tick names. y must be a column vector! + ## Generate a data set of 5000 random samples from a Burr type XII + ## distribution with parameters alpha = 1, c = 2, and k = 1. Fit a Burr type + ## XII distribution to this data and plot a PDF of the fitted distribution + ## superimposed on a histogram of the data - y = [1950, 1960, 1970, 1980, 1990]'; - z = [16, 8, 4, 2, 1]'; - bar3 (y, z); + pd = makedist ("Burr", "alpha", 1, "c", 2, "k", 1) + rand ("seed", 21); + data = random (pd, 5000, 1); + pd = fitdist (data, "Burr") + plot (pd) + msg = strcat (["Fitted Burr type XII distribution with"], ... + [" alpha = %0.2f, c = %0.2f, and k = %0.2f"]); + title (sprintf (msg, pd.alpha, pd.c, pd.k)) ***** demo - ## Plot 3 series as a grouped plot without any space between the grouped bars + ## Plot the PDF of a Burr type XII distribution, with parameters alpha = 1, + ## c = 2, and k = 1, truncated at [0, 2] intervals. Generate 10000 random + ## samples from this truncated distribution and superimpose a histogram with + ## 100 bins scaled accordingly - z = [70 50 33 10; 75 55 35 15; 80 60 40 20]; - bar3 (z, 1, 'grouped'); + pd = makedist ("Burr", "alpha", 1, "c", 2, "k", 1) + t = truncate (pd, 0.5, 2.5) + rand ("seed", 21); + data = random (t, 10000, 1); + plot (t) + title ("Burr type XII distribution (alpha = 1, c = 2, k = 1) truncated at [0.5, 2.5]") + hold on + hist (data, 100, 50) + hold off ***** demo - ## Plot a stacked style 3D bar graph + ## Generate a data set of 100 random samples from a Burr type XII + ## distribution with parameters alpha = 1, c = 2, and k = 1. Fit a Burr type + ## XII distribution to this data and plot its CDF superimposed over an + ## empirical CDF of the data - z = [19, 30, 21, 30; 40, 16, 32, 12]; - b = bar3 (z, 0.5, 'stacked'); -***** error bar3 ("A") -***** error bar3 ({2,3,4,5}) -***** error ... - bar3 ([1,2,3]', ones (2)) -***** error ... - bar3 ([1:5], 1.2) -***** error ... - bar3 ([1:5]', ones (5), 1.2) -***** error ... - bar3 ([1:5]', ones (5), [0.8, 0.7]) -***** error ... - bar3 (ones (5), 'width') -***** error ... - bar3 (ones (5), 'width', 1.2) -***** error ... - bar3 (ones (5), 'width', [0.8, 0.8, 0.8]) -***** error ... - bar3 (ones (5), 'color') -***** error ... - bar3 (ones (5), 'color', [0.8, 0.8]) -***** error ... - bar3 (ones (5), 'color', "brown") -***** error ... - bar3 (ones (5), 'color', {"r", "k", "c", "m", "brown"}) -***** error ... - bar3 (ones (5), 'xlabel') -***** error ... - bar3 (ones (5), 'xlabel', 4) -***** error ... - bar3 (ones (5), 'ylabel') -***** error ... - bar3 (ones (5), 'ylabel', 4) -***** error bar3 (ones (5), 'this', 4) -***** error ... - bar3 (ones (5), 'xlabel', {"A", "B", "C"}) -***** error ... - bar3 (ones (5), 'ylabel', {"A", "B", "C"}) -20 tests, 20 passed, 0 known failure, 0 skipped -[inst/ztest2.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hotelling_t2test.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 (stats.df1, 5); - assert (stats.df2, 49995); -***** test + pd = makedist ("Burr", "alpha", 1, "c", 2, "k", 1) + rand ("seed", 21); + data = random (pd, 100, 1); + pd = fitdist (data, "Burr") + plot (pd, "plottype", "cdf") + msg = strcat (["Fitted Burr type XII distribution with"], ... + [" alpha = %0.2f, c = %0.2f, and k = %0.2f"]); + title (sprintf (msg, pd.alpha, pd.c, pd.k)) + legend ({"empirical CDF", "fitted CDF"}, "location", "east") +***** 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 ... + plot (BurrDistribution, "invalidNAME", "pdf") +***** error ... + plot (BurrDistribution, "PlotType", "probability") +***** 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) +104 tests, 104 passed, 0 known failure, 0 skipped +[inst/dist_obj/ExtremeValueDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (ExtremeValueDistribution, "invalidNAME", "pdf") +***** error ... + plot (ExtremeValueDistribution, "PlotType", "probability") +***** 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) +95 tests, 95 passed, 0 known failure, 0 skipped +[inst/dist_obj/tLocationScaleDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (tLocationScaleDistribution, "invalidNAME", "pdf") +***** error ... + plot (tLocationScaleDistribution, "PlotType", "probability") +***** 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) +102 tests, 102 passed, 0 known failure, 0 skipped +[inst/dist_obj/UniformDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (UniformDistribution, "invalidNAME", "pdf") +***** error ... + plot (UniformDistribution, "PlotType", "probability") +***** 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) +63 tests, 63 passed, 0 known failure, 0 skipped +[inst/dist_obj/MultinomialDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (MultinomialDistribution, "invalidNAME", "pdf") +***** error ... + plot (MultinomialDistribution, "PlotType", "probability") +***** 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) +64 tests, 64 passed, 0 known failure, 0 skipped +[inst/dist_obj/LogisticDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (LogisticDistribution, "invalidNAME", "pdf") +***** error ... + plot (LogisticDistribution, "PlotType", "probability") +***** 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) +95 tests, 95 passed, 0 known failure, 0 skipped +[inst/dist_obj/PiecewiseLinearDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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-3); +***** 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 ... + plot (PiecewiseLinearDistribution, "invalidNAME", "pdf") +***** error ... + plot (PiecewiseLinearDistribution, "PlotType", "probability") +***** 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) +63 tests, 63 passed, 0 known failure, 0 skipped +[inst/dist_obj/GeneralizedExtremeValueDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (GeneralizedExtremeValueDistribution, "invalidNAME", "pdf") +***** error ... + plot (GeneralizedExtremeValueDistribution, "PlotType", "probability") +***** 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) +100 tests, 100 passed, 0 known failure, 0 skipped +[inst/dist_obj/GeneralizedParetoDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (GeneralizedParetoDistribution, "invalidNAME", "pdf") +***** error ... + plot (GeneralizedParetoDistribution, "PlotType", "probability") +***** 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) +100 tests, 100 passed, 0 known failure, 0 skipped +[inst/dist_obj/WeibullDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (WeibullDistribution, "invalidNAME", "pdf") +***** error ... + plot (WeibullDistribution, "PlotType", "probability") +***** 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) +97 tests, 97 passed, 0 known failure, 0 skipped +[inst/dist_obj/BinomialDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_obj/BinomialDistribution.m +***** shared pd, t, t_inf + pd = BinomialDistribution (5, 0.5); + t = truncate (pd, 2, 4); + t_inf = truncate (pd, 2, Inf); +***** assert (cdf (pd, [0:5]), [0.0312, 0.1875, 0.5, 0.8125, 0.9688, 1], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0.4, 0.8, 1, 1], 1e-4); +***** assert (cdf (t_inf, [0:5]), [0, 0, 0.3846, 0.7692, 0.9615, 1], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4, NaN]), [0.1875, 0.5, 0.8125, 0.9688, NaN], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4, NaN]), [0, 0.4, 0.8, 1, NaN], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 2, 2, 3, 3, 5], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2, 2, 3, 3, 4], 1e-4); +***** assert (icdf (t_inf, [0:0.2:1]), [2, 2, 3, 3, 4, 5], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 2, 3, 3, 5, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2, 3, 3, 4, NaN], 1e-4); +***** assert (iqr (pd), 1); +***** assert (iqr (t), 1); +***** assert (mean (pd), 2.5, 1e-10); +***** assert (mean (t), 2.8, 1e-10); +***** assert (mean (t_inf), 2.8846, 1e-4); +***** assert (median (pd), 2.5); +***** assert (median (t), 3); +***** assert (pdf (pd, [0:5]), [0.0312, 0.1562, 0.3125, 0.3125, 0.1562, 0.0312], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 0.4, 0.4, 0.2, 0], 1e-4); +***** assert (pdf (t_inf, [0:5]), [0, 0, 0.3846, 0.3846, 0.1923, 0.0385], 1e-4); +***** assert (pdf (pd, [-1, 1.5, NaN]), [0, 0, 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.1180, 1e-4); +***** assert (std (t), 0.7483, 1e-4); +***** assert (std (t_inf), 0.8470, 1e-4); +***** assert (var (pd), 1.2500, 1e-4); +***** assert (var (t), 0.5600, 1e-4); +***** assert (var (t_inf), 0.7175, 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 ... + plot (BinomialDistribution, "invalidNAME", "pdf") +***** error ... + plot (BinomialDistribution, "PlotType", "probability") +***** 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) +102 tests, 102 passed, 0 known failure, 0 skipped +[inst/dist_obj/GammaDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (GammaDistribution, "invalidNAME", "pdf") +***** error ... + plot (GammaDistribution, "PlotType", "probability") +***** 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) +96 tests, 96 passed, 0 known failure, 0 skipped +[inst/dist_obj/PoissonDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_obj/PoissonDistribution.m +***** shared pd, t, t_inf + pd = PoissonDistribution; + t = truncate (pd, 2, 4); + t_inf = truncate (pd, 2, Inf); +***** assert (cdf (pd, [0:5]), [0.3679, 0.7358, 0.9197, 0.9810, 0.9963, 0.9994], 1e-4); +***** assert (cdf (t, [0:5]), [0, 0, 0.7059, 0.9412, 1, 1], 1e-4); +***** assert (cdf (t_inf, [0:5]), [0, 0, 0.6961, 0.9281, 0.9861, 0.9978], 1e-4); +***** assert (cdf (pd, [1.5, 2, 3, 4]), [0.7358, 0.9197, 0.9810, 0.9963], 1e-4); +***** assert (cdf (t, [1.5, 2, 3, 4]), [0, 0.7059, 0.9412, 1], 1e-4); +***** assert (icdf (pd, [0:0.2:1]), [0, 0, 1, 1, 2, Inf], 1e-4); +***** assert (icdf (t, [0:0.2:1]), [2, 2, 2, 2, 3, 4], 1e-4); +***** assert (icdf (t_inf, [0:0.2:1]), [2, 2, 2, 2, 3, Inf], 1e-4); +***** assert (icdf (pd, [-1, 0.4:0.2:1, NaN]), [NaN, 1, 1, 2, Inf, NaN], 1e-4); +***** assert (icdf (t, [-1, 0.4:0.2:1, NaN]), [NaN, 2, 2, 3, 4, NaN], 1e-4); +***** assert (iqr (pd), 2); +***** assert (iqr (t), 1); +***** assert (mean (pd), 1); +***** assert (mean (t), 2.3529, 1e-4); +***** assert (mean (t_inf), 2.3922, 1e-4); +***** assert (median (pd), 1); +***** assert (median (t), 2); +***** assert (median (t_inf), 2); +***** assert (pdf (pd, [0:5]), [0.3679, 0.3679, 0.1839, 0.0613, 0.0153, 0.0031], 1e-4); +***** assert (pdf (t, [0:5]), [0, 0, 0.7059, 0.2353, 0.0588, 0], 1e-4); +***** assert (pdf (t_inf, [0:5]), [0, 0, 0.6961, 0.2320, 0.0580, 0.0116], 1e-4); +***** assert (pdf (pd, [-1, 1:4, NaN]), [0, 0.3679, 0.1839, 0.0613, 0.0153, NaN], 1e-4); +***** assert (pdf (t, [-1, 1:4, NaN]), [0, 0, 0.7059, 0.2353, 0.0588, 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.5882, 1e-4); +***** assert (std (t_inf), 0.6738, 1e-4); +***** assert (var (pd), 1); +***** assert (var (t), 0.3460, 1e-4); +***** assert (var (t_inf), 0.4540, 1e-4); +***** 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 ... + plot (PoissonDistribution, "invalidNAME", "pdf") +***** error ... + plot (PoissonDistribution, "PlotType", "probability") +***** 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) +97 tests, 97 passed, 0 known failure, 0 skipped +[inst/dist_obj/HalfNormalDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (HalfNormalDistribution, "invalidNAME", "pdf") +***** error ... + plot (HalfNormalDistribution, "PlotType", "probability") +***** 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) +96 tests, 96 passed, 0 known failure, 0 skipped +[inst/dist_obj/LoglogisticDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (LoglogisticDistribution, "invalidNAME", "pdf") +***** error ... + plot (LoglogisticDistribution, "PlotType", "probability") +***** 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) +95 tests, 95 passed, 0 known failure, 0 skipped +[inst/dist_obj/LognormalDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 = 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/jackknife.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/knnsearch.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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); + 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 ... + plot (LognormalDistribution, "invalidNAME", "pdf") +***** error ... + plot (LognormalDistribution, "PlotType", "probability") +***** 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) +95 tests, 95 passed, 0 known failure, 0 skipped +[inst/dist_obj/ExponentialDistribution.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 ... + plot (ExponentialDistribution, "invalidNAME", "pdf") +***** error ... + plot (ExponentialDistribution, "PlotType", "probability") +***** 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) +90 tests, 90 passed, 0 known failure, 0 skipped +[inst/grp2idx.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/grp2idx.m ***** 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); + 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 - 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); + 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/slicesample.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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/hotelling_t2test2.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)); + 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, .15); + assert (var (smpl, 1), 1, .25); +***** error slicesample (); +***** error slicesample (1); +***** error slicesample (1, 1); +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/canoncorr.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/datasample.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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/standardizeMissing.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/isoutlier.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/isoutlier.m -***** demo - A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; - TF = isoutlier (A, "mean") + 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/Classification/CompactClassificationDiscriminant.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/CompactClassificationDiscriminant.m ***** demo - ## Use a moving detection method to detect local outliers in a sine wave + ## Create a discriminant analysis classifier and its compact version + # and compare their size - 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 + load fisheriris + X = meas; + Y = species; - 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 - 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 - 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) + Mdl = fitcdiscr (X, Y, 'ClassNames', unique (species)) + CMdl = crossval (Mdl); + + whos ('Mdl', 'CMdl') ***** 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 fisheriris + x = meas; + y = species; + PredictorNames = {'Sepal Length', 'Sepal Width', 'Petal Length', 'Petal Width'}; + Mdl = fitcdiscr (x, y, "PredictorNames", PredictorNames); + CMdl = compact (Mdl); + sigma = [0.265008, 0.092721, 0.167514, 0.038401; ... + 0.092721, 0.115388, 0.055244, 0.032710; ... + 0.167514, 0.055244, 0.185188, 0.042665; ... + 0.038401, 0.032710, 0.042665, 0.041882]; + mu = [5.0060, 3.4280, 1.4620, 0.2460; ... + 5.9360, 2.7700, 4.2600, 1.3260; ... + 6.5880, 2.9740, 5.5520, 2.0260]; + xCentered = [ 9.4000e-02, 7.2000e-02, -6.2000e-02, -4.6000e-02; ... + -1.0600e-01, -4.2800e-01, -6.2000e-02, -4.6000e-02; ... + -3.0600e-01, -2.2800e-01, -1.6200e-01, -4.6000e-02]; + assert (class (CMdl), "CompactClassificationDiscriminant"); + assert ({CMdl.DiscrimType, CMdl.ResponseName}, {"linear", "Y"}) + assert ({CMdl.Gamma, CMdl.MinGamma}, {0, 0}, 1e-15) + assert (CMdl.ClassNames, unique (species)) + assert (CMdl.Sigma, sigma, 1e-6) + assert (CMdl.Mu, mu, 1e-14) + assert (CMdl.XCentered([1:3],:), xCentered, 1e-14) + assert (CMdl.LogDetSigma, -9.9585, 1e-4) + assert (CMdl.PredictorNames, PredictorNames) ***** test - A = magic(5) + diag(200*ones(1,5)); - T = logical (eye (5)); - assert (isoutlier (A, 2), T) + load fisheriris + x = meas; + y = species; + Mdl = fitcdiscr (x, y, "Gamma", 0.5); + CMdl = compact (Mdl); + sigma = [0.265008, 0.046361, 0.083757, 0.019201; ... + 0.046361, 0.115388, 0.027622, 0.016355; ... + 0.083757, 0.027622, 0.185188, 0.021333; ... + 0.019201, 0.016355, 0.021333, 0.041882]; + mu = [5.0060, 3.4280, 1.4620, 0.2460; ... + 5.9360, 2.7700, 4.2600, 1.3260; ... + 6.5880, 2.9740, 5.5520, 2.0260]; + xCentered = [ 9.4000e-02, 7.2000e-02, -6.2000e-02, -4.6000e-02; ... + -1.0600e-01, -4.2800e-01, -6.2000e-02, -4.6000e-02; ... + -3.0600e-01, -2.2800e-01, -1.6200e-01, -4.6000e-02]; + assert (class (CMdl), "CompactClassificationDiscriminant"); + assert ({CMdl.DiscrimType, CMdl.ResponseName}, {"linear", "Y"}) + assert ({CMdl.Gamma, CMdl.MinGamma}, {0.5, 0}) + assert (CMdl.ClassNames, unique (species)) + assert (CMdl.Sigma, sigma, 1e-6) + assert (CMdl.Mu, mu, 1e-14) + assert (CMdl.XCentered([1:3],:), xCentered, 1e-14) + assert (CMdl.LogDetSigma, -8.6884, 1e-4) +***** error ... + CompactClassificationDiscriminant (1) ***** 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 fisheriris + x = meas; + y = species; + Mdl = fitcdiscr (meas, species, "Gamma", 0.5); + CMdl = compact (Mdl); + [label, score, cost] = predict (CMdl, [2, 2, 2, 2]); + assert (label, {'versicolor'}) + assert (score, [0, 0.9999, 0.0001], 1e-4) + assert (cost, [1, 0.0001, 0.9999], 1e-4) + [label, score, cost] = predict (CMdl, [2.5, 2.5, 2.5, 2.5]); + assert (label, {'versicolor'}) + assert (score, [0, 0.6368, 0.3632], 1e-4) + assert (cost, [1, 0.3632, 0.6368], 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 fisheriris + x = meas; + y = species; + xc = [min(x); mean(x); max(x)]; + Mdl = fitcdiscr (x, y); + CMdl = compact (Mdl); + [label, score, cost] = predict (CMdl, xc); + l = {'setosa'; 'versicolor'; 'virginica'}; + s = [1, 0, 0; 0, 1, 0; 0, 0, 1]; + c = [0, 1, 1; 1, 0, 1; 1, 1, 0]; + assert (label, l) + assert (score, s, 1e-4) + assert (cost, c, 1e-4) +***** shared MODEL + X = rand (10,2); + Y = [ones(5,1);2*ones(5,1)]; + MODEL = compact (ClassificationDiscriminant (X, Y)); +***** error ... + predict (MODEL) +***** error ... + predict (MODEL, []) +***** error ... + predict (MODEL, 1) ***** 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 fisheriris + model = fitcdiscr (meas, species); + x = mean (meas); + y = {'versicolor'}; + L = loss (model, x, y); + assert (L, 0) ***** 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) + x = [1, 2; 3, 4; 5, 6]; + y = {'A'; 'B'; 'A'}; + model = fitcdiscr (x, y, "Gamma", 0.4); + x_test = [1, 6; 3, 3]; + y_test = {'A'; 'B'}; + L = loss (model, x_test, y_test); + assert (L, 0.3333, 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, "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) + x = [1, 2; 3, 4; 5, 6; 7, 8]; + y = ['1'; '2'; '3'; '1']; + model = fitcdiscr (x, y, "gamma" , 0.5); + x_test = [3, 3]; + y_test = ['1']; + L = loss (model, x_test, y_test, 'LossFun', 'quadratic'); + assert (L, 0.2423, 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, "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) + x = [1, 2; 3, 4; 5, 6; 7, 8]; + y = ['1'; '2'; '3'; '1']; + model = fitcdiscr (x, y, "gamma" , 0.5); + x_test = [3, 3; 5, 7]; + y_test = ['1'; '2']; + L = loss (model, x_test, y_test, 'LossFun', 'classifcost'); + assert (L, 0.3333, 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, "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) + x = [1, 2; 3, 4; 5, 6; 7, 8]; + y = ['1'; '2'; '3'; '1']; + model = fitcdiscr (x, y, "gamma" , 0.5); + x_test = [3, 3; 5, 7]; + y_test = ['1'; '2']; + L = loss (model, x_test, y_test, 'LossFun', 'hinge'); + assert (L, 0.5886, 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, "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) + x = [1, 2; 3, 4; 5, 6; 7, 8]; + y = ['1'; '2'; '3'; '1']; + model = fitcdiscr (x, y, "gamma" , 0.5); + x_test = [3, 3; 5, 7]; + y_test = ['1'; '2']; + W = [1; 2]; + L = loss (model, x_test, y_test, 'LossFun', 'logit', 'Weights', W); + assert (L, 0.5107, 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, "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) + x = [1, 2; 3, 4; 5, 6]; + y = {'A'; 'B'; 'A'}; + model = fitcdiscr (x, y, "gamma" , 0.5); + x_with_nan = [1, 2; NaN, 4]; + y_test = {'A'; 'B'}; + L = loss (model, x_with_nan, y_test); + assert (L, 0.3333, 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, "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 = [1, 2; 3, 4; 5, 6]; + y = {'A'; 'B'; 'A'}; + model = fitcdiscr (x, y); + x_with_nan = [1, 2; NaN, 4]; + y_test = {'A'; 'B'}; + L = loss (model, x_with_nan, y_test, 'LossFun', 'logit'); + assert (isnan (L)) ***** 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"); - -***** 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/dcov.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fitgmdist.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/fitgmdist.m -***** 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); - - ## 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))); -***** 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) + x = [1, 2; 3, 4; 5, 6]; + y = {'A'; 'B'; 'A'}; + model = fitcdiscr (x, y); + customLossFun = @(C, S, W, Cost) sum (W .* sum (abs (C - S), 2)); + L = loss (model, x, y, 'LossFun', customLossFun); + assert (L, 0.8889, 1e-4) ***** test + x = [1, 2; 3, 4; 5, 6]; + y = [1; 2; 1]; + model = fitcdiscr (x, y); + L = loss (model, x, y, 'LossFun', 'classiferror'); + assert (L, 0.3333, 1e-4) +***** error ... + loss (MODEL) +***** error ... + loss (MODEL, ones (4,2)) +***** error ... + loss (MODEL, ones (4,2), ones (4,1), 'LossFun') +***** error ... + loss (MODEL, ones (4,2), ones (3,1)) +***** error ... + loss (MODEL, ones (4,2), ones (4,1), 'LossFun', 'a') +***** error ... + loss (MODEL, ones (4,2), ones (4,1), 'Weights', 'w') 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/hmmgenerate.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/hmmgenerate.m -***** test - len = 25; - transprob = [0.8, 0.2; 0.4, 0.6]; - outprob = [0.2, 0.4, 0.4; 0.7, 0.2, 0.1]; - [sequence, states] = hmmgenerate (len, transprob, outprob); - assert (length (sequence), len); - assert (length (states), len); - assert (min (sequence) >= 1); - assert (max (sequence) <= columns (outprob)); - assert (min (states) >= 1); - assert (max (states) <= rows (transprob)); + mdl = fitcdiscr (meas, species); + X = mean (meas); + Y = {'versicolor'}; + m = margin (mdl, X, Y); + assert (m, 1, 1e-6) ***** test - len = 25; - 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"}; - [sequence, states] = hmmgenerate (len, transprob, outprob, ... - "symbols", symbols, "statenames", statenames); - assert (length (sequence), len); - assert (length (states), len); - assert (strcmp (sequence, "A") + strcmp (sequence, "B") + ... - 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/nanmax.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/nanmax.m -***** demo - ## Find the column maximum values and their indices - ## for matrix data with missing values. - - x = magic (3); - x([1, 6:9]) = NaN - [y, ind] = nanmax (x) + X = [1, 2; 3, 4; 5, 6]; + Y = [1; 2; 1]; + mdl = fitcdiscr (X, Y, "gamma", 0.5); + m = margin (mdl, X, Y); + assert (m, [0.3333; -0.3333; 0.3333], 1e-4) +***** error ... + margin (MODEL) +***** error ... + margin (MODEL, ones (4,2)) +***** error ... + margin (MODEL, ones (4,2), ones (3,1)) +28 tests, 28 passed, 0 known failure, 0 skipped +[inst/Classification/ClassificationGAM.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/ClassificationGAM.m ***** demo - ## Find the maximum of all the values in an array, ignoring missing values. - ## Create a 2-by-5-by-3 array x with some missing values. + ## Train a GAM classifier for binary classification + ## using specific data and plot the decision boundaries. - x = reshape (1:30, [2, 5, 3]); - x([10:12, 25]) = NaN + ## Define specific data + X = [1, 2; 2, 3; 3, 3; 4, 5; 5, 5; ... + 6, 7; 7, 8; 8, 8; 9, 9; 10, 10]; + Y = [0; 0; 0; 0; 0; ... + 1; 1; 1; 1; 1]; - ## Find the maximum of the elements of x. + ## Train the GAM model + obj = fitcgam (X, Y, "Interactions", "all") - y = nanmax (x, [], 'all') -***** 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])) -***** shared x, y - x(:,:,1) = [1.77, -0.005, NaN, -2.95; NaN, 0.34, NaN, 0.19]; - x(:,:,2) = [1.77, -0.005, NaN, -2.95; NaN, 0.34, NaN, 0.19] + 5; - y = x; - y(2,3,1) = 0.51; -***** assert (nanmax (x, [], [1, 2])(:), [1.77;6.77]) -***** assert (nanmax (x, [], [1, 3])(:), [6.77;5.34;NaN;5.19]) -***** assert (nanmax (x, [], [2, 3])(:), [6.77;5.34]) -***** assert (nanmax (x, [], [1, 2, 3]), 6.77) -***** assert (nanmax (x, [], 'all'), 6.77) -***** assert (nanmax (y, [], [1, 3])(:), [6.77;5.34;0.51;5.19]) -***** assert (nanmax (x(1,:,1), x(2,:,1)), [1.77, 0.34, NaN, 0.19]) -***** assert (nanmax (x(1,:,2), x(2,:,2)), [6.77, 5.34, NaN, 5.19]) -***** assert (nanmax (y(1,:,1), y(2,:,1)), [1.77, 0.34, 0.51, 0.19]) -***** assert (nanmax (y(1,:,2), y(2,:,2)), [6.77, 5.34, NaN, 5.19]) -***** test - xx = repmat ([1:20;6:25], [5 2 6 3]); - assert (size (nanmax (xx, [], [3, 2])), [10, 1, 1, 3]); - assert (size (nanmax (xx, [], [1, 2])), [1, 1, 6, 3]); - assert (size (nanmax (xx, [], [1, 2, 4])), [1, 1, 6]); - assert (size (nanmax (xx, [], [1, 4, 3])), [1, 40]); - assert (size (nanmax (xx, [], [1, 2, 3, 4])), [1, 1]); -***** assert (nanmax (ones (2), [], 3), ones (2, 2)) -***** assert (nanmax (ones (2, 2, 2), [], 99), ones (2, 2, 2)) -***** assert (nanmax (magic (3), [], 3), magic (3)) -***** assert (nanmax (magic (3), [], [1, 3]), [8, 9, 7]) -***** assert (nanmax (magic (3), [], [1, 99]), [8, 9, 7]) -***** assert (nanmax (ones (2), 3), 3 * ones (2,2)) -***** error ... - nanmax (y, [], [1, 1, 2]) -***** error ... - [v, idx] = nanmax(x, y, [1 2]) -24 tests, 24 passed, 0 known failure, 0 skipped -[inst/boxplot.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 -***** test - hf = figure ("visible", "off"); - unwind_protect - hold on - [a, b] = boxplot (rand (10, 3)); - assert (ishold, true); - unwind_protect_cleanup - close (hf); - end_unwind_protect -34 tests, 34 passed, 0 known failure, 0 skipped -[inst/histfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/histfit.m -***** demo - histfit (randn (100, 1)) -***** demo - histfit (poissrnd (2, 1000, 1), 10, "Poisson") -***** demo - histfit (betarnd (3, 10, 1000, 1), 10, "beta") -***** 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 -***** test - hf = figure ("visible", "off"); - unwind_protect - histfit (randn (100, 1)); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** test - hf = figure ("visible", "off"); - unwind_protect - histfit (poissrnd (2, 1000, 1), 10, "Poisson"); - unwind_protect_cleanup - close (hf); - end_unwind_protect + ## Create a grid of values for prediction + x1 = [min(X(:,1)):0.1:max(X(:,1))]; + x2 = [min(X(:,2)):0.1:max(X(:,2))]; + [x1G, x2G] = meshgrid (x1, x2); + XGrid = [x1G(:), x2G(:)]; + [labels, score] = predict (obj, XGrid); ***** test - hf = figure ("visible", "off"); - unwind_protect - histfit (betarnd (3, 10, 1000, 1), 10, "beta"); - unwind_protect_cleanup - close (hf); - end_unwind_protect + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = [0; 0; 1; 1]; + PredictorNames = {'Feature1', 'Feature2', 'Feature3'}; + a = ClassificationGAM (x, y, "PredictorNames", PredictorNames); + assert (class (a), "ClassificationGAM"); + assert ({a.X, a.Y, a.NumObservations}, {x, y, 4}) + assert ({a.NumPredictors, a.ResponseName}, {3, "Y"}) + assert (a.ClassNames, {'0'; '1'}) + assert (a.PredictorNames, PredictorNames) + assert (a.BaseModel.Intercept, 0) ***** test - hf = figure ("visible", "off"); - unwind_protect - ax = gca (); - histfit (ax, randn (100, 1)); - unwind_protect_cleanup - close (hf); - end_unwind_protect + load fisheriris + inds = strcmp (species,'versicolor') | strcmp (species,'virginica'); + X = meas(inds, :); + Y = species(inds, :)'; + Y = strcmp (Y, 'virginica')'; + a = ClassificationGAM (X, Y, 'Formula', 'Y ~ x1 + x2 + x3 + x4 + x1:x2 + x2:x3'); + assert (class (a), "ClassificationGAM"); + assert ({a.X, a.Y, a.NumObservations}, {X, Y, 100}) + assert ({a.NumPredictors, a.ResponseName}, {4, "Y"}) + assert (a.ClassNames, {'0'; '1'}) + assert (a.Formula, 'Y ~ x1 + x2 + x3 + x4 + x1:x2 + x2:x3') + assert (a.PredictorNames, {'x1', 'x2', 'x3', 'x4'}) + assert (a.ModelwInt.Intercept, 0) ***** test - hf = figure ("visible", "off"); - unwind_protect - ax = gca (); - histfit (ax, poissrnd (2, 1000, 1), 10, "Poisson"); - unwind_protect_cleanup - close (hf); - end_unwind_protect + X = [2, 3, 5; 4, 6, 8; 1, 2, 3; 7, 8, 9; 5, 4, 3]; + Y = [0; 1; 0; 1; 1]; + a = ClassificationGAM (X, Y, 'Knots', [4, 4, 4], 'Order', [3, 3, 3]); + assert (class (a), "ClassificationGAM"); + assert ({a.X, a.Y, a.NumObservations}, {X, Y, 5}) + assert ({a.NumPredictors, a.ResponseName}, {3, "Y"}) + assert (a.ClassNames, {'0'; '1'}) + assert (a.PredictorNames, {'x1', 'x2', 'x3'}) + assert (a.Knots, [4, 4, 4]) + assert (a.Order, [3, 3, 3]) + assert (a.DoF, [7, 7, 7]) + assert (a.BaseModel.Intercept, 0.4055, 1e-1) +***** error ClassificationGAM () +***** error ... + ClassificationGAM (ones(4, 1)) +***** error ... + ClassificationGAM (ones (4,2), ones (1,4)) +***** error ... + ClassificationGAM (ones (5,2), ones (5,1), "PredictorNames", ["A"]) +***** error ... + ClassificationGAM (ones (5,2), ones (5,1), "PredictorNames", "A") +***** error ... + ClassificationGAM (ones (5,2), ones (5,1), "PredictorNames", {"A", "B", "C"}) +***** error ... + ClassificationGAM (ones (5,2), ones (5,1), "ResponseName", {"Y"}) +***** error ... + ClassificationGAM (ones (5,2), ones (5,1), "ResponseName", 1) +***** error ... + ClassificationGAM (ones(10,2), ones (10,1), "ClassNames", @(x)x) +***** error ... + ClassificationGAM (ones(10,2), ones (10,1), "ClassNames", ['a']) +***** error ... + ClassificationGAM (ones(10,2), ones (10,1), "ClassNames", [1, 2]) +***** error ... + ClassificationGAM (ones(5,2), {'a';'b';'a';'a';'b'}, "ClassNames", {'a','c'}) +***** error ... + ClassificationGAM (ones(10,2), logical (ones (10,1)), "ClassNames", [true, false]) +***** error ... + ClassificationGAM (ones (5,2), ones (5,1), "Cost", [1, 2]) +***** error ... + ClassificationGAM (ones (5,2), ones (5,1), "Cost", "string") +***** error ... + ClassificationGAM (ones (5,2), ones (5,1), "Cost", {eye(2)}) ***** test - hf = figure ("visible", "off"); - unwind_protect - ax = gca (); - histfit (ax, betarnd (3, 10, 1000, 1), 10, "beta"); - unwind_protect_cleanup - close (hf); - end_unwind_protect + x = [1, 2; 3, 4; 5, 6; 7, 8; 9, 10]; + y = [1; 0; 1; 0; 1]; + a = ClassificationGAM (x, y, "interactions", "all"); + l = {'0'; '0'; '0'; '0'; '0'}; + s = [0.3760, 0.6240; 0.4259, 0.5741; 0.3760, 0.6240; ... + 0.4259, 0.5741; 0.3760, 0.6240]; + [labels, scores] = predict (a, x); + assert (class (a), "ClassificationGAM"); + assert ({a.X, a.Y, a.NumObservations}, {x, y, 5}) + assert ({a.NumPredictors, a.ResponseName}, {2, "Y"}) + assert (a.ClassNames, {'1'; '0'}) + assert (a.PredictorNames, {'x1', 'x2'}) + assert (a.ModelwInt.Intercept, 0.4055, 1e-1) + assert (labels, l) + assert (scores, s, 1e-1) ***** test - hf = figure ("visible", "off"); - unwind_protect - ax = axes ("parent", hf); - fail ("histfit (ax)", "histfit: too few input arguments."); - unwind_protect_cleanup - close (hf); - end_unwind_protect -***** error ... - histfit ('wer') -***** error histfit ([NaN, NaN, NaN]); -***** error ... - histfit (randn (100, 1), 5.6) -***** error ... - histfit (randn (100, 1), 8, 5) -***** error ... - histfit (randn (100, 1), 8, {'normal'}) -***** error ... - histfit (randn (100, 1), 8, 'Kernel') -***** error ... - histfit (randn (100, 1), 8, 'ASDASDASD') -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/vartest.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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"); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = [0; 0; 1; 1]; + interactions = [false, true, false; true, false, true; false, true, false]; + a = fitcgam (x, y, "learningrate", 0.2, "interactions", interactions); + [label, score] = predict (a, x, "includeinteractions", true); + l = {'0'; '0'; '1'; '1'}; + s = [0.5106, 0.4894; 0.5135, 0.4865; 0.4864, 0.5136; 0.4847, 0.5153]; + assert (class (a), "ClassificationGAM"); + assert ({a.X, a.Y, a.NumObservations}, {x, y, 4}) + assert ({a.NumPredictors, a.ResponseName}, {3, "Y"}) + assert (a.ClassNames, {'0'; '1'}) + assert (a.PredictorNames, {'x1', 'x2', 'x3'}) + assert (a.ModelwInt.Intercept, 0) + assert (label, l) + assert (score, s, 1e-1) +***** error ... + predict (ClassificationGAM (ones (4,2), ones (4,1))) +***** error ... + predict (ClassificationGAM (ones (4,2), ones (4,1)), []) +***** error ... + predict (ClassificationGAM (ones (4,2), ones (4,1)), 1) +***** shared x, y, obj + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = [0; 0; 1; 1]; + obj = fitcgam (x, y); ***** test - load carsmall - [h, pval, ci] = vartest (MPG, 7^2); - assert (h, 1); - assert (pval, 0.04335086742174443, 1e-14); - assert (ci, [49.397; 88.039], 1e-3); -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/ff2n.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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); + CVMdl = crossval (obj); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (CVMdl.KFold == 10) + assert (class (CVMdl.Trained{1}), "CompactClassificationGAM") + assert (CVMdl.CrossValidatedModel, "ClassificationGAM") ***** test - A = ff2n (3); - assert (A, fullfact (3)); + CVMdl = crossval (obj, "KFold", 5); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (CVMdl.KFold == 5) + assert (class (CVMdl.Trained{1}), "CompactClassificationGAM") + assert (CVMdl.CrossValidatedModel, "ClassificationGAM") ***** test - A = ff2n (8); - assert (A, fullfact (8)); -10 tests, 10 passed, 0 known failure, 0 skipped -[inst/chi2gof.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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) + CVMdl = crossval (obj, "HoldOut", 0.2); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (class (CVMdl.Trained{1}), "CompactClassificationGAM") + assert (CVMdl.CrossValidatedModel, "ClassificationGAM") ***** 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/nanmin.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/nanmin.m + partition = cvpartition (y, 'KFold', 3); + CVMdl = crossval (obj, 'cvPartition', partition); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert (CVMdl.KFold == 3) + assert (class (CVMdl.Trained{1}), "CompactClassificationGAM") + assert (CVMdl.CrossValidatedModel, "ClassificationGAM") +***** error ... + crossval (obj, "kfold") +***** error... + crossval (obj, "kfold", 12, "holdout", 0.2) +***** error ... + crossval (obj, "kfold", 'a') +***** error ... + crossval (obj, "holdout", 2) +***** error ... + crossval (obj, "leaveout", 1) +***** error ... + crossval (obj, "cvpartition", 1) +34 tests, 34 passed, 0 known failure, 0 skipped +[inst/Classification/ClassificationPartitionedModel.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/ClassificationPartitionedModel.m ***** demo - ## Find the column minimum values and their indices - ## for matrix data with missing values. - x = magic (3); - x([1, 6:9]) = NaN - [y, ind] = nanmin (x) -***** demo - ## Find the minimum of all the values in an array, ignoring missing values. - ## Create a 2-by-5-by-3 array x with some missing values. + load fisheriris + x = meas; + y = species; - x = reshape (1:30, [2, 5, 3]); - x([10:12, 25]) = NaN + ## Create a KNN classifier model + obj = fitcknn (x, y, "NumNeighbors", 5, "Standardize", 1); - ## Find the minimum of the elements of x. + ## Create a partition for 5-fold cross-validation + partition = cvpartition (y, "KFold", 5); - y = nanmin (x, [], 'all') -***** assert (nanmin ([2, 4, NaN, 7]), 2) -***** assert (nanmin ([2, 4, NaN, -Inf]), -Inf) -***** 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])) -***** shared x, y - x(:,:,1) = [1.77, -0.005, NaN, -2.95; NaN, 0.34, NaN, 0.19]; - x(:,:,2) = [1.77, -0.005, NaN, -2.95; NaN, 0.34, NaN, 0.19] + 5; - y = x; - y(2,3,1) = 0.51; -***** assert (nanmin (x, [], [1, 2])(:), [-2.95; 2.05]) -***** assert (nanmin (x, [], [1, 3])(:), [1.77; -0.005; NaN; -2.95]) -***** assert (nanmin (x, [], [2, 3])(:), [-2.95; 0.19]) -***** assert (nanmin (x, [], [1, 2, 3]), -2.95) -***** assert (nanmin (x, [], 'all'), -2.95) -***** assert (nanmin (y, [], [1, 3])(:), [1.77; -0.005; 0.51; -2.95]) -***** assert (nanmin (x(1,:,1), x(2,:,1)), [1.77, -0.005, NaN, -2.95]) -***** assert (nanmin (x(1,:,2), x(2,:,2)), [6.77, 4.995, NaN, 2.05]) -***** assert (nanmin (y(1,:,1), y(2,:,1)), [1.77, -0.005, 0.51, -2.95]) -***** assert (nanmin (y(1,:,2), y(2,:,2)), [6.77, 4.995, NaN, 2.05]) -***** test - xx = repmat ([1:20;6:25], [5 2 6 3]); - assert (size (nanmin (xx, [], [3, 2])), [10, 1, 1, 3]); - assert (size (nanmin (xx, [], [1, 2])), [1, 1, 6, 3]); - assert (size (nanmin (xx, [], [1, 2, 4])), [1, 1, 6]); - assert (size (nanmin (xx, [], [1, 4, 3])), [1, 40]); - assert (size (nanmin (xx, [], [1, 2, 3, 4])), [1, 1]); -***** assert (nanmin (ones (2), [], 3), ones (2, 2)) -***** assert (nanmin (ones (2, 2, 2), [], 99), ones (2, 2, 2)) -***** assert (nanmin (magic (3), [], 3), magic (3)) -***** assert (nanmin (magic (3), [], [1, 3]), [3, 1, 2]) -***** assert (nanmin (magic (3), [], [1, 99]), [3, 1, 2]) -***** assert (nanmin (ones (2), 3), ones (2,2)) -***** error ... - nanmin (y, [], [1, 1, 2]) -***** error ... - [v, idx] = nanmin(x, y, [1 2]) -24 tests, 24 passed, 0 known failure, 0 skipped -[inst/Regression/RegressionGAM.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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) + ## Create the ClassificationPartitionedModel object + cvModel = crossval (obj, 'cvPartition', partition) ***** 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); + load fisheriris + x = meas; + y = species; - ## 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"}); + ## Create a KNN classifier model + obj = fitcknn (x, y, "NumNeighbors", 5, "Standardize", 1); - ## Use 30% Holdout partitioning for training and testing data - C = cvpartition (80, "HoldOut", 0.3); - [ypred, ySDsd, yInt] = predict (a, X(test(C),:)); + ## Create the ClassificationPartitionedModel object + cvModel = crossval (obj); - ## 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/signrank.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/signrank.m -***** test - load gradespaired.mat - [p, h, stats] = signrank (gradespaired(:,1), ... - gradespaired(:,2), 'tail', 'left'); - assert (p, 0.0047, 1e-4); - assert (h, true); - assert (stats.zval, -2.5982, 1e-4); - assert (stats.signedrank, 2017.5); -***** test - load ('gradespaired.mat'); - [p, h, stats] = signrank (gradespaired(:,1), gradespaired(:,2), ... - 'tail', 'left', 'method', 'exact'); - assert (p, 0.0045, 1e-4); - assert (h, true); - assert (stats.zval, NaN); - assert (stats.signedrank, 2017.5); -***** test - load mileage - [p, h, stats] = signrank (mileage(:,2), 33); - assert (p, 0.0312, 1e-4); - assert (h, true); - assert (stats.zval, NaN); - assert (stats.signedrank, 21); -***** test - load mileage - [p, h, stats] = signrank (mileage(:,2), 33, 'tail', 'right'); - assert (p, 0.0156, 1e-4); - assert (h, true); - assert (stats.zval, NaN); - assert (stats.signedrank, 21); -***** test - load mileage - [p, h, stats] = signrank (mileage(:,2), 33, 'tail', 'right', ... - 'alpha', 0.01, 'method', 'approximate'); - assert (p, 0.0180, 1e-4); - assert (h, false); - assert (stats.zval, 2.0966, 1e-4); - assert (stats.signedrank, 21); -***** error signrank (ones (2)) -***** error ... - signrank ([1, 2, 3, 4], ones (2)) -***** error ... - signrank ([1, 2, 3, 4], [1, 2, 3]) -***** error ... - signrank ([1, 2, 3, 4], [], 'tail') -***** error ... - signrank ([1, 2, 3, 4], [], 'alpha', 1.2) -***** error ... - signrank ([1, 2, 3, 4], [], 'alpha', 0) -***** error ... - signrank ([1, 2, 3, 4], [], 'alpha', -0.05) -***** error ... - signrank ([1, 2, 3, 4], [], 'alpha', "a") -***** error ... - signrank ([1, 2, 3, 4], [], 'alpha', [0.01, 0.05]) -***** error ... - signrank ([1, 2, 3, 4], [], 'tail', 0.01) -***** error ... - signrank ([1, 2, 3, 4], [], 'tail', {"both"}) -***** error ... - signrank ([1, 2, 3, 4], [], 'tail', "some") -***** error ... - signrank ([1, 2, 3, 4], [], 'method', 'exact', 'tail', "some") -***** error ... - signrank ([1, 2, 3, 4], [], 'method', 0.01) -***** error ... - signrank ([1, 2, 3, 4], [], 'method', {"exact"}) -***** error ... - signrank ([1, 2, 3, 4], [], 'method', "some") -***** error ... - signrank ([1, 2, 3, 4], [], 'tail', "both", 'method', "some") -22 tests, 22 passed, 0 known failure, 0 skipped -[inst/ttest2.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/trimmean.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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); + ## Predict the class labels for the observations not used for training + [label, score, cost] = kfoldPredict (cvModel); + fprintf ("Cross-validated accuracy = %1.2f%% (%d/%d)\n", ... + sum (strcmp (label, y)) / numel (y) *100, ... + sum (strcmp (label, y)), numel (y)) ***** 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")); + load fisheriris + a = fitcdiscr (meas, species, "gamma", 0.3); + cvModel = crossval (a, "KFold", 5); + assert (class (cvModel), "ClassificationPartitionedModel"); + assert (cvModel.NumObservations, 150); + assert (numel (cvModel.Trained), 5); + assert (class (cvModel.Trained{1}), "CompactClassificationDiscriminant"); + assert (cvModel.CrossValidatedModel, "ClassificationDiscriminant"); + assert (cvModel.KFold, 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/rmmissing.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]) + load fisheriris + a = fitcdiscr (meas, species, "gamma", 0.5, "fillcoeffs", "off"); + cvModel = crossval (a, "HoldOut", 0.3); + assert (class (cvModel), "ClassificationPartitionedModel"); + assert ({cvModel.X, cvModel.Y}, {meas, species}); + assert (cvModel.NumObservations, 150); + assert (numel (cvModel.Trained), 1); + assert (class (cvModel.Trained{1}), "CompactClassificationDiscriminant"); + assert (cvModel.CrossValidatedModel, "ClassificationDiscriminant"); ***** 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/probit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/mahal.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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)) + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + a = fitcgam (x, y, "Interactions", "all"); + cvModel = crossval (a, "KFold", 5); + assert (class (cvModel), "ClassificationPartitionedModel"); + assert (cvModel.NumObservations, 4); + assert (numel (cvModel.Trained), 5); + assert (class (cvModel.Trained{1}), "CompactClassificationGAM"); + assert (cvModel.CrossValidatedModel, "ClassificationGAM"); + assert (cvModel.KFold, 5); ***** 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/sampsizepwr.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + a = fitcgam (x, y); + cvModel = crossval (a, "LeaveOut", "on"); + assert (class (cvModel), "ClassificationPartitionedModel"); + assert ({cvModel.X, cvModel.Y}, {x, y}); + assert (cvModel.NumObservations, 4); + assert (numel (cvModel.Trained), 4); + assert (class (cvModel.Trained{1}), "CompactClassificationGAM"); + assert (cvModel.CrossValidatedModel, "ClassificationGAM"); ***** test - mu1 = sampsizepwr ("t", [100, 10], [], 0.8, 60); - assert (mu1, 103.67704316, 1e-8); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + a = fitcknn (x, y); + partition = cvpartition (y, "KFold", 5); + cvModel = ClassificationPartitionedModel (a, partition); + assert (class (cvModel), "ClassificationPartitionedModel"); + assert (class (cvModel.Trained{1}), "ClassificationKNN"); + assert (cvModel.NumObservations, 4); + assert (cvModel.ModelParameters.NumNeighbors, 1); + assert (cvModel.ModelParameters.NSMethod, "kdtree"); + assert (cvModel.ModelParameters.Distance, "euclidean"); + assert (! cvModel.ModelParameters.Standardize); ***** test - [N1,N2] = sampsizepwr ("t2", [100, 10], 110, 0.6, [], "ratio", 1.5); - assert (N1, 9); - assert (N2, 14); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + a = fitcknn (x, y, "NSMethod", "exhaustive"); + partition = cvpartition (y, "HoldOut", 0.2); + cvModel = ClassificationPartitionedModel (a, partition); + assert (class (cvModel), "ClassificationPartitionedModel"); + assert (class (cvModel.Trained{1}), "ClassificationKNN"); + assert ({cvModel.X, cvModel.Y}, {x, y}); + assert (cvModel.NumObservations, 4); + assert (cvModel.ModelParameters.NumNeighbors, 1); + assert (cvModel.ModelParameters.NSMethod, "exhaustive"); + assert (cvModel.ModelParameters.Distance, "euclidean"); + assert (! cvModel.ModelParameters.Standardize); ***** 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)); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = ["a"; "a"; "b"; "b"]; + k = 3; + a = fitcknn (x, y, "NumNeighbors" ,k); + partition = cvpartition (y, "LeaveOut"); + cvModel = ClassificationPartitionedModel (a, partition); + assert (class (cvModel), "ClassificationPartitionedModel"); + assert (class (cvModel.Trained{1}), "ClassificationKNN"); + assert ({cvModel.X, cvModel.Y}, {x, y}); + assert (cvModel.NumObservations, 4); + assert (cvModel.ModelParameters.NumNeighbors, k); + assert (cvModel.ModelParameters.NSMethod, "kdtree"); + assert (cvModel.ModelParameters.Distance, "euclidean"); + assert (! cvModel.ModelParameters.Standardize); ***** test - nout = sampsizepwr ("t", [100, 5], 102, 0.80); - assert (nout, 52); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = {"a"; "a"; "b"; "b"}; + a = fitcnet (x, y, "IterationLimit", 50); + cvModel = crossval (a, "KFold", 5); + assert (class (cvModel), "ClassificationPartitionedModel"); + assert (cvModel.NumObservations, 4); + assert (numel (cvModel.Trained), 5); + assert (class (cvModel.Trained{1}), "CompactClassificationNeuralNetwork"); + assert (cvModel.CrossValidatedModel, "ClassificationNeuralNetwork"); + assert (cvModel.KFold, 5); ***** test - power = sampsizepwr ("t", [20, 5], 25, [], 5, "Tail", "right"); - assert (power, 0.5797373588621888, 1e-14); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = {"a"; "a"; "b"; "b"}; + a = fitcnet (x, y, "LayerSizes", [5, 3]); + cvModel = crossval (a, "LeaveOut", "on"); + assert (class (cvModel), "ClassificationPartitionedModel"); + assert ({cvModel.X, cvModel.Y}, {x, y}); + assert (cvModel.NumObservations, 4); + assert (numel (cvModel.Trained), 4); + assert (class (cvModel.Trained{1}), "CompactClassificationNeuralNetwork"); + assert (cvModel.CrossValidatedModel, "ClassificationNeuralNetwork"); ***** test - nout = sampsizepwr ("t", [20, 5], 25, 0.99, [], "Tail", "right"); - assert (nout, 18); + load fisheriris + inds = ! strcmp (species, 'setosa'); + x = meas(inds, 3:4); + y = grp2idx (species(inds)); + SVMModel = fitcsvm (x,y); + CVMdl = crossval (SVMModel, "KFold", 5); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (CVMdl.KFold == 5) + assert (class (CVMdl.Trained{1}), "CompactClassificationSVM") + assert (CVMdl.CrossValidatedModel, "ClassificationSVM"); ***** test - p1out = sampsizepwr ("t", [20, 5], [], 0.95, 10, "Tail", "right"); - assert (p1out, 25.65317979360237, 1e-14); + load fisheriris + inds = ! strcmp (species, 'setosa'); + x = meas(inds, 3:4); + y = grp2idx (species(inds)); + obj = fitcsvm (x, y); + CVMdl = crossval (obj, "HoldOut", 0.2); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (class (CVMdl.Trained{1}), "CompactClassificationSVM") + assert (CVMdl.CrossValidatedModel, "ClassificationSVM"); ***** test - pwr = sampsizepwr ("t2", [1.4, 0.2], 1.7, [], 5, "Ratio", 2); - assert (pwr, 0.716504004686586, 1e-14); + load fisheriris + inds = ! strcmp (species, 'setosa'); + x = meas(inds, 3:4); + y = grp2idx (species(inds)); + obj = fitcsvm (x, y); + CVMdl = crossval (obj, "LeaveOut", 'on'); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (class (CVMdl.Trained{1}), "CompactClassificationSVM") + assert (CVMdl.CrossValidatedModel, "ClassificationSVM"); +***** error ... + ClassificationPartitionedModel () +***** error ... + ClassificationPartitionedModel (ClassificationKNN (ones (4,2), ones (4,1))) ***** test - n = sampsizepwr ("t2", [1.4, 0.2], 1.7, 0.9, []); - assert (n, 11); + load fisheriris + a = fitcdiscr (meas, species, "gamma", 0.5, "fillcoeffs", "off"); + cvModel = crossval (a, "Kfold", 4); + [label, score, cost] = kfoldPredict (cvModel); + assert (class(cvModel), "ClassificationPartitionedModel"); + assert ({cvModel.X, cvModel.Y}, {meas, species}); + assert (cvModel.NumObservations, 150); +***** # assert (label, {"b"; "b"; "a"; "a"}); +***** # assert (score, [4.5380e-01, 5.4620e-01; 2.4404e-01, 7.5596e-01; ... +***** # 9.9392e-01, 6.0844e-03; 9.9820e-01, 1.8000e-03], 1e-4); +***** # assert (cost, [5.4620e-01, 4.5380e-01; 7.5596e-01, 2.4404e-01; ... +***** # 6.0844e-03, 9.9392e-01; 1.8000e-03, 9.9820e-01], 1e-4); ***** 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/anovan.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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"); + x = ones(4, 11); + y = {"a"; "a"; "b"; "b"}; + k = 3; + a = fitcknn (x, y, "NumNeighbors", k); + partition = cvpartition (y, "LeaveOut"); + cvModel = ClassificationPartitionedModel (a, partition); + [label, score, cost] = kfoldPredict (cvModel); + assert (class(cvModel), "ClassificationPartitionedModel"); + assert ({cvModel.X, cvModel.Y}, {x, y}); + assert (cvModel.NumObservations, 4); + assert (cvModel.ModelParameters.NumNeighbors, k); + assert (cvModel.ModelParameters.NSMethod, "exhaustive"); + assert (cvModel.ModelParameters.Distance, "euclidean"); + assert (! cvModel.ModelParameters.Standardize); + assert (label, {"b"; "b"; "a"; "a"}); + assert (score, [0.3333, 0.6667; 0.3333, 0.6667; 0.6667, 0.3333; ... + 0.6667, 0.3333], 1e-4); + assert (cost, [0.6667, 0.3333; 0.6667, 0.3333; 0.3333, 0.6667; ... + 0.3333, 0.6667], 1e-4); +***** error ... + [label, score, cost] = kfoldPredict (crossval (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)))) +***** error ... + [label, score, cost] = kfoldPredict (crossval (ClassificationNeuralNetwork (ones (40,2), randi ([1, 2], 40, 1)))) +18 tests, 18 passed, 0 known failure, 0 skipped +[inst/Classification/ClassificationKNN.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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. - # 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"}); + 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 + load fisheriris + x = meas; + y = species; + obj = fitcknn (x, y, "NumNeighbors", 5, "Standardize", 1); - # 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"}); + ## Create a cross-validated model + CVMdl = crossval (obj) ***** demo + load fisheriris + x = meas; + y = species; + covMatrix = cov (x); - # 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 + ## Fit the k-NN model using the 'mahalanobis' distance + ## and the custom covariance matrix + obj = fitcknn(x, y, 'NumNeighbors', 5, 'Distance','mahalanobis', ... + 'Cov', covMatrix); - # 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 + ## Create a partition model using cvpartition + Partition = cvpartition (size (x, 1), 'kfold', 12); - 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]'; + ## Create cross-validated model using 'cvPartition' name-value argument + CVMdl = crossval (obj, 'cvPartition', Partition) - [P, ATAB, STATS] = anovan (babble, {sugar, milk}, "model", "full", ... - "sstype", 3, "display", "on", ... - "varnames", {"sugar", "milk"}); + ## Access the trained model from first fold of cross-validation + CVMdl.Trained{1} ***** 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"}); + X = [1, 2; 3, 4; 5, 6]; + Y = {'A'; 'B'; 'A'}; + model = fitcknn (X, Y); + customLossFun = @(C, S, W, Cost) sum (W .* sum (abs (C - S), 2)); + ## Calculate loss using custom loss function + L = loss (model, X, Y, 'LossFun', customLossFun) ***** 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"}); + X = [1, 2; 3, 4; 5, 6]; + Y = {'A'; 'B'; 'A'}; + model = fitcknn (X, Y); + ## Calculate loss using 'mincost' loss function + L = loss (model, X, Y, 'LossFun', 'mincost') ***** 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"}); + X = [1, 2; 3, 4; 5, 6]; + Y = ['1'; '2'; '3']; + model = fitcknn (X, Y); + X_test = [3, 3; 5, 7]; + Y_test = ['1'; '2']; + ## Specify custom Weights + W = [1; 2]; + L = loss (model, X_test, Y_test, 'LossFun', 'logit', 'Weights', W); ***** 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"}); + load fisheriris + mdl = fitcknn (meas, species); + X = mean (meas); + Y = {'versicolor'}; + m = margin (mdl, X, Y) ***** 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"); + X = [1, 2; 4, 5; 7, 8; 3, 2]; + Y = [2; 1; 3; 2]; + ## Train the model + mdl = fitcknn (X, Y); + ## Specify Vars and Labels + Vars = 1; + Labels = 2; + ## Calculate partialDependence + [pd, x, y] = partialDependence (mdl, Vars, Labels); ***** 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/dist_wrap/mle.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/icdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/makedist.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/cdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/random.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fitdist.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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); + X = [1, 2; 4, 5; 7, 8; 3, 2]; + Y = [2; 1; 3; 2]; + ## Train the model + mdl = fitcknn (X, Y); + ## Specify Vars and Labels + Vars = 1; + Labels = 1; + queryPoints = [linspace(0, 1, 3)', linspace(0, 1, 3)']; + ## Calculate partialDependence using queryPoints + [pd, x, y] = partialDependence (mdl, Vars, Labels, 'QueryPoints', ... + queryPoints) ***** 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); + 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 - 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); + 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 - 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); + 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 - 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); + 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 = bisarnd (1, 1, 100, 1); - pd = fitdist (x, "BirnbaumSaunders"); - [phat, pci] = bisafit (x); - assert ([pd.beta, pd.gamma], phat); - assert (paramci (pd), pci); + 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 - 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); + 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 = burrrnd (1, 2, 1, 100, 1); - pd = fitdist (x, "Burr"); - [phat, pci] = burrfit (x); - assert ([pd.alpha, pd.c, pd.k], phat); - assert (paramci (pd), pci); + 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 - x1 = burrrnd (1, 2, 1, 100, 1); - x2 = burrrnd (1, 0.5, 2, 100, 1); - pd = fitdist ([x1; x2], "burr", "By", [ones(100,1); 2*ones(100,1)]); - [phat, pci] = burrfit (x1); - assert ([pd(1).alpha, pd(1).c, pd(1).k], phat); - assert (paramci (pd(1)), pci); - [phat, pci] = burrfit (x2); - assert ([pd(2).alpha, pd(2).c, pd(2).k], phat); - assert (paramci (pd(2)), pci); + 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 = exprnd (1, 100, 1); - pd = fitdist (x, "exponential"); - [muhat, muci] = expfit (x); - assert ([pd.mu], muhat); - assert (paramci (pd), muci); + 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 - 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); + 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 = evrnd (1, 1, 100, 1); - pd = fitdist (x, "ev"); - [phat, pci] = evfit (x); - assert ([pd.mu, pd.sigma], phat); - assert (paramci (pd), pci); + 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 - 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); + 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 = gamrnd (1, 1, 100, 1); - pd = fitdist (x, "Gamma"); - [phat, pci] = gamfit (x); - assert ([pd.a, pd.b], phat); - assert (paramci (pd), pci); + 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 - 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); + 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 - 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); + 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 - 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); + 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 = 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); + 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 = 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); + 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 - 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); + 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 - 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); + 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}) ***** 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); + x = [1, 2; 3, 4; 5,6; 5, 8]; + y = {'9'; '9'; '6'; '7'}; + a = ClassificationKNN (x, y); + assert (a.Prior, [0.5; 0.25; 0.25]) ***** 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); + load fisheriris + x = meas; + y = species; + ClassNames = {'setosa', 'versicolor', 'virginica'}; + a = ClassificationKNN (x, y, 'ClassNames', ClassNames); + assert (a.ClassNames, ClassNames') +***** 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(10,2), ones (10,1), "ClassNames", @(x)x) +***** error ... + ClassificationKNN (ones(10,2), ones (10,1), "ClassNames", ['a']) +***** error ... + ClassificationKNN (ones(10,2), ones (10,1), "ClassNames", [1, 2]) +***** error ... + ClassificationKNN (ones(5,2), {'a';'b';'a';'a';'b'}, "ClassNames", {'a','c'}) +***** error ... + ClassificationKNN (ones(10,2), logical (ones (10,1)), "ClassNames", [true, false]) +***** 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 - 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); + 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 - 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); + 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 - x = invgrnd (1, 1, 100, 1); - pd = fitdist (x, "InverseGaussian"); - [phat, pci] = invgfit (x); - assert ([pd.mu, pd.lambda], phat); - assert (paramci (pd), pci); + 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 - 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); + 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 - x = logirnd (1, 1, 100, 1); - pd = fitdist (x, "logistic"); - [phat, pci] = logifit (x); - assert ([pd.mu, pd.sigma], phat); - assert (paramci (pd), pci); + 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 - 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); + 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 = loglrnd (1, 1, 100, 1); - pd = fitdist (x, "loglogistic"); - [phat, pci] = loglfit (x); - assert ([pd.mu, pd.sigma], phat); - assert (paramci (pd), pci); + 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 - 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); + 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 = lognrnd (1, 1, 100, 1); - pd = fitdist (x, "lognormal"); - [phat, pci] = lognfit (x); - assert ([pd.mu, pd.sigma], phat); - assert (paramci (pd), pci); + 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 - 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); + 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 = nakarnd (2, 0.5, 100, 1); - pd = fitdist (x, "Nakagami"); - [phat, pci] = nakafit (x); - assert ([pd.mu, pd.omega], phat); - assert (paramci (pd), pci); + 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 - 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); + 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 - 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); + 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 - 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); + 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 - 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]); + 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 - 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]); + 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 = poissrnd (1, 100, 1); - pd = fitdist (x, "poisson"); - [phat, pci] = poissfit (x); - assert (pd.lambda, phat); - assert (paramci (pd), pci); + 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 - 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); + 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 = raylrnd (1, 100, 1); - pd = fitdist (x, "rayleigh"); - [phat, pci] = raylfit (x); - assert (pd.sigma, phat); - assert (paramci (pd), pci); + 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 - 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); + 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) ***** 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); + load fisheriris + model = fitcknn (meas, species, 'NumNeighbors', 5); + X = mean (meas); + Y = {'versicolor'}; + L = loss (model, X, Y); + assert (L, 0) ***** 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"); + X = [1, 2; 3, 4; 5, 6]; + Y = {'A'; 'B'; 'A'}; + model = fitcknn (X, Y); + X_test = [1, 6; 3, 3]; + Y_test = {'A'; 'B'}; + L = loss (model, X_test, Y_test); + assert (abs (L - 0.6667) > 1e-5) ***** 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); + X = [1, 2; 3, 4; 5, 6]; + Y = {'A'; 'B'; 'A'}; + model = fitcknn (X, Y); + X_with_nan = [1, 2; NaN, 4]; + Y_test = {'A'; 'B'}; + L = loss (model, X_with_nan, Y_test); + assert (abs (L - 0.3333) < 1e-4) ***** 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); + X = [1, 2; 3, 4; 5, 6]; + Y = {'A'; 'B'; 'A'}; + model = fitcknn (X, Y); + X_with_nan = [1, 2; NaN, 4]; + Y_test = {'A'; 'B'}; + L = loss (model, X_with_nan, Y_test, 'LossFun', 'logit'); + assert (isnan (L)) ***** 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); + X = [1, 2; 3, 4; 5, 6]; + Y = {'A'; 'B'; 'A'}; + model = fitcknn (X, Y); + customLossFun = @(C, S, W, Cost) sum (W .* sum (abs (C - S), 2)); + L = loss (model, X, Y, 'LossFun', customLossFun); + assert (L, 0) ***** 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); -77 tests, 77 passed, 0 known failure, 0 skipped -[inst/dist_wrap/pdf.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/anova1.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/anova1.m -***** demo - x = meshgrid (1:6); - randn ("seed", 15); # for reproducibility - x = x + normrnd (0, 1, 6, 6); - anova1 (x, [], 'off'); -***** demo - x = meshgrid (1:6); - randn ("seed", 15); # for reproducibility - x = x + normrnd (0, 1, 6, 6); - [p, atab] = anova1(x); -***** demo - x = ones (50, 4) .* [-2, 0, 1, 5]; - randn ("seed", 13); # for reproducibility - x = x + normrnd (0, 2, 50, 4); - groups = {"A", "B", "C", "D"}; - anova1 (x, groups); -***** demo - y = [54 87 45; 23 98 39; 45 64 51; 54 77 49; 45 89 50; 47 NaN 55]; - g = [1 2 3 ; 1 2 3 ; 1 2 3 ; 1 2 3 ; 1 2 3 ; 1 2 3 ]; - anova1 (y(:), g(:), "on", "unequal"); + X = [1, 2; 3, 4; 5, 6]; + Y = [1; 2; 1]; + model = fitcknn (X, Y); + L = loss (model, X, Y, 'LossFun', 'classiferror'); + assert (L, 0) ***** 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] = anova1 (data, group, "off"); - assert (p, 0.022661, 1e-6); - assert (tbl{2,5}, 2.2969, 1e-4); - assert (tbl{2,3}, 9, 0); - assert (tbl{4,2}, 0.003903, 1e-6); - data = reshape (data, 10, 10); - [p, tbl, stats] = anova1 (data, [], "off"); - assert (p, 0.022661, 1e-6); - assert (tbl{2,5}, 2.2969, 1e-4); - assert (tbl{2,3}, 9, 0); - assert (tbl{4,2}, 0.003903, 1e-6); - means = [0.998, 0.9991, 0.9954, 0.9982, 0.9919, 0.9988, 1.0015, 1.0004, 0.9983, 0.9948]; - N = 10 * ones (1, 10); - assert (stats.means, means, 1e-6); - assert (length (stats.gnames), 10, 0); - assert (stats.n, N, 0); + X = [1, 2; 3, 4; 5, 6]; + Y = [true; false; true]; + model = fitcknn (X, Y); + L = loss (model, X, Y, 'LossFun', 'binodeviance'); + assert (abs (L - 0.1269) < 1e-4) ***** test - y = [54 87 45; 23 98 39; 45 64 51; 54 77 49; 45 89 50; 47 NaN 55]; - g = [1 2 3 ; 1 2 3 ; 1 2 3 ; 1 2 3 ; 1 2 3 ; 1 2 3 ]; - [p, tbl] = anova1 (y(:), g(:), "off", "equal"); - assert (p, 0.00004163, 1e-6); - assert (tbl{2,5}, 22.573418, 1e-6); - assert (tbl{2,3}, 2, 0); - assert (tbl{3,3}, 14, 0); - [p, tbl] = anova1 (y(:), g(:), "off", "unequal"); - assert (p, 0.00208877, 1e-8); - assert (tbl{2,5}, 15.523192, 1e-6); - assert (tbl{2,3}, 2, 0); - assert (tbl{2,4}, 7.5786897, 1e-6); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/chi2test.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; + Y = ['1'; '2'; '1']; + model = fitcknn (X, Y); + L = loss (model, X, Y, 'LossFun', 'classiferror'); + assert (L, 0) ***** 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]; + Y = ['1'; '2'; '3']; + model = fitcknn (X, Y); + X_test = [3, 3]; + Y_test = ['1']; + L = loss (model, X_test, Y_test, 'LossFun', 'quadratic'); + assert (L, 1) ***** test - x = [11, 3, 8; 2, 9, 14; 12, 13, 28]; - [p, chisq] = chi2test (x); - assert (chisq, 11.9421, 1e-4); + X = [1, 2; 3, 4; 5, 6]; + Y = ['1'; '2'; '3']; + model = fitcknn (X, Y); + X_test = [3, 3; 5, 7]; + Y_test = ['1'; '2']; + L = loss (model, X_test, Y_test, 'LossFun', 'classifcost'); + assert (L, 1) ***** 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]; + Y = ['1'; '2'; '3']; + model = fitcknn (X, Y); + X_test = [3, 3; 5, 7]; + Y_test = ['1'; '2']; + L = loss (model, X_test, Y_test, 'LossFun', 'hinge'); + assert (L, 1) ***** 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]; + Y = ['1'; '2'; '3']; + model = fitcknn (X, Y); + X_test = [3, 3; 5, 7]; + Y_test = ['1'; '2']; + W = [1; 2]; + L = loss (model, X_test, Y_test, 'LossFun', 'logit', 'Weights', W); + assert (abs (L - 0.6931) < 1e-4) +***** error ... + loss (ClassificationKNN (ones (4,2), ones (4,1))) +***** error ... + loss (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2)) +***** error ... + loss (ClassificationKNN (ones (40,2), randi ([1, 2], 40, 1)), [], zeros (2)) +***** error ... + loss (ClassificationKNN (ones (40,2), randi ([1, 2], 40, 1)), 1, zeros (2)) +***** error ... + loss (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2), ... + ones (4,1), 'LossFun') +***** error ... + loss (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2), ones (3,1)) +***** error ... + loss (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2), ... + ones (4,1), 'LossFun', 'a') +***** error ... + loss (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2), ... + ones (4,1), 'Weights', 'w') ***** 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); + load fisheriris + mdl = fitcknn (meas, species, 'NumNeighbors', 5); + X = mean (meas); + Y = {'versicolor'}; + m = margin (mdl, X, Y); + assert (m, 1) ***** 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]; + Y = [1; 2; 3]; + mdl = fitcknn (X, Y); + m = margin (mdl, X, Y); + assert (m, [1; 1; 1]) ***** 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 = [7, 8; 9, 10]; + Y = ['1'; '2']; + mdl = fitcknn (X, Y); + m = margin (mdl, X, Y); + assert (m, [1; 1]) ***** 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 = [11, 12]; + Y = {'1'}; + mdl = fitcknn (X, Y); + m = margin (mdl, X, Y); + assert (isnan (m)) ***** 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/kruskalwallis.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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); + X = [1, 2; 3, 4; 5, 6]; + Y = [1; 2; 3]; + mdl = fitcknn (X, Y); + X1 = [15, 16]; + Y1 = [1]; + m = margin (mdl, X1, Y1); + assert (m, -1) +***** error ... + margin (ClassificationKNN (ones (4,2), ones (4,1))) +***** error ... + margin (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2)) +***** error ... + margin (ClassificationKNN (ones (40,2), randi ([1, 2], 40, 1)), [], zeros (2)) +***** error ... + margin (ClassificationKNN (ones (40,2), randi ([1, 2], 40, 1)), 1, zeros (2)) +***** error ... + margin (ClassificationKNN (ones (4,2), ones (4,1)), ones (4,2), ones (3,1)) +***** shared X, Y, mdl + X = [1, 2; 4, 5; 7, 8; 3, 2]; + Y = [2; 1; 3; 2]; + mdl = fitcknn (X, Y); ***** 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/friedman.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/friedman.m -***** demo - load popcorn; - friedman (popcorn, 3); -***** demo - load popcorn; - [p, atab] = friedman (popcorn, 3, "off"); - disp (p); + Vars = 1; + Labels = 2; + [pd, x, y] = partialDependence (mdl, Vars, Labels); + pdm = [0.7500, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000]; + assert (pd, pdm) ***** 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); + Vars = 1; + Labels = 2; + [pd, x, y] = partialDependence (mdl, Vars, Labels, ... + 'NumObservationsToSample', 5); + pdm = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + assert (abs (pdm - pd) < 1) ***** 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/hist3.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/hist3.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) + Vars = 1; + Labels = 2; + [pd, x, y] = partialDependence (mdl, Vars, Labels, 'UseParallel', true); + pdm = [0.7500, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000]; + assert (pd, pdm) ***** 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); + Vars = [1, 2]; + Labels = 1; + queryPoints = {linspace(0, 1, 3)', linspace(0, 1, 3)'}; + [pd, x, y] = partialDependence (mdl, Vars, Labels, 'QueryPoints', ... + queryPoints, 'UseParallel', true); + pdm = [0, 0, 0; 0, 0, 0; 0, 0, 0]; + assert (pd, pdm) ***** 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); + Vars = 1; + Labels = [1; 2]; + [pd, x, y] = partialDependence (mdl, Vars, Labels); + pdm = [0.2500, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.2500, 0.2500, 0.2500, ... + 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, ... + 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, ... + 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, ... + 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, ... + 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, 0.2500, ... + 0.2500, 0.2500; 0.7500, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, 0.5000, ... + 0.5000, 0.5000, 0.5000]; + assert (pd, pdm) ***** 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}); + Vars = [1, 2]; + Labels = [1; 2]; + queryPoints = {linspace(0, 1, 3)', linspace(0, 1, 3)'}; + [pd, x, y] = partialDependence (mdl, Vars, Labels, 'QueryPoints', queryPoints); + pdm(:,:,1) = [0, 0, 0; 1, 1, 1]; + pdm(:,:,2) = [0, 0, 0; 1, 1, 1]; + pdm(:,:,3) = [0, 0, 0; 1, 1, 1]; + assert (pd, pdm) ***** test - for i = 10 - assert (size (hist3 (rand (9, 2), "Edges", {[0:.2:1]; [0:.2:1]})), [6 6]) - endfor + X1 = [1; 2; 4; 5; 7; 8; 3; 2]; + X2 = ['2'; '3'; '1'; '3'; '1'; '3'; '2'; '2']; + X = [X1, double(X2)]; + Y = [1; 2; 3; 3; 2; 1; 2; 1]; + mdl = fitcknn (X, Y, 'ClassNames', {'1', '2', '3'}); + Vars = 1; + Labels = 1; + [pd, x, y] = partialDependence (mdl, Vars, Labels); + pdm = [1.0000, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, ... + 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, ... + 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3750, ... + 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, ... + 0.3750, 0.3750, 0.3750, 0.3750, 0.7500, 0.7500, 0.7500, 0.7500, 0.7500, ... + 0.7500, 0.7500, 0.7500]; + assert (pd, pdm) ***** 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]; + X1 = [1; 2; 4; 5; 7; 8; 3; 2]; + X2 = ['2'; '3'; '1'; '3'; '1'; '3'; '2'; '2']; + X = [X1, double(X2)]; + Y = [1; 2; 3; 3; 2; 1; 2; 1]; + predictorNames = {'Feature1', 'Feature2'}; + mdl = fitcknn (X, Y, 'PredictorNames', predictorNames); + Vars = 'Feature1'; + Labels = 1; + [pd, x, y] = partialDependence (mdl, Vars, Labels); + pdm = [1.0000, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, ... + 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, ... + 0.6250, 0.6250, 0.6250, 0.6250, 0.6250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3750, ... + 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, 0.3750, ... + 0.3750, 0.3750, 0.3750, 0.3750, 0.7500, 0.7500, 0.7500, 0.7500, 0.7500, ... + 0.7500, 0.7500, 0.7500]; + assert (pd, pdm) ***** 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) + X1 = [1; 2; 4; 5; 7; 8; 3; 2]; + X2 = ['2'; '3'; '1'; '3'; '1'; '3'; '2'; '2']; + X = [X1, double(X2)]; + Y = [1; 2; 3; 3; 2; 1; 2; 1]; + predictorNames = {'Feature1', 'Feature2'}; + mdl = fitcknn (X, Y, 'PredictorNames', predictorNames); + new_X1 = [10; 5; 6; 8; 9; 20; 35; 6]; + new_X2 = ['2'; '2'; '1'; '2'; '1'; '3'; '3'; '2']; + new_X = [new_X1, double(new_X2)]; + Vars = 'Feature1'; + Labels = 1; + [pd, x, y] = partialDependence (mdl, Vars, Labels, new_X); + pdm = [0, 0, 0, 0, 0, 0.2500, 0.2500, 0.2500, 0.2500, 0.7500, 0.7500, ... + 0.7500, 0.7500, 0.7500, 0.7500, 1.0000, 1.0000, 1.0000, 1.0000, 1.0000, ... + 1.0000, 1.0000, 1.0000, 1.0000, 1.0000, 1.0000, 1.0000, 1.0000, 1.0000, ... + 1.0000, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; + assert (pd, pdm) +***** error ... + partialDependence (ClassificationKNN (ones (4,2), ones (4,1))) +***** error ... + partialDependence (ClassificationKNN (ones (4,2), ones (4,1)), 1) +***** error ... + partialDependence (ClassificationKNN (ones (4,2), ones (4,1)), 1, ... + ones (4,1), 'NumObservationsToSample') +***** error ... + partialDependence (ClassificationKNN (ones (4,2), ones (4,1)), 1, ... + ones (4,1), 2) +***** shared x, y, obj + load fisheriris + x = meas; + y = species; + covMatrix = cov (x); + obj = fitcknn (x, y, 'NumNeighbors', 5, 'Distance', ... + 'mahalanobis', 'Cov', covMatrix); ***** 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) + CVMdl = crossval (obj); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (CVMdl.KFold == 10) + assert (CVMdl.ModelParameters.NumNeighbors == 5) + assert (strcmp (CVMdl.ModelParameters.Distance, "mahalanobis")) + assert (class (CVMdl.Trained{1}), "ClassificationKNN") + assert (!CVMdl.ModelParameters.Standardize) ***** 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}) + CVMdl = crossval (obj, "KFold", 5); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (CVMdl.KFold == 5) + assert (CVMdl.ModelParameters.NumNeighbors == 5) + assert (strcmp (CVMdl.ModelParameters.Distance, "mahalanobis")) + assert (class (CVMdl.Trained{1}), "ClassificationKNN") + assert (CVMdl.ModelParameters.Standardize == obj.Standardize) ***** 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}) + obj = fitcknn (x, y, "NumNeighbors", 5, "Distance", "cityblock"); + CVMdl = crossval (obj, "HoldOut", 0.2); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (CVMdl.ModelParameters.NumNeighbors == 5) + assert (strcmp (CVMdl.ModelParameters.Distance, "cityblock")) + assert (class (CVMdl.Trained{1}), "ClassificationKNN") + assert (CVMdl.ModelParameters.Standardize == obj.Standardize) ***** 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) + obj = fitcknn (x, y, "NumNeighbors", 10, "Distance", "cityblock"); + CVMdl = crossval (obj, "LeaveOut", 'on'); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (CVMdl.ModelParameters.NumNeighbors == 10) + assert (strcmp (CVMdl.ModelParameters.Distance, "cityblock")) + assert (class (CVMdl.Trained{1}), "ClassificationKNN") + assert (CVMdl.ModelParameters.Standardize == obj.Standardize) ***** 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) + obj = fitcknn (x, y, "NumNeighbors", 10, "Distance", "cityblock"); + partition = cvpartition (y, 'KFold', 3); + CVMdl = crossval (obj, 'cvPartition', partition); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert (CVMdl.KFold == 3) + assert (CVMdl.ModelParameters.NumNeighbors == 10) + assert (strcmp (CVMdl.ModelParameters.Distance, "cityblock")) + assert (class (CVMdl.Trained{1}), "ClassificationKNN") + assert (CVMdl.ModelParameters.Standardize == obj.Standardize) +***** error ... + crossval (ClassificationKNN (ones (4,2), ones (4,1)), "kfold") +***** error... + crossval (ClassificationKNN (ones (4,2), ones (4,1)), "kfold", 12, "holdout", 0.2) +***** error ... + crossval (ClassificationKNN (ones (4,2), ones (4,1)), "kfold", 'a') +***** error ... + crossval (ClassificationKNN (ones (4,2), ones (4,1)), "holdout", 2) +***** error ... + crossval (ClassificationKNN (ones (4,2), ones (4,1)), "leaveout", 1) +***** error ... + crossval (ClassificationKNN (ones (4,2), ones (4,1)), "cvpartition", 1) +162 tests, 162 passed, 0 known failure, 0 skipped +[inst/Classification/CompactClassificationNeuralNetwork.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/CompactClassificationNeuralNetwork.m +***** demo + ## Create a neural network classifier and its compact version + # and compare their size - ## 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) + load fisheriris + X = meas; + Y = species; - 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) + Mdl = fitcnet (X, Y, 'ClassNames', unique (species)) + CMdl = crossval (Mdl); - [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) + whos ('Mdl', 'CMdl') +***** error ... + CompactClassificationDiscriminant (1) +***** shared x, y, CMdl + load fisheriris + x = meas; + y = grp2idx (species); + Mdl = fitcnet (x, y, "IterationLimit", 100); + CMdl = compact (Mdl); +***** error ... + predict (CMdl) +***** error ... + predict (CMdl, []) +***** error ... + predict (CMdl, 1) ***** 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) + CMdl.ScoreTransform = "a"; +***** error ... + [labels, scores] = predict (CMdl, x); +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/Classification/ClassificationNeuralNetwork.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/ClassificationNeuralNetwork.m +***** error ... + ClassificationNeuralNetwork () +***** error ... + ClassificationNeuralNetwork (ones(10,2)) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones (5,1)) +***** error ... + ClassificationNeuralNetwork (ones (5,3), ones (5,1), "standardize", "a") +***** error ... + ClassificationNeuralNetwork (ones (5,2), ones (5,1), "PredictorNames", ["A"]) +***** error ... + ClassificationNeuralNetwork (ones (5,2), ones (5,1), "PredictorNames", "A") +***** error ... + ClassificationNeuralNetwork (ones (5,2), ones (5,1), "PredictorNames", {"A", "B", "C"}) +***** error ... + ClassificationNeuralNetwork (ones (5,2), ones (5,1), "ResponseName", {"Y"}) +***** error ... + ClassificationNeuralNetwork (ones (5,2), ones (5,1), "ResponseName", 1) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones (10,1), "ClassNames", @(x)x) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones (10,1), "ClassNames", ['a']) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones (10,1), "ClassNames", [1, 2]) +***** error ... + ClassificationNeuralNetwork (ones(5,2), {'a';'b';'a';'a';'b'}, "ClassNames", {'a','c'}) +***** error ... + ClassificationNeuralNetwork (ones(10,2), logical (ones (10,1)), "ClassNames", [true, false]) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LayerSizes", -1) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LayerSizes", 0.5) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LayerSizes", [1,-2]) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LayerSizes", [10,20,30.5]) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LearningRate", -0.1) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LearningRate", [0.1, 0.01]) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LearningRate", "a") +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "Activations", 123) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "Activations", "unsupported_type") +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "LayerSizes", [10, 5], ... + "Activations", {"sigmoid", "unsupported_type"}) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "Activations", {"sigmoid", "relu", "softmax"}) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "OutputLayerActivation", 123) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "OutputLayerActivation", "unsupported_type") +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "IterationLimit", -1) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "IterationLimit", 0.5) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "IterationLimit", [1,2]) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "ScoreTransform", [1,2]) +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "ScoreTransform", "unsupported_type") +***** error ... + ClassificationNeuralNetwork (ones(10,2), ones(10,1), "some", "some") +***** error ... + ClassificationNeuralNetwork ([1;2;3;'a';4], ones (5,1)) +***** error ... + ClassificationNeuralNetwork ([1;2;3;Inf;4], ones (5,1)) +***** shared x, y, objST, Mdl + load fisheriris + x = meas; + y = grp2idx (species); + Mdl = fitcnet (x, y, "IterationLimit", 100); +***** error ... + predict (Mdl) +***** error ... + predict (Mdl, []) +***** error ... + predict (Mdl, 1) ***** 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/manova1.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/manova1.m -***** demo - load carbig - [d,p] = manova1([MPG, Acceleration, Weight, Displacement], Origin) + objST = fitcnet (x, y, "IterationLimit", 100); + objST.ScoreTransform = "a"; +***** error ... + [labels, scores] = predict (objST, x); +***** error ... + [labels, scores] = resubPredict (objST); ***** 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]'); + CVMdl = crossval (Mdl, "KFold", 5); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (CVMdl.KFold == 5) + assert (class (CVMdl.Trained{1}), "CompactClassificationNeuralNetwork") + assert (CVMdl.CrossValidatedModel, "ClassificationNeuralNetwork") ***** 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/plsregress.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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"); + CVMdl = crossval (Mdl, "HoldOut", 0.2); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (class (CVMdl.Trained{1}), "CompactClassificationNeuralNetwork") + assert (CVMdl.CrossValidatedModel, "ClassificationNeuralNetwork") +***** error ... + crossval (Mdl, "KFold") +***** error ... + crossval (Mdl, "KFold", 5, "leaveout", 'on') +***** error ... + crossval (Mdl, "KFold", 'a') +***** error ... + crossval (Mdl, "KFold", 1) +***** error ... + crossval (Mdl, "KFold", -1) +***** error ... + crossval (Mdl, "KFold", 11.5) +***** error ... + crossval (Mdl, "KFold", [1,2]) +***** error ... + crossval (Mdl, "Holdout", 'a') +***** error ... + crossval (Mdl, "Holdout", 11.5) +***** error ... + crossval (Mdl, "Holdout", -1) +***** error ... + crossval (Mdl, "Holdout", 0) +***** error ... + crossval (Mdl, "Holdout", 1) +***** error ... + crossval (Mdl, "Leaveout", 1) +***** error ... + crossval (Mdl, "CVPartition", 1) +***** error ... + crossval (Mdl, "CVPartition", 'a') +***** error ... + crossval (Mdl, "some", "some") +59 tests, 59 passed, 0 known failure, 0 skipped +[inst/Classification/CompactClassificationSVM.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/CompactClassificationSVM.m ***** 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)); + ## Create a support vectors machine classifier and its compact version + # and compare their size - ## 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)); + load fisheriris + X = meas; + Y = species; - ## Find variables with a VIP score greater than or equal to 1 - VIPidx = find (VIPscore >= 1); + Mdl = fitcsvm (X, Y, 'ClassNames', unique (species)) + CMdl = crossval (Mdl); - ## 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"); + whos ('Mdl', 'CMdl') +***** error ... + CompactClassificationSVM (1) +***** shared x, y, CMdl + load fisheriris + inds = ! strcmp (species, 'setosa'); + x = meas(inds, 3:4); + y = grp2idx (species(inds)); ***** 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); + xc = [min(x); mean(x); max(x)]; + Mdl = fitcsvm (x, y, 'KernelFunction', 'rbf', 'Tolerance', 1e-7); + CMdl = compact (Mdl); + assert (isempty (CMdl.Alpha), true) + assert (sum (CMdl.IsSupportVector), numel (CMdl.Beta)) + [label, score] = predict (CMdl, xc); + assert (label, [1; 2; 2]); + assert (score(:,1), [0.99285; -0.080296; -0.93694], 1e-5); + assert (score(:,1), -score(:,2), eps) ***** 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/fullfact.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]); + Mdl = fitcsvm (x, y); + CMdl = compact (Mdl); + assert (isempty (CMdl.Beta), true) + assert (sum (CMdl.IsSupportVector), numel (CMdl.Alpha)) + assert (numel (CMdl.Alpha), 24) + assert (CMdl.Bias, -14.415, 1e-3) + xc = [min(x); mean(x); max(x)]; + label = predict (CMdl, xc); + assert (label, [1; 2; 2]); +***** error ... + predict (CMdl) +***** error ... + predict (CMdl, []) +***** error ... + predict (CMdl, 1) ***** test - A = fullfact (2); - assert (A, [0, 0; 0, 1; 1, 0; 1, 1]); + CMdl.ScoreTransform = "a"; +***** error ... + [labels, scores] = predict (CMdl, x); ***** test - A = fullfact ([1, 2]); - assert (A, [1, 1; 1, 2]); + rand ("seed", 1); + C = cvpartition (y, 'HoldOut', 0.15); + Mdl = fitcsvm (x(training (C),:), y(training (C)), ... + 'KernelFunction', 'rbf', 'Tolerance', 1e-7); + CMdl = compact (Mdl); + testInds = test (C); + expected_margin = [2.0000; 0.8579; 1.6690; 3.4141; 3.4552; ... + 2.6605; 3.5251; -4.0000; -6.3411; -6.4511; ... + -3.0532; -7.5054; -1.6700; -5.6227; -7.3640]; + computed_margin = margin (CMdl, x(testInds,:), y(testInds,:)); + assert (computed_margin, expected_margin, 1e-4); +***** error ... + margin (CMdl) +***** error ... + margin (CMdl, zeros (2)) +***** error ... + margin (CMdl, [], 1) +***** error ... + margin (CMdl, 1, 1) +***** error ... + margin (CMdl, [1, 2], []) +***** error ... + margin (CMdl, [1, 2], [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/wblplot.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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); + rand ("seed", 1); + C = cvpartition (y, 'HoldOut', 0.15); + Mdl = fitcsvm (x(training (C),:), y(training (C)), ... + 'KernelFunction', 'rbf', 'Tolerance', 1e-7); + CMdl = compact (Mdl); + testInds = test (C); + L1 = loss (CMdl, x(testInds,:), y(testInds,:), 'LossFun', 'binodeviance'); + L2 = loss (CMdl, x(testInds,:), y(testInds,:), 'LossFun', 'classiferror'); + L3 = loss (CMdl, x(testInds,:), y(testInds,:), 'LossFun', 'exponential'); + L4 = loss (CMdl, x(testInds,:), y(testInds,:), 'LossFun', 'hinge'); + L5 = loss (CMdl, x(testInds,:), y(testInds,:), 'LossFun', 'logit'); + L6 = loss (CMdl, x(testInds,:), y(testInds,:), 'LossFun', 'quadratic'); + assert (L1, 2.8711, 1e-4); + assert (L2, 0.5333, 1e-4); + assert (L3, 10.9685, 1e-4); + assert (L4, 1.9827, 1e-4); + assert (L5, 1.5849, 1e-4); + assert (L6, 7.6739, 1e-4); +***** error ... + loss (CMdl) +***** error ... + loss (CMdl, zeros (2)) +***** error ... + loss (CMdl, [1, 2], 1, "LossFun") +***** error ... + loss (CMdl, [], zeros (2)) +***** error ... + loss (CMdl, 1, zeros (2)) +***** error ... + loss (CMdl, [1, 2], []) +***** error ... + loss (CMdl, [1, 2], [1; 2]) +***** error ... + loss (CMdl, [1, 2], 1, "LossFun", 1) +***** error ... + loss (CMdl, [1, 2], 1, "LossFun", "some") +***** error ... + loss (CMdl, [1, 2], 1, "Weights", ['a', 'b']) +***** error ... + loss (CMdl, [1, 2], 1, "Weights", 'a') +***** error ... + loss (CMdl, [1, 2], 1, "Weights", [1, 2]) +***** error ... + loss (CMdl, [1, 2], 1, "some", "some") +29 tests, 29 passed, 0 known failure, 0 skipped +[inst/Classification/ConfusionMatrixChart.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/ConfusionMatrixChart.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); + ## Create a simple ConfusionMatrixChart Object + + cm = ConfusionMatrixChart (gca, [1 2; 1 2], {"A","B"}, {"XLabel","LABEL A"}) + NormalizedValues = cm.NormalizedValues + ClassLabels = cm.ClassLabels ***** 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) + 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/dist_fit/evlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ricelike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hnfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/hnfit.m +[inst/Classification/CompactClassificationGAM.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/CompactClassificationGAM.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]; + ## Create a generalized additive model classifier and its compact version + # and compare their size - ## 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 + load fisheriris + X = meas; + Y = species; - ## Estimate their shape parameters - mu_sigmaA = hnfit (r(:,1), 0); - mu_sigmaB = hnfit (r(:,2), 0); + Mdl = fitcdiscr (X, Y, 'ClassNames', unique (species)) + CMdl = crossval (Mdl); - ## 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 + whos ('Mdl', 'CMdl') ***** 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); + Mdl = CompactClassificationGAM (); + assert (class (Mdl), "CompactClassificationGAM") ***** 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/gevlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/gevlike.m + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = [0; 0; 1; 1]; + PredictorNames = {'Feature1', 'Feature2', 'Feature3'}; + Mdl = fitcgam (x, y, "PredictorNames", PredictorNames); + CMdl = compact (Mdl); + assert (class (CMdl), "CompactClassificationGAM"); + assert ({CMdl.NumPredictors, CMdl.ResponseName}, {3, "Y"}) + assert (CMdl.ClassNames, {'0'; '1'}) + assert (CMdl.PredictorNames, PredictorNames) + assert (CMdl.BaseModel.Intercept, 0) ***** 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); + load fisheriris + inds = strcmp (species,'versicolor') | strcmp (species,'virginica'); + X = meas(inds, :); + Y = species(inds, :)'; + Y = strcmp (Y, 'virginica')'; + Mdl = fitcgam (X, Y, 'Formula', 'Y ~ x1 + x2 + x3 + x4 + x1:x2 + x2:x3'); + CMdl = compact (Mdl); + assert (class (CMdl), "CompactClassificationGAM"); + assert ({CMdl.NumPredictors, CMdl.ResponseName}, {4, "Y"}) + assert (CMdl.ClassNames, {'0'; '1'}) + assert (CMdl.Formula, 'Y ~ x1 + x2 + x3 + x4 + x1:x2 + x2:x3') + assert (CMdl.PredictorNames, {'x1', 'x2', 'x3', 'x4'}) + assert (CMdl.ModelwInt.Intercept, 0) ***** 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); + X = [2, 3, 5; 4, 6, 8; 1, 2, 3; 7, 8, 9; 5, 4, 3]; + Y = [0; 1; 0; 1; 1]; + Mdl = fitcgam (X, Y, 'Knots', [4, 4, 4], 'Order', [3, 3, 3]); + CMdl = compact (Mdl); + assert (class (CMdl), "CompactClassificationGAM"); + assert ({CMdl.NumPredictors, CMdl.ResponseName}, {3, "Y"}) + assert (CMdl.ClassNames, {'0'; '1'}) + assert (CMdl.PredictorNames, {'x1', 'x2', 'x3'}) + assert (CMdl.Knots, [4, 4, 4]) + assert (CMdl.Order, [3, 3, 3]) + assert (CMdl.DoF, [7, 7, 7]) + assert (CMdl.BaseModel.Intercept, 0.4055, 1e-1) +***** error ... + CompactClassificationGAM (1) ***** 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); + x = [1, 2; 3, 4; 5, 6; 7, 8; 9, 10]; + y = [1; 0; 1; 0; 1]; + Mdl = fitcgam (x, y, "interactions", "all"); + CMdl = compact (Mdl); + l = {'0'; '0'; '0'; '0'; '0'}; + s = [0.3760, 0.6240; 0.4259, 0.5741; 0.3760, 0.6240; ... + 0.4259, 0.5741; 0.3760, 0.6240]; + [labels, scores] = predict (CMdl, x); + assert (class (CMdl), "CompactClassificationGAM"); + assert ({CMdl.NumPredictors, CMdl.ResponseName}, {2, "Y"}) + assert (CMdl.ClassNames, {'1'; '0'}) + assert (CMdl.PredictorNames, {'x1', 'x2'}) + assert (CMdl.ModelwInt.Intercept, 0.4055, 1e-1) + assert (labels, l) + assert (scores, s, 1e-1) ***** 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/normlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = [0; 0; 1; 1]; + interactions = [false, true, false; true, false, true; false, true, false]; + Mdl = fitcgam (x, y, "learningrate", 0.2, "interactions", interactions); + CMdl = compact (Mdl); + [label, score] = predict (CMdl, x, "includeinteractions", true); + l = {'0'; '0'; '1'; '1'}; + s = [0.5106, 0.4894; 0.5135, 0.4865; 0.4864, 0.5136; 0.4847, 0.5153]; + assert (class (CMdl), "CompactClassificationGAM"); + assert ({CMdl.NumPredictors, CMdl.ResponseName}, {3, "Y"}) + assert (CMdl.ClassNames, {'0'; '1'}) + assert (CMdl.PredictorNames, {'x1', 'x2', 'x3'}) + assert (CMdl.ModelwInt.Intercept, 0) + assert (label, l) + assert (score, s, 1e-1) +***** shared CMdl + Mdl = fitcgam (ones (4,2), ones (4,1)); + CMdl = compact (Mdl); +***** error ... + predict (CMdl) +***** error ... + predict (CMdl, []) +***** error ... + predict (CMdl, 1) +10 tests, 10 passed, 0 known failure, 0 skipped +[inst/Classification/ClassificationDiscriminant.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/ClassificationDiscriminant.m +***** demo + ## Create discriminant classifier + ## Evaluate some model predictions on new data. + + load fisheriris + x = meas; + y = species; + xc = [min(x); mean(x); max(x)]; + obj = fitcdiscr (x, y); + [label, score, cost] = predict (obj, xc); +***** demo + load fisheriris + model = fitcdiscr (meas, species); + X = mean (meas); + Y = {'versicolor'}; + ## Compute loss for discriminant model + L = loss (model, X, Y) +***** demo + load fisheriris + mdl = fitcdiscr (meas, species); + X = mean (meas); + Y = {'versicolor'}; + ## Margin for discriminant model + m = margin (mdl, X, Y) +***** demo + load fisheriris + x = meas; + y = species; + obj = fitcdiscr (x, y, "gamma", 0.4); + ## Cross-validation for discriminant model + CVMdl = crossval (obj) ***** 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); + load fisheriris + x = meas; + y = species; + PredictorNames = {'Sepal Length', 'Sepal Width', 'Petal Length', 'Petal Width'}; + Mdl = ClassificationDiscriminant (x, y, "PredictorNames", PredictorNames); + sigma = [0.265008, 0.092721, 0.167514, 0.038401; ... + 0.092721, 0.115388, 0.055244, 0.032710; ... + 0.167514, 0.055244, 0.185188, 0.042665; ... + 0.038401, 0.032710, 0.042665, 0.041882]; + mu = [5.0060, 3.4280, 1.4620, 0.2460; ... + 5.9360, 2.7700, 4.2600, 1.3260; ... + 6.5880, 2.9740, 5.5520, 2.0260]; + xCentered = [ 9.4000e-02, 7.2000e-02, -6.2000e-02, -4.6000e-02; ... + -1.0600e-01, -4.2800e-01, -6.2000e-02, -4.6000e-02; ... + -3.0600e-01, -2.2800e-01, -1.6200e-01, -4.6000e-02]; + assert (class (Mdl), "ClassificationDiscriminant"); + assert ({Mdl.X, Mdl.Y, Mdl.NumObservations}, {x, y, 150}) + assert ({Mdl.DiscrimType, Mdl.ResponseName}, {"linear", "Y"}) + assert ({Mdl.Gamma, Mdl.MinGamma}, {0, 0}, 1e-15) + assert (Mdl.ClassNames, unique (species)) + assert (Mdl.Sigma, sigma, 1e-6) + assert (Mdl.Mu, mu, 1e-14) + assert (Mdl.XCentered([1:3],:), xCentered, 1e-14) + assert (Mdl.LogDetSigma, -9.9585, 1e-4) + assert (Mdl.PredictorNames, PredictorNames) ***** 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); + load fisheriris + x = meas; + y = species; + Mdl = ClassificationDiscriminant (x, y, "Gamma", 0.5); + sigma = [0.265008, 0.046361, 0.083757, 0.019201; ... + 0.046361, 0.115388, 0.027622, 0.016355; ... + 0.083757, 0.027622, 0.185188, 0.021333; ... + 0.019201, 0.016355, 0.021333, 0.041882]; + mu = [5.0060, 3.4280, 1.4620, 0.2460; ... + 5.9360, 2.7700, 4.2600, 1.3260; ... + 6.5880, 2.9740, 5.5520, 2.0260]; + xCentered = [ 9.4000e-02, 7.2000e-02, -6.2000e-02, -4.6000e-02; ... + -1.0600e-01, -4.2800e-01, -6.2000e-02, -4.6000e-02; ... + -3.0600e-01, -2.2800e-01, -1.6200e-01, -4.6000e-02]; + assert (class (Mdl), "ClassificationDiscriminant"); + assert ({Mdl.X, Mdl.Y, Mdl.NumObservations}, {x, y, 150}) + assert ({Mdl.DiscrimType, Mdl.ResponseName}, {"linear", "Y"}) + assert ({Mdl.Gamma, Mdl.MinGamma}, {0.5, 0}) + assert (Mdl.ClassNames, unique (species)) + assert (Mdl.Sigma, sigma, 1e-6) + assert (Mdl.Mu, mu, 1e-14) + assert (Mdl.XCentered([1:3],:), xCentered, 1e-14) + assert (Mdl.LogDetSigma, -8.6884, 1e-4) +***** shared X, Y, MODEL + X = rand (10,2); + Y = [ones(5,1);2*ones(5,1)]; + MODEL = ClassificationDiscriminant (X, Y); +***** error ClassificationDiscriminant () +***** error ... + ClassificationDiscriminant (ones(4, 1)) +***** error ... + ClassificationDiscriminant (ones (4,2), ones (1,4)) +***** error ... + ClassificationDiscriminant (X, Y, "PredictorNames", ["A"]) +***** error ... + ClassificationDiscriminant (X, Y, "PredictorNames", "A") +***** error ... + ClassificationDiscriminant (X, Y, "PredictorNames", {"A", "B", "C"}) +***** error ... + ClassificationDiscriminant (X, Y, "ResponseName", {"Y"}) +***** error ... + ClassificationDiscriminant (X, Y, "ResponseName", 1) +***** error ... + ClassificationDiscriminant (X, Y, "ClassNames", @(x)x) +***** error ... + ClassificationDiscriminant (X, Y, "ClassNames", ['a']) +***** error ... + ClassificationDiscriminant (X, ones (10,1), "ClassNames", [1, 2]) +***** error ... + ClassificationDiscriminant ([1;2;3;4;5], {'a';'b';'a';'a';'b'}, "ClassNames", {'a','c'}) +***** error ... + ClassificationDiscriminant (X, logical (ones (10,1)), "ClassNames", [true, false]) +***** error ... + ClassificationDiscriminant (X, Y, "Prior", {"1", "2"}) +***** error ... + ClassificationDiscriminant (X, ones (10,1), "Prior", [1 2]) +***** error ... + ClassificationDiscriminant (X, Y, "Cost", [1, 2]) +***** error ... + ClassificationDiscriminant (X, Y, "Cost", "string") +***** error ... + ClassificationDiscriminant (X, Y, "Cost", {eye(2)}) +***** error ... + ClassificationDiscriminant (X, Y, "Cost", ones (3)) +***** error ... + ClassificationDiscriminant (ones (5,2), [1; 1; 2; 2; 2]) +***** error ... + ClassificationDiscriminant (ones (5,2), [1; 1; 2; 2; 2], "PredictorNames", {"A", "B"}) +***** error ... + ClassificationDiscriminant ([1,2;2,2;3,2;4,2;5,2], ones (5, 1)) +***** error ... + ClassificationDiscriminant ([1,2;2,2;3,2;4,2;5,2], ones (5, 1), "PredictorNames", {"A", "B"}) ***** 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); + load fisheriris + x = meas; + y = species; + Mdl = fitcdiscr (meas, species, "Gamma", 0.5); + [label, score, cost] = predict (Mdl, [2, 2, 2, 2]); + assert (label, {'versicolor'}) + assert (score, [0, 0.9999, 0.0001], 1e-4) + assert (cost, [1, 0.0001, 0.9999], 1e-4) + [label, score, cost] = predict (Mdl, [2.5, 2.5, 2.5, 2.5]); + assert (label, {'versicolor'}) + assert (score, [0, 0.6368, 0.3632], 1e-4) + assert (cost, [1, 0.3632, 0.6368], 1e-4) ***** 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]); + load fisheriris + x = meas; + y = species; + xc = [min(x); mean(x); max(x)]; + Mdl = fitcdiscr (x, y); + [label, score, cost] = predict (Mdl, xc); + l = {'setosa'; 'versicolor'; 'virginica'}; + s = [1, 0, 0; 0, 1, 0; 0, 0, 1]; + c = [0, 1, 1; 1, 0, 1; 1, 1, 0]; + assert (label, l) + assert (score, s, 1e-4) + assert (cost, c, 1e-4) +***** error ... + predict (MODEL) +***** error ... + predict (MODEL, []) +***** error ... + predict (MODEL, 1) ***** 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/wbllike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/wbllike.m + load fisheriris + model = fitcdiscr (meas, species); + x = mean (meas); + y = {'versicolor'}; + L = loss (model, x, y); + assert (L, 0) ***** 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); + x = [1, 2; 3, 4; 5, 6]; + y = {'A'; 'B'; 'A'}; + model = fitcdiscr (x, y, "Gamma", 0.4); + x_test = [1, 6; 3, 3]; + y_test = {'A'; 'B'}; + L = loss (model, x_test, y_test); + assert (L, 0.3333, 1e-4) ***** 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); + x = [1, 2; 3, 4; 5, 6; 7, 8]; + y = ['1'; '2'; '3'; '1']; + model = fitcdiscr (x, y, "gamma" , 0.5); + x_test = [3, 3]; + y_test = ['1']; + L = loss (model, x_test, y_test, 'LossFun', 'quadratic'); + assert (L, 0.2423, 1e-4) ***** 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/unifit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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 + x = [1, 2; 3, 4; 5, 6; 7, 8]; + y = ['1'; '2'; '3'; '1']; + model = fitcdiscr (x, y, "gamma" , 0.5); + x_test = [3, 3; 5, 7]; + y_test = ['1'; '2']; + L = loss (model, x_test, y_test, 'LossFun', 'classifcost'); + assert (L, 0.3333, 1e-4) ***** test - x = 0:5; - [paramhat, paramci] = unifit (x); - assert (paramhat, [0, 5]); - assert (paramci, [-3.2377, 8.2377; 0, 5], 1e-4); + x = [1, 2; 3, 4; 5, 6; 7, 8]; + y = ['1'; '2'; '3'; '1']; + model = fitcdiscr (x, y, "gamma" , 0.5); + x_test = [3, 3; 5, 7]; + y_test = ['1'; '2']; + L = loss (model, x_test, y_test, 'LossFun', 'hinge'); + assert (L, 0.5886, 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/gumbelfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; - - ## 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 + x = [1, 2; 3, 4; 5, 6; 7, 8]; + y = ['1'; '2'; '3'; '1']; + model = fitcdiscr (x, y, "gamma" , 0.5); + x_test = [3, 3; 5, 7]; + y_test = ['1'; '2']; + W = [1; 2]; + L = loss (model, x_test, y_test, 'LossFun', 'logit', 'Weights', W); + assert (L, 0.5107, 1e-4) ***** 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); + x = [1, 2; 3, 4; 5, 6]; + y = {'A'; 'B'; 'A'}; + model = fitcdiscr (x, y, "gamma" , 0.5); + x_with_nan = [1, 2; NaN, 4]; + y_test = {'A'; 'B'}; + L = loss (model, x_with_nan, y_test); + assert (L, 0.3333, 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/wblfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; - - ## 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 - - ## Estimate their lambda parameter - lambda_kA = wblfit (r(:,1)); - lambda_kB = wblfit (r(:,2)); - lambda_kC = wblfit (r(:,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 + x = [1, 2; 3, 4; 5, 6]; + y = {'A'; 'B'; 'A'}; + model = fitcdiscr (x, y); + x_with_nan = [1, 2; NaN, 4]; + y_test = {'A'; 'B'}; + L = loss (model, x_with_nan, y_test, 'LossFun', 'logit'); + assert (isnan (L)) ***** 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); + x = [1, 2; 3, 4; 5, 6]; + y = {'A'; 'B'; 'A'}; + model = fitcdiscr (x, y); + customLossFun = @(C, S, W, Cost) sum (W .* sum (abs (C - S), 2)); + L = loss (model, x, y, 'LossFun', customLossFun); + assert (L, 0.8889, 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/lognlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/lognlike.m + x = [1, 2; 3, 4; 5, 6]; + y = [1; 2; 1]; + model = fitcdiscr (x, y); + L = loss (model, x, y, 'LossFun', 'classiferror'); + assert (L, 0.3333, 1e-4) +***** error ... + loss (MODEL) +***** error ... + loss (MODEL, ones (4,2)) +***** error ... + loss (MODEL, [], zeros (2)) +***** error ... + loss (MODEL, 1, zeros (2)) +***** error ... + loss (MODEL, ones (4,2), ones (4,1), 'LossFun') +***** error ... + loss (MODEL, ones (4,2), ones (3,1)) +***** error ... + loss (MODEL, ones (4,2), ones (4,1), 'LossFun', 'a') +***** error ... + loss (MODEL, ones (4,2), ones (4,1), 'Weights', 'w') + load fisheriris + mdl = fitcdiscr (meas, species); + X = mean (meas); + Y = {'versicolor'}; + m = margin (mdl, X, Y); + assert (m, 1, 1e-6) ***** 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); + X = [1, 2; 3, 4; 5, 6]; + Y = [1; 2; 1]; + mdl = fitcdiscr (X, Y, "gamma", 0.5); + m = margin (mdl, X, Y); + assert (m, [0.3333; -0.3333; 0.3333], 1e-4) +***** error ... + margin (MODEL) +***** error ... + margin (MODEL, ones (4,2)) +***** error ... + margin (MODEL, [], zeros (2)) +***** error ... + margin (MODEL, 1, zeros (2)) +***** error ... + margin (MODEL, ones (4,2), ones (3,1)) +***** shared x, y, obj + load fisheriris + x = meas; + y = species; + obj = fitcdiscr (x, y, "gamma", 0.4); ***** 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); + CVMdl = crossval (obj); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (CVMdl.KFold == 10) + assert (class (CVMdl.Trained{1}), "CompactClassificationDiscriminant") + assert (CVMdl.CrossValidatedModel, "ClassificationDiscriminant") ***** 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); + CVMdl = crossval (obj, "KFold", 3); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (CVMdl.KFold == 3) + assert (class (CVMdl.Trained{1}), "CompactClassificationDiscriminant") + assert (CVMdl.CrossValidatedModel, "ClassificationDiscriminant") ***** 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); + CVMdl = crossval (obj, "HoldOut", 0.2); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (class (CVMdl.Trained{1}), "CompactClassificationDiscriminant") + assert (CVMdl.CrossValidatedModel, "ClassificationDiscriminant") ***** 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/binolike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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) + CVMdl = crossval (obj, "LeaveOut", 'on'); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (class (CVMdl.Trained{1}), "CompactClassificationDiscriminant") + assert (CVMdl.CrossValidatedModel, "ClassificationDiscriminant") ***** 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/burrfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/burrfit.m + partition = cvpartition (y, 'KFold', 3); + CVMdl = crossval (obj, 'cvPartition', partition); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert (CVMdl.KFold == 3) + assert (class (CVMdl.Trained{1}), "CompactClassificationDiscriminant") + assert (CVMdl.CrossValidatedModel, "ClassificationDiscriminant") +***** error ... + crossval (obj, "kfold") +***** error... + crossval (obj, "kfold", 12, "holdout", 0.2) +***** error ... + crossval (obj, "kfold", 'a') +***** error ... + crossval (obj, "holdout", 2) +***** error ... + crossval (obj, "leaveout", 1) +***** error ... + crossval (obj, "cvpartition", 1) +65 tests, 65 passed, 0 known failure, 0 skipped +[inst/Classification/ClassificationSVM.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Classification/ClassificationSVM.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]; + ## Create a Support Vector Machine classifier and determine margin for test + ## data. + load fisheriris + rng(1); ## For reproducibility - ## 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 + ## Select indices of the non-setosa species + inds = !strcmp(species, 'setosa'); - ## Estimate their α and β parameters - lambda_c_kA = burrfit (r(:,1)); - lambda_c_kB = burrfit (r(:,2)); - lambda_c_kC = burrfit (r(:,3)); + ## Select features and labels for non-setosa species + X = meas(inds, 3:4); + Y = grp2idx(species(inds)); - ## 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/geofit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; + ## Convert labels to +1 and -1 + unique_classes = unique(Y); + Y(Y == unique_classes(1)) = -1; + Y(Y == unique_classes(2)) = 1; - ## 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 + ## Partition data for training and testing + cv = cvpartition(Y, 'HoldOut', 0.15); + X_train = X(training(cv), :); + Y_train = Y(training(cv)); + X_test = X(test(cv), :); + Y_test = Y(test(cv)); - ## Estimate their probability of success - pshatA = geofit (r(:,1)); - pshatB = geofit (r(:,2)); + ## Train the SVM model + CVSVMModel = fitcsvm(X_train, Y_train); - ## 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/tlsfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/tlsfit.m + ## Calculate margins + m = margin(CVSVMModel, X_test, Y_test); + disp(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]; + ## Create a Support Vector Machine classifier and determine loss for test + ## data. + load fisheriris + rng(1); ## For reproducibility - ## 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 + ## Select indices of the non-setosa species + inds = !strcmp(species, 'setosa'); - ## Estimate their lambda parameter - mu_sigma_nuA = tlsfit (r(:,1)); - mu_sigma_nuB = tlsfit (r(:,2)); - mu_sigma_nuC = tlsfit (r(:,3)); + ## Select features and labels for non-setosa species + X = meas(inds, 3:4); + Y = grp2idx(species(inds)); - ## 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 - 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 - 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/normfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; + ## Convert labels to +1 and -1 + unique_classes = unique(Y); + Y(Y == unique_classes(1)) = -1; + Y(Y == unique_classes(2)) = 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 + ## Randomly partition the data into training and testing sets + cv = cvpartition(Y, 'HoldOut', 0.3); # 30% data for testing, 60% for training - ## Estimate their mu and sigma parameters - [muhat, sigmahat] = normfit (r); + X_train = X(training(cv), :); + Y_train = Y(training(cv)); - ## 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/unidfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]; + X_test = X(test(cv), :); + Y_test = Y(test(cv)); - ## 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 + ## Train the SVM model + SVMModel = fitcsvm(X_train, Y_train); - ## Estimate their probability of success - NhatA = unidfit (r(:,1)); - NhatB = unidfit (r(:,2)); + ## Calculate loss - ## 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 + L = loss(SVMModel,X_test,Y_test,'LossFun','binodeviance') + L = loss(SVMModel,X_test,Y_test,'LossFun','classiferror') + L = loss(SVMModel,X_test,Y_test,'LossFun','exponential') + L = loss(SVMModel,X_test,Y_test,'LossFun','hinge') + L = loss(SVMModel,X_test,Y_test,'LossFun','logit') + L = loss(SVMModel,X_test,Y_test,'LossFun','quadratic') ***** test - x = 0:5; - [Nhat, Nci] = unidfit (x); - assert (Nhat, 5); - assert (Nci, [5; 9]); + x = [1, 2, 3; 4, 5, 6; 7, 8, 9; 3, 2, 1; 4, 5, 6; 7, 8, 9; ... + 3, 2, 1; 4, 5, 6; 7, 8, 9; 3, 2, 1; 4, 5, 6; 7, 8, 9; 3, 2, 1]; + y = [1; 2; 3; 4; 2; 3; 4; 2; 3; 4; 2; 3; 4]; + a = ClassificationSVM (x, y, "ClassNames", [1, 2]); + assert (class (a), "ClassificationSVM"); + assert (a.RowsUsed, [1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0]'); + assert ({a.X, a.Y}, {x, y}) + assert (a.NumObservations, 5) + assert ({a.ResponseName, a.PredictorNames}, {"Y", {"x1", "x2", "x3"}}) + assert ({a.ClassNames, a.ModelParameters.SVMtype}, {[1; 2], "c_svc"}) ***** 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/gamlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/gamlike.m + x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; + y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; + a = ClassificationSVM (x, y); + assert (class (a), "ClassificationSVM"); + assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "linear"}) + assert (a.ModelParameters.BoxConstraint, 1) + assert (a.ClassNames, [1; -1]) + assert (a.ModelParameters.KernelOffset, 0) ***** 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); + x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; + y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; + a = ClassificationSVM (x, y, "KernelFunction", "rbf", "BoxConstraint", 2, ... + "KernelOffset", 2); + assert (class (a), "ClassificationSVM"); + assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "rbf"}) + assert (a.ModelParameters.BoxConstraint, 2) + assert (a.ModelParameters.KernelOffset, 2) ***** 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); + x = [1, 2; 2, 3; 3, 4; 4, 5; 2, 3; 3, 4; 2, 3; 3, 4; 2, 3; 3, 4]; + y = [1; 1; -1; -1; 1; -1; -1; -1; -1; -1]; + a = ClassificationSVM (x, y, "KernelFunction", "polynomial", ... + "PolynomialOrder", 3); + assert (class (a), "ClassificationSVM"); + assert ({a.X, a.Y, a.ModelParameters.KernelFunction}, {x, y, "polynomial"}) + assert (a.ModelParameters.PolynomialOrder, 3) +***** error ClassificationSVM () +***** error ... + ClassificationSVM (ones(10,2)) +***** error ... + ClassificationSVM (ones(10,2), ones (5,1)) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "Standardize", 'a') +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "PredictorNames", ['x1';'x2']) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "PredictorNames", {'x1','x2','x3'}) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "ResponseName", {'Y'}) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "ResponseName", 21) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "ClassNames", @(x)x) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "ClassNames", ['a']) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "ClassNames", [1, 2]) +***** error ... + ClassificationSVM (ones(5,2), {'a';'b';'a';'a';'b'}, "ClassNames", {'a','c'}) +***** error ... + ClassificationSVM (ones(10,2), logical (ones (10,1)), "ClassNames", [true, false]) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "Prior", {"asd"}) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "Prior", ones (2)) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "Cost", [1:4]) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "Cost", {0,1;1,0}) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "Cost", 'a') +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "svmtype", 123) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "svmtype", 'some_type') +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "OutlierFraction", -1) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "KernelFunction", 123) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "KernelFunction", "fcn") +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "PolynomialOrder", -1) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "PolynomialOrder", 0.5) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "PolynomialOrder", [1,2]) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "KernelScale", -1) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "KernelScale", 0) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "KernelScale", [1, 2]) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "KernelScale", "invalid") +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "KernelOffset", -1) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "KernelOffset", [1,2]) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "BoxConstraint", -1) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "BoxConstraint", 0) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "BoxConstraint", [1, 2]) +***** error ... + ClassificationSVM (ones(10,2), ones (10,1), "BoxConstraint", "invalid") +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "nu", -0.5) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "nu", 0) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "nu", 1.5) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "CacheSize", -1) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "CacheSize", [1,2]) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "Tolerance", -0.1) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "Tolerance", [0.1,0.2]) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "shrinking", 2) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "shrinking", -1) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "shrinking", [1 0]) +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "invalid_name", 'c_svc') +***** error ... + ClassificationSVM (ones(10,2), ones(10,1), "SVMtype", 'c_svc') +***** error ... + ClassificationSVM (ones(10,2), [1;1;1;1;2;2;2;2;3;3]) +***** error ... + ClassificationSVM ([ones(9,2);2,Inf], ones(10,1)) +***** error ... + ClassificationSVM (ones (5,2), ones (5,1), "Prior", [0,1]) +***** error ... + ClassificationSVM (ones (5,2), [1;1;2;2;3], "ClassNames", [1,2], "Prior", [0,0.4,0.6]) +***** error ... + ClassificationSVM (ones (5,2), [1;1;2;2;3], "ClassNames", [1,2], "Cost", ones (3)) +***** shared x, y, x_train, x_test, y_train, y_test, objST + load fisheriris + inds = ! strcmp (species, 'setosa'); + x = meas(inds, 3:4); + y = grp2idx (species(inds)); ***** 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/nakalike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/nakalike.m + xc = [min(x); mean(x); max(x)]; + obj = fitcsvm (x, y, 'KernelFunction', 'rbf', 'Tolerance', 1e-7); + assert (isempty (obj.Alpha), true) + assert (sum (obj.IsSupportVector), numel (obj.Beta)) + [label, score] = predict (obj, xc); + assert (label, [1; 2; 2]); + assert (score(:,1), [0.99285; -0.080296; -0.93694], 1e-5); + assert (score(:,1), -score(:,2), eps) + obj = fitPosterior (obj); + [label, probs] = predict (obj, xc); + assert (probs(:,2), [0.97555; 0.428164; 0.030385], 1e-5); + assert (probs(:,1) + probs(:,2), [1; 1; 1], 0.05) ***** test - nlogL = nakalike ([0.735504, 858.5], [1:50]); - assert (nlogL, 202.8689, 1e-4); + obj = fitcsvm (x, y); + assert (isempty (obj.Beta), true) + assert (sum (obj.IsSupportVector), numel (obj.Alpha)) + assert (numel (obj.Alpha), 24) + assert (obj.Bias, -14.415, 1e-3) + xc = [min(x); mean(x); max(x)]; + label = predict (obj, xc); + assert (label, [1; 2; 2]); +***** error ... + predict (ClassificationSVM (ones (40,2), ones (40,1))) +***** error ... + predict (ClassificationSVM (ones (40,2), ones (40,1)), []) +***** error ... + predict (ClassificationSVM (ones (40,2), ones (40,1)), 1) ***** test - nlogL = nakalike ([1.17404, 11], [1:5]); - assert (nlogL, 8.6976, 1e-4); + objST = fitcsvm (x, y); + objST.ScoreTransform = "a"; +***** error ... + [labels, scores] = predict (objST, x); +***** error ... + [labels, scores] = resubPredict (objST); ***** test - nlogL = nakalike ([1.17404, 11], [1:5], [], [1, 1, 1, 1, 1]); - assert (nlogL, 8.6976, 1e-4); + rand ("seed", 1); + CVSVMModel = fitcsvm (x, y, 'KernelFunction', 'rbf', 'HoldOut', 0.15, ... + 'Tolerance', 1e-7); + obj = CVSVMModel.Trained{1}; + testInds = test (CVSVMModel.Partition); + expected_margin = [2.0000; 0.8579; 1.6690; 3.4141; 3.4552; ... + 2.6605; 3.5251; -4.0000; -6.3411; -6.4511; ... + -3.0532; -7.5054; -1.6700; -5.6227; -7.3640]; + computed_margin = margin (obj, x(testInds,:), y(testInds,:)); + assert (computed_margin, expected_margin, 1e-4); +***** error ... + margin (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1))) +***** error ... + margin (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2)) +***** error ... + margin (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), [], zeros (2)) +***** error ... + margin (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), 1, zeros (2)) +***** error ... + margin (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), []) +***** error ... + margin (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), 1) ***** 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/logilike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/logilike.m + rand ("seed", 1); + CVSVMModel = fitcsvm (x, y, 'KernelFunction', 'rbf', 'HoldOut', 0.15); + obj = CVSVMModel.Trained{1}; + testInds = test (CVSVMModel.Partition); + L1 = loss (obj, x(testInds,:), y(testInds,:), 'LossFun', 'binodeviance'); + L2 = loss (obj, x(testInds,:), y(testInds,:), 'LossFun', 'classiferror'); + L3 = loss (obj, x(testInds,:), y(testInds,:), 'LossFun', 'exponential'); + L4 = loss (obj, x(testInds,:), y(testInds,:), 'LossFun', 'hinge'); + L5 = loss (obj, x(testInds,:), y(testInds,:), 'LossFun', 'logit'); + L6 = loss (obj, x(testInds,:), y(testInds,:), 'LossFun', 'quadratic'); + assert (L1, 2.8711, 1e-4); + assert (L2, 0.5333, 1e-4); + assert (L3, 10.9685, 1e-4); + assert (L4, 1.9827, 1e-4); + assert (L5, 1.5849, 1e-4); + assert (L6, 7.6739, 1e-4); +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1))) +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2)) +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... + ones(2,1), "LossFun") +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), [], zeros (2)) +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), 1, zeros (2)) +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), []) +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), 1) +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... + ones (2,1), "LossFun", 1) +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... + ones (2,1), "LossFun", "some") +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... + ones (2,1), "Weights", ['a','b']) +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... + ones (2,1), "Weights", 'a') +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... + ones (2,1), "Weights", [1,2,3]) +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... + ones (2,1), "Weights", 3) +***** error ... + loss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), zeros (2), ... + ones (2,1), "some", "some") +***** error ... + resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "LossFun") +***** error ... + resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "LossFun", 1) +***** error ... + resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "LossFun", "some") +***** error ... + resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "Weights", ['a','b']) +***** error ... + resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "Weights", 'a') +***** error ... + resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "Weights", [1,2,3]) +***** error ... + resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "Weights", 3) +***** error ... + resubLoss (ClassificationSVM (ones (40,2), randi ([1, 2], 40, 1)), "some", "some") ***** test - nlogL = logilike ([25.5, 8.7725], [1:50]); - assert (nlogL, 206.6769, 1e-4); + SVMModel = fitcsvm (x, y); + CVMdl = crossval (SVMModel, "KFold", 5); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (CVMdl.KFold == 5) + assert (class (CVMdl.Trained{1}), "CompactClassificationSVM") + assert (CVMdl.CrossValidatedModel, "ClassificationSVM") ***** 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]) + obj = fitcsvm (x, y); + CVMdl = crossval (obj, "HoldOut", 0.2); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (class (CVMdl.Trained{1}), "CompactClassificationSVM") + assert (CVMdl.CrossValidatedModel, "ClassificationSVM") +***** test + obj = fitcsvm (x, y); + CVMdl = crossval (obj, "LeaveOut", 'on'); + assert (class (CVMdl), "ClassificationPartitionedModel") + assert ({CVMdl.X, CVMdl.Y}, {x, y}) + assert (class (CVMdl.Trained{1}), "CompactClassificationSVM") + assert (CVMdl.CrossValidatedModel, "ClassificationSVM") +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "KFold") +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), ... + "KFold", 5, "leaveout", 'on') +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "KFold", 'a') +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "KFold", 1) +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "KFold", -1) +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "KFold", 11.5) +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "KFold", [1,2]) +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "Holdout", 'a') +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "Holdout", 11.5) +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "Holdout", -1) +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "Holdout", 0) +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "Holdout", 1) +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "Leaveout", 1) +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "CVPartition", 1) +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "CVPartition", 'a') +***** error ... + crossval (ClassificationSVM (ones (40,2),randi([1, 2], 40, 1)), "some", "some") +114 tests, 114 passed, 0 known failure, 0 skipped +[inst/geomean.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/dist_fit/bisafit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/bisafit.m +[inst/dist_fun/nbinrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/jsupdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gumbelcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/gumbelcdf.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 + ## 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/ricepdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/normrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/wienrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hygecdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - paramhat = bisafit ([1:50]); - paramhat_out = [16.2649, 1.0156]; - assert (paramhat, paramhat_out, 1e-4); + p = hygecdf (x, 10, [1 2 3 4 5], 2, "upper"); + assert (p, [1, 34/90, 2/30, 0, 0], 10*eps); ***** 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/betalike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/betalike.m + 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/mnrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/mnrnd.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); + 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 - 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); + 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 - 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/binofit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/binofit.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/betainv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/betainv.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 -***** 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/invgfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/invgfit.m + ## Plot various iCDFs from the Beta distribution + p = 0.001:0.001:0.999; + x1 = betainv (p, 0.5, 0.5); + x2 = betainv (p, 5, 1); + x3 = betainv (p, 1, 3); + x4 = betainv (p, 2, 2); + x5 = betainv (p, 2, 5); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c", p, x5, "-m") + grid on + legend ({"α = β = 0.5", "α = 5, β = 1", "α = 1, β = 3", ... + "α = 2, β = 2", "α = 2, β = 5"}, "location", "southeast") + title ("Beta iCDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p + p = [-1 0 0.75 1 2]; +***** assert (betainv (p, ones (1,5), 2*ones (1,5)), [NaN 0 0.5 1 NaN], eps) +***** assert (betainv (p, 1, 2*ones (1,5)), [NaN 0 0.5 1 NaN], eps) +***** assert (betainv (p, ones (1,5), 2), [NaN 0 0.5 1 NaN], eps) +***** assert (betainv (p, [1 0 NaN 1 1], 2), [NaN NaN NaN 1 NaN]) +***** assert (betainv (p, 1, 2*[1 0 NaN 1 1]), [NaN NaN NaN 1 NaN]) +***** assert (betainv ([p(1:2) NaN p(4:5)], 1, 2), [NaN 0 NaN 1 NaN]) +***** assert (betainv ([p, NaN], 1, 2), [NaN 0 0.5 1 NaN NaN], eps) +***** assert (betainv (single ([p, NaN]), 1, 2), single ([NaN 0 0.5 1 NaN NaN])) +***** assert (betainv ([p, NaN], single (1), 2), single ([NaN 0 0.5 1 NaN NaN]), eps("single")) +***** assert (betainv ([p, NaN], 1, single (2)), single ([NaN 0 0.5 1 NaN NaN]), eps("single")) +***** error betainv () +***** error betainv (1) +***** error betainv (1,2) +***** error betainv (1,2,3,4) +***** error ... + betainv (ones (3), ones (2), ones (2)) +***** error ... + betainv (ones (2), ones (3), ones (2)) +***** error ... + betainv (ones (2), ones (2), ones (3)) +***** error betainv (i, 2, 2) +***** error betainv (2, i, 2) +***** error betainv (2, 2, i) +20 tests, 20 passed, 0 known failure, 0 skipped +[inst/dist_fun/tlsinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/frnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncx2rnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/binoinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/bvncdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/bvncdf.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 + 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" ***** test - paramhat = invgfit ([1:50]); - paramhat_out = [25.5, 19.6973]; - assert (paramhat, paramhat_out, 1e-4); + 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 - 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/gpfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/gpfit.m + 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, 3e-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/evpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/evpdf.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/loglfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/loglfit.m + ## 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/mvtpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/mvtpdf.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 - - ## Estimate their MU and LAMBDA parameters - a_bA = loglfit (r(:,1)); - a_bB = loglfit (r(:,2)); - a_bC = loglfit (r(:,3)); + ## Compute the pdf of a multivariate t distribution with correlation + ## parameters rho = [1 .4; .4 1] and 2 degrees of freedom. - ## 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); + 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/bisarnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/bisarnd.m +***** assert (size (bisarnd (1, 1)), [1 1]) +***** assert (size (bisarnd (1, ones (2,1))), [2, 1]) +***** assert (size (bisarnd (1, ones (2,2))), [2, 2]) +***** assert (size (bisarnd (ones (2,1), 1)), [2, 1]) +***** assert (size (bisarnd (ones (2,2), 1)), [2, 2]) +***** assert (size (bisarnd (1, 1, 3)), [3, 3]) +***** assert (size (bisarnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (bisarnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (bisarnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (bisarnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (bisarnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (bisarnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (bisarnd (1, 1)), "double") +***** assert (class (bisarnd (1, single (1))), "single") +***** assert (class (bisarnd (1, single ([1, 1]))), "single") +***** assert (class (bisarnd (single (1), 1)), "single") +***** assert (class (bisarnd (single ([1, 1]), 1)), "single") +***** error bisarnd () +***** error bisarnd (1) +***** error ... + bisarnd (ones (3), ones (2)) +***** error ... + bisarnd (ones (2), ones (3)) +***** error bisarnd (i, 2, 3) +***** error bisarnd (1, i, 3) +***** error ... + bisarnd (1, 2, -1) +***** error ... + bisarnd (1, 2, 1.2) +***** error ... + bisarnd (1, 2, ones (2)) +***** error ... + bisarnd (1, 2, [2 -1 2]) +***** error ... + bisarnd (1, 2, [2 0 2.5]) +***** error ... + bisarnd (1, 2, 2, -1, 5) +***** error ... + bisarnd (1, 2, 2, 1.5, 5) +***** error ... + bisarnd (2, ones (2), 3) +***** error ... + bisarnd (2, ones (2), [3, 2]) +***** error ... + bisarnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/nbininv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/evrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gevinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/gevinv.m +***** demo + ## Plot various iCDFs from the generalized extreme value distribution + p = 0.001:0.001:0.999; + x1 = gevinv (p, 1, 1, 1); + x2 = gevinv (p, 0.5, 1, 1); + x3 = gevinv (p, 1, 1, 5); + x4 = gevinv (p, 1, 2, 5); + x5 = gevinv (p, 1, 5, 5); + x6 = gevinv (p, 1, 0.5, 5); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", ... + p, x4, "-c", p, x5, "-m", p, x6, "-k") + grid on + ylim ([-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", "northwest") + title ("Generalized extreme value iCDF") + xlabel ("probability") + ylabel ("values in x") ***** 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/logllike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/logllike.m + p = 0.1:0.1:0.9; + k = 0; + sigma = 1; + mu = 0; + x = gevinv (p, k, sigma, mu); + c = gevcdf(x, k, sigma, mu); + assert (c, p, 0.001); ***** 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); + p = 0.1:0.1:0.9; + k = 1; + sigma = 1; + mu = 0; + x = gevinv (p, k, sigma, mu); + c = gevcdf(x, k, sigma, mu); + assert (c, p, 0.001); ***** 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/nakafit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/nakafit.m + p = 0.1:0.1:0.9; + k = 0.3; + sigma = 1; + mu = 0; + x = gevinv (p, k, sigma, mu); + c = gevcdf(x, k, sigma, mu); + assert (c, p, 0.001); +***** error gevinv () +***** error gevinv (1) +***** error gevinv (1, 2) +***** error gevinv (1, 2, 3) +***** error ... + gevinv (ones (3), ones (2), ones(2), ones(2)) +***** error ... + gevinv (ones (2), ones (3), ones(2), ones(2)) +***** error ... + gevinv (ones (2), ones (2), ones(3), ones(2)) +***** error ... + gevinv (ones (2), ones (2), ones(2), ones(3)) +***** error gevinv (i, 2, 3, 4) +***** error gevinv (1, i, 3, 4) +***** error gevinv (1, 2, i, 4) +***** error gevinv (1, 2, 3, i) +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_fun/loglpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/loglpdf.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); + ## 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/mnpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/mnpdf.m ***** test - paramhat = nakafit ([1:5]); - paramhat_out = [1.1740, 11]; - assert (paramhat, paramhat_out, 1e-4); + x = [1, 4, 2]; + pk = [0.2, 0.5, 0.3]; + y = mnpdf (x, pk); + assert (y, 0.11812, 0.001); ***** test - paramhat = nakafit ([1:6], [], [], [1 1 1 1 1 0]); - paramhat_out = [1.1740, 11]; - assert (paramhat, paramhat_out, 1e-4); + 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/nbincdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hygepdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 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 - 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.7.0/inst/dist_fit/raylfit.m + 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/loglrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/jsucdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/geornd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hygeinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/hygeinv.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 various iCDFs from the hypergeometric 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") + 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") + xlabel ("probability") + ylabel ("values in p (number of successes)") +***** 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/burrpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/wblpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/unifrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/unifrnd.m +***** assert (size (unifrnd (1, 1)), [1 1]) +***** assert (size (unifrnd (1, ones (2,1))), [2, 1]) +***** assert (size (unifrnd (1, ones (2,2))), [2, 2]) +***** assert (size (unifrnd (ones (2,1), 1)), [2, 1]) +***** assert (size (unifrnd (ones (2,2), 1)), [2, 2]) +***** assert (size (unifrnd (1, 1, 3)), [3, 3]) +***** assert (size (unifrnd (1, 1, [4, 1])), [4, 1]) +***** assert (size (unifrnd (1, 1, 4, 1)), [4, 1]) +***** assert (size (unifrnd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (unifrnd (1, 1, 0, 1)), [0, 1]) +***** assert (size (unifrnd (1, 1, 1, 0)), [1, 0]) +***** assert (size (unifrnd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (unifrnd (1, 1)), "double") +***** assert (class (unifrnd (1, single (1))), "single") +***** assert (class (unifrnd (1, single ([1, 1]))), "single") +***** assert (class (unifrnd (single (1), 1)), "single") +***** assert (class (unifrnd (single ([1, 1]), 1)), "single") +***** error unifrnd () +***** error unifrnd (1) +***** error ... + unifrnd (ones (3), ones (2)) +***** error ... + unifrnd (ones (2), ones (3)) +***** error unifrnd (i, 2, 3) +***** error unifrnd (1, i, 3) +***** error ... + unifrnd (1, 2, -1) +***** error ... + unifrnd (1, 2, 1.2) +***** error ... + unifrnd (1, 2, ones (2)) +***** error ... + unifrnd (1, 2, [2 -1 2]) +***** error ... + unifrnd (1, 2, [2 0 2.5]) +***** error ... + unifrnd (1, 2, 2, -1, 5) +***** error ... + unifrnd (1, 2, 2, 1.5, 5) +***** error ... + unifrnd (2, ones (2), 3) +***** error ... + unifrnd (2, ones (2), [3, 2]) +***** error ... + unifrnd (2, ones (2), 3, 2) +33 tests, 33 passed, 0 known failure, 0 skipped +[inst/dist_fun/ncx2cdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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). - ## 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"); + x = 0:0.1:10; + p1 = ncx2cdf (x, 4, 2); + p2 = chi2cdf (x, 4); + plot (x, p1, "-", x, p2, "-") + grid on 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 + 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 = [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) + 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 - 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) + p = ncx2cdf (12, 10, 3); + assert (p, 0.4845555602398649, 1e-14); ***** 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) + p = ncx2cdf (2, 3, 2); + assert (p, 0.2207330870741212, 1e-14); ***** 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) + p = ncx2cdf (2, 3, 2, "upper"); + assert (p, 0.7792669129258789, 1e-14); ***** 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]) + 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_fit/bisalike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/invglike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]) +[inst/dist_fun/burrinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/wishrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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_fit/rayllike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/explike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/poissfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/poissfit.m +[inst/dist_fun/laplacernd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/triinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/triinv.m ***** 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]; - - ## 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 - 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/evfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/evfit.m + ## Plot various iCDFs from the triangular distribution + p = 0.001:0.001:0.999; + x1 = triinv (p, 3, 6, 4); + x2 = triinv (p, 1, 5, 2); + x3 = triinv (p, 2, 9, 3); + x4 = triinv (p, 2, 9, 5); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r", p, x4, "-c") + grid on + ylim ([0, 10]) + legend ({"a = 3, b = 6, c = 4", "a = 1, b = 5, c = 2", ... + "a = 2, b = 9, c = 3", "a = 2, b = 9, c = 5"}, ... + "location", "northwest") + title ("Triangular CDF") + xlabel ("probability") + ylabel ("values in x") +***** shared p, y + p = [-1, 0, 0.02, 0.5, 0.98, 1, 2]; + y = [NaN, 0, 0.1, 0.5, 0.9, 1, NaN] + 1; +***** assert (triinv (p, ones (1, 7), 1.5 * ones (1, 7), 2 * ones (1, 7)), y, eps) +***** assert (triinv (p, 1 * ones (1, 7), 1.5, 2), y, eps) +***** assert (triinv (p, 1, 1.5, 2 * ones (1, 7)), y, eps) +***** assert (triinv (p, 1, 1.5*ones (1,7), 2), y, eps) +***** assert (triinv (p, 1, 1.5, 2), y, eps) +***** assert (triinv (p, [1, 1, NaN, 1, 1, 1, 1], 1.5, 2), [y(1:2), NaN, y(4:7)], eps) +***** assert (triinv (p, 1, 1.5 * [1, 1, NaN, 1, 1, 1, 1], 2), [y(1:2), NaN, y(4:7)], eps) +***** assert (triinv (p, 1, 1.5, 2 * [1, 1, NaN, 1, 1, 1, 1]), [y(1:2), NaN, y(4:7)], eps) +***** assert (triinv ([p, NaN], 1, 1.5, 2), [y, NaN], eps) +***** assert (triinv (single ([p, NaN]), 1, 1.5, 2), single ([y, NaN]), eps('single')) +***** assert (triinv ([p, NaN], single (1), 1.5, 2), single ([y, NaN]), eps('single')) +***** assert (triinv ([p, NaN], 1, single (1.5), 2), single ([y, NaN]), eps('single')) +***** assert (triinv ([p, NaN], 1, 1.5, single (2)), single ([y, NaN]), eps('single')) +***** error triinv () +***** error triinv (1) +***** error triinv (1, 2) +***** error triinv (1, 2, 3) +***** error ... + triinv (1, 2, 3, 4, 5) +***** error ... + triinv (ones (3), ones (2), ones(2), ones(2)) +***** error ... + triinv (ones (2), ones (3), ones(2), ones(2)) +***** error ... + triinv (ones (2), ones (2), ones(3), ones(2)) +***** error ... + triinv (ones (2), ones (2), ones(2), ones(3)) +***** error triinv (i, 2, 3, 4) +***** error triinv (1, i, 3, 4) +***** error triinv (1, 2, i, 4) +***** error triinv (1, 2, 3, i) +26 tests, 26 passed, 0 known failure, 0 skipped +[inst/dist_fun/poissrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncx2pdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/ncx2pdf.m ***** 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]; - - ## 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 - 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/gevfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/gevfit.m + ## Plot various PDFs from the noncentral chi-squared distribution + x = 0:0.1:10; + y1 = ncx2pdf (x, 2, 1); + y2 = ncx2pdf (x, 2, 2); + y3 = ncx2pdf (x, 2, 3); + y4 = ncx2pdf (x, 4, 1); + y5 = ncx2pdf (x, 4, 2); + y6 = ncx2pdf (x, 4, 3); + plot (x, y1, "-r", x, y2, "-g", x, y3, "-k", ... + x, y4, "-m", x, y5, "-c", x, y6, "-y") + grid on + xlim ([0, 10]) + ylim ([0, 0.32]) + legend ({"df = 2, λ = 1", "df = 2, λ = 2", ... + "df = 2, λ = 3", "df = 4, λ = 1", ... + "df = 4, λ = 2", "df = 4, λ = 3"}, "location", "northeast") + title ("Noncentral chi-squared PDF") + xlabel ("values in x") + ylabel ("density") ***** 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)); + ## Compare the noncentral chi-squared PDF with LAMBDA = 2 to the + ## chi-squared PDF with the same number of degrees of freedom (4). - ## 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 + x = 0:0.1:10; + y1 = ncx2pdf (x, 4, 2); + y2 = chi2pdf (x, 4); + plot (x, y1, "-", x, y2, "-"); + grid on + xlim ([0, 10]) + ylim ([0, 0.32]) + legend ({"Noncentral T(10,1)", "T(10)"}, "location", "northwest") + title ("Noncentral chi-squared vs chi-squared PDFs") + xlabel ("values in x") + ylabel ("density") +***** shared x1, df, d1 + x1 = [-Inf, 2, NaN, 4, Inf]; + df = [2, 0, -1, 1, 4]; + d1 = [1, NaN, 3, -1, 2]; +***** assert (ncx2pdf (x1, df, d1), [0, NaN, NaN, NaN, 0]); +***** assert (ncx2pdf (x1, df, 1), [0, 0.07093996461786045, NaN, ... + 0.06160064323277038, 0], 1e-14); +***** assert (ncx2pdf (x1, df, 3), [0, 0.1208364909271113, NaN, ... + 0.09631299762429098, 0], 1e-14); +***** assert (ncx2pdf (x1, df, 2), [0, 0.1076346446244688, NaN, ... + 0.08430464047296625, 0], 1e-14); +***** assert (ncx2pdf (x1, 2, d1), [0, NaN, NaN, NaN, 0]); +***** assert (ncx2pdf (2, df, d1), [0.1747201674611283, NaN, NaN, ... + NaN, 0.1076346446244688], 1e-14); +***** assert (ncx2pdf (4, df, d1), [0.09355987820265799, NaN, NaN, ... + NaN, 0.1192317192431485], 1e-14); +***** error ncx2pdf () +***** error ncx2pdf (1) +***** error ncx2pdf (1, 2) +***** error ... + ncx2pdf (ones (3), ones (2), ones (2)) +***** error ... + ncx2pdf (ones (2), ones (3), ones (2)) +***** error ... + ncx2pdf (ones (2), ones (2), ones (3)) +***** error ncx2pdf (i, 2, 2) +***** error ncx2pdf (2, i, 2) +***** error ncx2pdf (2, 2, i) +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_fun/plinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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); + p = 0:0.2:1; + data = plinv (p, [0, 1], [0, 1]); + assert (data, p); ***** 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/gplike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/gplike.m + p = 0:0.2:1; + data = plinv (p, [0, 2], [0, 1]); + assert (data, 2 * p); ***** 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/expfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/expfit.m + 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/gevrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/laplacepdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/laplacepdf.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"); + ## Plot various PDFs from the Laplace distribution + x = -10:0.01:10; + y1 = laplacepdf (x, 0, 1); + y2 = laplacepdf (x, 0, 2); + y3 = laplacepdf (x, 0, 4); + y4 = laplacepdf (x, -5, 4); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") + grid on + xlim ([-10, 10]) 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); + legend ({"μ = 0, β = 1", "μ = 0, β = 2", ... + "μ = 0, β = 4", "μ = -5, β = 4"}, "location", "northeast") + title ("Laplace PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-Inf -log(2) 0 log(2) Inf]; + y = [0, 1/4, 1/2, 1/4, 0]; +***** assert (laplacepdf ([x, NaN], 0, 1), [y, NaN]) +***** assert (laplacepdf (x, 0, [-2, -1, 0, 1, 2]), [nan(1, 3), 0.25, 0]) +***** assert (laplacepdf (single ([x, NaN]), 0, 1), single ([y, NaN])) +***** assert (laplacepdf ([x, NaN], single (0), 1), single ([y, NaN])) +***** assert (laplacepdf ([x, NaN], 0, single (1)), single ([y, NaN])) +***** error laplacepdf () +***** error laplacepdf (1) +***** error ... + laplacepdf (1, 2) +***** error laplacepdf (1, 2, 3, 4) +***** error ... + laplacepdf (1, ones (2), ones (3)) +***** error ... + laplacepdf (ones (2), 1, ones (3)) +***** error ... + laplacepdf (ones (2), ones (3), 1) +***** error laplacepdf (i, 2, 3) +***** error laplacepdf (1, i, 3) +***** error laplacepdf (1, 2, i) +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_fun/chi2rnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/loglinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/trirnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gaminv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hnrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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/ricefit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/ricefit.m + 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/nctpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/nctpdf.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 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). - ## 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]) + 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/unifpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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_fit/tlslike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/poisslike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/poisslike.m -***** test - 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/gamfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/gamfit.m +[inst/dist_fun/chi2pdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/chi2pdf.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 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/nakapdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/nakapdf.m +***** demo + ## Plot various PDFs from the Nakagami distribution + x = 0:0.01:3; + y1 = nakapdf (x, 0.5, 1); + y2 = nakapdf (x, 1, 1); + y3 = nakapdf (x, 1, 2); + y4 = nakapdf (x, 1, 3); + y5 = nakapdf (x, 2, 1); + y6 = nakapdf (x, 2, 2); + y7 = nakapdf (x, 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 + xlim ([0, 3]) + ylim ([0, 2]) + legend ({"μ = 0.5, ω = 1", "μ = 1, ω = 1", "μ = 1, ω = 2", ... + "μ = 1, ω = 3", "μ = 2, ω = 1", "μ = 2, ω = 2", ... + "μ = 5, ω = 1"}, "location", "northeast") + title ("Nakagami PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-1, 0, 1, 2, Inf]; + y = [0, 0, 0.73575888234288467, 0.073262555554936715, 0]; +***** assert (nakapdf (x, ones (1,5), ones (1,5)), y, eps) +***** assert (nakapdf (x, 1, 1), y, eps) +***** assert (nakapdf (x, [1, 1, NaN, 1, 1], 1), [y(1:2), NaN, y(4:5)], eps) +***** assert (nakapdf (x, 1, [1, 1, NaN, 1, 1]), [y(1:2), NaN, y(4:5)], eps) +***** assert (nakapdf ([x, NaN], 1, 1), [y, NaN], eps) +***** assert (nakapdf (single ([x, NaN]), 1, 1), single ([y, NaN])) +***** assert (nakapdf ([x, NaN], single (1), 1), single ([y, NaN])) +***** assert (nakapdf ([x, NaN], 1, single (1)), single ([y, NaN])) +***** error nakapdf () +***** error nakapdf (1) +***** error nakapdf (1, 2) +***** error ... + nakapdf (ones (3), ones (2), ones(2)) +***** error ... + nakapdf (ones (2), ones (3), ones(2)) +***** error ... + nakapdf (ones (2), ones (2), ones(3)) +***** error nakapdf (i, 4, 3) +***** error nakapdf (1, i, 3) +***** error nakapdf (1, 4, i) +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/dist_fun/chi2inv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/norminv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncx2inv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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). - ## 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); + 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") ***** 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 = [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 - [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 = [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 - 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 = [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 - 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 = [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 - [paramhat, paramci] = gamfit ([1 1 1 1 1 1]); - assert (paramhat, [Inf, 0]); - assert (paramci, [Inf, 0; Inf, 0]); + 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 - [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]); + 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 - [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/betafit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/betafit.m + 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/binocdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/binocdf.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 - 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 - 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 - 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)); + ## 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/ricernd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/mvtcdfqmc.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/geopdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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_fit/burrlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gumbellike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gevfit_lmom.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/logifit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/logifit.m +[inst/dist_fun/tinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/tinv.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 - 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); + ## 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_fit/nbinlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hnlike.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/hnlike.m +[inst/dist_fun/gevpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 = 1:20; - paramhat = hnfit (x, 0); - [nlogL, acov] = hnlike (paramhat, x); - assert (nlogL, 64.179177404891300, 1e-14); + 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 = 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.7.0/inst/dist_fit/lognfit.m + 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/ricecdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/ricecdf.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/nbinfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fit/nbinfit.m + ## 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 - ## 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 - - ## Estimate their probability of success - r_psA = nbinfit (r(:,1)); - r_psB = nbinfit (r(:,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); + ## 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 - [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/mnrfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/mnrfit.m -***** error mnrfit (ones (50,1)) -***** error ... - mnrfit ({1 ;2 ;3 ;4 ;5}, ones (5,1)) -***** error ... - mnrfit (ones (50, 4, 2), ones (50, 1)) -***** error ... - mnrfit (ones (50, 4), ones (50, 1, 3)) -***** error ... - mnrfit (ones (50, 4), ones (45,1)) -***** error ... - mnrfit (ones (5, 4), {1 ;2 ;3 ;4 ;5}) -***** error ... - mnrfit (ones (5, 4), ones (5, 1), "model") -***** error ... - mnrfit (ones (5, 4), {"q","q";"w","w";"q","q";"w","w";"q","q"}) -***** error ... - mnrfit (ones (5, 4), [1, 2; 1, 2; 1, 2; 1, 2; 1, 2]) -***** error ... - mnrfit (ones (5, 4), [1; -1; 1; 2; 1]) -***** error ... - mnrfit (ones (5, 4), [1; 2; 3; 2; 1], "model", "nominal") -***** error ... - mnrfit (ones (5, 4), [1; 2; 3; 2; 1], "model", "hierarchical") -***** error ... - mnrfit (ones (5, 4), [1; 2; 3; 2; 1], "model", "whatever") -13 tests, 13 passed, 0 known failure, 0 skipped -[inst/regress.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/regress.m + 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 - % 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.oURe6eLqNP at line 3382 column 31 - -1 test, 1 passed, 0 known failure, 0 skipped -[inst/ismissing.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hmmestimate.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/hmmestimate.m + 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 - 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); + 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 - 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); + 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/plpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/plpdf.m +***** demo + ## Plot various PDFs 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]; + y1 = plpdf (data, x1, Fx1); + y2 = plpdf (data, x2, Fx2); + plot (data, y1, "-b", data, y2, "g") + grid on + ylim ([0, 0.6]) + xlim ([0, 10]) + legend ({"x1, Fx1", "x2, Fx2"}, "location", "northeast") + title ("Piecewise linear CDF") + xlabel ("values in data") + ylabel ("density") +***** shared x, Fx + x = [0, 1, 3, 4, 7, 10]; + Fx = [0, 0.2, 0.5, 0.6, 0.7, 1]; +***** assert (plpdf (0.5, x, Fx), 0.2, eps); +***** assert (plpdf (1.5, x, Fx), 0.15, eps); +***** assert (plpdf (3.5, x, Fx), 0.1, eps); +***** assert (plpdf (5, x, Fx), 0.1/3, eps); +***** assert (plpdf (8, x, Fx), 0.1, eps); +***** error plpdf () +***** error plpdf (1) +***** error plpdf (1, 2) +***** error ... + plpdf (1, [0, 1, 2], [0, 1]) +***** error ... + plpdf (1, [0], [1]) +***** error ... + plpdf (1, [0, 1, 2], [0, 1, 1.5]) +***** error ... + plpdf (1, [0, 1, 2], [0, i, 1]) +***** error ... + plpdf (i, [0, 1, 2], [0, 0.5, 1]) +***** error ... + plpdf (1, [0, i, 2], [0, 0.5, 1]) +***** error ... + plpdf (1, [0, 1, 2], [0, 0.5i, 1]) +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/dist_fun/vmrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/exprnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/burrcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/binopdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/invgcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/invgcdf.m +***** demo + ## Plot various CDFs from the inverse Gaussian distribution + x = 0:0.001:3; + p1 = invgcdf (x, 1, 0.2); + p2 = invgcdf (x, 1, 1); + p3 = invgcdf (x, 1, 3); + p4 = invgcdf (x, 3, 0.2); + p5 = invgcdf (x, 3, 1); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c", x, p5, "-y") + grid on + xlim ([0, 3]) + legend ({"μ = 1, σ = 0.2", "μ = 1, σ = 1", "μ = 1, σ = 3", ... + "μ = 3, σ = 0.2", "μ = 3, σ = 1"}, "location", "southeast") + title ("Inverse Gaussian CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, p1, p1u, y2, y2u, y3, y3u + x = [-Inf, -1, 0, 1/2, 1, Inf]; + p1 = [0, 0, 0, 0.3650, 0.6681, 1]; + p1u = [1, 1, 1, 0.6350, 0.3319, 0]; +***** assert (invgcdf (x, ones (1,6), ones (1,6)), p1, 1e-4) +***** assert (invgcdf (x, 1, 1), p1, 1e-4) +***** assert (invgcdf (x, 1, ones (1,6)), p1, 1e-4) +***** assert (invgcdf (x, ones (1,6), 1), p1, 1e-4) +***** assert (invgcdf (x, 1, [1, 1, 1, NaN, 1, 1]), [p1(1:3), NaN, p1(5:6)], 1e-4) +***** assert (invgcdf (x, [1, 1, 1, NaN, 1, 1], 1), [p1(1:3), NaN, p1(5:6)], 1e-4) +***** assert (invgcdf ([x(1:3), NaN, x(5:6)], 1, 1), [p1(1:3), NaN, p1(5:6)], 1e-4) +***** assert (invgcdf (x, ones (1,6), ones (1,6), "upper"), p1u, 1e-4) +***** assert (invgcdf (x, 1, 1, "upper"), p1u, 1e-4) +***** assert (invgcdf (x, 1, ones (1,6), "upper"), p1u, 1e-4) +***** assert (invgcdf (x, ones (1,6), 1, "upper"), p1u, 1e-4) +***** assert (class (invgcdf (single ([x, NaN]), 1, 1)), "single") +***** assert (class (invgcdf ([x, NaN], 1, single (1))), "single") +***** assert (class (invgcdf ([x, NaN], single (1), 1)), "single") +***** error invgcdf () +***** error invgcdf (1) +***** error invgcdf (1, 2) +***** error invgcdf (1, 2, 3, "tail") +***** error invgcdf (1, 2, 3, 5) +***** error ... + invgcdf (ones (3), ones (2), ones(2)) +***** error ... + invgcdf (ones (2), ones (3), ones(2)) +***** error ... + invgcdf (ones (2), ones (2), ones(3)) +***** error invgcdf (i, 2, 3) +***** error invgcdf (1, i, 3) +***** error invgcdf (1, 2, i) +25 tests, 25 passed, 0 known failure, 0 skipped +[inst/dist_fun/unidcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/invgrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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/gscatter.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/gscatter.m + 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/unidinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/wblcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/wblcdf.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/Clustering/CalinskiHarabaszEvaluation.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Clustering/CalinskiHarabaszEvaluation.m -***** test - load fisheriris - eva = evalclusters (meas, "kmeans", "calinskiharabasz", "KList", [1:6]); - assert (class (eva), "CalinskiHarabaszEvaluation"); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/Clustering/SilhouetteEvaluation.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Clustering/SilhouetteEvaluation.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 + 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, 1e-16) +***** 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, 1e-16) +***** assert (wblcdf (x, ones (1,5), 1), y, 1e-16) +***** 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], 1e-16) +***** 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/plcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - load fisheriris - eva = evalclusters (meas, "kmeans", "silhouette", "KList", [1:6]); - assert (class (eva), "SilhouetteEvaluation"); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/Clustering/GapEvaluation.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Clustering/GapEvaluation.m + data = 0:0.2:1; + p = plcdf (data, [0, 1], [0, 1]); + assert (p, data); ***** test - load fisheriris - eva = evalclusters (meas([1:50],:), "kmeans", "gap", "KList", [1:3], ... - "referencedistribution", "uniform"); - assert (class (eva), "GapEvaluation"); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/Clustering/ClusterCriterion.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Clustering/ClusterCriterion.m -***** error ... - ClusterCriterion ("1", "kmeans", [1:6]) -***** error ... - ClusterCriterion ([1, 2, 1, 3, 2, 4, 3], "k", [1:6]) -***** error ... - ClusterCriterion ([1, 2, 1; 3, 2, 4], 1, [1:6]) -***** error ... - ClusterCriterion ([1, 2, 1; 3, 2, 4], ones (2, 2, 2), [1:6]) -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/Clustering/DaviesBouldinEvaluation.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/Clustering/DaviesBouldinEvaluation.m + data = 0:0.2:1; + p = plcdf (data, [0, 2], [0, 1]); + assert (p, 0.5 * data); ***** test - load fisheriris - eva = evalclusters (meas, "kmeans", "DaviesBouldin", "KList", [1:6]); - assert (class (eva), "DaviesBouldinEvaluation"); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/datasample.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]); + data = 0:0.2:1; + p = plcdf (data, [0, 1], [0, 0.5]); + assert (p, 0.5 * data); ***** test - dat = randn (10, 4); - assert (size (datasample (dat, 3, 1)), [3 4]); + data = 0:0.2:1; + p = plcdf (data, [0, 0.5], [0, 1]); + assert (p, [0, 0.4, 0.8, 1, 1, 1]); ***** test - dat = randn (10, 4); - assert (size (datasample (dat, 3, 2)), [10 3]); + 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/manovacluster.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/manovacluster.m +[inst/dist_fun/nctcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/nctcdf.m ***** demo - load carbig - X = [MPG Acceleration Weight Displacement]; - [d, p, stats] = manova1 (X, Origin); - manovacluster (stats) + ## 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") +***** 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 - 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/randsample.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/randsample.m + 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 - 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/regress_gp.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/regress_gp.m + 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/tlsrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/geoinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/geoinv.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"); + ## Plot various iCDFs from the geometric distribution + p = 0.001:0.001:0.999; + x1 = geoinv (p, 0.2); + x2 = geoinv (p, 0.5); + x3 = geoinv (p, 0.7); + plot (p, x1, "-b", p, x2, "-g", p, x3, "-r") + grid on + ylim ([0, 10]) + legend ({"ps = 0.2", "ps = 0.5", "ps = 0.7"}, "location", "northwest") + title ("Geometric iCDF") + xlabel ("probability") + ylabel ("values in x (number of failures)") +***** shared p + p = [-1 0 0.75 1 2]; +***** assert (geoinv (p, 0.5*ones (1,5)), [NaN 0 1 Inf NaN]) +***** assert (geoinv (p, 0.5), [NaN 0 1 Inf NaN]) +***** assert (geoinv (p, 0.5*[1 -1 NaN 4 1]), [NaN NaN NaN NaN NaN]) +***** assert (geoinv ([p(1:2) NaN p(4:5)], 0.5), [NaN 0 NaN Inf NaN]) +***** assert (geoinv ([p, NaN], 0.5), [NaN 0 1 Inf NaN NaN]) +***** assert (geoinv (single ([p, NaN]), 0.5), single ([NaN 0 1 Inf NaN NaN])) +***** assert (geoinv ([p, NaN], single (0.5)), single ([NaN 0 1 Inf NaN NaN])) +***** error geoinv () +***** error geoinv (1) +***** error ... + geoinv (ones (3), ones (2)) +***** error ... + geoinv (ones (2), ones (3)) +***** error ... + geoinv (i, 2) +***** error ... + geoinv (2, i) +13 tests, 13 passed, 0 known failure, 0 skipped +[inst/dist_fun/laplacecdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/laplacecdf.m ***** 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"); + ## 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/riceinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/riceinv.m ***** 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"); + ## 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/unifinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/unifinv.m ***** 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"); + ## 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/bisainv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/bisainv.m ***** 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"); + ## 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 - ## 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"); + ## 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/vminv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/vminv.m ***** 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"); + ## 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/tricdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/tricdf.m ***** 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.7.0/inst/dendrogram.m + ## 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/hygernd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/bisacdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/bisacdf.m ***** demo - ## simple dendrogram - y = [4, 5; 2, 6; 3, 7; 8, 9; 1, 10]; - y(:,3) = 1:5; - dendrogram (y); - title ("simple dendrogram"); + ## 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 - ## 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"); + ## 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/tpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/tpdf.m ***** 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) + ## 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/mvncdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/mvncdf.m ***** 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); + 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 - ## 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"); + 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 - 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 + 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 - 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 + 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 - 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 + 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, 3e-16); ***** 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/bar3h.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/bar3h.m -***** demo - ## Ploting 5 bars in the same series. - - y = [50; 40; 30; 20; 10]; - bar3h (y); + 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/tripdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/tripdf.m ***** demo - ## Ploting 5 bars in different groups. - - y = [50, 40, 30, 20, 10]; - bar3h (y); + ## 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/logncdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/logncdf.m ***** demo - ## A 3D bar graph with each series corresponding to a column in y. - - y = [1, 4, 7; 2, 5, 8; 3, 6, 9; 4, 7, 10]; - bar3h (y); + ## 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 +[inst/dist_fun/logicdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/logicdf.m ***** demo - ## Specify z-axis locations as tick names. z must be a column vector! - - z = [1950, 1960, 1970, 1980, 1990]'; - y = [16, 8, 4, 2, 1]'; - bar3h (z, y); + ## 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/nakainv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/nakainv.m ***** demo - ## Plot 3 series as a grouped plot without any space between the grouped bars - - y = [70 50 33 10; 75 55 35 15; 80 60 40 20]; - bar3h (y, 1, 'grouped'); + ## 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/vmcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/vmcdf.m ***** demo - ## Plot a stacked style 3D bar graph - - y = [19, 30, 21, 30; 40, 16, 32, 12]; - b = bar3h (y, 0.5, 'stacked'); -***** error bar3h ("A") -***** error bar3h ({2,3,4,5}) -***** error ... - bar3h ([1,2,3]', ones (2)) -***** error ... - bar3h ([1:5], 1.2) -***** error ... - bar3h ([1:5]', ones (5), 1.2) -***** error ... - bar3h ([1:5]', ones (5), [0.8, 0.7]) -***** error ... - bar3h (ones (5), 'width') -***** error ... - bar3h (ones (5), 'width', 1.2) -***** error ... - bar3h (ones (5), 'width', [0.8, 0.8, 0.8]) -***** error ... - bar3h (ones (5), 'color') -***** error ... - bar3h (ones (5), 'color', [0.8, 0.8]) -***** error ... - bar3h (ones (5), 'color', "brown") -***** error ... - bar3h (ones (5), 'color', {"r", "k", "c", "m", "brown"}) -***** error ... - bar3h (ones (5), 'xlabel') -***** error ... - bar3h (ones (5), 'xlabel', 4) -***** error ... - bar3h (ones (5), 'zlabel') -***** error ... - bar3h (ones (5), 'zlabel', 4) -***** error bar3h (ones (5), 'this', 4) -***** error ... - bar3h (ones (5), 'xlabel', {"A", "B", "C"}) -***** error ... - bar3h (ones (5), 'zlabel', {"A", "B", "C"}) + ## 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/logit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fillmissing.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]) +[inst/dist_fun/plrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/bvtcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/bvtcdf.m ***** 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) + x = [1, 2]; + rho = [1, 0.5; 0.5, 1]; + df = 4; + assert (bvtcdf(x, rho(2), df), mvtcdf(x, rho, df), 1e-14); ***** 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]) + 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/normpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/loglcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gampdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 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/nctinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/nctinv.m +***** demo + ## Plot various iCDFs from the noncentral T distribution + p = 0.001:0.001:0.999; + x1 = nctinv (p, 1, 0); + x2 = nctinv (p, 4, 0); + x3 = nctinv (p, 1, 2); + x4 = nctinv (p, 4, 2); + plot (p, x1, "-r", p, x2, "-g", p, x3, "-k", p, x4, "-m") + grid on + ylim ([-5, 5]) + legend ({"df = 1, μ = 0", "df = 4, μ = 0", ... + "df = 1, μ = 2", "df = 4, μ = 2"}, "location", "northwest") + title ("Noncentral T iCDF") + xlabel ("probability") + ylabel ("values in x") +***** demo + ## Compare the noncentral T iCDF with MU = 1 to the T iCDF + ## with the same number of degrees of freedom (10). + + p = 0.001:0.001:0.999; + x1 = nctinv (p, 10, 1); + x2 = tinv (p, 10); + plot (p, x1, "-", p, x2, "-"); + grid on + ylim ([-5, 5]) + legend ({"Noncentral T(10,1)", "T(10)"}, "location", "northwest") + title ("Noncentral T vs T quantile functions") + xlabel ("probability") + ylabel ("values in x") ***** 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 = [-Inf,-0.3347,0.1756,0.5209,0.8279,1.1424,1.5021,1.9633,2.6571,4.0845,Inf]; + assert (nctinv ([0:0.1:1], 2, 1), x, 1e-4); ***** 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, 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]) + x = [-Inf,1.5756,2.0827,2.5343,3.0043,3.5406,4.2050,5.1128,6.5510,9.6442,Inf]; + assert (nctinv ([0:0.1:1], 2, 3), x, 1e-4); ***** 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]) + x = [-Inf,2.2167,2.9567,3.7276,4.6464,5.8455,7.5619,10.3327,15.7569,31.8159,Inf]; + assert (nctinv ([0:0.1:1], 1, 4), x, 1e-4); ***** 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] + x = [1.7791 1.9368 2.0239 2.0801 2.1195 2.1489]; + assert (nctinv (0.05, [1, 2, 3, 4, 5, 6], 4), x, 1e-4); ***** 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]) + x = [-0.7755, 0.3670, 1.2554, 2.0239, 2.7348, 3.4154]; + assert (nctinv (0.05, 3, [1, 2, 3, 4, 5, 6]), x, 1e-4); ***** 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); + x = [-0.7183, 0.3624, 1.2878, 2.1195, -3.5413, 3.6430]; + assert (nctinv (0.05, 5, [1, 2, 3, 4, -1, 6]), x, 1e-4); ***** 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]))); + assert (nctinv (0.996, 5, 8), 30.02610554063658, 2e-11); +***** error nctinv () +***** error nctinv (1) +***** error nctinv (1, 2) +***** error ... + nctinv (ones (3), ones (2), ones (2)) +***** error ... + nctinv (ones (2), ones (3), ones (2)) +***** error ... + nctinv (ones (2), ones (2), ones (3)) +***** error nctinv (i, 2, 2) +***** error nctinv (2, i, 2) +***** error nctinv (2, 2, i) +16 tests, 16 passed, 0 known failure, 0 skipped +[inst/dist_fun/unidpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 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/unidrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hninv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gprnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/gprnd.m +***** assert (size (gprnd (0, 1, 0)), [1, 1]) +***** assert (size (gprnd (0, 1, zeros (2,1))), [2, 1]) +***** assert (size (gprnd (0, 1, zeros (2,2))), [2, 2]) +***** assert (size (gprnd (0, ones (2,1), 0)), [2, 1]) +***** assert (size (gprnd (0, ones (2,2), 0)), [2, 2]) +***** assert (size (gprnd (zeros (2,1), 1, 0)), [2, 1]) +***** assert (size (gprnd (zeros (2,2), 1, 0)), [2, 2]) +***** assert (size (gprnd (0, 1, 0, 3)), [3, 3]) +***** assert (size (gprnd (0, 1, 0, [4 1])), [4, 1]) +***** assert (size (gprnd (0, 1, 0, 4, 1)), [4, 1]) +***** assert (size (gprnd (1,1,0)), [1, 1]) +***** assert (size (gprnd (1, 1, zeros (2,1))), [2, 1]) +***** assert (size (gprnd (1, 1, zeros (2,2))), [2, 2]) +***** assert (size (gprnd (1, ones (2,1), 0)), [2, 1]) +***** assert (size (gprnd (1, ones (2,2), 0)), [2, 2]) +***** assert (size (gprnd (ones (2,1), 1, 0)), [2, 1]) +***** assert (size (gprnd (ones (2,2), 1, 0)), [2, 2]) +***** assert (size (gprnd (1, 1, 0, 3)), [3, 3]) +***** assert (size (gprnd (1, 1, 0, [4 1])), [4, 1]) +***** assert (size (gprnd (1, 1, 0, 4, 1)), [4, 1]) +***** assert (size (gprnd (-1, 1, 0)), [1, 1]) +***** assert (size (gprnd (-1, 1, zeros (2,1))), [2, 1]) +***** assert (size (gprnd (1, -1, zeros (2,2))), [2, 2]) +***** assert (size (gprnd (-1, ones (2,1), 0)), [2, 1]) +***** assert (size (gprnd (-1, ones (2,2), 0)), [2, 2]) +***** assert (size (gprnd (-ones (2,1), 1, 0)), [2, 1]) +***** assert (size (gprnd (-ones (2,2), 1, 0)), [2, 2]) +***** assert (size (gprnd (-1, 1, 0, 3)), [3, 3]) +***** assert (size (gprnd (-1, 1, 0, [4, 1])), [4, 1]) +***** assert (size (gprnd (-1, 1, 0, 4, 1)), [4, 1]) +***** assert (class (gprnd (0, 1, 0)), "double") +***** assert (class (gprnd (0, 1, single (0))), "single") +***** assert (class (gprnd (0, 1, single ([0, 0]))), "single") +***** assert (class (gprnd (0, single (1),0)), "single") +***** assert (class (gprnd (0, single ([1, 1]),0)), "single") +***** assert (class (gprnd (single (0), 1, 0)), "single") +***** assert (class (gprnd (single ([0, 0]), 1, 0)), "single") +***** error gprnd () +***** error gprnd (1) +***** error gprnd (1, 2) +***** error ... + gprnd (ones (3), ones (2), ones (2)) +***** error ... + gprnd (ones (2), ones (3), ones (2)) +***** error ... + gprnd (ones (2), ones (2), ones (3)) +***** error gprnd (i, 2, 3) +***** error gprnd (1, i, 3) +***** error gprnd (1, 2, i) +***** error ... + gprnd (1, 2, 3, -1) +***** error ... + gprnd (1, 2, 3, 1.2) +***** error ... + gprnd (1, 2, 3, ones (2)) +***** error ... + gprnd (1, 2, 3, [2 -1 2]) +***** error ... + gprnd (1, 2, 3, [2 0 2.5]) +***** error ... + gprnd (1, 2, 3, 2, -1, 5) +***** error ... + gprnd (1, 2, 3, 2, 1.5, 5) +***** error ... + gprnd (2, ones (2), 2, 3) +***** error ... + gprnd (2, ones (2), 2, [3, 2]) +***** error ... + gprnd (2, ones (2), 2, 3, 2) +56 tests, 56 passed, 0 known failure, 0 skipped +[inst/dist_fun/gamcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/unifcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nctrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/wblrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gppdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/iwishpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/tcdf.m +***** demo + ## Plot various CDFs from the Student's T distribution + x = -5:0.01:5; + p1 = tcdf (x, 1); + p2 = tcdf (x, 2); + p3 = tcdf (x, 5); + p4 = tcdf (x, Inf); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-m") + grid on + xlim ([-5, 5]) + ylim ([0, 1]) + legend ({"df = 1", "df = 2", ... + "df = 5", 'df = \infty'}, "location", "southeast") + title ("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 (tcdf (x, ones (1,4)), y, eps) +***** assert (tcdf (x, 1), y, eps) +***** assert (tcdf (x, [0 1 NaN 1]), [NaN 1/2 NaN 1], eps) +***** assert (tcdf ([x(1:2) NaN x(4)], 1), [y(1:2) NaN y(4)], eps) +***** assert (tcdf (2, 3, "upper"), 0.0697, 1e-4) +***** assert (tcdf (205, 5, "upper"), 2.6206e-11, 1e-14) +***** assert (tcdf ([x, NaN], 1), [y, NaN], eps) +***** assert (tcdf (single ([x, NaN]), 1), single ([y, NaN]), eps ("single")) +***** assert (tcdf ([x, NaN], single (1)), single ([y, NaN]), eps ("single")) +***** error tcdf () +***** error tcdf (1) +***** error tcdf (1, 2, "uper") +***** error tcdf (1, 2, 3) +***** error ... + tcdf (ones (3), ones (2)) +***** error ... + tcdf (ones (3), ones (2)) +***** error ... + tcdf (ones (3), ones (2), "upper") +***** error tcdf (i, 2) +***** error tcdf (2, i) +***** shared tol_rel + tol_rel = 10 * eps; +***** assert (tcdf (10^(-10), 2.5), 0.50000000003618087, -tol_rel) +***** assert (tcdf (10^(-11), 2.5), 0.50000000000361809, -tol_rel) +***** assert (tcdf (10^(-12), 2.5), 0.50000000000036181, -tol_rel) +***** assert (tcdf (10^(-13), 2.5), 0.50000000000003618, -tol_rel) +***** assert (tcdf (10^(-14), 2.5), 0.50000000000000362, -tol_rel) +***** assert (tcdf (10^(-15), 2.5), 0.50000000000000036, -tol_rel) +***** assert (tcdf (10^(-16), 2.5), 0.50000000000000004, -tol_rel) +***** assert (tcdf (-10^1, 2.5), 2.2207478836537124e-03, -tol_rel) +***** assert (tcdf (-10^2, 2.5), 7.1916492116661878e-06, -tol_rel) +***** assert (tcdf (-10^3, 2.5), 2.2747463948307452e-08, -tol_rel) +***** 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/wishpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/geocdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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"}) + 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 - [~, 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])); + 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/betacdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/dist_fun/ncfinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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") ***** test - [A, idx] = fillmissing ([1, 2, 5], "movmedian", 3, "missinglocations", logical ([0, 1, 0])); - assert (A, [1, 3, 5]); - assert (idx, logical ([0, 1, 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"}) + 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 - [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])) + 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 = 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])) + 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 = 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])); + 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 - [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) -380 tests, 379 passed, 0 known failure, 1 skipped -[inst/logistic_regression.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/logistic_regression.m + 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 - # 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); + 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 - # 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/princomp.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/princomp.m -***** shared COEFF,SCORE,latent,tsquare,m,x,R,V,lambda,i,S,F + 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/copulapdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/copulapdf.m ***** 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); + 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=[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); + 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=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) + 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 - [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) + 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/wblinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/normcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/vmpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/iwishrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/invginv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gumbelinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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) + p = [0.05, 0.5, 0.95]; + x = gumbelinv(p); +***** assert (gumbelcdf(x), p, 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) +23 tests, 23 passed, 0 known failure, 0 skipped +[inst/dist_fun/evinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/mvnpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/evcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/chi2cdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/fpdf.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") + 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") + 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/cauchycdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/cauchycdf.m +***** demo + ## Plot various CDFs from the Cauchy distribution + x = -5:0.01:5; + p1 = cauchycdf (x, 0, 0.5); + p2 = cauchycdf (x, 0, 1); + p3 = cauchycdf (x, 0, 2); + p4 = cauchycdf (x, -2, 1); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") + grid on + xlim ([-5, 5]) + legend ({"x0 = 0, γ = 0.5", "x0 = 0, γ = 1", ... + "x0 = 0, γ = 2", "x0 = -2, γ = 1"}, "location", "southeast") + title ("Cauchy CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, y + x = [-1 0 0.5 1 2]; + y = 1/pi * atan ((x-1) / 2) + 1/2; +***** assert (cauchycdf (x, ones (1,5), 2*ones (1,5)), y) +***** assert (cauchycdf (x, 1, 2*ones (1,5)), y) +***** assert (cauchycdf (x, ones (1,5), 2), y) +***** assert (cauchycdf (x, [-Inf 1 NaN 1 Inf], 2), [NaN y(2) NaN y(4) NaN]) +***** assert (cauchycdf (x, 1, 2*[0 1 NaN 1 Inf]), [NaN y(2) NaN y(4) NaN]) +***** assert (cauchycdf ([x(1:2) NaN x(4:5)], 1, 2), [y(1:2) NaN y(4:5)]) +***** assert (cauchycdf ([x, NaN], 1, 2), [y, NaN]) +***** assert (cauchycdf (single ([x, NaN]), 1, 2), single ([y, NaN]), eps ("single")) +***** assert (cauchycdf ([x, NaN], single (1), 2), single ([y, NaN]), eps ("single")) +***** assert (cauchycdf ([x, NaN], 1, single (2)), single ([y, NaN]), eps ("single")) +***** error cauchycdf () +***** error cauchycdf (1) +***** error ... + cauchycdf (1, 2) +***** error ... + cauchycdf (1, 2, 3, 4, 5) +***** error cauchycdf (1, 2, 3, "tail") +***** error cauchycdf (1, 2, 3, 4) +***** error ... + cauchycdf (ones (3), ones (2), ones (2)) +***** error ... + cauchycdf (ones (2), ones (3), ones (2)) +***** error ... + cauchycdf (ones (2), ones (2), ones (3)) +***** error cauchycdf (i, 2, 2) +***** error cauchycdf (2, i, 2) +***** error cauchycdf (2, 2, i) +22 tests, 22 passed, 0 known failure, 0 skipped +[inst/dist_fun/finv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/finv.m +***** demo + ## Plot various iCDFs from the 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") + 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") + 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 (0.025, 10, 1e6), 0.3247, 1e-4) +***** assert (finv (0.025, 10, 1e7), 0.3247, 1e-4) +***** assert (finv (0.025, 10, 1e10), 0.3247, 1e-4) +***** assert (finv (0.025, 10, 1e255), 0.3247, 1e-4) +***** assert (finv (0.025, 10, Inf), 0.3247, 1e-4) +***** 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) +24 tests, 24 passed, 0 known failure, 0 skipped +[inst/dist_fun/nakacdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ranksum.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tiedrank.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/tiedrank.m -***** test - [r,tieadj] = tiedrank ([10, 20, 30, 40, 20]); - assert (r, [1, 2.5, 4, 5, 2.5]); - assert (tieadj, 3); -***** test - [r,tieadj] = tiedrank ([10; 20; 30; 40; 20]); - assert (r, [1; 2.5; 4; 5; 2.5]); - assert (tieadj, 3); -***** test - [r,tieadj] = tiedrank ([10, 20, 30, 40, 20], 1); - assert (r, [1, 2.5, 4, 5, 2.5]); - assert (tieadj, [1; 0; 18]); -***** test - [r,tieadj] = tiedrank ([10, 20, 30, 40, 20], 0, 1); - assert (r, [1, 2.5, 2, 1, 2.5]); - assert (tieadj, 3); -***** test - [r,tieadj] = tiedrank ([10, 20, 30, 40, 20], 1, 1); - assert (r, [1, 2.5, 2, 1, 2.5]); - assert (tieadj, [1; 0; 18]); -***** error tiedrank (ones (2)) -***** error ... - tiedrank ([1, 2, 3, 4, 5], [1, 1]) -***** error ... - tiedrank ([1, 2, 3, 4, 5], "A") -***** error ... - tiedrank ([1, 2, 3, 4, 5], [true, true]) -***** error ... - tiedrank ([1, 2, 3, 4, 5], 0, [1, 1]) -***** error ... - tiedrank ([1, 2, 3, 4, 5], 0, "A") -***** error ... - tiedrank ([1, 2, 3, 4, 5], 0, [true, true]) -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/confusionchart.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/confusionchart.m +[inst/dist_fun/lognrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/hnpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/hnpdf.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") + ## Plot various PDFs from the half-normal distribution + x = 0:0.001:10; + y1 = hnpdf (x, 0, 1); + y2 = hnpdf (x, 0, 2); + y3 = hnpdf (x, 0, 3); + y4 = hnpdf (x, 0, 5); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c") + grid on + xlim ([0, 10]) + ylim ([0, 0.9]) + legend ({"μ = 0, σ = 1", "μ = 0, σ = 2", ... + "μ = 0, σ = 3", "μ = 0, σ = 5"}, "location", "northeast") + title ("Half-normal PDF") + xlabel ("values in x") + ylabel ("density") ***** demo - ## Cellstr as inputs - Yt = {"Positive", "Positive", "Positive", "Negative", "Negative"}; - Yp = {"Positive", "Positive", "Negative", "Negative", "Negative"}; - m = confusionmat (Yt, Yp); - confusionchart (m, {"Positive", "Negative"}); + ## Plot half-normal against normal probability density function + x = -5:0.001:5; + y1 = hnpdf (x, 0, 1); + y2 = normpdf (x); + plot (x, y1, "-b", x, y2, "-g") + grid on + xlim ([-5, 5]) + ylim ([0, 0.9]) + legend ({"half-normal with μ = 0, σ = 1", ... + "standart normal (μ = 0, σ = 1)"}, "location", "northeast") + title ("Half-normal against standard normal PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-Inf, -1, 0, 1/2, 1, Inf]; + y = [0, 0, 0.7979, 0.7041, 0.4839, 0]; +***** assert (hnpdf ([x, NaN], 0, 1), [y, NaN], 1e-4) +***** assert (hnpdf (x, 0, [-2, -1, 0, 1, 1, 1]), [nan(1,3), y([4:6])], 1e-4) +***** assert (class (hncdf (single ([x, NaN]), 0, 1)), "single") +***** assert (class (hncdf ([x, NaN], 0, single (1))), "single") +***** assert (class (hncdf ([x, NaN], single (0), 1)), "single") +***** error hnpdf () +***** error hnpdf (1) +***** error hnpdf (1, 2) +***** error ... + hnpdf (1, ones (2), ones (3)) +***** error ... + hnpdf (ones (2), 1, ones (3)) +***** error ... + hnpdf (ones (2), ones (3), 1) +***** error hnpdf (i, 2, 3) +***** error hnpdf (1, i, 3) +***** error hnpdf (1, 2, i) +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/dist_fun/gpcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/gpcdf.m ***** 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]; + ## 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/laplaceinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/laplaceinv.m ***** 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); + ## 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/poisspdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/poisspdf.m ***** 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); + ## 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/poisscdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/logiinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/logiinv.m +***** demo + ## Plot various iCDFs from the logistic 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") + grid on + legend ({"μ = 5, σ = 2", "μ = 9, σ = 3", "μ = 9, σ = 4", ... + "μ = 6, σ = 2", "μ = 2, σ = 1"}, "location", "southeast") + title ("Logistic iCDF") + xlabel ("probability") + ylabel ("x") ***** test - set (0, "DefaultFigureVisible", "off"); - fail ("confusionchart ([1 2], [0 1], 'Units', .1)", ".* invalid .* Units"); - set (0, "DefaultFigureVisible", visibility_setting); + 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 (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/logninv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/squareform.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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/glmfit.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/glmfit.m +[inst/dist_fun/burrrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/bisapdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/bisapdf.m ***** demo - rand ("seed", 1); - X = rand (100, 1); - b_true = [0.5; -1.2]; - mu = exp (b_true(1) + b_true(2) * X); - randp ("seed", 1); - y = poissrnd (mu); - ## Fit a GLM model using the poisson distribution - [b,dev] = glmfit (X, y, 'poisson'); + ## 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 - x = [2100 2300 2500 2700 2900 3100 3300 3500 3700 3900 4100 4300]'; - n = [48 42 31 34 31 21 23 23 21 16 17 21]'; - y = [1 2 0 3 8 8 14 17 19 15 17 21]'; - [b,dev] = glmfit (x,[y n],'binomial','Link','probit'); -***** 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); -***** test - rand ("seed", 1); - X1 = rand (50, 1); - X2 = rand (50, 1) * 0.5; - b_true = [0.4; 1.5; -0.7]; - mu_true = exp (b_true(1) + b_true(2) * X1 + b_true(3) * X2); - randp ("seed", 1); - y = poissrnd(mu_true); - [b, dev] = glmfit ([X1, X2], y, "poisson", "link", "log"); - assert (b(1), b_true(1), 1); - assert (b(2), b_true(2), 1); - assert (b(3), b_true(3), 1); - assert (dev < 60, true); -***** error glmfit () -***** error glmfit (1) -***** error glmfit (1, 2) -***** error ... - glmfit (rand (6, 1), rand (6, 1), 'poisson', 'link') -***** error ... - glmfit ('abc', rand (6, 1), 'poisson') -***** error ... - glmfit (rand (5, 2), 'abc', 'poisson') -***** error ... - glmfit (rand (5, 2), rand (6, 1), 'poisson') -***** error ... - glmfit (rand (6, 2), rand (6, 1), 3) -***** error ... - glmfit (rand (6, 2), rand (6, 1), {'poisson'}) -***** error ... - glmfit (rand (5, 2), rand (5, 3), 'binomial') -***** error ... - glmfit (rand (5, 2), rand (5, 2), 'normal') -***** error ... - glmfit (rand (5, 2), rand (5, 1), 'gamma') -***** error ... - glmfit (rand (5, 2), rand (5, 1), 'inverse gaussian') -***** error ... - glmfit (rand (5, 2), rand (5, 1), 'loguniform') -***** error ... - glmfit (rand(5,2), rand(5,1), 'poisson', 'link', {'log'}) -***** error ... - glmfit (rand(5,2), rand(5,1), 'poisson', 'link', {'log', 'hijy'}) -***** error ... - glmfit (rand(5,2), rand(5,1), 'poisson', 'link', {'log','dfv','dfgvd'}) -***** error ... - glmfit (rand(5,2), rand(5,1), 'poisson', 'link', {@log, 'derivative', @exp}) -***** error ... - glmfit (rand(5,2), rand(5,1), 'poisson', 'link', {@exp, @log, @(x) eye(e)}) -***** error ... - glmfit (rand(5,2), rand(5,1), 'poisson', 'link', 'somelinkfunction') -***** error ... - glmfit (rand(5,2), rand(5,1), 'poisson', 'link', 2) -***** error ... - glmfit (rand(5,2), rand(5,1), 'poisson', 'link', 'log', 'constant', 0) -***** error ... - glmfit (rand(5,2), rand(5,1), 'poisson', 'link', 'log', 'constant', 'asda') -***** error ... - glmfit (rand(5,2), rand(5,1), 'poisson', 'param', 'log', 'constant', 'on') -26 tests, 26 passed, 0 known failure, 0 skipped -[inst/cholcov.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/cholcov.m + ## 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/nbinpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/nbinpdf.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 + ## 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/logipdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/logipdf.m +***** demo + ## Plot various PDFs from the logistic distribution + x = -5:0.01:20; + y1 = logipdf (x, 5, 2); + y2 = logipdf (x, 9, 3); + y3 = logipdf (x, 9, 4); + y4 = logipdf (x, 6, 2); + y5 = logipdf (x, 2, 1); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c", x, y5, "-m") + grid on + ylim ([0, 0.3]) + legend ({"μ = 5, σ = 2", "μ = 9, σ = 3", "μ = 9, σ = 4", ... + "μ = 6, σ = 2", "μ = 2, σ = 1"}, "location", "northeast") + title ("Logistic PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-Inf -log(4) 0 log(4) Inf]; + y = [0, 0.16, 1/4, 0.16, 0]; +***** assert (logipdf ([x, NaN], 0, 1), [y, NaN], eps) +***** assert (logipdf (x, 0, [-2, -1, 0, 1, 2]), [nan(1, 3), y([4:5])], eps) +***** assert (logipdf (single ([x, NaN]), 0, 1), single ([y, NaN]), eps ("single")) +***** assert (logipdf ([x, NaN], single (0), 1), single ([y, NaN]), eps ("single")) +***** assert (logipdf ([x, NaN], 0, single (1)), single ([y, NaN]), eps ("single")) +***** error logipdf () +***** error logipdf (1) +***** error ... + logipdf (1, 2) +***** error ... + logipdf (1, ones (2), ones (3)) +***** error ... + logipdf (ones (2), 1, ones (3)) +***** error ... + logipdf (ones (2), ones (3), 1) +***** error logipdf (i, 2, 3) +***** error logipdf (1, i, 3) +***** error logipdf (1, 2, i) +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/dist_fun/cauchypdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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/shadow9/mean.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/shadow9/mean.m + 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/copularnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/copularnd.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]) + theta = 0.5; + r = copularnd ("Gaussian", theta); + assert (size (r), [1, 2]); + assert (all ((r >= 0) & (r <= 1))); ***** 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); + theta = 0.5; + df = 2; + r = copularnd ("t", theta, df); + assert (size (r), [1, 2]); + assert (all ((r >= 0) & (r <= 1))); ***** 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)); + theta = 0.5; + r = copularnd ("Clayton", theta); + assert (size (r), [1, 2]); + assert (all ((r >= 0) & (r <= 1))); ***** 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); + theta = 0.5; + n = 2; + r = copularnd ("Clayton", theta, n); + assert (size (r), [n, 2]); + assert (all ((r >= 0) & (r <= 1))); ***** 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); + 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/expcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/expcdf.m +***** demo + ## Plot various CDFs from the exponential distribution + x = 0:0.01:5; + p1 = expcdf (x, 2/3); + p2 = expcdf (x, 1.0); + p3 = expcdf (x, 2.0); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r") + grid on + legend ({"μ = 2/3", "μ = 1", "μ = 2"}, "location", "southeast") + title ("Exponential CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, p + x = [-1 0 0.5 1 Inf]; + p = [0, 1 - exp(-x(2:end)/2)]; +***** assert (expcdf (x, 2 * ones (1, 5)), p, 1e-16) +***** assert (expcdf (x, 2), p, 1e-16) +***** assert (expcdf (x, 2 * [1, 0, NaN, 1, 1]), [0, NaN, NaN, p(4:5)], 1e-16) +***** assert (expcdf ([x, NaN], 2), [p, NaN], 1e-16) +***** assert (expcdf (single ([x, NaN]), 2), single ([p, NaN])) +***** assert (expcdf ([x, NaN], single (2)), single ([p, 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)); + [p, plo, pup] = expcdf (1, 2, 3); + assert (p, 0.39346934028737, 1e-14); + assert (plo, 0.08751307220484, 1e-14); + assert (pup, 0.93476821257933, 1e-14); ***** 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])); + [p, plo, pup] = expcdf (1, 2, 2, 0.1); + assert (p, 0.39346934028737, 1e-14); + assert (plo, 0.14466318041675, 1e-14); + assert (pup, 0.79808291849140, 1e-14); ***** 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'); + [p, plo, pup] = expcdf (1, 2, 2, 0.1, "upper"); + assert (p, 0.60653065971263, 1e-14); + assert (plo, 0.20191708150860, 1e-14); + assert (pup, 0.85533681958325, 1e-14); +***** error expcdf () +***** error expcdf (1, 2 ,3 ,4 ,5, 6) +***** error expcdf (1, 2, 3, 4, "uper") +***** error ... + expcdf (ones (3), ones (2)) +***** error ... + expcdf (2, 3, [1, 2]) +***** error ... + [p, plo, pup] = expcdf (1, 2) +***** error [p, plo, pup] = ... + expcdf (1, 2, 3, 0) +***** error [p, plo, pup] = ... + expcdf (1, 2, 3, 1.22) +***** error [p, plo, pup] = ... + expcdf (1, 2, 3, "alpha", "upper") +***** error expcdf (i, 2) +***** error expcdf (2, i) +***** error ... + [p, plo, pup] = expcdf (1, 2, -1, 0.04) +21 tests, 21 passed, 0 known failure, 0 skipped +[inst/dist_fun/exppdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncfcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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)) + 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 - 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)) + p = ncfcdf (12, 10, 3, 2); + assert (p, 0.9582287900447416, 1e-14); ***** 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]) + p = ncfcdf (2, 3, 2, 1); + assert (p, 0.5731985522994989, 1e-14); ***** 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)) -***** 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, 80 passed, 0 known failure, 0 skipped -[inst/shadow9/std.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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) + p = ncfcdf (2, 3, 2, 1, "upper"); + assert (p, 0.4268014477004823, 1e-14); ***** 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) + 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/mvtrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/mvtrnd.m ***** 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); + rho = [1, 0.5; 0.5, 1]; + df = 3; + n = 10; + r = mvtrnd (rho, df, n); + assert (size (r), [10, 2]); ***** 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); + 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/tlspdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 - 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) + 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/cauchyrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/fcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/fcdf.m +***** 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/trnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/logirnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncfpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/expinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/tlscdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/mvnrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/invgpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/invgpdf.m +***** demo + ## Plot various PDFs from the inverse Gaussian distribution + x = 0:0.001:3; + y1 = invgpdf (x, 1, 0.2); + y2 = invgpdf (x, 1, 1); + y3 = invgpdf (x, 1, 3); + y4 = invgpdf (x, 3, 0.2); + y5 = invgpdf (x, 3, 1); + plot (x, y1, "-b", x, y2, "-g", x, y3, "-r", x, y4, "-c", x, y5, "-y") + grid on + xlim ([0, 3]) + ylim ([0, 3]) + legend ({"μ = 1, σ = 0.2", "μ = 1, σ = 1", "μ = 1, σ = 3", ... + "μ = 3, σ = 0.2", "μ = 3, σ = 1"}, "location", "northeast") + title ("Inverse Gaussian PDF") + xlabel ("values in x") + ylabel ("density") +***** shared x, y + x = [-Inf, -1, 0, 1/2, 1, Inf]; + y = [0, 0, 0, 0.8788, 0.3989, 0]; +***** assert (invgpdf ([x, NaN], 1, 1), [y, NaN], 1e-4) +***** assert (invgpdf (x, 1, [-2, -1, 0, 1, 1, 1]), [nan(1,3), y([4:6])], 1e-4) +***** assert (class (hncdf (single ([x, NaN]), 1, 1)), "single") +***** assert (class (hncdf ([x, NaN], 1, single (1))), "single") +***** assert (class (hncdf ([x, NaN], single (1), 1)), "single") +***** error invgpdf () +***** error invgpdf (1) +***** error invgpdf (1, 2) +***** error ... + invgpdf (1, ones (2), ones (3)) +***** error ... + invgpdf (ones (2), 1, ones (3)) +***** error ... + invgpdf (ones (2), ones (3), 1) +***** error invgpdf (i, 2, 3) +***** error invgpdf (1, i, 3) +***** error invgpdf (1, 2, i) +14 tests, 14 passed, 0 known failure, 0 skipped +[inst/dist_fun/gpinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/gpinv.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") + 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/betapdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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])) ***** 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)) + 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/betarnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gumbelpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/gumbelpdf.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/gamrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/gumbelrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/nakarnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/ncfrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/raylinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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") ***** 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); + 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 - [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); + 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/raylpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 = 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])); + 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 = 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.7.0/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) + 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/cauchyinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/poissinv.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/binornd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/binornd.m +***** assert (size (binornd (2, 1/2)), [1 1]) +***** assert (size (binornd (2 * ones (2, 1), 1/2)), [2, 1]) +***** assert (size (binornd (2 * ones (2, 2), 1/2)), [2, 2]) +***** assert (size (binornd (2, 1/2 * ones (2, 1))), [2, 1]) +***** assert (size (binornd (1, 1/2 * ones (2, 2))), [2, 2]) +***** assert (size (binornd (ones (2, 1), 1)), [2, 1]) +***** assert (size (binornd (ones (2, 2), 1)), [2, 2]) +***** assert (size (binornd (2, 1/2, 3)), [3, 3]) +***** assert (size (binornd (1, 1, [4, 1])), [4, 1]) +***** assert (size (binornd (1, 1, 4, 1)), [4, 1]) +***** assert (size (binornd (1, 1, 4, 1, 5)), [4, 1, 5]) +***** assert (size (binornd (1, 1, 0, 1)), [0, 1]) +***** assert (size (binornd (1, 1, 1, 0)), [1, 0]) +***** assert (size (binornd (1, 1, 1, 2, 0, 5)), [1, 2, 0, 5]) +***** assert (class (binornd (1, 1)), "double") +***** assert (class (binornd (1, single (0))), "single") +***** assert (class (binornd (1, single ([0, 0]))), "single") +***** assert (class (binornd (1, single (1), 2)), "single") +***** assert (class (binornd (1, single ([1, 1]), 1, 2)), "single") +***** assert (class (binornd (single (1), 1, 2)), "single") +***** assert (class (binornd (single ([1, 1]), 1, 1, 2)), "single") +***** error binornd () +***** error binornd (1) +***** error ... + binornd (ones (3), ones (2)) +***** error ... + binornd (ones (2), ones (3)) +***** error binornd (i, 2) +***** error binornd (1, i) +***** error ... + binornd (1, 1/2, -1) +***** error ... + binornd (1, 1/2, 1.2) +***** error ... + binornd (1, 1/2, ones (2)) +***** error ... + binornd (1, 1/2, [2 -1 2]) +***** error ... + binornd (1, 1/2, [2 0 2.5]) +***** error ... + binornd (1, 1/2, 2, -1, 5) +***** error ... + binornd (1, 1/2, 2, 1.5, 5) +***** error ... + binornd (2, 1/2 * ones (2), 3) +***** error ... + binornd (2, 1/2 * ones (2), [3, 2]) +***** error ... + binornd (2, 1/2 * ones (2), 3, 2) +***** error ... + binornd (2 * ones (2), 1/2, 3) +***** error ... + binornd (2 * ones (2), 1/2, [3, 2]) +***** error ... + binornd (2 * ones (2), 1/2, 3, 2) +40 tests, 40 passed, 0 known failure, 0 skipped +[inst/dist_fun/copulacdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/copulacdf.m ***** 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) + 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 = reshape(1:18, [3 3 2]); - x([2, 14]) = NaN; - w = ones (3,3,2); - assert (var (16*x, w, [1:3], 'omitnan'), 6519); + 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 = 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); + 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 = 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]) + 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 = 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)) + 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/gevcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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") ***** 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); + 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 - [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])); + 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/raylcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 = 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/shadow9/median.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/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]) + 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 = [1, 2, 3, 4, 5, 6]; - x2 = x'; - y = [1, 2, 3, 4, 5, 6, 7]; - y2 = y'; + 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/mvtcdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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. - 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)); + 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 = 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]) + 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 = 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 + 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 = 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/procrustes.m] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/procrustes.m + 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/hncdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/hncdf.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"); + ## Plot various CDFs from the half-normal distribution + x = 0:0.001:10; + p1 = hncdf (x, 0, 1); + p2 = hncdf (x, 0, 2); + p3 = hncdf (x, 0, 3); + p4 = hncdf (x, 0, 5); + plot (x, p1, "-b", x, p2, "-g", x, p3, "-r", x, p4, "-c") + grid on + xlim ([0, 10]) + legend ({"μ = 0, σ = 1", "μ = 0, σ = 2", ... + "μ = 0, σ = 3", "μ = 0, σ = 5"}, "location", "southeast") + title ("Half-normal CDF") + xlabel ("values in x") + ylabel ("probability") ***** 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 + ## Plot half-normal against normal cumulative distribution function + x = -5:0.001:5; + p1 = hncdf (x, 0, 1); + p2 = normcdf (x); + plot (x, p1, "-b", x, p2, "-g") + grid on + xlim ([-5, 5]) + legend ({"half-normal with μ = 0, σ = 1", ... + "standart normal (μ = 0, σ = 1)"}, "location", "southeast") + title ("Half-normal against standard normal CDF") + xlabel ("values in x") + ylabel ("probability") +***** shared x, p1, p1u, y2, y2u, y3, y3u + x = [-Inf, -1, 0, 1/2, 1, Inf]; + p1 = [0, 0, 0, 0.3829, 0.6827, 1]; + p1u = [1, 1, 1, 0.6171, 0.3173, 0]; +***** assert (hncdf (x, zeros (1,6), ones (1,6)), p1, 1e-4) +***** assert (hncdf (x, 0, 1), p1, 1e-4) +***** assert (hncdf (x, 0, ones (1,6)), p1, 1e-4) +***** assert (hncdf (x, zeros (1,6), 1), p1, 1e-4) +***** assert (hncdf (x, 0, [1, 1, 1, NaN, 1, 1]), [p1(1:3), NaN, p1(5:6)], 1e-4) +***** assert (hncdf (x, [0, 0, 0, NaN, 0, 0], 1), [p1(1:3), NaN, p1(5:6)], 1e-4) +***** assert (hncdf ([x(1:3), NaN, x(5:6)], 0, 1), [p1(1:3), NaN, p1(5:6)], 1e-4) +***** assert (hncdf (x, zeros (1,6), ones (1,6), "upper"), p1u, 1e-4) +***** assert (hncdf (x, 0, 1, "upper"), p1u, 1e-4) +***** assert (hncdf (x, 0, ones (1,6), "upper"), p1u, 1e-4) +***** assert (hncdf (x, zeros (1,6), 1, "upper"), p1u, 1e-4) +***** assert (class (hncdf (single ([x, NaN]), 0, 1)), "single") +***** assert (class (hncdf ([x, NaN], 0, single (1))), "single") +***** assert (class (hncdf ([x, NaN], single (0), 1)), "single") +***** error hncdf () +***** error hncdf (1) +***** error hncdf (1, 2) +***** error hncdf (1, 2, 3, "tail") +***** error hncdf (1, 2, 3, 5) +***** error ... + hncdf (ones (3), ones (2), ones(2)) +***** error ... + hncdf (ones (2), ones (3), ones(2)) +***** error ... + hncdf (ones (2), ones (2), ones(3)) +***** error hncdf (i, 2, 3) +***** error hncdf (1, i, 3) +***** error hncdf (1, 2, i) +25 tests, 25 passed, 0 known failure, 0 skipped +[inst/dist_fun/raylrnd.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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/lognpdf.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/dist_fun/lognpdf.m ***** 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 + ## 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/clusterdata.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/inst/clusterdata.m ***** demo - ## Compare shapes without reflection + 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]; - 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 + 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/regression_ftest.m] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/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 Checking C++ files ... -[src/libsvmread.cc] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/src/libsvmread.cc -***** error [L, D] = libsvmread (24); -***** error ... - D = libsvmread ("filename"); +[src/svmtrain.cc] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/src/svmtrain.cc ***** test [L, D] = libsvmread (file_in_loadpath ("heart_scale.dat")); - assert (size (L), [270, 1]); - assert (size (D), [270, 13]); -***** test + model = svmtrain(L, D, '-c 1 -g 0.07'); + [predict_label, accuracy, dec_values] = svmpredict(L, D, model); + assert (isstruct (model), true); + assert (isfield (model, "Parameters"), true); + assert (model.totalSV, 130); + assert (model.nr_class, 2); + assert (size (model.Label), [2, 1]); +***** shared L, D [L, D] = libsvmread (file_in_loadpath ("heart_scale.dat")); - assert (issparse (L), false); - assert (issparse (D), true); +***** error [L, D] = svmtrain (L, D); +***** error ... + model = svmtrain (single (L), D); +***** error ... + model = svmtrain (L, D, "", ""); 4 tests, 4 passed, 0 known failure, 0 skipped +[src/svmpredict.cc] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/src/svmpredict.cc +***** test + [L, D] = libsvmread (file_in_loadpath ("heart_scale.dat")); + model = svmtrain (L, D, '-c 1 -g 0.07'); + [predict_label, accuracy, dec_values] = svmpredict (L, D, model); + assert (size (predict_label), size (dec_values)); + assert (accuracy, [86.666, 0.533, 0.533]', [1e-3, 1e-3, 1e-3]'); + assert (dec_values(1), 1.225836001973273, 1e-14); + assert (dec_values(2), -0.3212992933043805, 1e-14); + assert (predict_label(1), 1); +***** shared L, D, model + [L, D] = libsvmread (file_in_loadpath ("heart_scale.dat")); + model = svmtrain (L, D, '-c 1 -g 0.07'); +***** error ... + [p, a] = svmpredict (L, D, model); +***** error p = svmpredict (L, D); +***** error ... + p = svmpredict (single (L), D, model); +***** error p = svmpredict (L, D, 123); +5 tests, 5 passed, 0 known failure, 0 skipped +[src/fcnnpredict.cc] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/src/fcnnpredict.cc +***** shared X, Y, MODEL + load fisheriris + X = meas; + Y = grp2idx (species); + MODEL = fcnntrain (X, Y, 10, [1, 1], 0.025, 100, false); +***** test + [Y_pred, Y_scores] = fcnnpredict (MODEL, X); + assert (numel (Y_pred), numel (Y)); + assert (isequal (size (Y_pred), size (Y)), true); + assert (columns (Y_scores), numel (unique (Y))); + assert (rows (Y_scores), numel (Y)); +***** error ... + fcnnpredict (MODEL); +***** error ... + [Q, W, E] = fcnnpredict (MODEL, X); +***** error ... + fcnnpredict (1, X); +***** error ... + fcnnpredict (struct ("L", {1, 2, 3}), X); +***** error ... + fcnnpredict (struct ("L", 1), X); +***** error ... + fcnnpredict (struct ("LayerWeights", 1), X); +***** error ... + fcnnpredict (struct ("LayerWeights", {1}), X); +***** error ... + fcnnpredict (struct ("LayerWeights", {{1; 2; 3}}), X); +***** error ... + fcnnpredict (struct ("LayerWeights", {[{ones(3)},{ones(3)}]}, "R", 2), X); +***** error ... + fcnnpredict (struct ("LayerWeights", {[{ones(3)},{ones(3)}]}, ... + "Activations", [2]), X); +***** error ... + fcnnpredict (struct ("LayerWeights", {[{ones(3)},{ones(3)}]}, ... + "Activations", [2; 2]), X); +***** error ... + fcnnpredict (struct ("LayerWeights", {[{ones(3)},{ones(3)}]}, ... + "Activations", {{2, 2}}), X); +***** error ... + fcnnpredict (struct ("LayerWeights", {[{ones(3)},{ones(3)}]}, ... + "Activations", {{"sigmoid", "softmax"}}), X); +***** error ... + fcnnpredict (struct ("LayerWeights", {[{ones(3)},{ones(3)}]}, ... + "Activations", "sigmoid"), X); +***** error ... + fcnnpredict (MODEL, complex (X)); +***** error ... + fcnnpredict (MODEL, {1, 2, 3, 4}); +***** error ... + fcnnpredict (MODEL, "asd"); +***** error ... + fcnnpredict (MODEL, []); +***** error ... + fcnnpredict (MODEL, X(:,[1:3])); +20 tests, 20 passed, 0 known failure, 0 skipped [src/editDistance.cc] >>>>> /build/reproducible-path/octave-statistics-1.7.0/src/editDistance.cc ***** error d = editDistance (1, 2, 3, 4); @@ -33661,63 +33780,20 @@ assert (b, 1); assert (class (b), "double"); 33 tests, 33 passed, 0 known failure, 0 skipped -[src/fcnnpredict.cc] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/src/fcnnpredict.cc -***** shared X, Y, MODEL - load fisheriris - X = meas; - Y = grp2idx (species); - MODEL = fcnntrain (X, Y, 10, [1, 1], 0.025, 100, false); +[src/libsvmread.cc] +>>>>> /build/reproducible-path/octave-statistics-1.7.0/src/libsvmread.cc +***** error [L, D] = libsvmread (24); +***** error ... + D = libsvmread ("filename"); ***** test - [Y_pred, Y_scores] = fcnnpredict (MODEL, X); - assert (numel (Y_pred), numel (Y)); - assert (isequal (size (Y_pred), size (Y)), true); - assert (columns (Y_scores), numel (unique (Y))); - assert (rows (Y_scores), numel (Y)); -***** error ... - fcnnpredict (MODEL); -***** error ... - [Q, W, E] = fcnnpredict (MODEL, X); -***** error ... - fcnnpredict (1, X); -***** error ... - fcnnpredict (struct ("L", {1, 2, 3}), X); -***** error ... - fcnnpredict (struct ("L", 1), X); -***** error ... - fcnnpredict (struct ("LayerWeights", 1), X); -***** error ... - fcnnpredict (struct ("LayerWeights", {1}), X); -***** error ... - fcnnpredict (struct ("LayerWeights", {{1; 2; 3}}), X); -***** error ... - fcnnpredict (struct ("LayerWeights", {[{ones(3)},{ones(3)}]}, "R", 2), X); -***** error ... - fcnnpredict (struct ("LayerWeights", {[{ones(3)},{ones(3)}]}, ... - "Activations", [2]), X); -***** error ... - fcnnpredict (struct ("LayerWeights", {[{ones(3)},{ones(3)}]}, ... - "Activations", [2; 2]), X); -***** error ... - fcnnpredict (struct ("LayerWeights", {[{ones(3)},{ones(3)}]}, ... - "Activations", {{2, 2}}), X); -***** error ... - fcnnpredict (struct ("LayerWeights", {[{ones(3)},{ones(3)}]}, ... - "Activations", {{"sigmoid", "softmax"}}), X); -***** error ... - fcnnpredict (struct ("LayerWeights", {[{ones(3)},{ones(3)}]}, ... - "Activations", "sigmoid"), X); -***** error ... - fcnnpredict (MODEL, complex (X)); -***** error ... - fcnnpredict (MODEL, {1, 2, 3, 4}); -***** error ... - fcnnpredict (MODEL, "asd"); -***** error ... - fcnnpredict (MODEL, []); -***** error ... - fcnnpredict (MODEL, X(:,[1:3])); -20 tests, 20 passed, 0 known failure, 0 skipped + [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.7.0/src/libsvmwrite.cc ***** shared L, D @@ -33735,46 +33811,6 @@ ***** error ... libsvmwrite (tempname (), L, D, D); 7 tests, 7 passed, 0 known failure, 0 skipped -[src/svmtrain.cc] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/src/svmtrain.cc -***** test - [L, D] = libsvmread (file_in_loadpath ("heart_scale.dat")); - model = svmtrain(L, D, '-c 1 -g 0.07'); - [predict_label, accuracy, dec_values] = svmpredict(L, D, model); - assert (isstruct (model), true); - assert (isfield (model, "Parameters"), true); - assert (model.totalSV, 130); - assert (model.nr_class, 2); - assert (size (model.Label), [2, 1]); -***** shared L, D - [L, D] = libsvmread (file_in_loadpath ("heart_scale.dat")); -***** error [L, D] = svmtrain (L, D); -***** error ... - model = svmtrain (single (L), D); -***** error ... - model = svmtrain (L, D, "", ""); -4 tests, 4 passed, 0 known failure, 0 skipped -[src/svmpredict.cc] ->>>>> /build/reproducible-path/octave-statistics-1.7.0/src/svmpredict.cc -***** test - [L, D] = libsvmread (file_in_loadpath ("heart_scale.dat")); - model = svmtrain (L, D, '-c 1 -g 0.07'); - [predict_label, accuracy, dec_values] = svmpredict (L, D, model); - assert (size (predict_label), size (dec_values)); - assert (accuracy, [86.666, 0.533, 0.533]', [1e-3, 1e-3, 1e-3]'); - assert (dec_values(1), 1.225836001973273, 1e-14); - assert (dec_values(2), -0.3212992933043805, 1e-14); - assert (predict_label(1), 1); -***** shared L, D, model - [L, D] = libsvmread (file_in_loadpath ("heart_scale.dat")); - model = svmtrain (L, D, '-c 1 -g 0.07'); -***** error ... - [p, a] = svmpredict (L, D, model); -***** error p = svmpredict (L, D); -***** error ... - p = svmpredict (single (L), D, model); -***** error p = svmpredict (L, D, 123); -5 tests, 5 passed, 0 known failure, 0 skipped [src/fcnntrain.cc] >>>>> /build/reproducible-path/octave-statistics-1.7.0/src/fcnntrain.cc ***** shared X, Y, MODEL @@ -33883,12 +33919,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/58979/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/58979/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/54561 and its subdirectories -I: Current time: Sat Nov 29 08:10:57 -12 2025 -I: pbuilder-time-stamp: 1764447057 +I: removing directory /srv/workspace/pbuilder/58979 and its subdirectories +I: Current time: Mon Oct 28 04:19:38 +14 2024 +I: pbuilder-time-stamp: 1730038778