solarwindpy.fitfunctions.lines.LineXintercept
- class LineXintercept(xobs, yobs, **kwargs)[source]
Bases:
FitFunctionLinear fit with explicit x-intercept parameterization.
Fits data to the form: y = m * (x - x0) where x0 is the x-intercept.
- __init__(xobs, yobs, **kwargs)[source]
Initialize linear fit with x-intercept parameterization.
- Parameters:
xobs (array-like) – Observed x values (independent variable). Shape must match yobs.
yobs (array-like) – Observed y values (dependent variable). Shape must match xobs.
**kwargs – The description is missing.
Notes
This parameterization is useful when fitting data where the x-intercept has physical meaning, such as threshold energies or cutoff velocities in solar wind measurements.
Examples
>>> import numpy as np >>> from solarwindpy.fitfunctions import Gaussian >>> x = np.linspace(-5, 5, 100) >>> y = 3 * np.exp(-0.5 * x**2) + np.random.normal(0, 0.1, 100) >>> fit = Gaussian(x, y, xmin=-3, xmax=3) >>> fit.make_fit() >>> print(f"Fitted mu: {fit.popt['mu']:.3f}")
- property function
Get the function that`curve_fit` fits.
The function is set at instantiation. It doesn’t make sense to change it unless you redefine the entire FitFunction, so there is no new kwarg.
- property p0
Calculate the initial guess for the line parameters.
If this fails, return
curve_fit()’s default value None.- Returns:
p0 – The initial guesses as [m, b].
- Return type:
- property TeX_function
Function written in LaTeX.
- property y_intercept
Calculate the y-intercept of the fitted line.
- Returns:
The y value where the line crosses x=0.
- Return type:
- property TeX_info
- property argnames
The names of the actual function arguments pulled by getfullargspec.
- build_TeX_info()
- build_plotter()
- property chisq_dof
Chisq per degree of freedom \(\chi^2_\nu\).
If None, not calculated by make_fit_old. If np.nan, fit failed.
- property combined_popt_psigma
Return optimized parameters and uncertainties as a DataFrame.
- Returns:
DataFrame with columns ‘popt’ and ‘psigma’, indexed by parameter names. Relative uncertainty can be computed as: df[‘psigma’] / df[‘popt’]
- Return type:
pd.DataFrame
- property dof
Degrees of freedom in the fit.
- property fit_bounds
Bounds used when running the fit.
- property fit_result
- property initial_guess_info
- property logger
- make_fit(return_exception=False, **kwargs)
Fit the function with the independent xobs and dependent yobs.
Uses least_squares and returns the OptimizeResult object, but treats weights as in curve_fit.
- Parameters:
return_exception (bool) – If True, return exceptions from fitting routine, instead of raising. This is useful when looping through many fits and wanting to identify failed fits after the fact.
**kwargs – The description is missing.
- property nobs
The total number of observations used in the fit.
- property observations
- property pcov
Returns a copy so that the matrix isn’t accidentally edited.
- property plotter
- property popt
Optimized fit parameters.
- property psigma
- residuals(pct=False, use_all=False)
Calculate fit residuals.
- Parameters:
- Returns:
Residuals as observed - fitted.
- Return type:
Examples
>>> # Create FitFunction with constraints >>> ff = Gaussian(x, y, xmin=3, xmax=7) >>> ff.make_fit() >>> >>> # Residuals for fitted region only >>> r_fit = ff.residuals() >>> >>> # Residuals for all original data >>> r_all = ff.residuals(use_all=True) >>> >>> # Percentage residuals >>> r_pct = ff.residuals(pct=True)
Notes
Addresses TODO: “calculate with all values…including those excluded by set_extrema” (though set_extrema doesn’t exist - constraints are passed in __init__).
- property rsq
Coefficient of determination.
Source: <en.wikipedia.org/wiki/Coefficient_of_determination#Definitions>
- set_fit_obs(xobs_raw, yobs_raw, weights_raw, xmin=None, xmax=None, xoutside=None, ymin=None, ymax=None, youtside=None, wmin=None, wmax=None, logx=False, logy=False)
Set the observed values we’ll actually use in the fit.
By applying limits to xobs_raw and yobs_raw and checking for finite values.
All boundaries are inclusive <= or >=.
If logy, then make selection of wmin and wmax based on \(w/(y \ln(10))\).
- Parameters:
xobs_raw – The description is missing.
yobs_raw – The description is missing.
weights_raw – The description is missing.
xmin – The description is missing.
xmax – The description is missing.
xoutside – The description is missing.
ymin – The description is missing.
ymax – The description is missing.
youtside – The description is missing.
wmin – The description is missing.
wmax – The description is missing.
logx – The description is missing.
logy – The description is missing.
- property sufficient_data
Ensure that we can fit the data before doing any computations.