You can subscribe to this list here.
2008 
_{Jan}

_{Feb}

_{Mar}
(2) 
_{Apr}
(4) 
_{May}
(5) 
_{Jun}
(5) 
_{Jul}
(13) 
_{Aug}
(2) 
_{Sep}
(1) 
_{Oct}
(1) 
_{Nov}

_{Dec}


2009 
_{Jan}
(1) 
_{Feb}
(4) 
_{Mar}
(3) 
_{Apr}
(3) 
_{May}
(3) 
_{Jun}

_{Jul}

_{Aug}
(6) 
_{Sep}
(4) 
_{Oct}
(6) 
_{Nov}
(1) 
_{Dec}
(11) 
2010 
_{Jan}
(3) 
_{Feb}
(5) 
_{Mar}
(9) 
_{Apr}
(8) 
_{May}
(6) 
_{Jun}
(6) 
_{Jul}
(2) 
_{Aug}
(13) 
_{Sep}
(4) 
_{Oct}
(2) 
_{Nov}
(1) 
_{Dec}
(1) 
2011 
_{Jan}
(3) 
_{Feb}
(4) 
_{Mar}
(4) 
_{Apr}
(1) 
_{May}
(3) 
_{Jun}
(10) 
_{Jul}

_{Aug}
(2) 
_{Sep}
(4) 
_{Oct}
(6) 
_{Nov}
(8) 
_{Dec}
(4) 
2012 
_{Jan}
(6) 
_{Feb}

_{Mar}
(1) 
_{Apr}
(6) 
_{May}
(3) 
_{Jun}

_{Jul}
(6) 
_{Aug}
(17) 
_{Sep}
(7) 
_{Oct}
(4) 
_{Nov}
(8) 
_{Dec}
(11) 
2013 
_{Jan}
(8) 
_{Feb}
(4) 
_{Mar}
(7) 
_{Apr}
(1) 
_{May}
(4) 
_{Jun}
(2) 
_{Jul}
(3) 
_{Aug}
(1) 
_{Sep}
(2) 
_{Oct}

_{Nov}
(1) 
_{Dec}

2014 
_{Jan}
(5) 
_{Feb}
(2) 
_{Mar}
(10) 
_{Apr}
(1) 
_{May}
(1) 
_{Jun}
(1) 
_{Jul}

_{Aug}

_{Sep}
(2) 
_{Oct}
(2) 
_{Nov}
(10) 
_{Dec}
(3) 
2015 
_{Jan}
(12) 
_{Feb}

_{Mar}
(5) 
_{Apr}
(2) 
_{May}

_{Jun}
(2) 
_{Jul}

_{Aug}
(2) 
_{Sep}

_{Oct}

_{Nov}

_{Dec}

From: Alois Schloegl <alois.schloegl@is...>  20150827 14:23:31

biosig4c++/libbiosig 1.7.1 is released and is available from http://biosig.sourceforge.net/download.html The main features are:  Python interface is working again (it was broken for some time).  better heuristics to identify matlab path for compiling mexSLOAD, etc.  Better support on OSX: compilation of libbiosig and mexSLOAD has been improved libbiosig can also be installed through homebrew by running brew tap schloegl/biosig brew install libbiosig  requirement on std=gnu89 was relaxed  numerous compiler warnings and some minor bugs have been fixed Have fun Alois 
From: Sahar Selim <sahar.soussa@gm...>  20150812 09:32:28

Dear All, I'm using the BCI Competition dataset IV 2a. I'm working on Left & right hand movement. I extracted data of channels (Fz,Cz,Pz). I filtered data [830], then normalized it. Then, I calculated the common spatial patterns of the training dataset using the CSP.m of the Biosig toolbox I want to use the "train_sc" to classify my data. My question is why do I need to duplicate the labels of each event? ex: for each right hand event (750 samples) I must have 750 label = 1 for each left hand event (750 samples) I must have 750 label = 2 labels = repmat(classlabel’,n,1)’; %where n is the number of samples/event CC = train_sc(features,labels,'LDA'); Does that mean that classification is done on samples rather than events? Is each sample classified independently?!!! The results I got are very disappointing. I've tried many classifiers but the best accuracy I got was 0.5 I need to know what I'm doing wrong. I've read too much on CSP feature extraction & classification of the eeg signals, but still I feel that I'm missing many things :( Any help please. Best Regards, Sahar Selim 
From: Alois Schloegl <alois.schloegl@is...>  20150616 09:23:50

On 06/13/2015 04:43 PM, Sahar Selim wrote: > Hello, > > > I'm using the BCI Competition IV 2a dataset. I want to use the common > spatial pattern of the BioSig toolbox. > > > I'm working on 3 channels. I adjusted my dataset into 2 classes (OnevsRest > scheme) & reshaped my data from 3 dimension matrix into 2 dimension matrix: > > · Class1 (left motor imagery) = 54000x3 channels. (one channel per > column) > > · Class2 (right, foot, tongue) = 162000x3 channels > > > > I tried to calculate the extended covariance matrix which is needed as > input for the csp.m > > *>>ECM = covm(C1, C2, 'E');* > > but I get the following error: > > Error using covm (line 93) X and Y must have the same number of > observations (rows). > I guess, you want to do: ECM = covm([C1; C2], 'E'); I strongly recommend reading the documentation of the functions your are using, and the literature about CSP, in order to make sure that this is what you want. Alois 
From: Sahar Selim <sahar.soussa@gm...>  20150613 14:43:19

Hello, I'm using the BCI Competition IV 2a dataset. I want to use the common spatial pattern of the BioSig toolbox. I'm working on 3 channels. I adjusted my dataset into 2 classes (OnevsRest scheme) & reshaped my data from 3 dimension matrix into 2 dimension matrix: · Class1 (left motor imagery) = 54000x3 channels. (one channel per column) · Class2 (right, foot, tongue) = 162000x3 channels I tried to calculate the extended covariance matrix which is needed as input for the csp.m *>>ECM = covm(C1, C2, 'E');* but I get the following error: Error using covm (line 93) X and Y must have the same number of observations (rows). any help please 
From: Sahar Selim <sahar.soussa@gm...>  20150423 09:28:29

Hello I'm using BCI competition IV 2a. I've loaded my data using BIOSIG in the EEGLAB toolbox. At this point the EEG.ur = EEG.event My problem is that after epoching the dataset the EEG.event is empty [] I need to know the corresponding event of each epoch & the corresponding latencies of these events (I epoched data using EEGLAB. Is there a way of epoching data using the BioSig toolbox) Thanks in advance 
From: <a.lauraitis@gm...>  20150402 12:52:25

Hello dear community, Wanted to ask: bss function in t300 package is a wrapper for Blind Source seperation algorithms. So for example (s is input signal from BCI dataset IV). Signal s dimensions (678200x22 EEG channels). W = bss(s,'PCA'); W is the unmixing matrix. After bss W dimensions are 22x22. So can W be used for BCI feature extraction (i have a variable f for this)? Or some extra steps are required? With Kind regards, Andrius L. 
From: Alois Schloegl <alois.schloegl@is...>  20150323 07:40:48

On 20150323 04:27, Thiago Wiezbicki wrote: > Hello, > > I have a Matlab 2012a on my Ubuntu 64 bits Linux and I'm having problems to > compile the biosig 2.93 on my Linux because of my GCC version (4.6) and > problems to compile using Matlab mexopts that needs gcc 4.4. What kind of error messages do you see? In order to compile mexSLOAD.mex* etc, you need the sources of biosig4c++/libbiosig. Download and extract the latests biosig4c++/libbiosig sources and run sudo aptget install zlib1gdev libsuitesparsedev ## installs libbiosig make && sudo make install # compile mex/mexSLOAD.mex* for matlab MATLABPATH=/usr/local/matlab/R2012a/bin/ make mex4m If you have octave and its developer libariaries installed (liboctavedev, octaveheaders, depending on the version), you can also install biosig for Octave with make mex4o > > Does anybody can provide the Biosig binaries already compiled for Linux 64 > and 32 bits? > > Why I can found binaries for Windows only? Usually, its not a problem to compile it on Linux. Regards, Alois > > Regards. > > > >  > Dive into the World of Parallel Programming The Go Parallel Website, sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for all > things parallel software development, from weekly thought leadership blogs to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > > > > _______________________________________________ > Biosiggeneral mailing list > Biosiggeneral@... > https://lists.sourceforge.net/lists/listinfo/biosiggeneral > 
From: Thiago Wiezbicki <thiagowzb@gm...>  20150323 03:27:49

Hello, I have a Matlab 2012a on my Ubuntu 64 bits Linux and I'm having problems to compile the biosig 2.93 on my Linux because of my GCC version (4.6) and problems to compile using Matlab mexopts that needs gcc 4.4. Does anybody can provide the Biosig binaries already compiled for Linux 64 and 32 bits? Why I can found binaries for Windows only? Regards.   Thiago Wiezbicki 
From: <alauraitis@gm...>  20150318 12:15:34

Dear community, I am investigating Burg algorithm. I want to test it in Biosig toolbox for feature extraction. Any small demo would be appreciated. Arspectrum: http://biosig.sourceforge.net/help/biosig/t300/arspectrum.html Lattice: http://biosig.sourceforge.net/help/freetb4matlab/tsa/lattice.html Waiting for a reply. Best Regards, Andrius L. 
From: Mauricio Adolfo Ramírez Moreno <mauricio_arramirez@ho...>  20150311 10:05:22

Hello I'm currently trying to analize raw EEG signals from some power measurementsI did before with the BAlert EEG system, however, I cannot find a way to import or load the .ebs format file, which has the raw data, into MATLAB.Does anyone know how to do that? Regards.Mauricio Ramirez. 
From: Jakub Wojciechowski <wiercirurki@gm...>  20150309 16:25:55

Hello, I was trying to figure out how to read *.ebs EEG files from matlab and i've come across EEGLAB's plugin called "biosig tools". When i try to import data though, i get the message that EBS format is not ompleted yet and that i'd have to contact You. So here i am asking for a help with that. With best regards Jakub Wojciechowski 
From: Alois Schloegl <alois.schloegl@is...>  20150129 07:39:31

Dear Octavian, Assuming you have sufficient data, I'd try a machine learning algorithm approach. If the data is unlabeled, it really becomes a data exploration task. If you have labels, even if they are not perfect, you can apply supervised learning methods. For AR parameters (and perhaps including log(diag(C)) ), simple statistical learning, some call it inference learning, are a reasonable choice. You can use train_sc and test_sc for that. Make sure to use some proper crossvalidation. If you want to test a single sample with resp. to its similarity to a collection of examples, you could computing the mahalanobis distance or similar metrics. Alois On 01/28/2015 08:11 PM, Octavian Lie wrote: > Dear All, > > I use mvaar.m to generate timevariant AR coefficient matrices (say ARm(t), > m channelsX p orderX t times) on real, continuous EEG data (seizures), then > apply various frequency Granger measures (tPDC, tFFDFT) to derive time > variant connectivity matrices (say Cm(t)). > For the same connectivity measure and channels m, two seizures generate > AR1m(t1:t2), C1m(t1:t2), and AR2m(t3:t4), C2m(t3:t4). After significance/ > thresholding of individual Cm matrices, these become unweighted/undirected. > > In this context, I would like to compare/match either (ARm1, ARm2), > or (Cm1, Cm2) to establish whether the two seizures are similar. Here > similarity means the same onset location more or less and the same main > propagation patterns; that is, both the withinmatrix ranking of AR > coefficients and the distribution of Cm edges, and the spatial information > of the causal flow are of interest. This type of analysis would be akin to > some extent to withinsubject activation fMRI time series > comparisons). t1:t2 and t3:t4 intervals may be different, and obviously, > seizure 1 and 2 are not evoked. What is (are) a good similarity measure, > and statistical approach to do this with as few assumptions about the > distribution of ARm values? > > This is a tough issue, and I did not find a good answer thus far. Please > advise. > > Thank you, > > Octavian > > 
From: Owen Kelly <okelly@bi...>  20150128 23:06:01

Octavian, I am not familiar with the detailed model structures under discussion. Define three datasets: D1 = [t1:t1], D3 = [t3:t4], D = {D1, D3}. In other applications, the problem you posed has been addressed with a criterion based on loglikelihoods that is (roughly) L(D) <> L(D1)+L(D2) . L(D1)+L(D2) is the cost to describe all the data using distinct models. L(D) is the cost to describe all the data using one shared model. The theory is that if D1 and D3 are indeed from the same statistical source then it should be beneficial to pool the data before estimating the model. The generalized likelihoods L must include a model complexity penalty. Owen From: Octavian Lie [mailto:octavian.lie@...] Sent: January2815 2:12 PM To: biosiggeneral@... Subject: [Biosiggeneral] Compare two timedependent AR or connectivity matrices for 'similarity' Dear All, I use mvaar.m to generate timevariant AR coefficient matrices (say ARm(t), m channelsX p orderX t times) on real, continuous EEG data (seizures), then apply various frequency Granger measures (tPDC, tFFDFT) to derive time variant connectivity matrices (say Cm(t)). For the same connectivity measure and channels m, two seizures generate AR1m(t1:t2), C1m(t1:t2), and AR2m(t3:t4), C2m(t3:t4). After significance/ thresholding of individual Cm matrices, these become unweighted/undirected. In this context, I would like to compare/match either (ARm1, ARm2), or (Cm1, Cm2) to establish whether the two seizures are similar. Here similarity means the same onset location more or less and the same main propagation patterns; that is, both the withinmatrix ranking of AR coefficients and the distribution of Cm edges, and the spatial information of the causal flow are of interest. This type of analysis would be akin to some extent to withinsubject activation fMRI time series comparisons). t1:t2 and t3:t4 intervals may be different, and obviously, seizure 1 and 2 are not evoked. What is (are) a good similarity measure, and statistical approach to do this with as few assumptions about the distribution of ARm values? This is a tough issue, and I did not find a good answer thus far. Please advise. Thank you, Octavian 
From: Octavian Lie <octavian.lie@gm...>  20150128 19:11:38

