Chris Klink 4c6918ae5b gin commit from chris-mh16 2 年之前
..
Book 4c6918ae5b gin commit from chris-mh16 2 年之前
Neuro 4c6918ae5b gin commit from chris-mh16 2 年之前
Source 4c6918ae5b gin commit from chris-mh16 2 年之前
m 4c6918ae5b gin commit from chris-mh16 2 年之前
mex 4c6918ae5b gin commit from chris-mh16 2 年之前
README 4c6918ae5b gin commit from chris-mh16 2 年之前
archive 4c6918ae5b gin commit from chris-mh16 2 年之前

README

Locfit, Matlab 2.01
http://locfit.herine.net/

April 2, 2007



Attaching:

Make sure that you've added this directory recursively (i.e. with
all subdirectories) to your matlab search path.

Basic usage:

(1) To plot of a smooth curve:
load ethanol; % load the dataset.
fit = locfit(E,NOx) % local regression, with x,y vectors.
lfplot(fit) % plot the fitted curve.

(2a) To evaluate smooth at a specified set of points:
load ethanol;
xev = [0.6 0.7 0.8 0.9]'; % note column vector.
fit = locfit(E,NOx,'ev',xev);
yhat = predict(fit)

(2b) Fit and interpolate approximation; may be faster for large datasets.
load ethanol;
xev = [0.6 0.7 0.8 0.9]'; % note column vector.
fit = locfit(E,NOx);
yhat = predict(fit,xev)

(3) Surface smoothing - give matrix as first input.
load ethanol; % load the dataset.
fit = locfit([E C],NOx) % local regression.
lfplot(fit)


Most of the arguments to the S (and R) locfit() function, described
in my book, will also work in the Matlab version. E.g,
fit = locfit(E,NOx,'deg',1,'kern','gauss')
% local linear fit with the gaussian kernel.
Smoothing parameters can be set with 'nn' and 'h', instead of the
alpha vector used in my book. So
fit = locfit(E,NOx,'alpha',[0 0.2])
fit = locfit(E,NOx,'h',0.2)
are equivalent ways to specify a constant bandwidth h=0.2.


The Book subdirectory contains functions to reproduce most of the book
figures. Run them, and look at the source code (many around 5 lines or less)
for more examples.


Some differences with the S/R version (and book documentation).
(1) Minor renaming of functions, mainly because matlab doesn't have
S-style methods. e.g. lfplot() instead of plot() or plot.locfit().
(2) Use lfband() to add confidence bands to a plot.
(3) Functions such as aicplot(), gcvplot() sensitive to order of
arguments. Smoothing parameter matrix must be given first.
(4) For 2-d predictors, lfplot() defaults to producing a surface, rather
than contour, plot.
(5) The predict() function has an optional 'direct' argument, which
causes the fit to be recomputed at each evaluation point, rather
than interpolation of existing points.
(6) A few things aren't implemented yet...


Technical stuff. Here's the layout of the structure returned by
the locfit() function. The first three components (data, evaluation
structure and smoothing parameters) are what you provide, or default
values. The last two (fit points, parametric component) are what
locfit computes. The expected size or format of the entry is
given in parentheses.


fit.data.x (n*d)
fit.data.y (n*1)
fit.data.weights (n*1 or 1*1)
fit.data.censor (n*1 or 1*1)
fit.data.baseline (n*1 or 1*1)
fit.data.style (string length d)
fit.data.scales (1*d)
fit.data.xlim (2*d)

fit.evaluation_structure.type (string)
fit.evaluation_structure.module (string)
fit.evaluation_structure.lower_left (numeric 1*d)
fit.evaluation_structure.upper_right (numeric 1*d)
fit.evaluation_structure.grid (numeric 1*d)
fit.evaluation_structure.cut (numeric 1*d)
fit.evaluation_structure.maxk
fit.evaluation_structure.derivative

