IMSL C# Numerical Library

UserBasisRegression Class

Generates summary statistics using user-supplied functions in a nonlinear regression model.

For a list of all members of this type, see UserBasisRegression Members.

System.Object
   Imsl.Stat.UserBasisRegression

public class UserBasisRegression

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

Fits a linear function of the form

y = c_0  + c_1 f_1 (x) + c_2 f_2 (x) +  \cdots  + c_k f_k (x) + \varepsilon
, where f_1 (x),f_2 (x), \cdots ,f_k (x) are the user basis functions f_i (x) evaluated at index values i = 1,2, \ldots ,k,c_0 is the intercept, c_1 ,c_2 , \cdots ,c_k are the coefficients associated with the basis functions, and is the random error associated with y. The coefficients c_0 ,c_1 , \cdots ,c_k are determined by least squares.

Description

UserBasisRegression generalizes the concept of linear regression to user defined basis functions. The linear regression model is

y = c_0  + c_1 x_1  +  \cdots  + c_k x_k  + \varepsilon
, where are the k independent variables. UserBasisRegression generalizes this concept by setting x_i  = f_i (x), where f_i (x) is any user defined function of x.

This makes it easier for users to fit complex univariate models. For example, the LinearRegression class can be used to fit polynomials such as

y = c_0  + c_1 x + c_2 x^2  \cdots  + c_k x^k  + \varepsilon
, but this requires an input matrix where the ith column of that array contains the values of x^i.

With UserBasisRegression, these columns can be automatically generated. For this polynomial model, the user would define a user basis function f_i (x) = x^{i + 1}. The UserBasisRegression class automatically inserts the necessary values into the regression equation and then calculates the coefficients and analysis of variance statistics.

Since the user provides a method for calculating the basis function, other more complex user basis functions are possible such as

y = c_1 Sin(x) + c_2 Cos(x) + \varepsilon
. In this case, nBasis=2, f_0 (x) = Sin(x), and f_1 (x) = Cos(x).

Requirements

Namespace: Imsl.Stat

Assembly: ImslCS (in ImslCS.dll)

See Also

UserBasisRegression Members | Imsl.Stat Namespace | Example 1 | Example 2