Esempio n. 1
0
double LinearModel::calculateMallowC(LinearModel * submodel)
{

  // Mallow's C = RSSm / S^2 + 2(m+1)-n
  // where S^2 = RSSk / (n-k-1);
  
  double Sk = calculateRSS() / ( nind - np - 1); 
  return ( submodel->calculateRSS() / Sk ) + 2 * ( submodel->np+1)-nind;
}
Esempio n. 2
0
double LinearModel::calculateFTest(LinearModel * submodel)
{

  double RSSk = calculateRSS();
  double RSSm = submodel->calculateRSS();
  
  return ( ( RSSm - RSSk ) / (double)( np - submodel->np ) )
    / ( RSSk / (double)(nind - np - 1 ) );
}
Esempio n. 3
0
double printRSS(cluster* clusters, int n) {
	double result = 0;
	for(int i=0; i<n; i++) {
		double rss = calculateRSS(clusters[i]);
		printf("Cluster %d: RSS = %f Members = %d\n", i, rss, clusters[i].members.size());
		result += rss;
	}
	printf("Total RSS = %f\n", result);
	return result;
}
Esempio n. 4
0
double LinearModel::calculateRSquared()
{

  // Return coefficient of determination. Ifnot already calculated,
  // get residual sum of squares first (set to -1)
  
  if ( RSS < 0 ) 
    RSS = calculateRSS();
  
  double SSy = varY * (nind-1);

  double r = ( SSy - RSS ) / SSy;

  return r > 0 ? ( r > 1 ? 1 : r ) : 0;

}