intapiuser
Community Team Member
Options
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
on
03-02-2023
09:31 AM
- edited on
02-16-2024
12:00 PM
by
DRay
FOR CLOUD DATA TEAMS

Confidence intervals are a favorite among many professionals with a statistics background. We can use the R integration in Sisense for Cloud Data Teams to show the Confidence interval as a shaded region around a line of means from period to period, as shown in the image above.
How to Interpret a confidence interval: if we computed the X% confidence interval for multiple samples, X% of the samples will contain the true population mean. The most common confidence interval used is 95%. However other confidence intervals such as 90% and 99% also are utilized in certain applications. Here's a helpful resource if you want to learn more about Confidence Intervals and the mathematics behind it.
Looking for a single confidence interval printout instead? Check out our post here!
In this example, the SQL output is a data frame that contains data about the amount of money spent per user per month on a fictional gaming app. The 3 columns of this dataset are:
- User_id
- My_month
- Val (the total amount of money spent)
Below is the R snippet used to generate the final data frame that forms the basis of the above visualization. Note, this calculates the confidence interval using the Z test statistic (so ensure your sample is normally distributed) and uses unpaired means (we assume that each sample comprises of different individuals)
# SQL output is imported as a dataframe variable called "df"
# Use Sisense for Cloud Data Teams to visualize a dataframe or show text by passing data to periscope.table() or periscope.text() respectively. Show an image by calling periscope.image() after your plot.
library(dplyr)
CIrange <- function(df, alpha = 0.95){
z = qnorm((1 - alpha)/2)
df <- df %>%
group_by(my_month) %>%
summarise_all(funs(mean, sd, n()))
df$CIwidth = 2*z * df$val_sd / sqrt(df$val_n)
df$lower_bound <- df$val_mean - z * df$val_sd / sqrt(df$val_n)
return(df)
}
periscope.table(CIrange(df))
Notice how the default value for the CIrange function is 95%, but other CI ranges can easily be set by fixing this parameter to another value.
In the visualization settings, we set my_month as the x axis. Val_mean, CIwidth, and lower_bound are all Y values.

Next, we scroll down to set the series type for CIwidth and lower_bound as Area. We shade the lower_bound series white to give the illusion of a nice CI range that frames the mean average line. Stylistically, I like setting the CIwidth to be a lighter shade of the mean average line color.

Labels:
Rate this article: