From 88c64184c522e2a3a43d3553557c68fde1d04853 Mon Sep 17 00:00:00 2001 From: Michael Mayer Date: Mon, 17 Jul 2023 21:26:54 +0200 Subject: [PATCH] Resubmission --- .Rbuildignore | 3 ++- CRAN-SUBMISSION | 3 +++ DESCRIPTION | 19 ++++++++------- R/H2_overall.R | 6 ++--- R/H2_pairwise.R | 4 +-- R/hstats.R | 10 ++++---- R/pd_importance.R | 4 +-- README.md | 17 ++++++------- cran-comments.md | 11 ++++++--- docu/document.log | 51 ++++++++++++++++++++++++--------------- docu/document.synctex.gz | Bin 36180 -> 36064 bytes docu/document.tex | 10 ++++---- man/H2_overall.Rd | 6 ++--- man/H2_pairwise.Rd | 4 +-- man/hstats.Rd | 8 +++--- man/pd_importance.Rd | 4 +-- man/print.hstats.Rd | 2 +- packaging.R | 4 +-- 18 files changed, 92 insertions(+), 74 deletions(-) create mode 100644 CRAN-SUBMISSION diff --git a/.Rbuildignore b/.Rbuildignore index f89509e2..9d5e7202 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -8,4 +8,5 @@ ^\.Rproj\.user$ ^docu$ ^test.R$ -^backlog$ \ No newline at end of file +^backlog$ +^CRAN-SUBMISSION$ diff --git a/CRAN-SUBMISSION b/CRAN-SUBMISSION new file mode 100644 index 00000000..4ba6c37c --- /dev/null +++ b/CRAN-SUBMISSION @@ -0,0 +1,3 @@ +Version: 0.1.0 +Date: 2023-07-16 18:48:26 UTC +SHA: 9638974266fcc5f32a51870bccf0d08bde810551 diff --git a/DESCRIPTION b/DESCRIPTION index f0dd27f0..7d92178e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -3,15 +3,16 @@ Title: Interaction Statistics Version: 0.1.0 Authors@R: person("Michael", "Mayer", , "mayermichael79@gmail.com", role = c("aut", "cre")) -Description: Fast, model-agnostic implementation of Friedman and Popescu's - H statistics of interaction strength . These - statistics quantify interaction strength per feature, feature pair, - and feature triple. The package supports multi-output predictions and - can account for case weights. In addition, several variants of the - original statistics are provided. The shape of the interactions can - be explored through partial dependence plots or individual conditional - expectation plots. 'DALEX' explainers, meta learners ('mlr3', 'tidymodels', - 'caret') and most other models work out-of-the-box. +Description: Fast, model-agnostic implementation of different H-statistics + introduced by Jerome H. Friedman and Bogdan E. Popescu (2008) + . These statistics quantify interaction + strength per feature, feature pair, and feature triple. The package + supports multi-output predictions and can account for case weights. + In addition, several variants of the original statistics are provided. + The shape of the interactions can be explored through partial + dependence plots or individual conditional expectation plots. 'DALEX' + explainers, meta learners ('mlr3', 'tidymodels', 'caret') and most + other models work out-of-the-box. License: GPL (>= 2) Depends: R (>= 3.2.0) diff --git a/R/H2_overall.R b/R/H2_overall.R index 8a32414d..94fefd29 100644 --- a/R/H2_overall.R +++ b/R/H2_overall.R @@ -1,6 +1,6 @@ #' Overall Interaction Strength #' -#' Friedman and Popescu's \eqn{H^2_j} statistics of overall interaction strength per +#' Friedman and Popescu's statistic of overall interaction strength per #' feature, see Details. #' By default, the results are plotted as barplot. Set `plot = FALSE` to get numbers. #' @@ -13,10 +13,10 @@ #' \deqn{ #' F(\mathbf{x}) = F_j(x_j) + F_{\setminus j}(\mathbf{x}_{\setminus j}). #' } -#' Correspondingly, Friedman and Popescu's \eqn{H^2_j} statistic of overall interaction +#' Correspondingly, Friedman and Popescu's statistic of overall interaction #' strength is given by #' \deqn{ -#' H_{j}^2 = \frac{\frac{1}{n} \sum_{i = 1}^n\big[F(\mathbf{x}_i) - +#' H_j^2 = \frac{\frac{1}{n} \sum_{i = 1}^n\big[F(\mathbf{x}_i) - #' \hat F_j(x_{ij}) - \hat F_{\setminus j}(\mathbf{x}_{i\setminus j}) #' \big]^2}{\frac{1}{n} \sum_{i = 1}^n\big[F(\mathbf{x}_i)\big]^2} #' } diff --git a/R/H2_pairwise.R b/R/H2_pairwise.R index 10bd10d7..1ef7368d 100644 --- a/R/H2_pairwise.R +++ b/R/H2_pairwise.R @@ -1,6 +1,6 @@ #' Pairwise Interaction Strength #' -#' Friedman and Popescu's statistics of pairwise interaction strength, see Details. +#' Friedman and Popescu's statistic of pairwise interaction strength, see Details. #' By default, the results are plotted as barplot. Set `plot = FALSE` to get numbers. #' #' @details @@ -11,7 +11,7 @@ #' \deqn{ #' F_{jk}(x_j, x_k) = F_j(x_j)+ F_k(x_k). #' } -#' Correspondingly, Friedman and Popescu's \eqn{H_{jk}^2} statistic of pairwise +#' Correspondingly, Friedman and Popescu's statistic of pairwise #' interaction strength is defined as #' \deqn{ #' H_{jk}^2 = \frac{A_{jk}}{\frac{1}{n} \sum_{i = 1}^n\big[\hat F_{jk}(x_{ij}, x_{ik})\big]^2}, diff --git a/R/hstats.R b/R/hstats.R index d1c5f920..b00f2bdf 100644 --- a/R/hstats.R +++ b/R/hstats.R @@ -2,14 +2,14 @@ #' #' @description #' This is the main function of the package. It does the expensive calculations behind -#' the following interaction statistics: +#' the following H-statistics: #' - Total interaction strength \eqn{H^2}, a statistic measuring the proportion of #' prediction variability unexplained by main effects of `v`, see [h2()] for details. -#' - Friedman and Popescu's \eqn{H^2_j} statistic of overall interaction strength per +#' - Friedman and Popescu's statistic \eqn{H^2_j} of overall interaction strength per #' feature, see [h2_overall()] for details. -#' - Friedman and Popescu's \eqn{H^2_{jk}} statistic of pairwise interaction strength, +#' - Friedman and Popescu's statistic \eqn{H^2_{jk}} of pairwise interaction strength, #' see [h2_pairwise()] for details. -#' - Friedman and Popescu's \eqn{H^2_{jkl}} statistic of three-way interaction strength, +#' - Friedman and Popescu's statistic \eqn{H^2_{jkl}} of three-way interaction strength, #' see [h2_threeway()] for details. #' #' Furthermore, it allows to calculate an experimental partial dependence based @@ -283,7 +283,7 @@ hstats.explainer <- function(object, v = colnames(object[["data"]]), #' Print Method #' -#' Print method for object of class "hstats". Shows \eqn{H^2} statistic. +#' Print method for object of class "hstats". Shows \eqn{H^2}. #' #' @param x An object of class "hstats". #' @param ... Further arguments passed from other methods. diff --git a/R/pd_importance.R b/R/pd_importance.R index c770aafc..e81042bf 100644 --- a/R/pd_importance.R +++ b/R/pd_importance.R @@ -2,8 +2,8 @@ #' #' Experimental variable importance method based on partial dependence functions. #' While related to Greenwell et al., our suggestion measures not only main effect -#' strength but also interaction effects. It is very closely related to the -#' \eqn{H^2_j} statistics, see Details. By default, the results are plotted as barplot. +#' strength but also interaction effects. It is very closely related to \eqn{H^2_j}, +#' see Details. By default, the results are plotted as barplot. #' Set `plot = FALSE` to get numbers. #' #' @details diff --git a/README.md b/README.md index 2e9e75a3..e1fa1302 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,6 @@ [![CRAN status](http://www.r-pkg.org/badges/version/hstats)](https://cran.r-project.org/package=hstats) [![R-CMD-check](https://github.com/mayer79/hstats/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/mayer79/hstats/actions) [![Codecov test coverage](https://codecov.io/gh/mayer79/hstats/branch/main/graph/badge.svg)](https://app.codecov.io/gh/mayer79/hstats?branch=main) -[![Lifecycle: maturing](https://img.shields.io/badge/lifecycle-maturing-blue.svg)](https://www.tidyverse.org/lifecycle/#experimental) [![](https://cranlogs.r-pkg.org/badges/hstats)](https://cran.r-project.org/package=hstats) [![](https://cranlogs.r-pkg.org/badges/grand-total/hstats?color=orange)](https://cran.r-project.org/package=hstats) @@ -16,7 +15,7 @@ **What makes a ML model black-box? It's the interactions!** -The first step in understanding interactions is to measure their strength. This is exactly what Friedman and Popescu's H statistics [1] do: +The first step in understanding interactions is to measure their strength. This is exactly what Friedman and Popescu's H-statistics [1] do: | Statistic | Short description | How to read its value? | |-------------|------------------------------------------|-------------------------------------------------------------------------------------------------------| @@ -32,8 +31,8 @@ The core functions `hstats()`, `partial_dep()`, and `ice()` can directly be appl ## Limitations -1. H statistics are based on partial dependence estimates and are thus as good or bad as these. One of their problems is that the model is applied to unseen/impossible feature combinations. In extreme cases, H statistics intended to be in the range between 0 and 1 can become larger than 1. Accumulated local effects (ALE) [8] mend above problem of partial dependence estimates. They, however, depend on the notion of "closeness", which is highly non-trivial in higher dimension and for discrete features. -2. Due to their computational complexity, H statistics are usually evaluated on relatively small subsets of the training (or validation/test) data. Consequently, the estimates are typically not very robust. To get more robust results, increase the default `n_max = 300` of `hstats()`. +1. H-statistics are based on partial dependence estimates and are thus as good or bad as these. One of their problems is that the model is applied to unseen/impossible feature combinations. In extreme cases, H-statistics intended to be in the range between 0 and 1 can become larger than 1. Accumulated local effects (ALE) [8] mend above problem of partial dependence estimates. They, however, depend on the notion of "closeness", which is highly non-trivial in higher dimension and for discrete features. +2. Due to their computational complexity, H-statistics are usually evaluated on relatively small subsets of the training (or validation/test) data. Consequently, the estimates are typically not very robust. To get more robust results, increase the default `n_max = 300` of `hstats()`. ## Landscape @@ -93,7 +92,7 @@ fit <- xgb.train( ### Interaction statistics -Let's calculate different H statistics via `hstats()`: +Let's calculate different H-statistics via `hstats()`: ```r # 3 seconds on simple laptop - a random forest will take 1-2 minutes @@ -122,7 +121,7 @@ plot(s) # Or summary(s) for numeric output **Remarks** 1. Pairwise statistics $H^2_{jk}$ are calculated only for the features with strong overall interactions $H^2_j$. -2. H statistics need to repeatedly calculate predictions on up to $n^2$ rows. That is why {hstats} samples 300 rows by default. To get more robust results, increase this value at the price of slower run time. +2. H-statistics need to repeatedly calculate predictions on up to $n^2$ rows. That is why {hstats} samples 300 rows by default. To get more robust results, increase this value at the price of slower run time. 3. Pairwise statistics $H^2_{jk}$ measures interaction strength relative to the combined effect of the two features. This does not necessarily show which interactions are strongest in absolute numbers. To do so, we can study unnormalized statistics: ```r @@ -261,7 +260,7 @@ $$ F(\boldsymbol x) = F_j(x_j) + F_{\setminus j}(\boldsymbol x_{\setminus j}). $$ -Correspondingly, Friedman and Popescu's $H^2_j$ statistic of overall interaction strength is given by +Correspondingly, Friedman and Popescu's statistic of overall interaction strength is given by $$ H_{j}^2 = \frac{\frac{1}{n} \sum_{i = 1}^n\big[F(\boldsymbol x_i) - \hat F_j(x_{ij}) - \hat F_{\setminus j}(\boldsymbol x_{i\setminus j})\big]^2}{\frac{1}{n} \sum_{i = 1}^n\big[F(\boldsymbol x_i)\big]^2}. @@ -285,7 +284,7 @@ $$ F_{jk}(x_j, x_k) = F_j(x_j) + F_k(x_k). $$ -Correspondingly, Friedman and Popescu's $H_{jk}^2$ statistic of pairwise interaction strength is defined as +Correspondingly, Friedman and Popescu's statistic of pairwise interaction strength is defined as $$ H_{jk}^2 = \frac{A_{jk}}{\frac{1}{n} \sum_{i = 1}^n\big[\hat F_{jk}(x_{ij}, x_{ik})\big]^2} @@ -371,7 +370,7 @@ In [5], $1 - H^2$ is called *additivity index*. A similar measure using accumula #### Workflow -Calculation of all $H_j^2$ statistics requires $O(n^2 p)$ predictions, while calculating of all pairwise $H_{jk}$ requires $O(n^2 p^2$ predictions. Therefore, we suggest to reduce the workflow in two important ways: +Calculation of all $H_j^2$ requires $O(n^2 p)$ predictions, while calculating of all pairwise $H_{jk}$ requires $O(n^2 p^2$ predictions. Therefore, we suggest to reduce the workflow in two important ways: 1. Evaluate the statistics only on a subset of the data, e.g., on $n' = 300$ observations. 2. Calculate $H_j^2$ for all features. Then, select a small number $m = O(\sqrt{p})$ of features with highest $H^2_j$ and do pairwise calculations only on this subset. diff --git a/cran-comments.md b/cran-comments.md index 6e8e7760..8a885b2f 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,3 +1,10 @@ +# Resubmission + +- Fixing an indirect URL in the README +- Sticking to "authors (year) " reference in DESCRIPTION. + +# Original message + Hello CRAN team Trying to submit a new package that calculates Friedman and Popescu's H statistics in many variants. @@ -10,9 +17,6 @@ Michael ## Local checks seem ok -❯ checking for future file timestamps ... NOTE - unable to verify current time - ❯ checking HTML version of manual ... NOTE Skipping checking HTML validation: no command 'tidy' found @@ -21,7 +25,6 @@ Michael New submission Possibly misspelled words in DESCRIPTION: - Popescu's (6:66) explainers (13:32) ## Winbuilder seems ok diff --git a/docu/document.log b/docu/document.log index 4a3073bc..9c7387d6 100644 --- a/docu/document.log +++ b/docu/document.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.24 (MiKTeX 22.3) (preloaded format=pdflatex 2022.5.15) 16 JUL 2023 20:32 +This is pdfTeX, Version 3.141592653-2.6-1.40.24 (MiKTeX 22.3) (preloaded format=pdflatex 2022.5.15) 17 JUL 2023 21:26 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -49,10 +49,21 @@ LaTeX Font Info: External font `cmex10' loaded for size (Font) <7> on input line 10. LaTeX Font Info: External font `cmex10' loaded for size (Font) <5> on input line 10. - [1 -{C:/Users/Michael/AppData/Local/MiKTeX/2.9/fonts/map/pdftex/pdftex.map}] [2] [3 -] [4] (document.bbl) [5] (document.aux) ) +Overfull \hbox (1.00066pt too wide) in paragraph at lines 28--30 +\OT1/cmr/m/n/10 Correspondingly, Fried-man and Popescu's statis-tic of over-all + in-ter-ac-tion strength + [] + +[1 + +{C:/Users/Michael/AppData/Local/MiKTeX/2.9/fonts/map/pdftex/pdftex.map}] +Overfull \hbox (8.00066pt too wide) in paragraph at lines 48--50 +\OT1/cmr/m/n/10 Correspondingly, Fried-man and Popescu's statis-tic of pair-wis +e in-ter-ac-tion strength + [] + +[2] [3] [4] (document.bbl) [5] (document.aux) ) Here is how much of TeX's memory you used: 459 strings out of 478608 8568 string characters out of 2850693 @@ -60,22 +71,22 @@ Here is how much of TeX's memory you used: 18687 multiletter control sequences out of 15000+600000 472077 words of font info for 37 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 - 34i,6n,38p,423b,184s stack positions out of 10000i,1000n,20000p,200000b,80000s - -Output written on document.pdf (5 pages, 174976 bytes). + 34i,6n,38p,423b,182s stack positions out of 10000i,1000n,20000p,200000b,80000s + + +Output written on document.pdf (5 pages, 174950 bytes). PDF statistics: 88 PDF objects out of 1000 (max. 8388607) 0 named destinations out of 1000 (max. 500000) diff --git a/docu/document.synctex.gz b/docu/document.synctex.gz index dd7c22ba83a0ae417649214f75bdc17b25bd9fb7..1355d5991c115d8694a746d92179c241c99b4f8d 100644 GIT binary patch delta 32768 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 Iq`5Bw03KyH;{X5v delta 32817 zcmXV%Ra6{Z*R2yYc!E2@3GSXI3Bd{O?(QxP9Xz-+E{(gpH7<=ya0%}2E{FH~&rQ{+ zs;k;#RjoarIoDbW+;l2jRTbKYGt`dYl7H%n;6}7Bpa6o+>bSc{^<5ZC-(u);1Duk7 z)LQeZ9t*CYPPeW8dx7uvY#D}=8DlPP-j3!Wtc)+cQOKBZ{L)VUJj z*Xz=WmZ?O))Fxo2v}wD3g&RGdpC|mg+PhfbpPU0kpM0iuiL!`+EW{K;TCy8t6tm(R z&#oaL(Ec%&OWZod%^F1Co7i}PX^p3+AF{~tYAZ>vd zv@DhzYgpZ7Cx(R@V}*Gr@%1t%)|C91PM4&tRl%txb_M~ywxnNlk-a0}fLc<%!DyLu z!Ep0iWJ&+5fY-JFZ5D2z)zgX~-vGbT;YU7BkY0GajtUbXBV0&m9)DW5H7fb6g1Q2k z?q>zNO!=H39PI>mUx^j`xKqZ-@VlEXR-aJB#p%f;7e=(<-|n2uQo3K{QrF6 zWOljYZ;RWGu|%+q%oGac6GEhTOf#iqNNN0p%vRuesN9j$*6-jvU$swl#AZ*YoicI0?dAR!!I}$d(!fb<}<$m^4ET4HW^t`4!JhZ-v3q zaP{stED?TLHwyW#i(C!{|C0Yn0}|hzzC`4>BS!cwOnEETLKRON^4i0la%K-lq01@q zAr~vRiaQuJ`+7mRX%_=75rgkBLhfgL=3dD!bsL*8vZ^Xm=9-Sz`#-xm+M@xE1q9Z?{zekN$P5&HEo`xS3y

