UK-based online statistics and data analysis support for USA, UK, and international clients. No exams, no impersonation, no fabricated data.
Post Hoc Tests

Gabriels Test: Formula, Interpretation, SPSS, Python, R and Excel Guide

ANOVA Post Hoc Test, Unequal Group Sizes, Gabriel Pairwise Comparisons Gabriels Test: Formula, Interpretation, SPSS, Python, R and Excel Guide Gabriels Test, more formally written as...

Statistics guide Ethical learning support SPSS/R/Python/Excel friendly
Gabriels Test: Formula, Interpretation, SPSS, Python, R and Excel Guide

ANOVA Post Hoc Test, Unequal Group Sizes, Gabriel Pairwise Comparisons

Gabriels Test: Formula, Interpretation, SPSS, Python, R and Excel Guide

Gabriels Test, more formally written as Gabriel’s post hoc test, is a multiple comparison method used after one-way ANOVA to compare group means pair by pair. It is commonly used when equal variances are assumed and group sizes are unequal but not extremely different. This guide explains Gabriels Test with SPSS output, Python charts, R validation, Excel workflow, formulas, pairwise p-values, confidence intervals, APA reporting and downloadable resources.

Advertisement
Google AdSense top placement reserved here

Quick Answer: Gabriels Test Result

The worked example compares G3 final grade across four studytime groups. The sample contains 649 students. The omnibus one-way ANOVA was statistically significant, F(3, 645) = 15.876, p < .001, so post hoc pairwise comparisons were justified. Gabriels Test was then used to identify which studytime groups differed from each other.

The group means increased from the lowest studytime group to the higher studytime groups. Group 1 had the lowest mean G3 score, M = 10.84. Group 2 had M = 12.09. Group 4 had M = 13.06. Group 3 had the highest mean, M = 13.23. Gabriels Test found 4 significant pairwise comparisons out of 6 total comparisons.

Dependent variableG3
Factorstudytime
Sample size649
Groups4

ANOVA F15.876
ANOVA p-value< .001
Pairwise tests6
Significant pairs4

Final interpretation: Gabriels Test shows that studytime group 1 differs significantly from groups 2, 3 and 4. Group 2 also differs significantly from group 3. The comparisons 2 vs 4 and 3 vs 4 are not statistically significant. In plain language, students in the lowest studytime category had lower final grades than students in the higher studytime categories, while the highest studytime groups were not clearly different from each other.

Important reporting point: SPSS notes that when group sizes are unequal, Gabriel’s method uses the harmonic mean sample size and Type I error levels are not guaranteed. Therefore, Gabriels Test is useful for unequal but reasonably balanced groups, but it should not be treated as the safest option when group sizes are extremely different.

Table of Contents

  1. What Is Gabriels Test?
  2. When to Use Gabriels Test
  3. Gabriels Test Formula and Decision Logic
  4. Null and Alternative Hypotheses
  5. Dataset and Variables Used
  6. SPSS Output Interpretation
  7. Python Chart-by-Chart Interpretation
  8. R Chart-by-Chart Validation
  9. SPSS, R, Python and Excel Workflows
  10. Code Blocks for Gabriels Test
  11. APA Reporting Wording
  12. Common Mistakes
  13. Downloads and Resources
  14. Related Guides
  15. FAQs

What Is Gabriels Test?

Gabriels Test is a post hoc multiple comparison method used after ANOVA. It compares each pair of group means while accounting for the fact that several pairwise tests are being conducted. In SPSS, Gabriel’s test appears under post hoc options for one-way ANOVA and is often selected when groups are unequal in size but not extremely unequal.

The purpose of Gabriels Test is to answer the question that the omnibus ANOVA cannot answer by itself. ANOVA tells whether at least one group mean differs from another group mean. It does not say exactly which groups differ. Gabriel’s post hoc test fills that gap by comparing every pair of group means and marking the statistically significant differences.

Gabriels Test is related to the Studentized maximum modulus logic used in multiple comparison procedures. It is more specialized than simple pairwise t tests because it adjusts the pairwise decision for the post hoc comparison setting. It is also different from Tukey HSD, Bonferroni and Games-Howell because each method uses a different adjustment and is preferred under different data conditions.

Simple definition: Gabriels Test is an ANOVA post hoc test that compares all pairs of group means and is especially useful when equal variances are assumed and group sizes are unequal but not severely unbalanced.

Before using Gabriels Test, review one-way ANOVA, ANOVA assumptions, Levene test, p-values, confidence intervals, and effect size.

When to Use Gabriels Test

Use Gabriels Test when you have one categorical factor with three or more groups, a continuous dependent variable, a significant one-way ANOVA, and unequal group sizes that are not extremely different. In this example, studytime has four groups and G3 final grade is the continuous outcome.

Use Gabriels Test WhenWhy It MattersExample in This Guide
The omnibus ANOVA is significantPost hoc testing is justified after evidence that group means differ overall.ANOVA p < .001.
You need pairwise group comparisonsANOVA does not identify which specific groups differ.Four studytime groups create six pairwise comparisons.
Group sizes are unequal but not extremeGabriel’s test is designed for unequal sample sizes under equal variance assumptions.Group sizes are 212, 305, 97 and 35.
Equal variances are acceptableGabriel’s test relies on the pooled ANOVA error logic.Levene test based on mean was not significant, p = .400.

When not to use it: If group sizes are extremely unequal or variances are clearly unequal, consider a more suitable method such as Games-Howell. If the goal is very conservative familywise protection, Bonferroni or Tukey-based methods may be preferred depending on assumptions and design.

Gabriels Test Formula and Decision Logic

Gabriels Test compares two group means using the within-group error from ANOVA and a multiple-comparison critical value. The basic pairwise mean difference is:

Mean Difference = Mi − Mj

The standard comparison logic uses the ANOVA mean square error and a pairwise standard error. In an unequal sample-size design, the standard error depends on the two group sizes being compared:

SEij = √[MSE × (1/ni + 1/nj)]

Gabriel’s method then compares the absolute mean difference with a Gabriel-style critical difference based on the multiple-comparison critical value:

Critical Difference = qGabriel × SEGabriel

The confidence interval decision is direct. If the simultaneous confidence interval for the pairwise mean difference excludes zero, the pair is significant. If the interval includes zero, the pair is not significant.

SymbolMeaningInterpretation
Mi, MjTwo group meansThe two studytime group means being compared.
MSEANOVA mean square errorThe pooled within-group error estimate.
ni, njGroup sample sizesThe number of students in each compared group.
SEijPairwise standard errorThe uncertainty around the pairwise mean difference.
qGabrielGabriel multiple-comparison critical valueThe adjusted cutoff for the post hoc comparison setting.

Decision rule: A pair is significant when the adjusted p-value is below .05 or when the Gabriel simultaneous confidence interval excludes zero.

Null and Alternative Hypotheses for Gabriels Test

Gabriels Test is interpreted pair by pair. Each comparison has its own null and alternative hypothesis. The null says the two population means are equal. The alternative says the two population means are different.

Pairwise TestHypothesisMeaning
Null hypothesisH0: μi = μjThe two studytime groups have equal mean G3 scores.
Alternative hypothesisH1: μi ≠ μjThe two studytime groups have different mean G3 scores.
Decision ruleAdjusted p < .05 or CI excludes 0The pair is significant by Gabriels Test.

Decision for this example: The significant comparisons are 1 vs 2, 1 vs 3, 1 vs 4, and 2 vs 3. The non-significant comparisons are 2 vs 4 and 3 vs 4.

Dataset and Variables Used

The worked example uses a student performance dataset. The dependent variable is G3 final grade. The factor is studytime, coded into four weekly study-time categories. The analysis asks whether average final grade differs across studytime groups and which pairs of studytime groups are significantly different after the ANOVA.

VariableRoleHow It Is Used in Gabriels Test
G3Dependent variableThe final grade score being compared across studytime groups.
studytimeGrouping factorThe four-level factor used in one-way ANOVA and Gabriel post hoc comparisons.
Group 1< 2 hoursLowest studytime group and lowest mean G3 score.
Group 22 to 5 hoursMiddle studytime group with a higher mean than group 1.
Group 35 to 10 hoursHighest mean G3 score in this example.
Group 4> 10 hoursHigh mean G3 score but not significantly different from groups 2 or 3.

Before interpreting Gabriels Test, review the group means, distributions, variance assumption and ANOVA table. Helpful related guides include descriptive statistics, box plot interpretation, Levene test, and ANOVA in SPSS.

Advertisement
Google AdSense middle placement reserved here

SPSS Output Interpretation for Gabriels Test

The SPSS output provides the main official post hoc table for Gabriels Test. It begins with group descriptives, checks homogeneity of variances, reports the one-way ANOVA, and then lists Gabriel multiple comparisons and homogeneous subsets.

SPSS Group Descriptives

Studytime GroupNMean G3Std. DeviationVarianceMinimumMaximumInterpretation
121210.843.21910.360018Lowest average final grade.
230512.093.24310.518019Higher than group 1.
39713.232.5026.261818Highest average final grade.
43513.063.0389.232619Similar to group 3 but with a smaller sample size.
Total64911.913.23110.437019Overall final grade mean.

SPSS Homogeneity of Variances

TestStatisticdf1df2p-valueInterpretation
Levene test based on mean0.9853645.400Not significant; the equal-variance assumption is acceptable for this example.
Levene test based on median1.0263645.380Also not significant; supports the same variance conclusion.
Levene test based on trimmed mean1.0813645.356Still not significant; no strong variance violation is indicated.

SPSS One-Way ANOVA Table

SourceSum of SquaresdfMean SquareFSig.Interpretation
Between Groups465.0783155.02615.876< .001At least one studytime group mean differs.
Within Groups6298.1896459.765Pooled error term used in post hoc comparisons.
Total6763.267648Total variation in G3.

SPSS Gabriel Multiple Comparisons

ComparisonMean DifferenceStd. ErrorSPSS Sig.95% CIGabriel DecisionPlain Interpretation
1 vs 2-1.247.279< .001[-1.98, -0.51]SignificantGroup 1 scored significantly lower than group 2.
1 vs 3-2.382.383< .001[-3.37, -1.39]SignificantGroup 1 scored significantly lower than group 3.
1 vs 4-2.213.570< .001[-3.60, -0.83]SignificantGroup 1 scored significantly lower than group 4.
2 vs 3-1.135.364.008[-2.06, -0.21]SignificantGroup 2 scored significantly lower than group 3.
2 vs 4-0.965.558.283[-2.28, 0.35]Not significantGroups 2 and 4 do not differ clearly at α = .05.
3 vs 40.170.6161.000[-1.41, 1.75]Not significantGroups 3 and 4 are statistically similar in this analysis.

SPSS Homogeneous Subsets

The SPSS homogeneous subsets table places group 1 in the lower subset and places groups 2, 4 and 3 in the higher subset pattern. Group 2 appears in both subset logic because it is between the lowest and highest groups. This supports the Gabriel pairwise table: group 1 is the main low-performing group, while groups 3 and 4 are not clearly separated.

SPSS interpretation summary: The one-way ANOVA is significant, the equal-variance assumption is acceptable, and Gabriel post hoc comparisons show four significant differences. The strongest contrast is between studytime group 1 and group 3. The comparison between groups 3 and 4 is clearly not significant.

Python Chart-by-Chart Interpretation

The Python charts show the full Gabriels Test workflow visually. They start with the group distributions, then show group means, Gabriel adjusted p-values, simultaneous confidence intervals and the number of significant differences connected with each group.

Python Chart 1: Group Distribution Boxplots

Gabriels Test group distribution boxplots for G3 by studytime
Python chart showing G3 distributions across studytime groups before Gabriel post hoc pairwise comparisons.

The boxplot shows that the lower studytime groups include more low G3 scores, while groups 3 and 4 are centered higher. Group 1 has the lowest center and visible low outliers, which explains why several post hoc differences involve group 1.

The chart is not the final post hoc decision by itself, but it gives important context. Gabriels Test compares means, while the boxplot shows both center and spread. The visual pattern supports the ANOVA result and prepares the reader for the pairwise table.

Python Chart 2: Group Means with 95% Confidence Intervals

Gabriels Test group means with 95 percent confidence intervals
Python chart showing studytime group means for G3 with 95% confidence intervals.

The group means chart shows the main pattern clearly. Group 1 has the lowest mean, group 2 is higher, and groups 4 and 3 are the highest. The mean labels are approximately 10.84, 12.09, 13.06 and 13.23.

The confidence intervals help explain the post hoc results. Group 1 is separated from the higher groups, while groups 3 and 4 are very close. That is why the Gabriel comparison between groups 3 and 4 is not significant.

Python Chart 3: Gabriel Pairwise Adjusted p-values

