Model Menu for Radiant: Business Analytics using R and Shiny

The Radiant Model menu includes interfaces for linear and logistic regression, naive Bayes, neural networks, classification and regression trees, model evaluation, collaborative filtering, decision analysis, and simulation. The application extends the functionality in radiant.data.


CRAN_Status_Badge

Radiant is an open-source platform-independent browser-based interface for business analytics in R. The application is based on the Shiny package and can be run locally or on a server. Radiant was developed by Vincent Nijs. Please use the issue tracker on GitHub to suggest enhancements or report problems: https://github.com/radiant-rstats/radiant.model/issues. For other questions and comments please use [email protected].

Key features

  • Explore: Quickly and easily summarize, visualize, and analyze your data
  • Cross-platform: It runs in a browser on Windows, Mac, and Linux
  • Reproducible: Recreate results and share work with others as a state file or an Rmarkdown report
  • Programming: Integrate Radiant's analysis functions with your own R-code
  • Context: Data and examples focus on business applications

Explore

Radiant is interactive. Results update immediately when inputs are changed (i.e., no separate dialog boxes) and/or when a button is pressed (e.g., Estimate in Model > Estimate > Logistic regression (GLM)). This facilitates rapid exploration and understanding of the data.

Cross-platform

Radiant works on Windows, Mac, or Linux. It can run without an Internet connection and no data will leave your computer. You can also run the app as a web application on a server.

Reproducible

To conduct high-quality analysis, simply saving output is not enough. You need the ability to reproduce results for the same data and/or when new data become available. Moreover, others may want to review your analysis and results. Save and load the state of the application to continue your work at a later time or on another computer. Share state files with others and create reproducible reports using Rmarkdown. See also the section on Saving and loading state below

If you are using Radiant on a server you can even share the URL (include the SSUID) with others so they can see what you are working on. Thanks for this feature go to Joe Cheng.

Programming

Although Radiant's web-interface can handle quite a few data and analysis tasks, you may prefer to write your own R-code. Radiant provides a bridge to programming in R(studio) by exporting the functions used for analysis (i.e., you can conduct your analysis using the Radiant web-interface or by calling Radiant's functions directly from R-code). For more information about programming with Radiant see the programming page on the documentation site.

Context

Radiant focuses on business data and decisions. It offers tools, examples, and documentation relevant for that context, effectively reducing the business analytics learning curve.

How to install Radiant

  • Required: R version 3.4.0 or later
  • Required: Rstudio version 1.1.453 or later

In Rstudio you can start and update Radiant through the Addins menu at the top of the screen. To install the latest version of Radiant for Windows or Mac, with complete documentation for off-line access, open R(studio) and copy-and-paste the command below:

install.packages("radiant", repos = "https://radiant-rstats.github.io/minicran/")

Once all packages are installed, select Start radiant from the Addins menu in Rstudio or use the command below to launch the app:

radiant::radiant()

To launch Radiant in Rstudio's viewer pane use the command below:

radiant::radiant_viewer()

To launch Radiant in an Rstudio Window use the command below:

radiant::radiant_window()

To easily update Radiant and the required packages, install the radiant.update package using:

install.packages("radiant.update", repos = "https://radiant-rstats.github.io/minicran/")

Then select Update radiant from the Addins menu in Rstudio or use the command below:

radiant.update::radiant.update()

See the installing radiant page additional for details.

Optional: You can also create a launcher on your Desktop to start Radiant by typing radiant::launcher() in the R(studio) console and pressing return. A file called radiant.bat (windows) or radiant.command (mac) will be created that you can double-click to start Radiant in your default browser. The launcher command will also create a file called update_radiant.bat (windows) or update_radiant.command (mac) that you can double-click to update Radiant to the latest release.

When Radiant starts you will see data on diamond prices. To close the application click the icon in the navigation bar and then click Stop. The Radiant process will stop and the browser window will close (Chrome) or gray-out.

Documentation

Documentation and tutorials are available at https://radiant-rstats.github.io/docs/ and in the Radiant web interface (the icons on each page and the icon in the navigation bar).

Individual Radiant packages also each have their own pkgdown sites:

Want some help getting started? Watch the tutorials on the documentation site.

Reporting issues