fit.smoothing_parameters.alpha = (nn h pen) vector
fit.smoothing_parameters.adaptive_criterion (string)
fit.smoothing_parameters.degree (numeric)
fit.smoothing_parameters.family (string)
fit.smoothing_parameters.link (string)
fit.smoothing_parameters.kernel (string)
fit.smoothing_parameters.kernel_type (string)
fit.smoothing_parameters.deren
fit.smoothing_parameters.deit
fit.smoothing_parameters.demint
fit.smoothing_parameters.debug

fit.fit_points.evaluation_points (d*nv matrix)
fit.fit_points.fitted_values (matrix, nv rows, many columns)
fit.fit_points.evaluation_vectors
fit.fit_points.fit_limits (d*2 matrix)
fit.fit_points.family_link (numeric values)
fit.fit_points.kappa (likelihood, degrees of freedom, etc)

fit.parametric_component





This was the OLD format:

+-{1} data
| +-{1} xdata matrix (n*d)
| +-{2} ydata column vector (n*1)
| +-{3} wdata weight vector (n*1 or 1*1)
| +-{4} cdata censoring vector (n*1 or 1*1)
| +-{5} base baseline vector (n*1 or 1*1)
| +-{6} style vector (string length d)
| +-{7} scales vector (1*d)
| +-{8} xl xlim vector (2*d)
|
+-{2} evaluation structure
| +-{1} structure type (string)
| +-{2} module (string)
| +-{3} ll corner of bounding box (numeric 1*d)
| +-{4} ur corner of bounding box (numeric 1*d)
| +-{5} mg vector for grid (numeric 1*d)
| +-{6} cut parameter for adaptive structures (numeric 1*d)
| +-{7} maxk memory control parameter
| +-{8} derivative vector
|
+-{3} sp smoothing parameters
| +-{1} alpha = (nn h pen) vector
| +-{2} adaptive criterion (string)
| +-{3} local polynomial degree (numeric)
| +-{4} fitting family (string)
| +-{5} link (string)
| +-{6} kernel (string)
| +-{7} kernel type - product, spherical (string)
|
+-{4} fpc fit points
| +-{1} evaluation points, d*nv matrix.
| +-{2} fitted values etc, (matrix, nv rows, many columns)
| +-{3} cell of vectors generated by evaluation structure.
| | +-{1} ce integer vector.
| | +-{2} s integer vector.
| | +-{3} lo integer vector.
| | +-{4} hi integer vector.
| |
| +-{4} fit limits (d*2 matrix)
| +-{5} [family link] (numeric values)
| +-{6} 'kappa' vector. (likelihood, degrees of freedom, etc)
|
+-{5} parametric component vector.
datacite.yml
Title Population receptive fields in non-human primates from whole-brain fMRI and large-scale neurophysiology in visual cortex.
Authors Klink,Chris;Netherlands Institute for Neuroscience;ORCID:0000-0002-6784-7842
Chen,Xing;Netherlands Institute for Neuroscience
Vanduffel,Wim;KU Leuven;ORCID:0000-0002-9399-343X
Roelfsema,Pieter;Netherlands Institute for Neuroscience;ORCID:0000-0002-1625-0034
Description This data-set contains all data and code for the paper 'Population receptive fields in non-human primates from whole-brain fMRI and large-scale neurophysiology in visual cortex.'
License Creative Commons CC0 1.0 Public Domain Dedication (https://creativecommons.org/publicdomain/zero/1.0/)
References Direct comparison of population receptive fields from fMRI and large-scale neurophysiological recordings in awake non-human primates. (2020) P. Christiaan Klink, Xing Chen, Wim Vanduffel, Pieter R. Roelfsema; bioRxiv 2020.09.05.284133; doi: https://doi.org/10.1101/2020.09.05.284133 [doi:10.1101/2020.09.05.284133] (IsSupplementTo)
Funding NWO, Crossover Program 17619 'INTENSE'
NWO, STW-Perspectief P15-42 'NESTOR'
NWO, VENI 451.13.023
EU FP7, ERC-339490 'Cortic_al_gorithms'
EU, Human Brain Project (agreements 720270 and 748 785907, SGA1 and SGA2)
Friends Foundation of the Netherlands Institute for Neuroscience
Keywords Neuroscience
Neuroimaging
Neurophysiology
Non-human primate
Population receptive field
Resource Type Dataset