Gabriels Test pairwise adjusted p-values with alpha reference line
Python chart showing Gabriel-style adjusted p-values for all pairwise comparisons.

The p-value chart shows which comparisons fall below the α = .05 reference line. The significant comparisons are 1 vs 3, 1 vs 2, 1 vs 4, and 2 vs 3. These pairs have adjusted p-values below .05.

The non-significant comparisons are 2 vs 4 and 3 vs 4. The 3 vs 4 p-value is approximately 1.000, which shows that these two groups have almost no meaningful mean separation in this analysis.

Python Chart 4: Gabriel Mean Difference Confidence Intervals

Gabriels Test mean difference confidence intervals
Python chart showing Gabriel simultaneous confidence intervals for pairwise mean differences.

The mean difference chart uses zero as the no-difference line. Confidence intervals that do not cross zero are significant by Gabriels Test. The intervals for 1 vs 3, 1 vs 4, 1 vs 2, and 2 vs 3 exclude zero, so those comparisons are significant.

The intervals for 2 vs 4 and 3 vs 4 cross zero. That means those mean differences are not statistically clear after the Gabriel post hoc adjustment. This chart is one of the best visual explanations of the pairwise decision.

Python Chart 5: Significant Difference Count by Group

Gabriels Test significant difference count by group
Python chart showing each group mean and the number of significant pairwise differences linked to that group.

The significant difference count chart shows which groups drive the post hoc result. Group 1 is involved in three significant differences because it differs from groups 2, 3 and 4. Group 2 is involved in two significant differences because it differs from group 1 and group 3.

Group 4 is involved in fewer significant differences because it is significantly different from group 1 only. Group 3 is high in mean G3, but it is not significantly different from group 4. This chart turns the pairwise table into a practical group-level summary.

R Chart-by-Chart Validation

The R validation charts confirm the same substantive result. The same group mean pattern appears, the same significant comparisons are identified, and the same non-significant comparisons remain non-significant.

R Chart 1: Group Means with 95% Confidence Intervals

R Gabriels Test group means with confidence intervals
R chart showing colorful group means for G3 across studytime groups.

The R group means chart validates the Python and SPSS descriptive pattern. Group 1 has the lowest mean, group 2 is higher, and groups 4 and 3 are the highest. The same ordering appears across all software outputs.

This agreement is important because it confirms that the post hoc pattern is not a software artifact. The observed mean structure is stable across SPSS, Python and R.

R Chart 2: Gabriel Pairwise Adjusted p-values

R Gabriels Test pairwise adjusted p-values
R chart showing significant and non-significant Gabriel pairwise p-values.

The R p-value chart confirms the same significant pairs. Comparisons involving group 1 are mostly significant, and the comparison between groups 2 and 3 is also significant. The comparisons 2 vs 4 and 3 vs 4 are not significant.

This chart is useful for reporting because it separates the significant and non-significant pairs visually. Readers can quickly see that the higher studytime groups are not all different from one another.

R Chart 3: Gabriel Mean Difference Confidence Intervals

R Gabriels Test mean difference confidence intervals
R chart showing Gabriel simultaneous confidence intervals for mean differences.

The R confidence interval chart validates the same interpretation as the Python chart. Intervals excluding zero indicate significant differences, while intervals crossing zero indicate non-significant differences.

The strongest negative differences involve group 1 compared with higher studytime groups. The smallest difference is between groups 3 and 4, and its interval crosses zero. This supports the conclusion that groups 3 and 4 are statistically similar in this example.

R Chart 4: Significant Difference Count by Group

R Gabriels Test significant pair count by group
R validation chart showing group means and significant pair counts.

The R significant difference count chart confirms that group 1 is the main driver of the post hoc result. Group 1 differs from three other groups, which makes it the most clearly separated category in the analysis.

The higher groups show fewer significant differences among themselves. This supports a balanced interpretation: low studytime is associated with lower G3 performance, but the highest studytime categories are not clearly different from each other.

Advertisement
Google AdSense in-content placement reserved here

SPSS, R, Python and Excel Workflows for Gabriels Test

The same Gabriels Test workflow can be reproduced in SPSS, R, Python and Excel. SPSS gives the official menu-based Gabriel post hoc table. Python and R are useful for reproducible analysis and custom charts. Excel is useful for understanding the underlying pairwise mean-difference logic.

SPSS Workflow

