R 用尺度参数拟合学生分布

R 用尺度参数拟合学生分布,r,R,我有低于x和y的值,正如你们所看到的,x基本上是负数,基本上我只有我观察到的数据的PDF的左边 我必须用一个学生分布来拟合它,并找出自由度和尺度参数 问题是,估计的分布将有一个非常小的方差(即小尺度参数)。因此,当我使用下面的方法来拟合分布时,无论我设置什么初始值,nls都无法收敛 我在下面的代码中使用了一个额外的参数c,因为我使用它来缩放分布:dt(x/a,df)。因此,为了保持概率不变,我不可避免地必须对输出计时,但必须是一个常数。我相信这个额外的参数会导致较差的收敛性,但我不知道如何更好地

我有低于x和y的值,正如你们所看到的,x基本上是负数,基本上我只有我观察到的数据的PDF的左边

我必须用一个学生分布来拟合它,并找出自由度和尺度参数

问题是,估计的分布将有一个非常小的方差(即小尺度参数)。因此,当我使用下面的方法来拟合分布时,无论我设置什么初始值,nls都无法收敛

我在下面的代码中使用了一个额外的参数c,因为我使用它来缩放分布:
dt(x/a,df)
。因此,为了保持概率不变,我不可避免地必须对输出计时,但必须是一个常数。我相信这个额外的参数会导致较差的收敛性,但我不知道如何更好地拟合分布

我已经寻找了分发配件包,但这些包需要一个完整的分发,而我只有它的左侧

      x          y
1  -0.0050   0.000000
2  -0.0045  26.723019
3  -0.0040  28.557704
4  -0.0035  41.085068
5  -0.0030  66.258445
6  -0.0025  81.129807
7  -0.0020  83.751611
8  -0.0015 130.378353
9  -0.0010 157.806018
10 -0.0005 201.505657
11  0.0000 949.650354
12  0.0005 193.721270

dat<-data.frame(x=x,y=y)
res<-nls( y~(dt(x/a,df)*c), dat,
          start=list(a=0.000201, df=0.9, c=2104), trace = TRUE)
xy
1  -0.0050   0.000000
2  -0.0045  26.723019
3  -0.0040  28.557704
4  -0.0035  41.085068
5  -0.0030  66.258445
6  -0.0025  81.129807
7  -0.0020  83.751611
8  -0.0015 130.378353
9  -0.0010 157.806018
10 -0.0005 201.505657
11  0.0000 949.650354
12  0.0005 193.721270

数据你确定这是在零附近对称的吗?我问这个问题是因为点
x=0.0010
x=0.0015
x=0.0020
x=-0.0010
x=-0.0015
x=-0.0020
小得多。由于实验条件,0.0015和0.0020的值小得多。即使没有这三个值,我也无法拟合分布。我想我应该把它从这里删除,以保持简单。非常感谢您指出这一点。也许您应该使用TDist,迭代几个df和scale参数,并为每个参数测量距离和学生分布之间的距离。与您的距离较低(可能是平方距离)的分布更能描述您的数据。