### CIHI K-prototype Clustering ###
### 3d jitter plots ###
### DRS, CPS, ADL ###
rm(list=ls())
gc()
## used (Mb) gc trigger (Mb) limit (Mb) max used (Mb)
## Ncells 519936 27.8 1150890 61.5 NA 669282 35.8
## Vcells 956394 7.3 8388608 64.0 24576 1840016 14.1
library(readxl)
library(tidyr)
library(rgl)
library(car)
## Loading required package: carData
library(plotly)
## Loading required package: ggplot2
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
setwd("~/Documents/0. Cancer and Dementia Research/0. Dementia/0. CIHI")
# load data with counts
clustering_results <- read_excel("Clustering summary (Depression Scale).xlsx")
clustering_results$kproto_cluster <- factor(clustering_results$kproto_gower_cluster, labels = c("1", "2", "3", "4", "5"))
### plot_ly ###
clustering_results_names <- clustering_results %>%
mutate(drs_recoded = factor(drs_recoded, levels = c(0, 1, 2, 3), labels = c("none", "mild", "moderate", "severe"), ordered = TRUE),
cps_recoded = factor(cps_recoded, levels = c(0, 1, 2, 3), labels = c("none", "mild", "moderate", "severe"), ordered = TRUE),
adl_recoded = factor(adl_recoded, levels = c(0, 1, 2, 3), labels = c("none", "mild", "moderate", "severe"), ordered = TRUE))
order_list <- list(categoryorder = "array",
categoryarray = c("none", "mild", "moderate", "severe"))
fig <- plot_ly(clustering_results_names,
x = ~drs_recoded, y = ~cps_recoded, z = ~adl_recoded,
color = ~kproto_cluster, colors = c("red", "yellow", "green", "blue", "purple"),
size = ~count, sizes= c(50, 1500),
text = ~paste('DRS:', drs_recoded, '<br>CPS:', cps_recoded, '<br>ADL:', adl_recoded, '<br>Count:', count, '<br>K-Prototype Cluster:', kproto_cluster))
fig <- fig %>% layout(title = 'K-Prototype clustering assignments for each outcome',
scene = list(xaxis = list(title = 'DRS recoded',
gridcolor = 'rgb(255, 255, 255)',
range = c(0,3),
zerolinewidth = 1,
ticklen = 5,
gridwidth = 2,
autotypenumbers = "strict",
categoryorder = "array",
categoryarray = c("none", "mild", "moderate", "severe")),
yaxis = list(title = 'CPS recoded',
gridcolor = 'rgb(255, 255, 255)',
range = c(0,3),
zerolinewidth = 1,
ticklen = 5,
gridwith = 2,
autotypenumbers = "strict",
categoryorder = "array",
categoryarray = c("none", "mild", "moderate", "severe")),
zaxis = list(title = 'ADL recoded',
gridcolor = 'rgb(255, 255, 255)',
range = c(0,3),
zerolinewidth = 1,
ticklen = 5,
gridwith = 2,
autotypenumbers = "strict",
categoryorder = "array",
categoryarray = c("none", "mild", "moderate", "severe"))),
paper_bgcolor = 'rgb(243, 243, 243)',
plot_bgcolor = 'rgb(243, 243, 243)')
fig
## No trace type specified:
## Based on info supplied, a 'scatter3d' trace seems appropriate.
## Read more about this trace type -> https://plotly.com/r/reference/#scatter3d
## No scatter3d mode specifed:
## Setting the mode to markers
## Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
## Warning: `line.width` does not currently support multiple values.
## Warning: `line.width` does not currently support multiple values.
## Warning: `line.width` does not currently support multiple values.
## Warning: `line.width` does not currently support multiple values.
## Warning: `line.width` does not currently support multiple values.