StepSPSS ActionPurpose
Open dataFile > Open > DataLoad the cleaned dataset containing G3 and studytime.
Run one-way ANOVAAnalyze > Compare Means > One-Way ANOVASet G3 as dependent variable and studytime as factor.
Check assumptionsOptions > Descriptive and Homogeneity of variance testReview group means and Levene test.
Select post hocPost Hoc > GabrielRequest Gabriel multiple comparisons.
Interpret outputRead ANOVA, Multiple Comparisons and Homogeneous SubsetsIdentify significant pairs and subset patterns.

R Workflow

StepR ActionPurpose
Read dataread.csv()Import the dataset.
Fit ANOVAaov(G3 ~ factor(studytime))Estimate the one-way ANOVA model.
Run post hoc comparisonUse a Gabriel-capable package or manual Gabriel-style comparison logicCompare group means with simultaneous confidence intervals.
Plot resultsggplot2 or base R chartsVisualize group means, p-values and mean differences.

Python Workflow

StepPython ActionPurpose
Read datapandas.read_csv()Load G3 and studytime variables.
Fit ANOVAstatsmodels.formula.api.ols()Estimate one-way ANOVA.
Extract MSEUse ANOVA residual mean squareGet the within-group error estimate.
Calculate comparisonsUse pairwise mean differences and Gabriel-style adjusted decision logicCompute p-values, confidence intervals and decisions.

Excel Workflow

Excel can reproduce the core comparison logic by using the ANOVA mean square error, group means and group sample sizes. Excel does not have a built-in Gabriel post hoc menu like SPSS, so Excel is best used as a transparent manual calculation sheet.

Excel ItemFormula IdeaPurpose
Group mean=AVERAGEIF(group_range, group_id, value_range)Calculate each studytime group mean.
Group n=COUNTIF(group_range, group_id)Count observations in each group.
Mean difference=mean_i - mean_jFind pairwise difference.
Standard error=SQRT(MSE*(1/n_i+1/n_j))Calculate pairwise standard error.
Confidence interval=mean_difference ± critical_value*standard_errorCheck whether the interval excludes zero.

Code Blocks for Gabriels Test

SPSS Syntax

ONEWAY G3 BY studytime
  /STATISTICS DESCRIPTIVES HOMOGENEITY
  /POSTHOC = GABRIEL ALPHA(0.05).

R Code

data <- read.csv("dataset.csv")

data$studytime <- factor(data$studytime)

model <- aov(G3 ~ studytime, data = data)
summary(model)

group_summary <- aggregate(G3 ~ studytime, data = data, function(x) {
c(n = length(x), mean = mean(x), sd = sd(x))
})

print(group_summary)

# For official Gabriel output, compare with SPSS.

# R can also be used to reproduce group means, ANOVA MSE,

# pairwise mean differences and simultaneous confidence interval charts.

Python Code

import pandas as pd
import itertools
import statsmodels.api as sm
import statsmodels.formula.api as smf

df = pd.read_csv("dataset.csv")
df["studytime"] = df["studytime"].astype("category")

model = smf.ols("G3 ~ C(studytime)", data=df).fit()
anova = sm.stats.anova_lm(model, typ=2)

mse = anova.loc["Residual", "sum_sq"] / anova.loc["Residual", "df"]
df_error = anova.loc["Residual", "df"]

summary = df.groupby("studytime")["G3"].agg(["count", "mean", "std"])

rows = []
for g1, g2 in itertools.combinations(summary.index, 2):
n1 = summary.loc[g1, "count"]
n2 = summary.loc[g2, "count"]
m1 = summary.loc[g1, "mean"]
m2 = summary.loc[g2, "mean"]
diff = m1 - m2
se = (mse * (1/n1 + 1/n2)) ** 0.5
rows.append([g1, g2, n1, n2, m1, m2, diff, se])

gabriel_table = pd.DataFrame(rows, columns=[
"group_1", "group_2", "n_1", "n_2",
"mean_1", "mean_2", "mean_difference", "standard_error"
])

print(anova)
print(summary)
print(gabriel_table)

Excel Formula Pattern

Group mean:
=AVERAGEIF(group_range, group_id, value_range)

Group sample size:
=COUNTIF(group_range, group_id)

Pairwise mean difference:
=Mean_Group_i - Mean_Group_j

