Create biplots showing variable contributions to group separation using PCA, PLS-DA, or LDA. Displays patients as points and variables as vectors, with vector length indicating contribution strength. Inspired by Orange Data Mining's contribution analysis, adapted for clinical research with comprehensive variable importance metrics.
Usage
variablebiplot(
  data,
  groupVar = NULL,
  features = NULL,
  method = "pca",
  showLoadings = FALSE,
  loadingScale = 1.5,
  topContributors = 10,
  pc1 = 1,
  pc2 = 2,
  showContribTable = FALSE,
  showVarianceExplained = FALSE,
  contributionMetric = "squared",
  showSeparation = FALSE,
  separationMetric = "silhouette",
  showConfidenceEllipse = FALSE,
  pointSize = 3,
  labelPoints = "none",
  centerScale = FALSE,
  minVariance = 70,
  biplotType = "covariance",
  showSummary = FALSE,
  showReport = FALSE,
  showInterpretation = FALSE,
  showRCode = FALSE
)Arguments
- data
- . 
- groupVar
- . 
- features
- . 
- method
- . 
- showLoadings
- . 
- loadingScale
- . 
- topContributors
- . 
- pc1
- . 
- pc2
- . 
- showContribTable
- . 
- showVarianceExplained
- . 
- contributionMetric
- . 
- showSeparation
- . 
- separationMetric
- . 
- showConfidenceEllipse
- . 
- pointSize
- . 
- labelPoints
- . 
- centerScale
- . 
- minVariance
- . 
- biplotType
- . 
- showSummary
- Display a plain-language summary paragraph with key findings and clinical interpretation. Useful for understanding results and creating reports. 
- showReport
- Generate a copy-ready paragraph with all statistics filled in, suitable for pasting into manuscripts or clinical reports. 
- showInterpretation
- Display guidance on how to read and interpret the biplot, including what arrows, points, and distances represent. 
- showRCode
- Generate copy-ready R code using upstream packages (stats, mixOmics, MASS) instead of jamovi wrappers. Useful for reproducing analysis in R scripts, learning the underlying implementation, and sharing code with non-jamovi users. 
Value
A results object containing:
| results$about | a html | ||||
| results$todo | a html | ||||
| results$assumptions | a html | ||||
| results$summary | a html | ||||
| results$interpretation | a html | ||||
| results$report | a html | ||||
| results$componentVariance | a table | ||||
| results$contributionTable | a table | ||||
| results$separationAnalysis | a table | ||||
| results$biplot | an image | ||||
| results$contributionInterpretation | a html | ||||
| results$rCode | a html | 
Tables can be converted to data frames with asDF or as.data.frame. For example:
results$componentVariance$asDF
as.data.frame(results$componentVariance)
Examples
# Example: PCA biplot for tumor staging
variablebiplot(
    data = clinical_data,
    groupVar = "stage",
    features = c("age", "ki67", "grade", "size"),
    method = "pca",
    showLoadings = TRUE,
    topContributors = 10
)