{"example":"Line Chart: Bacterial Growth Curve","labtools_version":"0.14.3","generated":"2026-09-23","calls":[{"label":"stats.anova","method":"stats.anova","params":{"design":"two_way","factor_a_name":"Medium","factor_b_name":"Time"},"result":{"alpha":0.05,"assumptions":{"note":"Residuals are assumed normal with equal variance across cells, and observations independent. Check the per-cell SDs in `cells`: a spread of more than about 2x between the largest and smallest is a problem."},"cells":[[{"factor_a":"A1","factor_b":"B1","mean":0.06253333333333333,"n":3,"sd":0.003156474826976026,"sem":0.0018223915910448862},{"factor_a":"A1","factor_b":"B2","mean":0.0953,"n":3,"sd":0.0037242448899072085,"sem":0.002150193789716015},{"factor_a":"A1","factor_b":"B3","mean":0.14456666666666665,"n":3,"sd":0.003952636251077677,"sem":0.00228205560356837},{"factor_a":"A1","factor_b":"B4","mean":0.23576666666666668,"n":3,"sd":0.00792106895143158,"sem":0.004573231291378609},{"factor_a":"A1","factor_b":"B5","mean":0.33326666666666666,"n":3,"sd":0.00659115569026658,"sem":0.0038054055120461438},{"factor_a":"A1","factor_b":"B6","mean":0.5193333333333333,"n":3,"sd":0.01118942953565254,"sem":0.006460220154487344},{"factor_a":"A1","factor_b":"B7","mean":0.7124666666666668,"n":3,"sd":0.04373606444724233,"sem":0.02525102858191018},{"factor_a":"A1","factor_b":"B8","mean":0.9373666666666667,"n":3,"sd":0.025722428604883586,"sem":0.01485085107924047},{"factor_a":"A1","factor_b":"B9","mean":1.1284,"n":3,"sd":0.019194009482127475,"sem":0.011081666541334528},{"factor_a":"A1","factor_b":"B10","mean":1.3175666666666668,"n":3,"sd":0.02007643726693893,"sem":0.011591136460435825},{"factor_a":"A1","factor_b":"B11","mean":1.4349666666666667,"n":3,"sd":0.043330858903711286,"sem":0.025017083052275405},{"factor_a":"A1","factor_b":"B12","mean":1.4416666666666667,"n":3,"sd":0.07336602301701604,"sem":0.0423578931382465},{"factor_a":"A1","factor_b":"B13","mean":1.5589333333333333,"n":3,"sd":0.013826182890925931,"sem":0.007982550413941084},{"factor_a":"A1","factor_b":"B14","mean":1.5930333333333333,"n":3,"sd":0.05273844265176334,"sem":0.03044855406163721},{"factor_a":"A1","factor_b":"B15","mean":1.5875000000000001,"n":3,"sd":0.1359887127669058,"sem":0.07851311992272376},{"factor_a":"A1","factor_b":"B16","mean":1.5803,"n":3,"sd":0.026445982681685305,"sem":0.015268595220255194},{"factor_a":"A1","factor_b":"B17","mean":1.6445333333333334,"n":3,"sd":0.050250207296421524,"sem":0.029011970709423466},{"factor_a":"A1","factor_b":"B18","mean":1.5333333333333332,"n":3,"sd":0.05216362078434857,"sem":0.030116680501749208},{"factor_a":"A1","factor_b":"B19","mean":1.6255666666666666,"n":3,"sd":0.1071598961054617,"sem":0.061868794862820646},{"factor_a":"A1","factor_b":"B20","mean":1.5973666666666666,"n":3,"sd":0.07543005590169832,"sem":0.04354956307983405},{"factor_a":"A1","factor_b":"B21","mean":1.5787333333333333,"n":3,"sd":0.04126382596576969,"sem":0.023823681029131002},{"factor_a":"A1","factor_b":"B22","mean":1.6502666666666668,"n":3,"sd":0.09378749028166453,"sem":0.05414823276073843},{"factor_a":"A1","factor_b":"B23","mean":1.6131666666666666,"n":3,"sd":0.08636355326949754,"sem":0.049862020728317},{"factor_a":"A1","factor_b":"B24","mean":1.6119,"n":3,"sd":0.02803158932347573,"sem":0.016184045641721753},{"factor_a":"A1","factor_b":"B25","mean":1.6080666666666668,"n":3,"sd":0.05915820596783959,"sem":0.03415500614030752}],[{"factor_a":"A2","factor_b":"B1","mean":0.07543333333333334,"n":3,"sd":0.0012055427546683413,"sem":0.0006960204339273698},{"factor_a":"A2","factor_b":"B2","mean":0.12273333333333332,"n":3,"sd":0.004366157731156004,"sem":0.0025208023414072843},{"factor_a":"A2","factor_b":"B3","mean":0.206,"n":3,"sd":0.0054808758424178886,"sem":0.003164385143014885},{"factor_a":"A2","factor_b":"B4","mean":0.3402,"n":3,"sd":0.014994332262558417,"sem":0.008656981768106793},{"factor_a":"A2","factor_b":"B5","mean":0.5246999999999999,"n":3,"sd":0.006050619802962322,"sem":0.003493326972004377},{"factor_a":"A2","factor_b":"B6","mean":0.851,"n":3,"sd":0.048148831761528746,"sem":0.027798740978684625},{"factor_a":"A2","factor_b":"B7","mean":1.1572333333333333,"n":3,"sd":0.02844052273312385,"sem":0.016420143455862728},{"factor_a":"A2","factor_b":"B8","mean":1.6290666666666667,"n":3,"sd":0.020455154199695902,"sem":0.011809788783509734},{"factor_a":"A2","factor_b":"B9","mean":1.8553666666666668,"n":3,"sd":0.05218930286307093,"sem":0.03013150805681291},{"factor_a":"A2","factor_b":"B10","mean":2.0962666666666667,"n":3,"sd":0.08485790083034898,"sem":0.048992731887268555},{"factor_a":"A2","factor_b":"B11","mean":2.2847333333333335,"n":3,"sd":0.06467722422409102,"sem":0.03734141281621674},{"factor_a":"A2","factor_b":"B12","mean":2.4019666666666666,"n":3,"sd":0.09260595733176856,"sem":0.05346607439405958},{"factor_a":"A2","factor_b":"B13","mean":2.3857999999999997,"n":3,"sd":0.008022468448052673,"sem":0.00463177431804849},{"factor_a":"A2","factor_b":"B14","mean":2.3653333333333335,"n":3,"sd":0.15958271627382883,"sem":0.09213512419870676},{"factor_a":"A2","factor_b":"B15","mean":2.4568999999999996,"n":3,"sd":0.10412065116968873,"sem":0.06011408598101892},{"factor_a":"A2","factor_b":"B16","mean":2.4309333333333334,"n":3,"sd":0.14590028558345364,"sem":0.08423556915645024},{"factor_a":"A2","factor_b":"B17","mean":2.4959000000000002,"n":3,"sd":0.06743915776461011,"sem":0.03893601588931929},{"factor_a":"A2","factor_b":"B18","mean":2.4343666666666666,"n":3,"sd":0.02053687739977363,"sem":0.011856971695073647},{"factor_a":"A2","factor_b":"B19","mean":2.4033333333333333,"n":3,"sd":0.13802743688605312,"sem":0.07969017784171685},{"factor_a":"A2","factor_b":"B20","mean":2.429533333333333,"n":3,"sd":0.06879682647719548,"sem":0.039719866286000785},{"factor_a":"A2","factor_b":"B21","mean":2.4522333333333335,"n":3,"sd":0.03728972155076172,"sem":0.02152923077533847},{"factor_a":"A2","factor_b":"B22","mean":2.4352666666666667,"n":3,"sd":0.16826028448012728,"sem":0.0971451205385245},{"factor_a":"A2","factor_b":"B23","mean":2.4988666666666663,"n":3,"sd":0.1132495621772258,"sem":0.06538466520862858},{"factor_a":"A2","factor_b":"B24","mean":2.4601,"n":3,"sd":0.11993427366687129,"sem":0.06924408518663039},{"factor_a":"A2","factor_b":"B25","mean":2.3888000000000003,"n":3,"sd":0.1045419054733554,"sem":0.06035729726663815}],[{"factor_a":"A3","factor_b":"B1","mean":0.05073333333333333,"n":3,"sd":0.0038591881702416827,"sem":0.002228103328942455},{"factor_a":"A3","factor_b":"B2","mean":0.06146666666666666,"n":3,"sd":0.0032532035493238547,"sem":0.0018782379449307737},{"factor_a":"A3","factor_b":"B3","mean":0.07356666666666666,"n":3,"sd":0.0030270998221620157,"sem":0.0017476968971891081},{"factor_a":"A3","factor_b":"B4","mean":0.09836666666666667,"n":3,"sd":0.00425245027405769,"sem":0.0024551533104427052},{"factor_a":"A3","factor_b":"B5","mean":0.12196666666666667,"n":3,"sd":0.008698467297940094,"sem":0.00502206243600287},{"factor_a":"A3","factor_b":"B6","mean":0.15716666666666665,"n":3,"sd":0.0012897028081435406,"sem":0.0007446102634562895},{"factor_a":"A3","factor_b":"B7","mean":0.19853333333333334,"n":3,"sd":0.003082747692130087,"sem":0.0017798252098950034},{"factor_a":"A3","factor_b":"B8","mean":0.23476666666666665,"n":3,"sd":0.01004506512339931,"sem":0.0057995210530219134},{"factor_a":"A3","factor_b":"B9","mean":0.3009,"n":3,"sd":0.00802059848141022,"sem":0.004630694692304094},{"factor_a":"A3","factor_b":"B10","mean":0.38186666666666663,"n":3,"sd":0.023410538937267848,"sem":0.013516080957305809},{"factor_a":"A3","factor_b":"B11","mean":0.44580000000000003,"n":3,"sd":0.008126499861564026,"sem":0.004691836882643447},{"factor_a":"A3","factor_b":"B12","mean":0.5036999999999999,"n":3,"sd":0.006564297372910514,"sem":0.003789898855290639},{"factor_a":"A3","factor_b":"B13","mean":0.5566333333333334,"n":3,"sd":0.025771560552929895,"sem":0.014879217422670817},{"factor_a":"A3","factor_b":"B14","mean":0.6419333333333332,"n":3,"sd":0.044892575481178754,"sem":0.02591874053867415},{"factor_a":"A3","factor_b":"B15","mean":0.7152666666666666,"n":3,"sd":0.015402705390071363,"sem":0.008892756103206202},{"factor_a":"A3","factor_b":"B16","mean":0.7497000000000001,"n":3,"sd":0.03524812051727012,"sem":0.02035051186907428},{"factor_a":"A3","factor_b":"B17","mean":0.8382999999999999,"n":3,"sd":0.026682016415555992,"sem":0.015404869360043266},{"factor_a":"A3","factor_b":"B18","mean":0.8411333333333334,"n":3,"sd":0.011842860014934451,"sem":0.006837478417597461},{"factor_a":"A3","factor_b":"B19","mean":0.8739333333333335,"n":3,"sd":0.023917427397889896,"sem":0.013808733146495063},{"factor_a":"A3","factor_b":"B20","mean":0.8827000000000002,"n":3,"sd":0.03850662280699257,"sem":0.022231809043200542},{"factor_a":"A3","factor_b":"B21","mean":0.8892333333333333,"n":3,"sd":0.06291234643003975,"sem":0.036322460146734445},{"factor_a":"A3","factor_b":"B22","mean":0.8789000000000001,"n":3,"sd":0.0183,"sem":0.010565509926170152},{"factor_a":"A3","factor_b":"B23","mean":0.9090666666666666,"n":3,"sd":0.018238786509341413,"sem":0.01053016830086038},{"factor_a":"A3","factor_b":"B24","mean":0.9105333333333334,"n":3,"sd":0.04016022078292568,"sem":0.023186514279736944},{"factor_a":"A3","factor_b":"B25","mean":0.9061,"n":3,"sd":0.029245683442176578,"sem":0.01688500320797523}]],"design":"two_way","factor_a":{"df":2,"f":8399.301843854188,"ms":30.642991118711098,"name":"Medium","p_value":1.0514777388929259e-154,"partial_eta_squared":0.9911497134062563,"significant":true,"ss":61.285982237422196},"factor_a_levels":["A1","A2","A3"],"factor_b":{"df":24,"f":876.4663011560573,"ms":3.197593035881481,"name":"Time","p_value":1.2866263910752475e-148,"partial_eta_squared":0.9929195824390977,"significant":true,"ss":76.74223286115554},"factor_b_levels":["B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","B11","B12","B13","B14","B15","B16","B17","B18","B19","B20","B21","B22","B23","B24","B25"],"grand_mean":1.1673364444444443,"groups":[],"interaction":{"df":48,"f":80.08671786634179,"ms":0.29217863935925914,"name":"Medium × Time","p_value":7.762132502760104e-86,"partial_eta_squared":0.9624451930553879,"significant":true,"ss":14.024574689244439},"n_total":225,"notes":["The interaction is significant, so the main effects are not interpretable on their own — the effect of one factor depends on the level of the other. Report simple effects at each level instead."],"post_hoc":"Follow a significant main effect with pairwise stats.ttest comparisons across that factor's levels, corrected via stats.adjust. If the interaction is significant, test simple effects within each level instead.","residual":{"df":150,"ms":0.0036482783555555555,"ss":0.5472417533333334},"source":{"kind":"arrays"}},"error":null},{"label":"stats.describe","method":"stats.describe","params":{},"result":{"columns":[{"excess_kurtosis":null,"iqr":0.05559999999999987,"max":1.652,"mean":1.6080666666666668,"median":1.6314,"min":1.5408,"n":3,"n_missing":0,"name":"LB","q1":1.5861,"q3":1.6417,"range":0.11119999999999997,"sd":0.05915820596783959,"sem":0.03415500614030752,"skewness":-1.4987816817561173,"sum":4.8242,"variance":0.003499693333333332},{"excess_kurtosis":null,"iqr":0.02905000000000002,"max":0.9332,"mean":0.9061,"median":0.91,"min":0.8751,"n":3,"n_missing":0,"name":"M9 minimal","q1":0.89255,"q3":0.9216,"range":0.05810000000000004,"sd":0.029245683442176578,"sem":0.01688500320797523,"skewness":-0.589417167395893,"sum":2.7183,"variance":0.0008553100000000013},{"excess_kurtosis":null,"iqr":0.10115000000000007,"max":2.5052,"mean":2.3888000000000003,"median":2.3583,"min":2.3029,"n":3,"n_missing":0,"name":"TB","q1":2.3306,"q3":2.43175,"range":0.2022999999999997,"sd":0.1045419054733554,"sem":0.06035729726663815,"skewness":1.2011223888199027,"sum":7.1664,"variance":0.010929009999999975}],"n_columns":3,"notes":["Group 'LB' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'M9 minimal' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'TB' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality."],"source":{"kind":"arrays"}},"error":null},{"label":"stats.levene","method":"stats.levene","params":{"method":"levene"},"result":{"alpha":0.05,"df1":2.0,"df2":6.0,"equal_variance_rejected":false,"group_variances":[0.003499693333333332,0.0008553100000000013,0.010929009999999975],"groups":[{"excess_kurtosis":null,"iqr":0.05559999999999987,"max":1.652,"mean":1.6080666666666668,"median":1.6314,"min":1.5408,"n":3,"n_missing":0,"name":"LB","q1":1.5861,"q3":1.6417,"range":0.11119999999999997,"sd":0.05915820596783959,"sem":0.03415500614030752,"skewness":-1.4987816817561173,"sum":4.8242,"variance":0.003499693333333332},{"excess_kurtosis":null,"iqr":0.02905000000000002,"max":0.9332,"mean":0.9061,"median":0.91,"min":0.8751,"n":3,"n_missing":0,"name":"M9 minimal","q1":0.89255,"q3":0.9216,"range":0.05810000000000004,"sd":0.029245683442176578,"sem":0.01688500320797523,"skewness":-0.589417167395893,"sum":2.7183,"variance":0.0008553100000000013},{"excess_kurtosis":null,"iqr":0.10115000000000007,"max":2.5052,"mean":2.3888000000000003,"median":2.3583,"min":2.3029,"n":3,"n_missing":0,"name":"TB","q1":2.3306,"q3":2.43175,"range":0.2022999999999997,"sd":0.1045419054733554,"sem":0.06035729726663815,"skewness":1.2011223888199027,"sum":7.1664,"variance":0.010929009999999975}],"interpretation":"Variances are homogeneous across groups (F = 0.6587, p = 0.5513)","method":"levene","notes":["Group 'LB' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'M9 minimal' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'TB' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Non-significant. This test has low power on small samples, so treat this as 'no evidence against equal variances', not as evidence for them."],"p_value":0.5512894566443487,"significant":false,"source":{"kind":"arrays"},"statistic":0.6587103235543714,"test":"Levene's Test","variance_ratio":12.777834937040323},"error":null},{"label":"stats.levene","method":"stats.levene","params":{"method":"bartlett"},"result":{"alpha":0.05,"df1":2.0,"df2":null,"equal_variance_rejected":false,"group_variances":[0.003499693333333332,0.0008553100000000013,0.010929009999999975],"groups":[{"excess_kurtosis":null,"iqr":0.05559999999999987,"max":1.652,"mean":1.6080666666666668,"median":1.6314,"min":1.5408,"n":3,"n_missing":0,"name":"LB","q1":1.5861,"q3":1.6417,"range":0.11119999999999997,"sd":0.05915820596783959,"sem":0.03415500614030752,"skewness":-1.4987816817561173,"sum":4.8242,"variance":0.003499693333333332},{"excess_kurtosis":null,"iqr":0.02905000000000002,"max":0.9332,"mean":0.9061,"median":0.91,"min":0.8751,"n":3,"n_missing":0,"name":"M9 minimal","q1":0.89255,"q3":0.9216,"range":0.05810000000000004,"sd":0.029245683442176578,"sem":0.01688500320797523,"skewness":-0.589417167395893,"sum":2.7183,"variance":0.0008553100000000013},{"excess_kurtosis":null,"iqr":0.10115000000000007,"max":2.5052,"mean":2.3888000000000003,"median":2.3583,"min":2.3029,"n":3,"n_missing":0,"name":"TB","q1":2.3306,"q3":2.43175,"range":0.2022999999999997,"sd":0.1045419054733554,"sem":0.06035729726663815,"skewness":1.2011223888199027,"sum":7.1664,"variance":0.010929009999999975}],"interpretation":"Variances are homogeneous across groups (χ² = 2.2856, p = 0.3189)","method":"bartlett","notes":["Group 'LB' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'M9 minimal' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'TB' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Non-significant. This test has low power on small samples, so treat this as 'no evidence against equal variances', not as evidence for them.","Bartlett's test assumes normality and is badly inflated when that fails — confirm with stats.normality, or use method='levene'."],"p_value":0.31891825254956596,"significant":false,"source":{"kind":"arrays"},"statistic":2.285640941276027,"test":"Bartlett's Test","variance_ratio":12.777834937040323},"error":null},{"label":"stats.anova","method":"stats.anova","params":{},"result":{"alpha":0.05,"assumptions":{"alpha":0.05,"homogeneity_of_variance":{"equal_variance_rejected":false,"p_value":0.5512894566443487,"statistic":0.6587103235543714,"test":"Levene's Test"},"independence":"Assumed, not tested — observations must come from independent sampling units. Repeated measures on the same unit require a paired or mixed-model analysis instead.","normality":[{"group":"LB","normality_rejected":false,"p_value":0.33422783723046795,"statistic":0.8833231102153711,"test":"Shapiro-Wilk"},{"group":"M9 minimal","normality_rejected":false,"p_value":0.7789426388400651,"statistic":0.9866627304719927,"test":"Shapiro-Wilk"},{"group":"TB","normality_rejected":false,"p_value":0.5121634601627029,"statistic":0.9361618755953187,"test":"Shapiro-Wilk"}]},"design":"one_way","df_between":2.0,"df_within":6.0,"effect_size":{"cohens_f":10.391288258824224,"estimate":0.986256882115845,"eta_squared":0.9908239094000266,"interpretation":"eta-squared is the variance explained in THIS sample and is upward-biased; omega-squared estimates the population value and is the one to report.","magnitude":"large","name":"omega_squared","omega_squared":0.986256882115845},"groups":[{"excess_kurtosis":null,"iqr":0.05559999999999987,"max":1.652,"mean":1.6080666666666668,"median":1.6314,"min":1.5408,"n":3,"n_missing":0,"name":"LB","q1":1.5861,"q3":1.6417,"range":0.11119999999999997,"sd":0.05915820596783959,"sem":0.03415500614030752,"skewness":-1.4987816817561173,"sum":4.8242,"variance":0.003499693333333332},{"excess_kurtosis":null,"iqr":0.02905000000000002,"max":0.9332,"mean":0.9061,"median":0.91,"min":0.8751,"n":3,"n_missing":0,"name":"M9 minimal","q1":0.89255,"q3":0.9216,"range":0.05810000000000004,"sd":0.029245683442176578,"sem":0.01688500320797523,"skewness":-0.589417167395893,"sum":2.7183,"variance":0.0008553100000000013},{"excess_kurtosis":null,"iqr":0.10115000000000007,"max":2.5052,"mean":2.3888000000000003,"median":2.3583,"min":2.3029,"n":3,"n_missing":0,"name":"TB","q1":2.3306,"q3":2.43175,"range":0.2022999999999997,"sd":0.1045419054733554,"sem":0.06035729726663815,"skewness":1.2011223888199027,"sum":7.1664,"variance":0.010929009999999975}],"k_groups":3,"ms_between":1.6503505144444448,"ms_within":0.005094671111111102,"n_total":9,"notes":["Group 'LB' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'M9 minimal' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'TB' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality."],"p_value":7.726326892769948e-07,"post_hoc":"A significant F is an omnibus result. Run pairwise stats.ttest comparisons and pass their p-values through stats.adjust before reporting any specific pair.","significant":true,"source":{"kind":"arrays"},"statistic":323.9366150339228},"error":null},{"label":"stats.kruskal","method":"stats.kruskal","params":{},"result":{"alpha":0.05,"assumptions":{"note":"Distribution-free. Groups must be independent; similar group shapes are needed to read the result as a difference in medians rather than in distribution."},"df":2,"effect_size":{"estimate":0.9000000000000004,"interpretation":"Proportion of rank variance explained by group; 0..1.","name":"epsilon_squared"},"groups":[{"excess_kurtosis":null,"iqr":0.05559999999999987,"max":1.652,"mean":1.6080666666666668,"median":1.6314,"min":1.5408,"n":3,"n_missing":0,"name":"LB","q1":1.5861,"q3":1.6417,"range":0.11119999999999997,"sd":0.05915820596783959,"sem":0.03415500614030752,"skewness":-1.4987816817561173,"sum":4.8242,"variance":0.003499693333333332},{"excess_kurtosis":null,"iqr":0.02905000000000002,"max":0.9332,"mean":0.9061,"median":0.91,"min":0.8751,"n":3,"n_missing":0,"name":"M9 minimal","q1":0.89255,"q3":0.9216,"range":0.05810000000000004,"sd":0.029245683442176578,"sem":0.01688500320797523,"skewness":-0.589417167395893,"sum":2.7183,"variance":0.0008553100000000013},{"excess_kurtosis":null,"iqr":0.10115000000000007,"max":2.5052,"mean":2.3888000000000003,"median":2.3583,"min":2.3029,"n":3,"n_missing":0,"name":"TB","q1":2.3306,"q3":2.43175,"range":0.2022999999999997,"sd":0.1045419054733554,"sem":0.06035729726663815,"skewness":1.2011223888199027,"sum":7.1664,"variance":0.010929009999999975}],"interpretation":"At least one group significantly differs (H = 7.200, df = 2, p = 0.0273)","n_total":9,"notes":["Group 'LB' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'M9 minimal' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'TB' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality."],"p_value":0.02732372244729252,"post_hoc":"A significant H is an omnibus result. Run pairwise stats.mannwhitney comparisons and pass their p-values through stats.adjust (benjamini_hochberg or holm) before reporting any specific pair.","sample_sizes":[3,3,3],"significant":true,"source":{"kind":"arrays"},"statistic":7.200000000000003,"test":"Kruskal-Wallis"},"error":null},{"label":"stats.ttest","method":"stats.ttest","params":{"test":"welch","check_assumptions":false},"result":{"alpha":0.05,"alternative":"two_sided","assumptions":{"checked":false},"ci_of_difference":{"conf_level":0.95,"lower":-0.9951871014969308,"method":"t (Welch)","upper":-0.5662795651697362},"df":3.1617544286306267,"effect_size":{"ci":{"conf_level":0.95,"lower":-12.41364287654576,"upper":-2.3534907604616677},"cohens_d":-9.19187411047671,"estimate":-7.353499288381369,"interpretation":"Standardised mean difference (group 1 minus group 2), small-sample-bias corrected.","magnitude":"very large","name":"hedges_g"},"groups":[{"excess_kurtosis":null,"iqr":0.05559999999999987,"max":1.652,"mean":1.6080666666666668,"median":1.6314,"min":1.5408,"n":3,"n_missing":0,"name":"a","q1":1.5861,"q3":1.6417,"range":0.11119999999999997,"sd":0.05915820596783959,"sem":0.03415500614030752,"skewness":-1.4987816817561173,"sum":4.8242,"variance":0.003499693333333332},{"excess_kurtosis":null,"iqr":0.10115000000000007,"max":2.5052,"mean":2.3888000000000003,"median":2.3583,"min":2.3029,"n":3,"n_missing":0,"name":"b","q1":2.3306,"q3":2.43175,"range":0.2022999999999997,"sd":0.1045419054733554,"sem":0.06035729726663815,"skewness":1.2011223888199027,"sum":7.1664,"variance":0.010929009999999975}],"mean_difference":-0.7807333333333335,"notes":["Group 'a' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'b' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality."],"p_two_sided":0.0011759909233807933,"p_value":0.0011759909233807933,"significant":true,"source":{"kind":"arrays"},"statistic":-11.257700675283475,"test":"welch"},"error":null},{"label":"stats.mannwhitney","method":"stats.mannwhitney","params":{},"result":{"alpha":0.05,"alternative":"two_sided","assumptions":{"note":"Distribution-free: no normality assumption. Observations must be independent both within and between groups, and the two distributions are assumed to have similar shape if the result is to be read as a median shift."},"effect_size":{"estimate":-1.0,"interpretation":"P(x > y) - P(x < y) for a random pair, one value from each group. 0 means complete overlap.","magnitude":"large","name":"cliffs_delta","rank_biserial_r":-1.0},"groups":[{"excess_kurtosis":null,"iqr":0.05559999999999987,"max":1.652,"mean":1.6080666666666668,"median":1.6314,"min":1.5408,"n":3,"n_missing":0,"name":"a","q1":1.5861,"q3":1.6417,"range":0.11119999999999997,"sd":0.05915820596783959,"sem":0.03415500614030752,"skewness":-1.4987816817561173,"sum":4.8242,"variance":0.003499693333333332},{"excess_kurtosis":null,"iqr":0.10115000000000007,"max":2.5052,"mean":2.3888000000000003,"median":2.3583,"min":2.3029,"n":3,"n_missing":0,"name":"b","q1":2.3306,"q3":2.43175,"range":0.2022999999999997,"sd":0.1045419054733554,"sem":0.06035729726663815,"skewness":1.2011223888199027,"sum":7.1664,"variance":0.010929009999999975}],"interpretation":"No significant difference in distributions (U = 0.0, Z = -1.746, p = 0.0809)","notes":["Group 'a' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'b' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","The normal approximation used for the p-value is unreliable below roughly n = 8 per group; treat the p-value as indicative only."],"p_two_sided":0.08085559837005028,"p_value":0.08085559837005028,"sample_sizes":[3,3],"significant":false,"source":{"kind":"arrays"},"statistic":0.0,"test":"Mann-Whitney U"},"error":null},{"label":"stats.ttest","method":"stats.ttest","params":{"test":"welch","check_assumptions":false},"result":{"alpha":0.05,"alternative":"two_sided","assumptions":{"checked":false},"ci_of_difference":{"conf_level":0.95,"lower":0.5788731422881006,"method":"t (Welch)","upper":0.8250601910452329},"df":2.922483540434615,"effect_size":{"ci":{"conf_level":0.95,"lower":4.060765724470894,"upper":20.172632147878982},"cohens_d":15.043096512239464,"estimate":12.034477209791572,"interpretation":"Standardised mean difference (group 1 minus group 2), small-sample-bias corrected.","magnitude":"very large","name":"hedges_g"},"groups":[{"excess_kurtosis":null,"iqr":0.05559999999999987,"max":1.652,"mean":1.6080666666666668,"median":1.6314,"min":1.5408,"n":3,"n_missing":0,"name":"a","q1":1.5861,"q3":1.6417,"range":0.11119999999999997,"sd":0.05915820596783959,"sem":0.03415500614030752,"skewness":-1.4987816817561173,"sum":4.8242,"variance":0.003499693333333332},{"excess_kurtosis":null,"iqr":0.02905000000000002,"max":0.9332,"mean":0.9061,"median":0.91,"min":0.8751,"n":3,"n_missing":0,"name":"b","q1":0.89255,"q3":0.9216,"range":0.05810000000000004,"sd":0.029245683442176578,"sem":0.01688500320797523,"skewness":-0.589417167395893,"sum":2.7183,"variance":0.0008553100000000013}],"mean_difference":0.7019666666666667,"notes":["Group 'a' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'b' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality."],"p_two_sided":0.00040807395084823663,"p_value":0.00040807395084823663,"significant":true,"source":{"kind":"arrays"},"statistic":18.423955303213987,"test":"welch"},"error":null},{"label":"stats.mannwhitney","method":"stats.mannwhitney","params":{},"result":{"alpha":0.05,"alternative":"two_sided","assumptions":{"note":"Distribution-free: no normality assumption. Observations must be independent both within and between groups, and the two distributions are assumed to have similar shape if the result is to be read as a median shift."},"effect_size":{"estimate":1.0,"interpretation":"P(x > y) - P(x < y) for a random pair, one value from each group. 0 means complete overlap.","magnitude":"large","name":"cliffs_delta","rank_biserial_r":1.0},"groups":[{"excess_kurtosis":null,"iqr":0.05559999999999987,"max":1.652,"mean":1.6080666666666668,"median":1.6314,"min":1.5408,"n":3,"n_missing":0,"name":"a","q1":1.5861,"q3":1.6417,"range":0.11119999999999997,"sd":0.05915820596783959,"sem":0.03415500614030752,"skewness":-1.4987816817561173,"sum":4.8242,"variance":0.003499693333333332},{"excess_kurtosis":null,"iqr":0.02905000000000002,"max":0.9332,"mean":0.9061,"median":0.91,"min":0.8751,"n":3,"n_missing":0,"name":"b","q1":0.89255,"q3":0.9216,"range":0.05810000000000004,"sd":0.029245683442176578,"sem":0.01688500320797523,"skewness":-0.589417167395893,"sum":2.7183,"variance":0.0008553100000000013}],"interpretation":"No significant difference in distributions (U = 9.0, Z = 1.746, p = 0.0809)","notes":["Group 'a' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'b' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","The normal approximation used for the p-value is unreliable below roughly n = 8 per group; treat the p-value as indicative only."],"p_two_sided":0.08085559837005028,"p_value":0.08085559837005028,"sample_sizes":[3,3],"significant":false,"source":{"kind":"arrays"},"statistic":9.0,"test":"Mann-Whitney U"},"error":null},{"label":"stats.ttest","method":"stats.ttest","params":{"test":"welch","check_assumptions":false},"result":{"alpha":0.05,"alternative":"two_sided","assumptions":{"checked":false},"ci_of_difference":{"conf_level":0.95,"lower":1.245002178267592,"method":"t (Welch)","upper":1.7203978217324087},"df":2.3111364576848525,"effect_size":{"ci":{"conf_level":0.95,"lower":5.278195438626803,"upper":25.859056125633387},"cohens_d":19.315947743979347,"estimate":15.452758195183478,"interpretation":"Standardised mean difference (group 1 minus group 2), small-sample-bias corrected.","magnitude":"very large","name":"hedges_g"},"groups":[{"excess_kurtosis":null,"iqr":0.10115000000000007,"max":2.5052,"mean":2.3888000000000003,"median":2.3583,"min":2.3029,"n":3,"n_missing":0,"name":"a","q1":2.3306,"q3":2.43175,"range":0.2022999999999997,"sd":0.1045419054733554,"sem":0.06035729726663815,"skewness":1.2011223888199027,"sum":7.1664,"variance":0.010929009999999975},{"excess_kurtosis":null,"iqr":0.02905000000000002,"max":0.9332,"mean":0.9061,"median":0.91,"min":0.8751,"n":3,"n_missing":0,"name":"b","q1":0.89255,"q3":0.9216,"range":0.05810000000000004,"sd":0.029245683442176578,"sem":0.01688500320797523,"skewness":-0.589417167395893,"sum":2.7183,"variance":0.0008553100000000013}],"mean_difference":1.4827000000000004,"notes":["Group 'a' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'b' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality."],"p_two_sided":0.0008273919367087138,"p_value":0.0008273919367087138,"significant":true,"source":{"kind":"arrays"},"statistic":23.65710793550664,"test":"welch"},"error":null},{"label":"stats.mannwhitney","method":"stats.mannwhitney","params":{},"result":{"alpha":0.05,"alternative":"two_sided","assumptions":{"note":"Distribution-free: no normality assumption. Observations must be independent both within and between groups, and the two distributions are assumed to have similar shape if the result is to be read as a median shift."},"effect_size":{"estimate":1.0,"interpretation":"P(x > y) - P(x < y) for a random pair, one value from each group. 0 means complete overlap.","magnitude":"large","name":"cliffs_delta","rank_biserial_r":1.0},"groups":[{"excess_kurtosis":null,"iqr":0.10115000000000007,"max":2.5052,"mean":2.3888000000000003,"median":2.3583,"min":2.3029,"n":3,"n_missing":0,"name":"a","q1":2.3306,"q3":2.43175,"range":0.2022999999999997,"sd":0.1045419054733554,"sem":0.06035729726663815,"skewness":1.2011223888199027,"sum":7.1664,"variance":0.010929009999999975},{"excess_kurtosis":null,"iqr":0.02905000000000002,"max":0.9332,"mean":0.9061,"median":0.91,"min":0.8751,"n":3,"n_missing":0,"name":"b","q1":0.89255,"q3":0.9216,"range":0.05810000000000004,"sd":0.029245683442176578,"sem":0.01688500320797523,"skewness":-0.589417167395893,"sum":2.7183,"variance":0.0008553100000000013}],"interpretation":"No significant difference in distributions (U = 9.0, Z = 1.746, p = 0.0809)","notes":["Group 'a' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","Group 'b' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.","The normal approximation used for the p-value is unreliable below roughly n = 8 per group; treat the p-value as indicative only."],"p_two_sided":0.08085559837005028,"p_value":0.08085559837005028,"sample_sizes":[3,3],"significant":false,"source":{"kind":"arrays"},"statistic":9.0,"test":"Mann-Whitney U"},"error":null},{"label":"stats.adjust","method":"stats.adjust","params":{"method":"holm"},"result":{"alpha":0.05,"controls":"familywise_error_rate","method":"holm","n_significant_adjusted":3,"n_significant_raw":3,"n_tests":3,"notes":[],"results":[{"adjusted":0.0016547838734174275,"index":0,"label":"LB vs TB","p_value":0.0011759909233807933,"significant":true},{"adjusted":0.00122422185254471,"index":1,"label":"LB vs M9 minimal","p_value":0.00040807395084823663,"significant":true},{"adjusted":0.0016547838734174275,"index":2,"label":"TB vs M9 minimal","p_value":0.0008273919367087138,"significant":true}],"source":{"kind":"p_values"}},"error":null},{"label":"stats.adjust","method":"stats.adjust","params":{"method":"benjamini_hochberg"},"result":{"alpha":0.05,"controls":"false_discovery_rate","method":"benjamini_hochberg","n_significant_adjusted":3,"n_significant_raw":3,"n_tests":3,"notes":[],"results":[{"adjusted":0.0011759909233807933,"index":0,"label":"LB vs TB","p_value":0.0011759909233807933,"significant":true},{"adjusted":0.0011759909233807933,"index":1,"label":"LB vs M9 minimal","p_value":0.00040807395084823663,"significant":true},{"adjusted":0.0011759909233807933,"index":2,"label":"TB vs M9 minimal","p_value":0.0008273919367087138,"significant":true}],"source":{"kind":"p_values"}},"error":null},{"label":"stats.adjust","method":"stats.adjust","params":{"method":"holm"},"result":{"alpha":0.05,"controls":"familywise_error_rate","method":"holm","n_significant_adjusted":0,"n_significant_raw":0,"n_tests":3,"notes":[],"results":[{"adjusted":0.24256679511015083,"index":0,"label":"LB vs TB","p_value":0.08085559837005028,"significant":false},{"adjusted":0.24256679511015083,"index":1,"label":"LB vs M9 minimal","p_value":0.08085559837005028,"significant":false},{"adjusted":0.24256679511015083,"index":2,"label":"TB vs M9 minimal","p_value":0.08085559837005028,"significant":false}],"source":{"kind":"p_values"}},"error":null},{"label":"stats.adjust","method":"stats.adjust","params":{"method":"benjamini_hochberg"},"result":{"alpha":0.05,"controls":"false_discovery_rate","method":"benjamini_hochberg","n_significant_adjusted":0,"n_significant_raw":0,"n_tests":3,"notes":[],"results":[{"adjusted":0.08085559837005028,"index":0,"label":"LB vs TB","p_value":0.08085559837005028,"significant":false},{"adjusted":0.08085559837005028,"index":1,"label":"LB vs M9 minimal","p_value":0.08085559837005028,"significant":false},{"adjusted":0.08085559837005028,"index":2,"label":"TB vs M9 minimal","p_value":0.08085559837005028,"significant":false}],"source":{"kind":"p_values"}},"error":null},{"label":"stats.power","method":"stats.power","params":{"n1":3,"n2":3,"mode":"mde","power":0.8},"result":{"alpha":0.05,"effect_size":3.070892266363785,"interpretation":"Power is the probability of rejecting the null when an effect of this size is real. Computing it from the effect you already observed ('observed power') is circular — plan with an effect size from a pilot or the literature, and report the MDE after.","mode":"mde","n1":3,"n2":3,"n_total":6,"notes":["With n1 = 3 and n2 = 3 at alpha = 0.05, an effect smaller than d = 3.071 would be missed more than 20% of the time. A null result from this design rules out effects LARGER than that, not effects in general."],"power":0.8,"source":{"kind":"parameters"},"test":"two-sample t-test, two-sided"},"error":null},{"label":"stats.power","method":"stats.power","params":{"n1":3,"n2":3,"effect_size":0.5},"result":{"alpha":0.05,"effect_size":0.5,"interpretation":"Power is the probability of rejecting the null when an effect of this size is real. Computing it from the effect you already observed ('observed power') is circular — plan with an effect size from a pilot or the literature, and report the MDE after.","mode":"power","n1":3,"n2":3,"n_total":6,"notes":["Power is 0.08, below the conventional 0.8: this design would miss a true effect of d = 0.5 more than 92% of the time."],"power":0.07684904996036046,"source":{"kind":"parameters"},"test":"two-sample t-test, two-sided"},"error":null},{"label":"stats.power","method":"stats.power","params":{"n1":3,"n2":3,"effect_size":0.8},"result":{"alpha":0.05,"effect_size":0.8,"interpretation":"Power is the probability of rejecting the null when an effect of this size is real. Computing it from the effect you already observed ('observed power') is circular — plan with an effect size from a pilot or the literature, and report the MDE after.","mode":"power","n1":3,"n2":3,"n_total":6,"notes":["Power is 0.12, below the conventional 0.8: this design would miss a true effect of d = 0.8 more than 88% of the time."],"power":0.11932928311866808,"source":{"kind":"parameters"},"test":"two-sample t-test, two-sided"},"error":null},{"label":"stats.power","method":"stats.power","params":{"n1":3,"n2":3,"effect_size":1.2},"result":{"alpha":0.05,"effect_size":1.2,"interpretation":"Power is the probability of rejecting the null when an effect of this size is real. Computing it from the effect you already observed ('observed power') is circular — plan with an effect size from a pilot or the literature, and report the MDE after.","mode":"power","n1":3,"n2":3,"n_total":6,"notes":["Power is 0.21, below the conventional 0.8: this design would miss a true effect of d = 1.2 more than 79% of the time."],"power":0.20683341889827445,"source":{"kind":"parameters"},"test":"two-sample t-test, two-sided"},"error":null}]}