In [1]:
%matplotlib inline
from pylab import*
import numpy as np

In [2]:
from cvfit import fitting
from cvfit.fitting import SingleFitSession
from cvfit.fitting import MultipleFitSession
from cvfit.fitting import simplex
from cvfit import data

from cvfit.errors import residuals
from cvfit.errors import SSD
from cvfit.errors import SSDlik

In [3]:
dataset = data.XYDataSet()
X = [2.5, 5.0, 10.0, 20.0, 40.0]
Y = [5.576, 7.282, 12.521, 16.138, 23.219]
S = None #[1.2003]*5
dataset.from_columns(X, Y, S)
print(dataset)


X	Y	s(Y)	weight
2.5	5.576	0	1
5	7.282	0	1
10	12.521	0	1
20	16.138	0	1
40	23.219	0	1


In [11]:
from cvfit.equations import Hill
eq = Hill('Langmuir')
#fs = SingleFitSession(dataset, eq)
eq.propose_guesses(dataset)
eq.guess = np.array([0.0, 31.0, 15.0, 1.0])
eq.pars = eq.guess.copy()

In [12]:
coeffs, Smin = simplex(SSD, eq.theta, eq, dataset.X, dataset.Y, dataset.W)
eq.theta = coeffs
kfit = len(np.nonzero(np.invert(eq.fixed))[0])
ndf = dataset.size() - kfit
var = Smin / ndf
Sres = sqrt(var)
Lmax = -SSDlik(eq.theta, eq, dataset)

In [13]:
print('Number of point fitted = {0:d}'.format(dataset.size()))
print('\nNumber of parameters estimated = {0:d}'.format(kfit))
print('\nDegrees of freedom = {0:d}'.format(ndf))
print('\nResidual error SD = {0:.3f}      (variance = {1:.3f})'.format(Sres, var))
print('\nMinimum SSD = {0:.3f}; \nMax log-likelihood = {1:.3f}'.format(Smin, Lmax))


Number of point fitted = 5

Number of parameters estimated = 2

Degrees of freedom = 3

Residual error SD = 1.200      (variance = 1.441)

Minimum SSD = 4.322; 
Max log-likelihood = -6.730

In [ ]:


In [5]:
fs.fit()
fs.calculate_errors()
print(fs.string_estimates())
print(fs.string_liklimits())


Number of point fitted = 5
Number of parameters estimated = 2
Degrees of freedom = 3
Residual error SD = 1.247      (variance = 1.555)
Parameter 1: Ymin  	= 0  	  (fixed)
Parameter 2: Ymax  	= 30.1201  	  Approx SD = 3.124	  CV = 10.4
Parameter 3: EC50  	= 14.1212  	  Approx SD = 3.4052	  CV = 24.1
Minimum SSD = 4.665; 
Max log-likelihood = -6.922
Correlation matrix = [!!!! PRINTOUT OF CORRELATION MATRIX NOT IMPLEMENTED YET. SORRY.

WARNING: SOME PARAMETERS ARE STRONGLY CORRELATED (coeff > 0.9); try different guesses

LIKELIHOOD INTERVALS
5.06-unit Likelihood Intervals  (equivalent SD for Gaussian- 3.18)
Lmax= -6.92151;   Lcrit= -11.9841
Parameter 1:   Ymin	= 0	  (fixed)
Parameter 2:   Ymax	= 30.1201	  LOWER = 20.2766	  UPPER = 69.3388
Parameter 3:   EC50	= 14.1212	  LOWER = 5.02122	  UPPER = 67.4515

In [ ]: