Optimal Designs for Copula Models

A direct approach to optimal designs for copula models based on the Fisher information. Provides flexible functions for building joint PDFs, evaluating the Fisher information and finding optimal designs. It includes an extensible solution to summation and integration called 'nint', functions for transforming, plotting and comparing designs, as well as a set of tools for common low-level tasks.


A direct approach to optimal designs for copula models based on the Fisher information. Provides flexible functions for building joint PDFs, evaluating the Fisher information and finding optimal designs. It includes an extensible solution to summation and integration called nint, functions for transforming, plotting and comparing designs, as well as a set of tools for common low-level tasks.

Goals

docopulae strives to provide functions which allow the user to

  • define a wide variety of models by the joint probability density function (PDF)
  • evaluate the Fisher information by providing a convenient interface
  • find optimal designs using some sensitivity function
  • visualize designs
  • compare Ds-optimal designs

Workflow

See ./misc/workflow.dot.pdf and ./misc/nint.dot.pdf. Vignettes explaining these steps in detail are planned.

Quick Start

First of all, if you are completely unfamiliar with R then I strongly recommend you to read "A (very) short introduction to R" first (just google it). Basic knowledge is necessary and assumed almost everywhere.

TODO. For the moment see and follow the example for the function param on the corresponding help page. It requires at least the packages copula, SparseGrid and numDeriv to be installed. Run devtools::update_packages(c('copula', 'SparseGrid', 'numDeriv')) (or instead with install.packages) to install/update them. To install/update all suggested packages run devtools::update_packages(c('copula', 'numDeriv', 'Deriv', 'cubature', 'SparseGrid', 'mvtnorm', 'testthat')).

If R's help won't work after installing the packages, restart R to resolve.

Have fun :)

Install

  • from CRAN
    • install.packages('docopulae')
  • from GitHub with devtools
    • devtools::install_github('arappold/docopulae')
  • from GitHub without devtools

Bugs

If you are absolutely certain that you found a bug, please let me know by creating an issue at https://github.com/arappold/docopulae/issues. Explain how to reproduce the bug, best by attaching a small script, and I will investigate as soon as I got time to.

(just a) Warning: docopulae allows complex/complicated scripts. And even though we might think we know what it tells R what to do, we most often don't.

Feature Requests

If you feel unhappy about certain aspects of docopulae and perhaps have an adequate solution, please create an issue and lets discuss about it.

News

docopulae 0.4

  • new function wDsensitivity
  • new function wDefficiency
  • inconsistencies due to odd implementation of duplicated fixed
  • new function rowsduplicated

docopulae 0.3.5

  • DerivLogf, Deriv2Logf and update.param print their progress
  • new function grow.grid
  • update.param handles interrupts by user and returns partially updated model object
  • minor bug in C code fixed

docopulae 0.3.4

  • buildf takes an additional argument continuous to build joint probability mass functions

docopulae 0.3.3

  • expr2f removed in favor of package Deriv
    • buildf returns a function in every use case
    • arguments changed for DerivLogf and Deriv2Logf
    • buildf, DerivLogf and Deriv2Logf use package Deriv to simplify and cache
  • nint_transform completely rewritten
    • takes a list of transformations
    • transforms interval and function dimensions
    • handles function dimensions correctly
    • implements transformation of function dimensions to interval dimensions
    • builtin transformations replaced by nint_tanTransform
  • refocus on D_A-optimality, arguments changed for Dsensitivity and Defficiency
  • argument names renamed for buildf, DerivLogf, Deriv2Logf, fisherI, Dsensitivity, Defficiency
  • FedorovWynn renamed to Wynn
  • defaults for method.args for numDeriv2Logf fixed
  • handling of nint_funcDim in nint_integrateNFunc fixed
  • performance increased for Dsensitivity and Defficiency
  • rowmatch uses C-code and requires matrices of doubles
  • plot.desigh recursively finds base design
  • plot.desigh won't draw second axis anymore if sensArgs$axes == F
  • typo fixed and default sensitivity label redefined for plot.desigh

docopulae 0.3.2

  • numDerivLogf and numDeriv2Logf optionally take a log likelihood function
  • sensitivity function redefined to a positive function, concerns
    • Dsensitivity
    • argument tol to FedorovWynn
    • new argument sensTol to plot.desigh

docopulae 0.3.1

  • buildf is more general

docopulae 0.3.0

  • class desigh redefined, constructor design added
  • major change in workflow
    • sensitivity function is 'liberated'
    • Dsensitivity builds a sensitivity function for D- and Ds-optimality
    • FedorovWynn takes a sensitivity function
    • related functions and their arguments are adjusted accordingly
  • component dDim removed from model definition
  • update.param also takes designs therefore replacing update.desigh and update_reference
  • new defaults for arguments dsNames and names

docopulae 0.2.0

  • initial CRAN submission
  • start package versioning
  • all previous commits are considered irrelevant

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.