U)zK3^xUpM(`K79hW7Hie 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 L7||eOBQOF0{F638 diff --git a/docu/document.tex b/docu/document.tex index 45403d22..952e50a6 100644 --- a/docu/document.tex +++ b/docu/document.tex @@ -26,7 +26,7 @@ \subsection{Overall interaction strength} $$ F(\mathbf{x}) = F_j(x_j) + F_{\setminus j}(\mathbf{x}_{\setminus j}). $$ -Correspondingly, Friedman and Popescu's $H^2_j$ statistic of overall interaction strength is given by +Correspondingly, Friedman and Popescu's statistic of overall interaction strength is given by $$ H_{j}^2 = \frac{\frac{1}{n} \sum_{i = 1}^n\big[F(\mathbf{x}_i) - \hat F_j(x_{ij}) - \hat F_{\setminus j}(\mathbf{x}_{i\setminus j})\big]^2}{\frac{1}{n} \sum_{i = 1}^n\big[F(\mathbf{x}_i)\big]^2}. $$ @@ -46,7 +46,7 @@ \subsection{Pairwise interaction strength} $$ F_{jk}(x_j, x_k) = F_j(x_j)+ F_k(x_k). $$ -Correspondingly, Friedman and Popescu's $H_{jk}^2$ statistic of pairwise interaction strength is defined as +Correspondingly, Friedman and Popescu's statistic of pairwise interaction strength is defined as $$ H_{jk}^2 = \frac{A_{jk}}{\frac{1}{n} \sum_{i = 1}^n\big[\hat F_{jk}(x_{ij}, x_{ik})\big]^2} $$ @@ -106,7 +106,7 @@ \subsection{Total interaction strength of all variables together} In \cite{zolkowski2023}, $1 - H^2$ is called {\em additivity index}. A similar measure using accumulated local effects is discussed in \cite{molnar2020}. \subsection{Workflow} -Calculation of all $H_j^2$ statistics requires $O(n^2p)$ predictions, while calculating of all pairwise $H_{jk}$ requires $O(n^2 p^2)$ predictions. Therefore, we suggest to reduce the workflow in two important ways: +Calculation of all $H_j^2$ requires $O(n^2p)$ predictions, while calculating of all pairwise $H_{jk}$ requires $O(n^2 p^2)$ predictions. Therefore, we suggest to reduce the workflow in two important ways: \begin{itemize} \item Evaluate the statistics only on a subset of the data, e.g., on $n' = 300$ observations. \item Calculate $H_j^2$ for all features. Then, select a small number $m = O(\sqrt{p})$ of features with highest $H^2_j$ and do pairwise calculations only on this subset. @@ -130,9 +130,9 @@ \section{Variable importance} \section{Limitation} \begin{enumerate} -\item H statistics are based on partial dependence estimates and are thus as good or bad as these. One of their problems is that the model is applied to unseen/impossible feature combinations. In extreme cases, H statistics intended to be in the range between 0 and 1 can become larger than 1. +\item H-statistics are based on partial dependence estimates and are thus as good or bad as these. One of their problems is that the model is applied to unseen/impossible feature combinations. In extreme cases, H-statistics intended to be in the range between 0 and 1 can become larger than 1. Accumulated local effects (ALE) \cite{apley2016} mend above problem of partial dependence estimates. They, however, depend on the notion of ``closeness'', which is highly non-trivial in higher dimension and for discrete features. -\item Due to their computational complexity, H statistics are usually evaluated on relatively small subsets of the training (or validation/test) data. Consequently, the estimates are typically not very robust. To get more robust results, increase the sample size. +\item Due to their computational complexity, H-statistics are usually evaluated on relatively small subsets of the training (or validation/test) data. Consequently, the estimates are typically not very robust. To get more robust results, increase the sample size. \end{enumerate} \bibliographystyle{ieeetr} diff --git a/man/H2_overall.Rd b/man/H2_overall.Rd index b8901160..118a1ceb 100644 --- a/man/H2_overall.Rd +++ b/man/H2_overall.Rd @@ -48,7 +48,7 @@ A matrix of statistics (one row per variable, one column per prediction dimensio or a "ggplot" object (if \code{plot = TRUE}). } \description{ -Friedman and Popescu's \eqn{H^2_j} statistics of overall interaction strength per +Friedman and Popescu's statistic of overall interaction strength per feature, see Details. By default, the results are plotted as barplot. Set \code{plot = FALSE} to get numbers. } @@ -61,10 +61,10 @@ dependence \eqn{F_j} on \eqn{x_j} and the (centered) partial dependence \deqn{ F(\mathbf{x}) = F_j(x_j) + F_{\setminus j}(\mathbf{x}_{\setminus j}). } -Correspondingly, Friedman and Popescu's \eqn{H^2_j} statistic of overall interaction +Correspondingly, Friedman and Popescu's statistic of overall interaction strength is given by \deqn{ - H_{j}^2 = \frac{\frac{1}{n} \sum_{i = 1}^n\big[F(\mathbf{x}_i) - + H_j^2 = \frac{\frac{1}{n} \sum_{i = 1}^n\big[F(\mathbf{x}_i) - \hat F_j(x_{ij}) - \hat F_{\setminus j}(\mathbf{x}_{i\setminus j}) \big]^2}{\frac{1}{n} \sum_{i = 1}^n\big[F(\mathbf{x}_i)\big]^2} } diff --git a/man/H2_pairwise.Rd b/man/H2_pairwise.Rd index 29181011..afecdcfa 100644 --- a/man/H2_pairwise.Rd +++ b/man/H2_pairwise.Rd @@ -49,7 +49,7 @@ or a "ggplot" object (if \code{plot = TRUE}). If no pairwise statistics have been calculated, the function returns \code{NULL}. } \description{ -Friedman and Popescu's statistics of pairwise interaction strength, see Details. +Friedman and Popescu's statistic of pairwise interaction strength, see Details. By default, the results are plotted as barplot. Set \code{plot = FALSE} to get numbers. } \details{ @@ -60,7 +60,7 @@ dependencies \eqn{F_j} and \eqn{F_k}, i.e., \deqn{ F_{jk}(x_j, x_k) = F_j(x_j)+ F_k(x_k). } -Correspondingly, Friedman and Popescu's \eqn{H_{jk}^2} statistic of pairwise +Correspondingly, Friedman and Popescu's statistic of pairwise interaction strength is defined as \deqn{ H_{jk}^2 = \frac{A_{jk}}{\frac{1}{n} \sum_{i = 1}^n\big[\hat F_{jk}(x_{ij}, x_{ik})\big]^2}, diff --git a/man/hstats.Rd b/man/hstats.Rd index 74160465..3ed1da63 100644 --- a/man/hstats.Rd +++ b/man/hstats.Rd @@ -126,15 +126,15 @@ partial dependence functions \eqn{F_{jkl}}. } \description{ This is the main function of the package. It does the expensive calculations behind -the following interaction statistics: +the following H-statistics: \itemize{ \item Total interaction strength \eqn{H^2}, a statistic measuring the proportion of prediction variability unexplained by main effects of \code{v}, see \code{\link[=h2]{h2()}} for details. -\item Friedman and Popescu's \eqn{H^2_j} statistic of overall interaction strength per +\item Friedman and Popescu's statistic \eqn{H^2_j} of overall interaction strength per feature, see \code{\link[=h2_overall]{h2_overall()}} for details. -\item Friedman and Popescu's \eqn{H^2_{jk}} statistic of pairwise interaction strength, +\item Friedman and Popescu's statistic \eqn{H^2_{jk}} of pairwise interaction strength, see \code{\link[=h2_pairwise]{h2_pairwise()}} for details. -\item Friedman and Popescu's \eqn{H^2_{jkl}} statistic of three-way interaction strength, +\item Friedman and Popescu's statistic \eqn{H^2_{jkl}} of three-way interaction strength, see \code{\link[=h2_threeway]{h2_threeway()}} for details. } diff --git a/man/pd_importance.Rd b/man/pd_importance.Rd index 59006ea3..47613648 100644 --- a/man/pd_importance.Rd +++ b/man/pd_importance.Rd @@ -50,8 +50,8 @@ or a "ggplot" object (if \code{plot = TRUE}). \description{ Experimental variable importance method based on partial dependence functions. While related to Greenwell et al., our suggestion measures not only main effect -strength but also interaction effects. It is very closely related to the -\eqn{H^2_j} statistics, see Details. By default, the results are plotted as barplot. +strength but also interaction effects. It is very closely related to \eqn{H^2_j}, +see Details. By default, the results are plotted as barplot. Set \code{plot = FALSE} to get numbers. } \details{ diff --git a/man/print.hstats.Rd b/man/print.hstats.Rd index 40f42ec1..0020ed45 100644 --- a/man/print.hstats.Rd +++ b/man/print.hstats.Rd @@ -15,7 +15,7 @@ Invisibly, the input is returned. } \description{ -Print method for object of class "hstats". Shows \eqn{H^2} statistic. +Print method for object of class "hstats". Shows \eqn{H^2}. } \seealso{ See \code{\link[=hstats]{hstats()}} for examples. diff --git a/packaging.R b/packaging.R index 84524fee..3929b07f 100644 --- a/packaging.R +++ b/packaging.R @@ -16,8 +16,8 @@ use_description( fields = list( Title = "Interaction Statistics", Version = "0.1.0", - Description = "Fast, model-agnostic implementation of Friedman and Popescu's - H statistics of interaction strength . + Description = "Fast, model-agnostic implementation of different H-statistics + introduced by Jerome H. Friedman and Bogdan E. Popescu (2008) . These statistics quantify interaction strength per feature, feature pair, and feature triple. The package supports multi-output predictions and can account for case weights.