{"id":1011,"date":"2026-10-13T19:16:00","date_gmt":"2026-10-13T19:16:00","guid":{"rendered":"https:\/\/freestatisticaltools.com\/blog\/?p=1011"},"modified":"2026-10-13T19:16:00","modified_gmt":"2026-10-13T19:16:00","slug":"structural-equation-modeling-online-free","status":"publish","type":"post","link":"https:\/\/freestatisticaltools.com\/blog\/structural-equation-modeling-online-free\/","title":{"rendered":"How to Run Structural Equation Modeling Online for Free (No AMOS Needed)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Commercial SEM packages are expensive, and syntax-based tools have a steep learning curve. If you just need to test a research model for a thesis or paper, you can now do the whole analysis in your browser for free with <strong>CB-SEM Studio<\/strong>: draw the model with your mouse, click <strong>Run<\/strong>, and get fit indices, reliability and validity tables, path coefficients, mediation and moderation results, ready to paste into your report.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This tutorial walks through a complete analysis using the built-in sample study, so you can follow along without your own data.<\/p>\n\n\n<div class=\"fst-tool\"><span class=\"ico\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"5\" cy=\"12\" r=\"3\"\/><circle cx=\"19\" cy=\"6\" r=\"3\"\/><circle cx=\"19\" cy=\"18\" r=\"3\"\/><path d=\"m8 11 8-4M8 13l8 4\"\/><\/svg><\/span><span><span class=\"t-eyebrow\">Free tool \u00b7 runs in your browser<\/span><a class=\"t-name\" href=\"https:\/\/freestatisticaltools.com\/cb-sem\/app\/\" style=\"text-decoration:none;color:inherit\">CB-SEM Studio app (drag-and-drop model builder)<\/a><span class=\"t-desc\">Free CB-SEM app: draw your SEM model, run CFA and SEM by maximum likelihood, and get fit indices, CR, AVE, HTMT, mediation and modification indices.<\/span><\/span><a class=\"btn accent\" href=\"https:\/\/freestatisticaltools.com\/cb-sem\/app\/\" data-tool=\"cb-sem\/app\">Open CB-SEM Studio \u2192<\/a><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What you need<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Item-level survey data:<\/strong> one row per respondent and one column per questionnaire item (for example PE1, PE2, PE3\u2026). CSV, TSV and Excel files all work.<\/li>\n\n<li><strong>A research model:<\/strong> which items measure which construct, and which constructs you expect to affect which.<\/li>\n\n<li><strong>A modern browser.<\/strong> Your data are processed on your own device and never uploaded.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If your data need recoding first (reverse-scored items, text labels such as &quot;Agree&quot; \u2192 4, missing value codes), clean them with the free <a href=\"\/data-cleaning-tool\/\">data cleaning and coding tool<\/a> and send them straight to the studio.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Load your data<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open <a href=\"\/cb-sem\/app\/\">CB-SEM Studio<\/a> and drop your file onto the <strong>Data<\/strong> tab, or click <strong>Sample study<\/strong> to load a 300-respondent technology-acceptance survey. Choose how to handle missing values: listwise deletion or item-mean replacement. Check the variable list for impossible values or wrongly coded items before moving on.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Build the measurement model<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">On the <strong>Model<\/strong> tab:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click <strong>+ New construct<\/strong>, name it (for example &quot;Performance expectancy&quot;), and add its items from the list.<\/li>\n\n<li>Repeat for every construct.<\/li>\n\n<li>Drag constructs around the canvas to lay out your model, and use the <strong>item side<\/strong> dropdown on each construct card to place its items left, right, above or below. Click <strong>Tidy layout<\/strong> for an automatic arrangement.<\/li>\n\n<li>Add or remove items on each construct card at any time.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">With no arrows between constructs, the model is a <strong>confirmatory factor analysis (CFA)<\/strong>: every construct correlates freely with every other. Running it first is good practice, because it lets you check the measurement model before testing hypotheses. Our <a href=\"\/cb-sem\/cfa-tutorial\/\">CFA tutorial<\/a> explains each output.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Add the structural paths<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pick a <strong>From<\/strong> and a <strong>To<\/strong> construct in the <strong>Paths<\/strong> box and click <strong>Add<\/strong>, or switch to the <strong>Draw path<\/strong> tool and drag an arrow from one construct to another. The <strong>Covariance<\/strong> tool adds correlations, for example between two exogenous constructs or two error terms. <strong>Erase<\/strong> removes anything you click.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Mediation<\/strong> needs no extra setup. When you draw X \u2192 M \u2192 Y, the studio finds every indirect effect automatically and estimates it with Monte Carlo confidence intervals.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Add moderation (optional)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In the <strong>Moderation<\/strong> box, choose the predictor, the moderator and the outcome. The studio builds the <strong>latent interaction<\/strong> for you (with product indicators, double-mean-centered), adds it to the diagram as a dashed &quot;X \u00d7 M&quot; construct, and later reports simple slopes at \u00b11 SD of the moderator, with a slope plot. If a moderated path is also part of an indirect effect, you get the <strong>index of moderated mediation<\/strong> too.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Run the analysis<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">On the <strong>Run<\/strong> tab, keep the defaults (maximum likelihood, first loading fixed to 1, \u03b1 = .05) and click <strong>Run analysis<\/strong>. Estimation takes a few seconds.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Check model fit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Model fit<\/strong> tab compares the fit indices with common cut-offs (Hu &amp; Bentler, 1999):<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Index<\/th><th>Good fit<\/th><th>Acceptable<\/th><\/tr><\/thead><tbody><tr><td>CFI \/ TLI<\/td><td>\u2265 .95<\/td><td>\u2265 .90<\/td><\/tr><tr><td>RMSEA<\/td><td>\u2264 .06<\/td><td>\u2264 .08<\/td><\/tr><tr><td>SRMR<\/td><td>\u2264 .08<\/td><td>\u2264 .10<\/td><\/tr><tr><td>\u03c7\u00b2\/df<\/td><td>\u2264 3<\/td><td>\u2264 5<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The chi-square test is almost always significant with samples of a few hundred, so judge fit mainly on CFI, TLI, RMSEA and SRMR. See <a href=\"\/cb-sem\/model-fit-indices\/\">model fit indices explained<\/a> for details.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7: Evaluate the measurement model<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Measurement model<\/strong> tab gives:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>standardized loadings (ideally \u2265 .70);<\/li>\n\n<li>Cronbach&#39;s alpha, composite reliability (\u2265 .70) and AVE (\u2265 .50);<\/li>\n\n<li>discriminant validity with HTMT (&lt; .85) and the Fornell-Larcker table.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If something fails, see our guides to <a href=\"\/blog\/cronbachs-alpha\/\">Cronbach&#39;s alpha<\/a> and <a href=\"\/blog\/discriminant-validity-htmt-fornell-larcker\/\">discriminant validity<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 8: Interpret the structural model<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Structural model<\/strong> tab shows unstandardized and standardized path coefficients, standard errors, z-values, p-values and the R\u00b2 of every endogenous construct. Write each hypothesis as supported or not supported based on the sign and significance of its path.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Mediation<\/strong> tab lists every indirect effect, with its Monte Carlo CI and total effects. The <strong>Moderation<\/strong> tab gives the interaction effect, simple slopes and plots.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 9: Improve fit responsibly with modification indices<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If fit is poor, the <strong>Modification indices<\/strong> tab lists the parameters that would most reduce \u03c7\u00b2, with the expected parameter change. Each one has an <strong>Add &amp; rerun<\/strong> button. Only add parameters that make theoretical sense, such as correlated errors between two items with near-identical wording. Report every change, because chasing fit with modification indices capitalizes on chance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 10: Export and cite<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Export<\/strong> tab saves your results as an Excel workbook, a Word document, HTML or LaTeX tables, the diagram as SVG or a 300-dpi PNG, and the model as lavaan syntax, so you can reproduce it in R if a reviewer asks. It also writes a methods paragraph you can adapt. Save the whole analysis as a project file to reopen later.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If CB-SEM Studio helped with your thesis or paper, please cite it. The citation is on the Export tab:<\/p>\n\n\n\n<div class=\"fst-report\"><b>Cite the software (APA 7)<button type=\"button\" data-copy-report>Copy<\/button><\/b><div><p>Xavier, B. (2026). <i>CB-SEM Studio: Free covariance-based structural equation modeling software<\/i> [Web application]. FreeStatisticalTools.com. <a href=\"https:\/\/freestatisticaltools.com\/cb-sem\/\">https:\/\/freestatisticaltools.com\/cb-sem\/<\/a><\/p><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">CB-SEM Studio vs commercial SEM software<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><\/th><th>CB-SEM Studio<\/th><th>Typical commercial package<\/th><\/tr><\/thead><tbody><tr><td>Price<\/td><td>Free<\/td><td>Paid licence<\/td><\/tr><tr><td>Installation<\/td><td>None (runs in browser)<\/td><td>Desktop install, often Windows-only<\/td><\/tr><tr><td>Model building<\/td><td>Drag and drop, dropdowns<\/td><td>Drawing or syntax<\/td><\/tr><tr><td>Estimation<\/td><td>Maximum likelihood<\/td><td>ML and others<\/td><\/tr><tr><td>Reliability and validity tables<\/td><td>Built in (alpha, CR, AVE, HTMT, Fornell-Larcker)<\/td><td>Often calculated by hand or with plug-ins<\/td><\/tr><tr><td>Latent moderation<\/td><td>Built in, with simple slopes<\/td><td>Varies<\/td><\/tr><tr><td>Data privacy<\/td><td>Data stay on your device<\/td><td>Local<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For very advanced needs (multi-group invariance testing, categorical indicators with WLSMV, multilevel SEM), a dedicated package such as lavaan or Mplus is still the right tool. You can export your model as lavaan syntax to get started.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your goal is prediction or your model has formative constructs, consider PLS-SEM instead. Our <a href=\"\/blog\/cb-sem-vs-pls-sem\/\">CB-SEM vs PLS-SEM comparison<\/a> explains the difference, and <a href=\"\/pls-sem\/app\/\">PLS-SEM Studio<\/a> is free too.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n\n<div class=\"fst-faq\"><details><summary>Can I run SEM without AMOS or R?<\/summary><div class=\"a\"><p>Yes. CB-SEM Studio runs covariance-based SEM and CFA by maximum likelihood in your web browser, with a drag-and-drop model builder. No installation or account is needed.<\/p><\/div><\/details><details><summary>Is my data uploaded to a server?<\/summary><div class=\"a\"><p>No. The analysis runs entirely in your browser, so your data never leave your device.<\/p><\/div><\/details><details><summary>Does it report the fit indices reviewers ask for?<\/summary><div class=\"a\"><p>Yes: chi-square, df, \u03c7\u00b2\/df, CFI, TLI, RMSEA with its 90% confidence interval, SRMR, and more, together with reliability and validity tables.<\/p><\/div><\/details><details><summary>Can it test mediation and moderation?<\/summary><div class=\"a\"><p>Yes. Indirect effects are found automatically from your paths and tested with Monte Carlo confidence intervals. Latent moderation is added from a dropdown and comes with simple slopes and the index of moderated mediation.<\/p><\/div><\/details><details><summary>How should I cite CB-SEM Studio?<\/summary><div class=\"a\"><p>Use: Xavier, B. (2026). CB-SEM Studio: Free covariance-based structural equation modeling software [Web application]. FreeStatisticalTools.com. <a href=\"https:\/\/freestatisticaltools.com\/cb-sem\/\">https:\/\/freestatisticaltools.com\/cb-sem\/<\/a><\/p><\/div><\/details><\/div>\n","protected":false},"excerpt":{"rendered":"<p>A hands-on walkthrough of CB-SEM Studio, from loading survey data and drawing constructs to fit indices, mediation, latent moderation, modification indices and APA-ready exports.<\/p>\n","protected":false},"author":1,"featured_media":1012,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_fst_seo_title":"Run SEM Online Free: A Drag-and-Drop AMOS Alternative","_fst_meta_desc":"Run CFA and SEM free in your browser: draw your model, add mediation and moderation, check fit and reliability, and export APA tables. No AMOS needed.","_fst_primary_tool":"cb-sem\/app","_fst_canonical":"","_fst_noindex":false,"_fst_no_toc":false,"_fst_no_autolink":false,"footnotes":""},"categories":[8],"tags":[49,45,48,34,33,47],"class_list":["post-1011","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-structural-equation-modeling","tag-amos-alternative","tag-cb-sem","tag-cfa","tag-mediation","tag-sem","tag-thesis"],"_links":{"self":[{"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/posts\/1011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/comments?post=1011"}],"version-history":[{"count":0,"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/posts\/1011\/revisions"}],"wp:attachment":[{"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/media?parent=1011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/categories?post=1011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/freestatisticaltools.com\/blog\/wp-json\/wp\/v2\/tags?post=1011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}