У меня есть фрейм данных:
+---------------+----------------+------------+---------+--------+-------------+---------------+
time | longitude |latitude |speed |Duration| Distance | Acceleration |
+---------------+----------------+------------+---------+--------+-------------+----------------
17/02/2020 00:56|-7.1732833 | 32.0414966 | 50 | 600 | 0.0 | ------
17/02/2020 01:06|-7.1732833 | 32.0414966 | 60 | 600 | 0.0 |------
17/02/2020 01:36|-7.1732833 | 32.0414966 | 74 | 600 | 0.0 |-------
17/02/2020 01:46|-7.1732833 | 32.0414966 | 85 | 600 | 0.0 |------
17/02/2020 01:56|-7.1732833 | 32.0414966 | 32 | 600 | 0.0 |--------
Я хочу применить проверку гипотезы z к столбцу расстояния.
Я пытался это сделать:
//Divide the trajectory into training and test data sets
val splits =DF_F.cache().randomSplit(Array(0.6, 0.4), seed = 11L)
val training = splits(0)
val test =splits(1)
//For Z-test, calculate mean (µ) and standard deviation (σ) of the training data set for distance
for the normal distribution such that distance ∼ N1(µ, σ2)
import training.sparkSession.implicits._
val stddv_d= training.select(col("Distance").cast("double")).as[Double].rdd.stdev()
val moy_d = training.select(col("Distance").cast("double")).as[Double].rdd.mean()
//Define null and alternate hypothesis for the points belongs to different distribution where µ1>
µ0 at the specific significant level(α = 0.05).
// Calculate z score for all points of the test data set using corresponding normal distributions
//for distance
val score = test.withColumn("z test_distance", (col("Distance") - moy_d) / stddv_d)
// Consider critical region for the α= 0.05 which is [1.645, ∞] and right tailed test.
def cdf (x:Double): Double ={
val normm = new NormalDistribution(0,1)
1-normm.cumulativeProbability(x)
}
val fun= udf(cdf _)
a = 0.05
val p_value = score.cache().withColumn("p_value_distance",fun(col("z test_distance")))
println(p_value.cache().filter(col("p_value_distance")>a and (col("p-value_speed")>a) )
- вот что Я сделал это логично и правильно. Я не знаю, логичен ли расчет z-показателя только по данным испытаний, и логично сделать условие критической области только по данным испытаний. Пожалуйста помоги ! Заранее спасибо