Dear All, I use mvaar.m to generate timevariant AR coefficient matrices (say ARm(t), m channelsX p orderX t times) on real, continuous EEG data (seizures), then apply various frequency Granger measures (tPDC, tFFDFT) to derive time variant connectivity matrices (say Cm(t)). For the same connectivity measure and channels m, two seizures generate AR1m(t1:t2), C1m(t1:t2), and AR2m(t3:t4), C2m(t3:t4). After significance/ thresholding of individual Cm matrices, these become unweighted/undirected. In this context, I would like to compare/match either (ARm1, ARm2), or (Cm1, Cm2) to establish whether the two seizures are similar. Here similarity means the same onset location more or less and the same main propagation patterns; that is, both the withinmatrix ranking of AR coefficients and the distribution of Cm edges, and the spatial information of the causal flow are of interest. This type of analysis would be akin to some extent to withinsubject activation fMRI time series comparisons). t1:t2 and t3:t4 intervals may be different, and obviously, seizure 1 and 2 are not evoked. What is (are) a good similarity measure, and statistical approach to do this with as few assumptions about the distribution of ARm values? This is a tough issue, and I did not find a good answer thus far. Please advise. Thank you, Octavian 
From: Sahar Selim <sahar.soussa@gm...>  20150128 18:25:09

