我需要计算期望遵循泊松分布的数据集的Chi ^ 2概率。我有观察到的频率和理论频率。我的自由度是7。
import java.util.*;
abstract class Shape
{
int area;
abstract void area();
}
class Square extends Shape
{
int len;
void area()
{
Scanner s = new Scanner(System.in);
System.out.print("Enter the lenght of the square: ");
len=s.nextInt();
}
public void displayarea()
{
Square q= new Square();
q.area();
System.out.println("The area of the square is: "+(len*len));
}
}
class Rectangle extends Shape
{
int l,b;
public void area()
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter the lenght of the rectangle: ");
l=sc.nextInt();
System.out.println("Enter the breadth of the rectangle: ");
b=sc.nextInt();
}
public void displayarea()
{
Rectangle r = new Rectangle();
r.area();
System.out.println("The area of the rectangle is: "+(l*b));
}
}
public class Postlab
{
public static void main(String[] args)
{
Rectangle rectangle = new Rectangle();
Square square = new Square();
rectangle.displayarea();
square.displayarea();
}
}
不幸的是,这返回了Chi ^ 2的正确值,但没有相关的概率。
realFreq = [ 2. 3. 9. 8. 6. 2. 2. 1.]
expectedFreq = [ 1.69352235 5.0292482 7.46767156 7.39224054
5.48817858 3.25964546 1.61335987 0.6844557 ]
dof = 7
chi_statistic, p_value = scipy.stats.chisquare(realFreq,expectedFreq,dof)
它应该给我返回pvalue = 0.959218的值。
如果我离开自由度参数,它将返回一些值。
最多6个自由度,它会返回一个p值。
我要去哪里错了?我是否对这个问题了解得太迟?或者它是 statistic=2.0112702570397993, pvalue=nan
函数的某种用法?
谢谢,
戈登
答案 0 :(得分:0)
我的错误。 vue-select2
scipy.stats.chisquare(f_obs = , f_exp= , ddof = )
代表自由度增量。由于该功能自动假定自由度为N-1。