You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by td...@apache.org on 2012/11/15 09:21:42 UTC

svn commit: r1409688 - in /mahout/trunk/math/src: main/java/org/apache/mahout/math/stats/LogLikelihood.java test/java/org/apache/mahout/math/stats/LogLikelihoodTest.java

Author: tdunning
Date: Thu Nov 15 08:21:41 2012
New Revision: 1409688

URL: http://svn.apache.org/viewvc?rev=1409688&view=rev
Log:
Improved names for arguments of Multi-normal.  No functional changes.

Modified:
    mahout/trunk/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java
    mahout/trunk/math/src/test/java/org/apache/mahout/math/stats/LogLikelihoodTest.java

Modified: mahout/trunk/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java
URL: http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java?rev=1409688&r1=1409687&r2=1409688&view=diff
==============================================================================
--- mahout/trunk/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java (original)
+++ mahout/trunk/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java Thu Nov 15 08:21:41 2012
@@ -121,8 +121,11 @@ public final class LogLikelihood {
    * @return The root log-likelihood ratio
    * 
    * <p/>
-   * See discussion of raw vs. root LLR at 
-   * http://www.lucidimagination.com/search/document/6dc8709e65a7ced1/llr_scoring_question
+   * There is some more discussion here:
+   * http://mail-archives.apache.org/mod_mbox/mahout-user/201001.mbox/%3Cc7d45fc71001121120r6b0482aat345014770ed32744@mail.gmail.com%3E
+   *
+   * And see the response to Wataru's comment here:
+   * http://tdunning.blogspot.com/2008/03/surprise-and-coincidence.html
    */
   public static double rootLogLikelihoodRatio(long k11, long k12, long k21, long k22) {
     double llr = logLikelihoodRatio(k11, k12, k21, k22);

Modified: mahout/trunk/math/src/test/java/org/apache/mahout/math/stats/LogLikelihoodTest.java
URL: http://svn.apache.org/viewvc/mahout/trunk/math/src/test/java/org/apache/mahout/math/stats/LogLikelihoodTest.java?rev=1409688&r1=1409687&r2=1409688&view=diff
==============================================================================
--- mahout/trunk/math/src/test/java/org/apache/mahout/math/stats/LogLikelihoodTest.java (original)
+++ mahout/trunk/math/src/test/java/org/apache/mahout/math/stats/LogLikelihoodTest.java Thu Nov 15 08:21:41 2012
@@ -58,12 +58,25 @@ public final class LogLikelihoodTest ext
   }
 
   @Test
-  public void testRootLogLikelihood() throws Exception {
+  public void testRootLogLikelihood() {
     // positive where k11 is bigger than expected.
     assertTrue(LogLikelihood.rootLogLikelihoodRatio(904, 21060, 1144, 283012) > 0.0);
 
     // negative because k11 is lower than expected
     assertTrue(LogLikelihood.rootLogLikelihoodRatio(36, 21928, 60280, 623876) < 0.0);
+
+    assertEquals(Math.sqrt(2.772589), LogLikelihood.rootLogLikelihoodRatio(1, 0, 0, 1), 0.000001);
+    assertEquals(-Math.sqrt(2.772589), LogLikelihood.rootLogLikelihoodRatio(0, 1, 1, 0), 0.000001);
+    assertEquals(Math.sqrt(27.72589), LogLikelihood.rootLogLikelihoodRatio(10, 0, 0, 10), 0.00001);
+
+    assertEquals(Math.sqrt(39.33052), LogLikelihood.rootLogLikelihoodRatio(5, 1995, 0, 100000), 0.00001);
+    assertEquals(-Math.sqrt(39.33052), LogLikelihood.rootLogLikelihoodRatio(0, 100000, 5, 1995), 0.00001);
+
+    assertEquals(Math.sqrt(4730.737), LogLikelihood.rootLogLikelihoodRatio(1000, 1995, 1000, 100000), 0.001);
+    assertEquals(-Math.sqrt(4730.737), LogLikelihood.rootLogLikelihoodRatio(1000, 100000, 1000, 1995), 0.001);
+
+    assertEquals(Math.sqrt(5734.343), LogLikelihood.rootLogLikelihoodRatio(1000, 1000, 1000, 100000), 0.001);
+    assertEquals(Math.sqrt(5714.932), LogLikelihood.rootLogLikelihoodRatio(1000, 1000, 1000, 99000), 0.001);
   }
 
   @Test