Khansa Salahuddin & Alois Schloegl Thanks all I tried the Biosig Source it worked also the the single quotation was the other error On Wed, Jan 28, 2015 at 3:49 PM, Alois Schloegl <alois.schloegl@...> wrote: > On 20150122 20:49, Sahar Selim wrote: > > Dear Collegues > > > > I am using the BCI competition IV dataset 2a > > > > I want to open the gdf files of the dataset > > > > I installed the Matlab 2014a & added the BioSig toolbox > > > > I'm new to matlab :( > > > > I tried the commands of sOpen & sLoad but it's not working > > > >>> HDR = sopen(’C:\bioSig\A01T.gdf’, 'r', [, CHAN [, MODE]]); > > [S,HDR] = sread(HDR, NoR, StartPos); > > HDR = sclose(HDR); > > HDR = sopen(’C:\bioSig\A01T.gdf’, 'r', [, CHAN [, MODE]]); > >  > > Error: The input character is not valid in MATLAB statements or > expressions. > > > >>> [s, h] = sload(’C:\bioSig\A01T.gdf’); > > [s, h] = sload(’C:\bioSig\A01T.gdf’); > >  > > Error: The input character is not valid in MATLAB statements or > expressions. > > > It seems to me that for the filename, you did not use single quotes (') > but (’). These are different, and I guess that the error message is > about this. > > Alois > > > 
From: Alois Schloegl <alois.schloegl@is...>  20150128 14:19:44

On 20150126 22:48, Sahar Selim wrote: > I'm using BCI Competition IV datset 2a. > > I ran this code but I'm getting error. > > > > *file* = 'G:\Matlab\BCICIV_2a\A01T.gdf'; > > [*Signal*, *Header*] = *sload*(*FILE*); > > > > eogchan = identify_eog_channels(file); > > > > *%Preprocessing* > > eegchan = find(header.CHANTYP=='E'); > > R = regress_eog(SIG, eegchan, eogchan); > > SIG = SIG *R.r0; > > > > *%Feature Extraction* > > bands = [8,30]; > > win = 1; > > all_freq = bandpower(signal,header.SampleRate,bands,win); > > > > start = 7.5*header.SampleRate; > > final = 8*header.SampleRate; > > [tmpm, tmps] = trigg(all_freq(:,eegchan), header.TRIG,start,final,0); > > features = tmpm'; > > > *%Classification* > > load('G:\Matlab\BCICIV_2a\A01T.mat', 'classlabel') > > n = length(start:final); > > labels = repmat(classlabel',n,1)'; > > > > > MODE = 'RBF'; > > CC = train_sc(features,labels,MODE); > > > > I get this error: > > Error using train_sc (line 185) > > *length of data and classlabel does not fit* > 1 > > > Now, labels has 288 row while features have 36288 row. That's because you are using multiple samples from a single trial. Accordingly, you need to extend the label vector to the same size. > > I know that labels must have the same number of rows as features but I > don't know how to fix this error :( > One possible way is: cl = meshgrid(classlabel, 1:36288/288); cl = cl(:); There are many others. Cheers, Alois 
From: Alois Schloegl <alois.schloegl@is...>  20150128 14:00:58

