aboutsummaryrefslogtreecommitdiff
path: root/src/logistic.h
blob: a68ee09579876bbf66cc414c03243448ff24bf6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#ifndef LOGISTIC_H_   /* Include guard */
#define LOGISTIC_H_

/* Mixed interface */
void logistic_mixed_pred(gsl_vector *beta  // Vector of parameters length = 1 + Sum_k(C_k - 1) + Kc
			 ,gsl_matrix_int *X  //Matrix Nobs x K 
			 ,gsl_vector_int *nlev // Vector with number categories
			 ,gsl_matrix *Xc   // continuous covariates  Matrix Nobs x Kc 
			 ,gsl_vector *yhat //Vector of prob. predicted by the logistic
			 );
 
int logistic_mixed_fit(gsl_vector *beta  // Vector of parameters length = 1 + Sum_k(C_k - 1) + Kc
		       ,gsl_matrix_int *X  //Matrix Nobs x K 
		       ,gsl_vector_int *nlev // Vector with number categories
		       ,gsl_matrix *Xc   // continuous covariates  Matrix Nobs x Kc 
		       ,gsl_vector *y //Vector of prob. to predict
		       ,double lambdaL1 // Regularization L1 0.0 if not used
		       ,double lambdaL2); // Regularization L2 0.0 if not used

double fLogit_mixed(gsl_vector *beta
		    ,gsl_matrix_int *X
		    ,gsl_vector_int *nlev
		    ,gsl_matrix *Xc   // continuous covariates  Matrix Nobs x Kc 
		    ,gsl_vector *y
		    ,double lambdaL1
		    ,double lambdaL2);


/* Categorical only interface */
void logistic_cat_pred(gsl_vector *beta  // Vector of parameters length = 1 + Sum_k(C_k - 1) + Kc
		       ,gsl_matrix_int *X  //Matrix Nobs x K 
		       ,gsl_vector_int *nlev // Vector with number categories
		       ,gsl_vector *yhat //Vector of prob. predicted by the logistic
		       );
 
int logistic_cat_fit(gsl_vector *beta  // Vector of parameters length = 1 + Sum_k(C_k - 1) + Kc
		     ,gsl_matrix_int *X  //Matrix Nobs x K 
		     ,gsl_vector_int *nlev // Vector with number categories
		     ,gsl_vector *y //Vector of prob. to predict
		     ,double lambdaL1 // Regularization L1 0.0 if not used
		     ,double lambdaL2); // Regularization L2 0.0 if not used

double fLogit_cat(gsl_vector *beta
		  ,gsl_matrix_int *X
		  ,gsl_vector_int *nlev
		  ,gsl_vector *y
		  ,double lambdaL1
		  ,double lambdaL2);


/* Continuous only interface */
void logistic_cont_pred(gsl_vector *beta  // Vector of parameters length = 1 + Sum_k(C_k - 1) + Kc
			,gsl_matrix *Xc   // continuous covariates  Matrix Nobs x Kc 
			,gsl_vector *yhat //Vector of prob. predicted by the logistic
			);
 
int logistic_cont_fit(gsl_vector *beta  // Vector of parameters length = 1 + Sum_k(C_k - 1) + Kc
		      ,gsl_matrix *Xc   // continuous covariates  Matrix Nobs x Kc 
		      ,gsl_vector *y //Vector of prob. to predict
		      ,double lambdaL1 // Regularization L1 0.0 if not used
		      ,double lambdaL2); // Regularization L2 0.0 if not used

double fLogit_cont(gsl_vector *beta
		   ,gsl_matrix *Xc   // continuous covariates  Matrix Nobs x Kc 
		   ,gsl_vector *y
		   ,double lambdaL1
		   ,double lambdaL2);


#endif // LOGISTIC_H_