Please use the GitHub issue tracker at github.com/radiant-rstats/radiant/issues if you have any problems using Radiant.

Try Radiant online

Not ready to install Radiant on your computer? Try it online at the link below:

https://vnijs.shinyapps.io/radiant

Do not upload sensitive data to this public server. The size of data upload has been restricted to 10MB for security reasons.

Running Radiant on shinyapps.io

To run your own instance of Radiant on shinyapps.io first install Radiant and its dependencies. Then clone the radiant repo and ensure you have the latest version of the Radiant packages installed by running radiant/inst/app/for.shinyapps.io.R. Finally, open radiant/inst/app/ui.R and deploy the application.

Running Radiant on shiny-server

You can also host Radiant using shiny-server. First, install radiant on the server using the command below:

install.packages("radiant", repos = "https://radiant-rstats.github.io/minicran/")

Then clone the radiant repo and point shiny-server to the inst/app/ directory. As a courtesy, please let me know if you intend to use Radiant on a server.

When running Radiant on a server, by default, file uploads are limited to 10MB and R-code in Report > Rmd and Report > R will not be evaluated for security reasons. If you have sudo access to the server and have appropriate security in place you can change these settings by adding the following lines to .Rprofile for the shiny user on the server.

options(radiant.maxRequestSize = -1)  ## no file size limit 
options(radiant.report = TRUE)

Running Radiant in the cloud (e.g., AWS)

To run radiant in the cloud you can use the customized Docker container. See https://github.com/radiant-rstats/docker for details

Saving and loading state

To save your analyses save the state of the app to a file by clicking on the icon in the navbar and then on Save radiant state file (see also the Data > Manage tab). You can open this state file at a later time or on another computer to continue where you left off. You can also share the file with others that may want to replicate your analyses. As an example, load the state file radiant-example.state.rda by clicking on the icon in the navbar and then on Load radiant state file. Go to Data > View and Data > Visualize to see some of the settings from the previous "state" of the app. There is also a report in Report > Rmd that was created using the Radiant interface. The html file radiant-example.nb.html contains the output.

A related feature in Radiant is that state is maintained if you accidentally navigate to another web page, close (and reopen) the browser, and/or hit refresh. Use Refresh in the menu in the navigation bar to return to a clean/new state.

Loading and saving state also works with Rstudio. If you start Radiant from Rstudio and use > Stop to stop the app, lists called r_data, r_info, and r_state will be put into Rstudio's global workspace. If you start radiant again using radiant::radiant() it will use these lists to restore state. Also, if you load a state file directly into Rstudio it will be used when you start Radiant to recreate a previous state.

Technical note: Loading state works as follows in Radiant: When an input is initialized in a Shiny app you set a default value in the call to, for example, numericInput. In Radiant, when a state file has been loaded and an input is initialized it looks to see if there is a value for an input of that name in a list called r_state. If there is, this value is used. The r_state list is created when saving state using reactiveValuesToList(input). An example of a call to numericInput is given below where the state_init function from radiant.R is used to check if a value from r_state can be used.

numericInput("sm_comp_value", "Comparison value:", state_init("sm_comp_value", 0))

Source code

The source code for the radiant application is available on GitHub at https://github.com/radiant-rstats. radiant.data, offers tools to load, save, view, visualize, summarize, combine, and transform data. radiant.design builds on radiant.data and adds tools for experimental design, sampling, and sample size calculation. radiant.basics covers the basics of statistical analysis (e.g., comparing means and proportions, cross-tabs, correlation, etc.) and includes a probability calculator. radiant.model covers model estimation (e.g., logistic regression and neural networks), model evaluation (e.g., gains chart, profit curve, confusion matrix, etc.), and decision tools (e.g., decision analysis and simulation). Finally, radiant.multivariate includes tools to generate brand maps and conduct cluster, factor, and conjoint analysis.

These tools are used in the Business Analytics, Quantitative Analysis, Research for Marketing Decisions, Consumer Behavior, Experiments in Firms, Pricing, and Customer Analytics classes at the Rady School of Management (UCSD).

Credits

Radiant would not be possible without R and Shiny. I would like to thank Joe Cheng, Winston Chang, and Yihui Xie for answering questions, providing suggestions, and creating amazing tools for the R community. Other key components used in Radiant are ggplot2, dplyr, tidyr, magrittr, broom, shinyAce, rmarkdown, and DT. For an overview of other packages that Radiant relies on please see the about page.

