| Larch: Data Analysis Tools for X-ray Spectroscopy

# 12. Fitting and Modeling Data

A key motivation for Larch is to provide easy and robust ways to model data and perform complex fits of data to models. Data modeling and fitting can be messy and challenging tasks, so a major factor in Larch’s design was to make this as simple as possible. This chapter discusses the basic concepts for building models, setting up and performing fits, and inspecting the results.

The concepts presented here focus on modeling and fitting of general spectra and data. Of course, Larch can provides other, specific functions for doing fits, such as the EXAFS procedures `_xafs.autobk()` and `_xafs.feffit()`. Many of these concepts (and the underlying fitting algorithms) are used for those other functions as well.

- 12.1. Fitting Overview
- 12.2. Parameters
  - 12.2.1. setting bounds
  - 12.2.2. using algebraic constraints
  - 12.2.3. `param_group()`: creating a Parameter Group for fitting constraints
  - 12.2.4. fiteval and details about algebraic constraints
  - 12.2.5. working with uncertainties
- 12.3. `minimize()` and objective Functions
- 12.4. Fit Results and Outputs
- 12.5. Some Builtin Line-shape Functions
- 12.6. Fit Examples
  - 12.6.1. Example 1: Fitting a Simple Gaussian
  - 12.6.2. Example 2: Fitting XANES Pre-edge Peaks
  - 12.6.3. Example 3: Fitting XANES Spectra as a Linear Combination of Other Spectra
- 12.7. Simplified Peak Fitting with `fit_peak()`
  - 12.7.1. Example: Fitting a Gaussian + background with `fit_peak()`
  - 12.7.2. Example: Fitting a Rectangular function with `fit_peak()`
  - 12.7.3. Using lmfit.Model
- 12.8. Advanced Confidence Intervals and Chi-square maps
  - 12.8.1. Confidence interval, Example 1
  - 12.8.2. Confidence interval, Example 2
  - 12.8.3. Chi-square Maps