Pairwise standard error:
=SQRT(MSE*(1/n_i + 1/n_j))

Confidence interval:
Lower = Mean_Difference - Critical_Value*Standard_Error
Upper = Mean_Difference + Critical_Value*Standard_Error

Decision:
If the confidence interval excludes 0, the pair is significant.
If the confidence interval includes 0, the pair is not significant.

APA Reporting Wording for Gabriels Test

A one-way ANOVA was conducted to compare G3 final grade across four studytime groups. The ANOVA was statistically significant, F(3, 645) = 15.876, p < .001, indicating that mean final grade differed across studytime groups. Levene's test based on the mean was not significant, p = .400, supporting the homogeneity of variance assumption.

Gabriel post hoc comparisons indicated that group 1 had significantly lower G3 scores than group 2, group 3 and group 4. Group 2 also had significantly lower G3 scores than group 3. The comparisons between group 2 and group 4 and between group 3 and group 4 were not statistically significant. These results suggest that the lowest studytime group had lower final grades than the higher studytime groups, while the highest studytime categories did not differ clearly from each other.

Short APA version: A one-way ANOVA showed a significant effect of studytime on G3, F(3, 645) = 15.876, p < .001. Gabriel post hoc tests showed significant differences for 1 vs 2, 1 vs 3, 1 vs 4 and 2 vs 3, but not for 2 vs 4 or 3 vs 4.

Common Mistakes in Gabriels Test

MistakeWhy It Is a ProblemBetter Practice
Running post hoc tests without checking ANOVAThe post hoc table should be interpreted after the omnibus ANOVA context.Report the ANOVA first, then the Gabriel comparisons.
Ignoring variance assumptionsGabriel's method assumes equal variances.Check Levene test and group distributions.
Using Gabriel for extremely unequal groupsSPSS warns that Type I error levels are not guaranteed with unequal groups.Use Gabriel when groups are unequal but not extremely different; consider alternatives when imbalance is severe.
Reporting only p-valuesReaders cannot see direction or size of differences.Report means, mean differences and confidence intervals.
Confusing Gabriel with REGW methodsRyan-Einot-Gabriel-Welsch methods are not the same as Gabriel's post hoc test.Use the exact method name shown in the software output.

Most important warning: Do not say all higher studytime groups differ from each other. In this example, groups 3 and 4 are not significantly different, and groups 2 and 4 are also not significantly different.

Downloads and Resources

Use the following downloadable outputs to verify the Gabriels Test result and compare the SPSS, Python and R workflows.

FAQs About Gabriels Test

What is Gabriels Test?

Gabriels Test is an ANOVA post hoc multiple comparison method used to compare group means pair by pair after a significant one-way ANOVA.

When should I use Gabriels Test?

Use Gabriels Test when the omnibus ANOVA is significant, equal variances are assumed, and group sizes are unequal but not extremely different.

What were the significant pairs in this example?

The significant pairs were 1 vs 2, 1 vs 3, 1 vs 4 and 2 vs 3. The pairs 2 vs 4 and 3 vs 4 were not significant.

Is Gabriels Test the same as Tukey HSD?

No. Both are post hoc tests, but they use different adjustment logic. Tukey HSD is commonly used for equal group sizes, while Gabriel's test is often used for unequal but not extremely unequal group sizes.

Does Gabriels Test require equal variances?

Yes, Gabriel's post hoc test is used under the equal-variance ANOVA framework. If variances are unequal, a method such as Games-Howell may be more appropriate.

How do I interpret a Gabriel confidence interval?

If the Gabriel simultaneous confidence interval excludes zero, the pair is significant. If the interval includes zero, the pair is not significant.

Can Gabriels Test be done in Excel?

Excel can reproduce the core pairwise mean-difference logic using group means, sample sizes and ANOVA MSE, but SPSS is easier for official Gabriel post hoc output.

What is the main limitation of Gabriels Test?

The main limitation is that it is not ideal for extremely unequal group sizes. SPSS notes that Type I error levels are not guaranteed when group sizes are unequal.

Need help applying this to your own data?

Salar Cafe can help interpret output, clean datasets, review assumptions, build dashboards and explain statistical results ethically.

Need help interpreting your data analysis results?

Contact Salar Cafe
Engr. Muhammad Yar Saqib author profile photo

Engr. Muhammad Yar Saqib

WhatsApp Get Data Analysis Help