License

Radiant is licensed under the AGPLv3. As a summary, the AGPLv3 license requires, attribution, including copyright and license information in copies of the software, stating changes if the code is modified, and disclosure of all source code. Details are in the COPYING file.

The documentation, images, and videos for the radiant.data package are licensed under the creative commons attribution and share-alike license CC-BY-SA. All other documentation and videos on this site, as well as the help files for radiant.design, radiant.basics, radiant.model, and radiant.multivariate, are licensed under the creative commons attribution, non-commercial, share-alike license CC-NC-SA.

If you are interested in using any of the radiant packages please email me at [email protected]

© Vincent Nijs (2018) Creative Commons License

News

radiant.model 0.9.7.0

Major changes

  • Using shinyFiles to provide convenient access to data located on a server

Minor changes

  • Fix for simulations that use a data set as part of the analysis
  • Replace non-ASCII characters in example datasets
  • Remove rstudioapi as a direct import
  • Revert from svg to png for plots in _Report > Rmd_ and _Report > R_.svg` scatter plots with many point get to big for practical use on servers that have to transfer images to a local browser
  • Removed dependency on methods package

radiant.model 0.9.5.0

Major changes

  • Various changes to the code to accomodate the use of shiny::makeReactiveBinding. The advantage is that the code generated for Report > Rmd and Report > R will no longer have to use r_data to store and access data. This means that code generated and used in the Radiant browser interface will be directly usable without the browser interface as well.
  • Improved documentation and examples

radiant.model 0.9.2.3

Bug fixes

radiant.model 0.9.2.2

Major changes

  • Show the interval used in prediction for Model > Regression and Model > logistic (e.g., "prediction" or "confidence" for linear regression)
  • Auto complete in Model > Decision analysis now provides hints based on the current tree input and any others defined in the app. It also provides suggestions for the basic element of the tree (e.g., type: decision, type: chance, payoff, etc.)
  • Updated user messages for Model > Decision analysis when input has errors

radiant.model 0.9.2.1

Major changes

  • Default interval for predictions from a linear regression is now "confidence" rather than "prediction"
  • Estimate model button indicates when the output has been invalidated and the model should be re-estimated
  • Combined Evaluate classification Summary and Plot into Evaluate tab
  • Upload and download data using the Rstudio file browser. Allows using relative paths to files (e.g., data or images inside an Rstudio project)

Minor changes

  • Require shinyAce 0.3.0 in radiant.data and useSoftTabs for Model > Decision Analysis

radiant.model 0.9.1.0

Major changes

  • Add Poisson as an option for Model > Simulate

Bug fixes

  • Fix for #43 where scatter plot was not shown for a dataset with less than 1,000 rows
  • Fixed example for logistic regression prediction plot
  • Fix for case weights when minimum response value is 0

radiant.model 0.9.0.15

Minor changes

  • Allow character variables in estimation and prediction
  • Depend on DiagrammeR 1.0.0

radiant.model 0.9.0.13

Major changes

  • Residual diagnostic plot for Neural Network regression
  • Improved handling of case weights for logistic regression and neural networks

Minor changes

  • Show number of observations used in training and validation in Model > Evaluate classification
  • Use Elkan's formula to adjust probabilities when using priors in crtree (rpart)
  • Added options to customize tree generated using crtree (based on rpart)
  • Better control of tree plot size in plot.crtree
  • Cleanup of crtree code
  • Improved printing of NN weights
  • Option to change font size in NN plots
  • Keyboard shortcut: Press return when cursor is in textInput to store residuals or predictions

Bug fixes

  • Fix for tree labels when (negative) integers are used

radiant.model 0.9.0.8

Minor changes

  • Cleanup of lists returned by evalbin and confusion
  • Add intercept in coefficient tables that can be downloaded for linear and logistic regression or using write.coeff
  • Convert logicals to factors in crtree to avoid labels < 0.5 and >= 0.5
  • Improved labeling of decision tree splits in crtree. The tooltip (aka hover-over) will contain all levels used, but the tree label may be truncated as needed

Bug fixes

  • Fix input reset when screen size or zoom level is changed

radiant.model 0.9.0.4

  • Renamed ann to nn. The ann function is now deprecated

radiant.model 0.9.0.3

Major changes

  • Prediction confidence interval provided for logistic regression based on blog post by Gavin Simpson
  • Argument added to logistic to specify if profiling or the Wald method should be used for confidence intervals. Profiling will be used by default for datasets with fewer than 5,000 rows

radiant.model 0.9.0.2

Minor changes

  • Left align tooltip in DiagrammeR plots (i.e., Model >Decision Analysis and Model > Classification and regression trees)
  • Add information about levels in tree splits to tooltips (Model > Classification and regression trees)

Bug fixes

  • Fix to ensure DiagrammeR plots are shown in Rmarkdown report generate in Report > Rmd or Report > R

radiant.model 0.9.0.1

Major changes

  • Added option to generate normally distributed correlated data in Model > Simulate
  • Added option to generate normally distributed simulated data with exact mean and standard deviation in Model > Simulate
  • Long lines of code generated for Report > Rmd will be wrapped to enhance readability

Minor changes

  • Default names when saving Decision Analysis input and output are now based on tree name
  • Allow browser zoom for tree plots in Model > Decision Analysis and Model > Classification and Regression Trees
  • Enhanced keyboard shortcuts for estimation and reporting
  • Applied styler to code

Bug fixes

  • Grid search specs ignored when Model > Simulate > Repeat is set to Simulate
  • The number of repetitions in Model > Simulate was NA when grid search was used
  • Fix for large weights that may cause an integer overflow
  • Minor fix for coefficient plot in plot.logistic
  • Fixed state setting for decision analysis sensitivity input
  • Fixed for special characters (e.g., curly quote) in input for Model > Decision Analysis
  • Check that costs are not assigned to terminal nodes in Decision Analysis Trees. Specifying a cost is only useful if it applies to multiple nodes in a branch. If the cost only applies to a terminal node adjust the payoff instead
  • Ensure : are followed by a space in the YAML input to Model > Decision Analysis

radiant.model 0.8.7.4

Minor change

  • Upgraded dplyr dependency to 0.7.1
  • Upgraded tidyr dependency to 0.7

Bug fix

  • Fix in crs when a tibble is passed

radiant.model 0.8.3.0

Major change

  • Added option to use robust standard errors in Linear regression and Logistic regression. The HC1 covariance matrix is used to produce results consistent with Stata

Minor changes

  • Moved coefficient formatting from summary.regress and summary.logistic to make result$coeff more easily accessible
  • Added F-score to Model > Evaluate classification > Confusion

Bug fixes

  • Fixed RSME typo
  • Don't calculate VIFs when stepwise regression selects only one explanatory variable

radiant.model 0.8.0.0

Major changes

  • Added Model > Naive Bayes based on e1071
  • Added Model > Classification and regression trees based on rpart
  • Added Model > Collaborative Filtering and example dataset (data/cf.rda)
  • Various enhancements to evaluate (binary) classification models
  • Added Garson plot and moved all plots to the ANN > Plot tab

Minor changes

  • Improved plot sizing for Model > Decision Analysis
  • Show progress indicators if variable acquisition takes some time
  • Expanded coefficient csv file for linear and logistic regression
  • Show dataset name in output if dataframe passed directly to analysis function
  • As an alternative to using the Estimate button to run a model you can now also use CTRL-enter (CMD-enter on mac)
  • Use ALT-enter as a keyboard short-cut to generate code and sent to Report > Rmd or Report > R
  • Improved documentation on how to customize plots in Report > Rmd or Report > R

Bug fixes

  • Multiple tooltips in sequence in Decision Analysis
  • Decision Analysis plot size in PDF was too small
  • Replace histogram by distribution in regression plots
  • Fix bug in regex for overlapping labels in variables section of Model > Decision Analysis
  • Fixes for model with only an intercept (e.g., after stepwise regression)
  • Update Predict settings when dataset is changed
  • Fix for predict when using center or standardize with a command to generate the predictions
  • Show full confusion matrix even if some elements are missing
  • Fix for warnings when creating profit and gains charts
  • Product dropdown for Model > Collaborative filtering did not list all variables

Deprecated

  • Use of *_each is deprecated

Reference manual

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