On 20150122 20:49, Sahar Selim wrote: > Dear Collegues > > I am using the BCI competition IV dataset 2a > > I want to open the gdf files of the dataset > > I installed the Matlab 2014a & added the BioSig toolbox > > I'm new to matlab :( > > I tried the commands of sOpen & sLoad but it's not working > >>> HDR = sopen(’C:\bioSig\A01T.gdf’, 'r', [, CHAN [, MODE]]); > [S,HDR] = sread(HDR, NoR, StartPos); > HDR = sclose(HDR); > HDR = sopen(’C:\bioSig\A01T.gdf’, 'r', [, CHAN [, MODE]]); >  > Error: The input character is not valid in MATLAB statements or expressions. > >>> [s, h] = sload(’C:\bioSig\A01T.gdf’); > [s, h] = sload(’C:\bioSig\A01T.gdf’); >  > Error: The input character is not valid in MATLAB statements or expressions. It seems to me that for the filename, you did not use single quotes (') but (’). These are different, and I guess that the error message is about this. Alois 
From: a.lauraitis <a.lauraitis@gm...>  20150128 12:59:32

Hello community, Could you please provide some additional demos for feature extraction algorithms in Biosig? There are 9 demos (but more would be very appreciated). Best regards, Andrius L. 
From: Sahar Selim <sahar.soussa@gm...>  20150126 21:48:22

I'm using BCI Competition IV datset 2a. I ran this code but I'm getting error. *file* = 'G:\Matlab\BCICIV_2a\A01T.gdf'; [*Signal*, *Header*] = *sload*(*FILE*); eogchan = identify_eog_channels(file); *%Preprocessing* eegchan = find(header.CHANTYP=='E'); R = regress_eog(SIG, eegchan, eogchan); SIG = SIG *R.r0; *%Feature Extraction* bands = [8,30]; win = 1; all_freq = bandpower(signal,header.SampleRate,bands,win); start = 7.5*header.SampleRate; final = 8*header.SampleRate; [tmpm, tmps] = trigg(all_freq(:,eegchan), header.TRIG,start,final,0); features = tmpm'; *%Classification* load('G:\Matlab\BCICIV_2a\A01T.mat', 'classlabel') n = length(start:final); labels = repmat(classlabel',n,1)'; MODE = 'RBF'; CC = train_sc(features,labels,MODE); I get this error: Error using train_sc (line 185) *length of data and classlabel does not fit* Now, labels has 288 row while features have 36288 row. I know that labels must have the same number of rows as features but I don't know how to fix this error :( 
From: Khansa Butt <khansa.butt@gm...>  20150123 07:08:43

AoA Sahar are you exactly following the install steps mentioned in install file of BIOSIG? there is install.m u need to run that first. 2nd thing there are two download type of BIOSIG, binary or source code.Try source code and make sure you are using the latest version of BIOSIG unless you have some reason to use one of previous version. Thanks Khansa Salahuddin On Fri, Jan 23, 2015 at 12:49 AM, Sahar Selim <sahar.soussa@...> wrote: > Dear Collegues > > I am using the BCI competition IV dataset 2a > > I want to open the gdf files of the dataset > > I installed the Matlab 2014a & added the BioSig toolbox > > I'm new to matlab :( > > I tried the commands of sOpen & sLoad but it's not working > > >> HDR = sopen(’C:\bioSig\A01T.gdf’, 'r', [, CHAN [, MODE]]); > [S,HDR] = sread(HDR, NoR, StartPos); > HDR = sclose(HDR); > HDR = sopen(’C:\bioSig\A01T.gdf’, 'r', [, CHAN [, MODE]]); >  > Error: The input character is not valid in MATLAB statements or > expressions. > > >> [s, h] = sload(’C:\bioSig\A01T.gdf’); > [s, h] = sload(’C:\bioSig\A01T.gdf’); >  > Error: The input character is not valid in MATLAB statements or > expressions. > > > I don't know what's wrong. > > Any help please > > > >  > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet > _______________________________________________ > Biosiggeneral mailing list > Biosiggeneral@... > https://lists.sourceforge.net/lists/listinfo/biosiggeneral > > 
From: Sahar Selim <sahar.soussa@gm...>  20150122 19:49:36

Dear Collegues I am using the BCI competition IV dataset 2a I want to open the gdf files of the dataset I installed the Matlab 2014a & added the BioSig toolbox I'm new to matlab :( I tried the commands of sOpen & sLoad but it's not working >> HDR = sopen(’C:\bioSig\A01T.gdf’, 'r', [, CHAN [, MODE]]); [S,HDR] = sread(HDR, NoR, StartPos); HDR = sclose(HDR); HDR = sopen(’C:\bioSig\A01T.gdf’, 'r', [, CHAN [, MODE]]);  Error: The input character is not valid in MATLAB statements or expressions. >> [s, h] = sload(’C:\bioSig\A01T.gdf’); [s, h] = sload(’C:\bioSig\A01T.gdf’);  Error: The input character is not valid in MATLAB statements or expressions. I don't know what's wrong. Any help please 
From: a.lauraitis <a.lauraitis@gm...>  20150122 14:02:55

Hello Community, I'm quite new to Biosig. I want to experiment with feature extraction algorithms in BCI type applications. My goal now is to try arspectrum function for feature extraction but i can't find a demo how to use it. I saw a demo of using Adaptive Autoregressive Model like so: f2 = []; for ch = 1:length(eegchan), X = tvaar(s(:,eegchan(ch)),MODE.MOP,MODE.UC); X = tvaar(s(:,eegchan(ch)),X); % AAR estimation f2 = [f2,X.AAR,log(X.PE)]; end; This approach works. So can i use arspectrum function for feature extraction like so?: file = 'A05E.gdf'; [s,h,filename] = load_data(file); ... %Feature extraction f2 = []; X=arspectrum(s,h.sampleRate,'uV'); f2 = [f2,X.AR,log(X.PE)]; so tvaar applies for a single EEG channel and arspectrum for whole signal data? Waiting for reply. Best regards, Andrius L. 
From: Alois Schloegl <alois.schloegl@is...>  20150106 12:41:11

Dear Julian, thanks for the feedback. The attached patch fixes the incompatibility between sum and sumskipnan, and should solve the issue. Kind regards, Alois On 20141219 21:38, Julian Cheng wrote: > This email is intended as feedback to the contributors of the biosig Matlab > project. > The versions of various programs to reproduce the issue is as follows: > >  Matlab R2013b >  EEGLAB v13_4_3b >  Biosig 2.88 > > To whom it may concern: > > In my experience it is generally not a good idea to override the default > functions in Matlab, simply because it is close to impossible to reproduce > the exact behavior, and other functions might depend on the functional > difference. Here is an example I encountered today: > The Matlab mean() function has an undocumented feature (due to the way > sum() is implemented) that if the dimensions parameter supplied is greater > than the total number of dimensions in the input matrix, the *original* > matrix is returned without any modifications. This is in conflict with the > Biosig version of mean(), in which the function sumskipnan() will throw an > error complaining about the dimension being too large. Unfortunately, the > function tftopo() in EEGLAB relied on Matlab's behavior and used it to > average a dimension if and only if it existed. > Granted, one can argue that this is poor coding on EEGLAB's part, and I > will submit a bug report to let the authors know about it, but nevertheless > this demonstrates the dangers of overriding Matlab's functions. In this > case it was fortunate that an error was thrown, but it is also possible to > have cases where the functional difference cause not an error but a > difference in the output generated, which is much harder to catch. > I understand that the install instructions do mention that "[the > NaNtoolbox] changes the behaviour of some standard functions", but it also > says "Installing NaNtoolbox is recommended" without explicitly stating > what the consequences can be. Personally, I think the best way to have > implemented this was to use customnamed functions, but if the intent to > override Matlab's functions was important then I would have left this as an > optional install, and let the user decide for themselves whether they want > this. > > > Sincerely, > > Julian Y. Cheng > > > >  > Dive into the World of Parallel Programming! The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net > > > > _______________________________________________ > Biosiggeneral mailing list > Biosiggeneral@... > https://lists.sourceforge.net/lists/listinfo/biosiggeneral > 
From: Julian Cheng <jc28735250@gm...>  20141219 20:38:48

This email is intended as feedback to the contributors of the biosig Matlab project. The versions of various programs to reproduce the issue is as follows:  Matlab R2013b  EEGLAB v13_4_3b  Biosig 2.88 To whom it may concern: In my experience it is generally not a good idea to override the default functions in Matlab, simply because it is close to impossible to reproduce the exact behavior, and other functions might depend on the functional difference. Here is an example I encountered today: The Matlab mean() function has an undocumented feature (due to the way sum() is implemented) that if the dimensions parameter supplied is greater than the total number of dimensions in the input matrix, the *original* matrix is returned without any modifications. This is in conflict with the Biosig version of mean(), in which the function sumskipnan() will throw an error complaining about the dimension being too large. Unfortunately, the function tftopo() in EEGLAB relied on Matlab's behavior and used it to average a dimension if and only if it existed. Granted, one can argue that this is poor coding on EEGLAB's part, and I will submit a bug report to let the authors know about it, but nevertheless this demonstrates the dangers of overriding Matlab's functions. In this case it was fortunate that an error was thrown, but it is also possible to have cases where the functional difference cause not an error but a difference in the output generated, which is much harder to catch. I understand that the install instructions do mention that "[the NaNtoolbox] changes the behaviour of some standard functions", but it also says "Installing NaNtoolbox is recommended" without explicitly stating what the consequences can be. Personally, I think the best way to have implemented this was to use customnamed functions, but if the intent to override Matlab's functions was important then I would have left this as an optional install, and let the user decide for themselves whether they want this. Sincerely, Julian Y. Cheng 
From: Alois Schloegl <alois.schloegl@is...>  20141209 07:36:46

On 20141207 04:09, Octavian Lie wrote: > Dear Dr. Schloegl, > > > > I have read the thesis you kindly provided, which has clarified many > questions about MVAAR. > > > > Here are few lingering issues about the goodnessoffit criterion for MVAAR > (MSE) and the MVAAR choice, with direct relevance to my work: > > > > 1. from the thesis (pg 55): > > “In this work, the spatial relationship was considered in the > classification. The spatial relationship can be addressed by bivariate > (Schack et al. 1995, Andrew 1997, Arnold et al.1998) and multivariate > timevarying AR models (Gersch, 1987). In these cases, it should be > considered that the number of coefficients increases with the square of the > number of components. A larger number of parameters also increases the > estimation variance of the model parameter. Here, the test of the residual > process might be a useful tool in order to prevent overparametrization.” > > From here, I gather that MSE would increase naturally with the number of > channels analyzed. Does the test of the residual process above consist of > MSE calculation, and how to prevent overparametrization (is there an > unacceptable MSE cutoff?). Yes, the "test of residual process" is the computation of MSE. Whether a certain MSE is unacceptable, depends on the application. > If not, could you mention what test that is? The MSE was not always the decisive factor, but in the BCI experiments, the classification error was more important. > This is important if one wants to use as high a number of channels as > available to prevent data reduction for and event of interest (eg seizure), > admittedly trading off with increasing noise brought by increasing no of > channels. > > 2. By analogy, a REV criterion could be designed for MVAAR, for example for > data y(m, k) –m channels and k time samples and the error coefficient > matrix e(m,k) > > REV = tr(cov(e))/tr(cov(y)), and a timevarying REV(t) = sum(e2(t))/sum(y2(t)) > could be designed. > > In terms of the predictive value of such goodnessoffit measures, how is > one supposed to interpret in an analysis comparing several MVAAR models, > when the overall REV is low, but REV(t) at a particular t1 is comparatively > high for a model against others? Disregarding p samples after t1 would not > really solve the issue of the reliability of the causal information flow > accross t1. The purpose of the optimization criterion was to identify reasonable parameters for p, UC and some other degree of freedoms, that where not known a priori. To compare different parameter settings, one has to measure the fit with a single number, otherwise a comparison is not easily possible. Of course, if you have reason to believe that the fitting in a special period of time is more important than in some other period, you could include this in a costmodel, which would reduce the REV(t) again to a single number. > > 3. Could you provide a reference of the modes 04 Kalman filters used in > mvaar.m, or refer to pgs 2627 in the thesis if these have MVAR > counterparts? > *) Christian Kasess (2002) Estimation of TimeVariant Multivariate Autoregressive ... Master thesis at the Graz University of Technology. More recently, a thesis was done by Martin Billinger, his implmentation is also available as cmex function (kalman_maar.cpp in the tsatoolbox). There should be some journal or conference publications from Martin, too. > > > 4. from the thesis (pg 55) > > “In this work, only adaptive algorithms with forward prediction were > investigated. Other, related algorithms are timevarying autoregressive > (TVAR) modeling (Kaipio and Karjalainen, 1997a,b) as well as Kalman > smoothing algorithms (Grewal and Andrews, 1993). They might be interesting > alternatives for offline analysis or when a delayed estimation of the AAR > parameters is acceptable. Both approaches were not investigated because the > REV criterion is based on an uncorrelated prediction error process (i.e. > residual process) which would be not the case in these methods.” > > In the case of Kalman smoothers which involve present time samples in > coefficient estimation, MSE or REV cannot be used for prediction, however I > assume they could be used just as goodnessoffit criteria. Please confirm. No, I can not confirm this. In case of smoothers, the prediction error is not uncorrelated to the data anymore. That means, the essential property of independence between data and prediction error is not true anymore. The pitfall of overfitting can not be prevented in this case; e.g. increasing the model order (and other parameteters) might reduce the MSE, although the model fit gets worse. > > 5. Are there adaptive lattice filters for the MVAAR case? In principle yes, and we've attempted some implementations. (see the thesis of Christian Kasess). > > I hope this does not take too much of your time. > > Thank you, > You are welcome, Alois > > > Octavian > > On Tue, Nov 25, 2014 at 11:41 PM, Alois Schloegl <alois.schloegl@...> > wrote: > >> On 20141125 14:58, Octavian Lie wrote: >>> Dear All, >>> >>> I am new to biosig. I wanted to: >>> >>> 1. confirm that it is correct to use the Schwarts BIC to select the model >>> order for the time variant/adaptive mvar (as opposed to the classical, >> time >>> invariant mvar) >> >> BIC and a number of other criteria (e.g. AIC, MDL, etc) are methods for >> determining the model order of a stationary AR model in order to prevent >> overfitting, by introducing a penalty term for larger model orders. The >> penalty term is somewhat arbitrary, and represent different heuristic >> approaches. >> >> In Adaptive AR model, such a penalty term is not really needed because >> the onestep prediction error is not subject to overfitting. In other >> words, the mean square prediction error is a suitable metric to identify >> the optimal model order if the update coefficient is fixed. >> >> Figure 13 in [1] shows this. >> >> >> [1] Alois Schlögl (2000) The electroencephalogram and the adaptive >> autoregressive model: theory and applications >> Shaker Verlag, Aachen, Germany,(ISBN3826576403). Available online at: >> http://pub.ist.ac.at/~schloegl/publications/EEG_AAR_model.pdf >> >> >> >>> 2. if so, or if not, is there another criterion one can use, which is >>> thought better than the BIC for mvaar? >> >> >> For multivariate AAR models, the equivalent of the mean square >> prediction error would be the trace of the covariance matrix of the >> prediction error. >> >> >>> 3. If one wants to shuffle mvaar coefficients as in bootstrap, which >> biosig >>> function does that? >> >> biosig does not support shuffling. >> >> >> Kind regards, >> Alois >> >>> >>> Thank you for your assist, >>> >>> Viorel >>> >>> >>> >>> >>  >>> Download BIRT iHub FType  The Free EnterpriseGrade BIRT Server >>> from Actuate! Instantly Supercharge Your Business Reports and Dashboards >>> with Interactivity, Sharing, Native Excel Exports, App Integration & more >>> Get technology previously reserved for billiondollar corporations, FREE >>> >> http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk >>> >>> >>> >>> _______________________________________________ >>> Biosiggeneral mailing list >>> Biosiggeneral@... >>> https://lists.sourceforge.net/lists/listinfo/biosiggeneral >>> >> >> >> >>  >> Download BIRT iHub FType  The Free EnterpriseGrade BIRT Server >> from Actuate! Instantly Supercharge Your Business Reports and Dashboards >> with Interactivity, Sharing, Native Excel Exports, App Integration & more >> Get technology previously reserved for billiondollar corporations, FREE >> >> http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk >> _______________________________________________ >> Biosiggeneral mailing list >> Biosiggeneral@... >> https://lists.sourceforge.net/lists/listinfo/biosiggeneral >> > 