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