2017-01-12 6 views
2

Я просматриваю пример HypothesisTestingKolmogorovSmirnovTestExample.scala для искры и, похоже, не может понять, что касается CDF.Spark mllib.stat.Statistics - kolmogorovSmirnovTest CDF

Их пример:

import org.apache.spark.{SparkConf, SparkContext} 
import org.apache.spark.mllib.stat.Statistics 
import org.apache.spark.rdd.RDD 

val data: RDD[Double] = sc.parallelize(Seq(0.1, 0.15, 0.2, 0.3, 0.25)) // an RDD of sample data 
val myCDF = Map(0.1 -> 0.2, 0.15 -> 0.6, 0.2 -> 0.05, 0.3 -> 0.05, 0.25 -> 0.1) 
val testResult2 = Statistics.kolmogorovSmirnovTest(data, myCDF) 
println(testResult2) 

Это возвращает:

Very strong presumption against null hypothesis: Sample follows theoretical distribution. 

Это имеет смысл - то, что не есть, когда я пытаюсь, чтобы не отказаться от Null:

val data: RDD[Double] = sc.parallelize(Seq(0.1, 0.15, 0.2, 0.3, 0.25)) // an RDD of sample data 
val myCDF = Map(0.1 -> 0.1, 0.15 -> 0.15, 0.2 -> 0.2, 0.3 -> 0.3, 0.25 -> 0.25) //CDF matching the data distribution 
val testResult2 = Statistics.kolmogorovSmirnovTest(data, myCDF) 
println(testResult2) 

Это ТАКЖЕ возвращает:

Very strong presumption against null hypothesis: Sample follows theoretical distribution. 

Что дает? CDF и данные - это то же самое распределение, не так ли? Почему Нуль был бы отвергнут? Что я предполагаю/делаю неправильно?

ответ

0

Что такое сценарий, вы можете использовать тест KS:

KS Test является одним из Добра-FIT-теста должны быть выполнены после подгонки распределения для данных.

этот тест скажет вам, является ли идентифицированный дистрибутив данными правильным или нет. нам нужно проверить это с помощью p-значения.

если значение p> 0,05, то распределение, которое вы установили для данных, является прекрасным. значение p равно < 0,05, тогда вам нужны данные с разным распределением.

Отклонение Нулевые значения, значение p равно < 0,05: Данные Не подходит для данного распределения