2

数日間、私はこの問題に取り組んできましたが、行き詰まっています...

各入力 x に対して出力 y を与える R で多数のモンテカルロ シミュレーションを実行しましたが、x と y の間には明らかにいくつかの単純な関係があるため、式とそのパラメーターを特定したいと考えています。しかし、「Low x」シリーズと「High x」シリーズの両方に全体的にうまく適合していないようです。たとえば、次のような対数を使用しています。

dat = data.frame(x=x, y=y)
fit = nls(y~a*log10(x)+b, data=dat, start=list(a=-0.8,b=-2), trace=TRUE)

また、代わりに (log10(x), 10^y) を当てはめようとしましたが、これはうまく当てはまりますが、逆変換は (x, y) にうまく当てはまりません。

誰でもこれを解決できますか?

解決策を見つけた方法を説明してください。

ありがとう!

編集:

迅速なフィードバックありがとうございます。

私がシミュレートしているものの理論モデルを認識していないため、比較の根拠がありません。x と y の本当の関係がわかりません。ちなみに私は統計学者ではありません。

基礎となるモデルは、一種の確率的フィードバック成長モデルです。私の目的は、ある入力 x>0 が与えられた場合の長期的な成長率 g を決定することです。したがって、システムの出力は、反復ごとに 1+g の割合で指数関​​数的に増加します。システムは、システムのサイズに基づいて各反復で確率的生産を行い、この生産の一部が出力され、残りは別の確率変数によって決定されるシステムに保持されます。MC シミュレーションから、システム出力の成長率は、テストした x ごとに対数正規分布であることがわかりました。データ系列の y は、成長率 g の対数平均です。x が無限大に近づくにつれて、g はゼロに近づきます。x がゼロに向かうにつれて、g は無限大に向かいます。

x から y を計算できる関数が欲しいです。実際には、0 から 10 の範囲の低い x の関数のみが必要です。y=1.556 * x^-0.4 -3.58 でかなりうまく適合できましたが、大きな x にはうまく適合しませんでした。すべての x>0 に対して一般的な関数が必要です。Spacedman のポリ フィットも試してみましたが (ありがとうございます!)、重要な x=1 から 6 の範囲では十分にフィットしません。

何か案は?

編集2:

Grothendieck による詳細な提案も含めて、さらに実験しました (ありがとう!) いくつかの検討の結果、ある関数を別の関数よりも選択するための理論的根拠がないため、おそらく x- にのみ関心があると判断しました。値が 1 から 6 の間の場合、うまく適合する単純な関数を使用する必要があります。だから私は y~a*x^b+c を使って、高い x には合わないことを書き留めました。論文の最初のドラフトが完成したら、コミュニティの助けを再び求めるかもしれません。モンテカルロ モデルを見れば、x と y の間の理論的な関係に気付く人もいるでしょう。

再度、感謝します!

低 x シリーズ:

      x          y
1   0.2 -0.7031864
2   0.3 -1.0533648
3   0.4 -1.3019655
4   0.5 -1.4919278
5   0.6 -1.6369545
6   0.7 -1.7477481
7   0.8 -1.8497117
8   0.9 -1.9300209
9   1.0 -2.0036842
10  1.1 -2.0659970
11  1.2 -2.1224324
12  1.3 -2.1693986
13  1.4 -2.2162889
14  1.5 -2.2548485
15  1.6 -2.2953162
16  1.7 -2.3249750
17  1.8 -2.3570141
18  1.9 -2.3872684
19  2.0 -2.4133978
20  2.1 -2.4359624
21  2.2 -2.4597122
22  2.3 -2.4818787
23  2.4 -2.5019371
24  2.5 -2.5173966
25  2.6 -2.5378936
26  2.7 -2.5549524
27  2.8 -2.5677939
28  2.9 -2.5865958
29  3.0 -2.5952558
30  3.1 -2.6120607
31  3.2 -2.6216831
32  3.3 -2.6370452
33  3.4 -2.6474608
34  3.5 -2.6576862
35  3.6 -2.6655606
36  3.7 -2.6763866
37  3.8 -2.6881303
38  3.9 -2.6932310
39  4.0 -2.7073198
40  4.1 -2.7165035
41  4.2 -2.7204063
42  4.3 -2.7278532
43  4.4 -2.7321731
44  4.5 -2.7444773
45  4.6 -2.7490365
46  4.7 -2.7554178
47  4.8 -2.7611471
48  4.9 -2.7719188
49  5.0 -2.7739299
50  5.1 -2.7807113
51  5.2 -2.7870781
52  5.3 -2.7950429
53  5.4 -2.7975677
54  5.5 -2.7990999
55  5.6 -2.8095955
56  5.7 -2.8142453
57  5.8 -2.8162046
58  5.9 -2.8240594
59  6.0 -2.8272394
60  6.1 -2.8338866
61  6.2 -2.8382038
62  6.3 -2.8401935
63  6.4 -2.8444915
64  6.5 -2.8448382
65  6.6 -2.8512086
66  6.7 -2.8550240
67  6.8 -2.8592950
68  6.9 -2.8622220
69  7.0 -2.8660817
70  7.1 -2.8710430
71  7.2 -2.8736998
72  7.3 -2.8764701
73  7.4 -2.8818748
74  7.5 -2.8832696
75  7.6 -2.8833351
76  7.7 -2.8891867
77  7.8 -2.8926849
78  7.9 -2.8944987
79  8.0 -2.8996780
80  8.1 -2.9011012
81  8.2 -2.9053911
82  8.3 -2.9063661
83  8.4 -2.9092228
84  8.5 -2.9135426
85  8.6 -2.9101730
86  8.7 -2.9186316
87  8.8 -2.9199631
88  8.9 -2.9199856
89  9.0 -2.9239220
90  9.1 -2.9240167
91  9.2 -2.9284608
92  9.3 -2.9294951
93  9.4 -2.9310985
94  9.5 -2.9352370
95  9.6 -2.9403694
96  9.7 -2.9395336
97  9.8 -2.9404153
98  9.9 -2.9437564
99 10.0 -2.9452175

ハイエックスシリーズ:

              x         y
1  2.000000e-01 -0.701301
2  2.517851e-01 -0.907446
3  3.169786e-01 -1.104863
4  3.990525e-01 -1.304556
5  5.023773e-01 -1.496033
6  6.324555e-01 -1.674629
7  7.962143e-01 -1.842118
8  1.002374e+00 -1.998864
9  1.261915e+00 -2.153993
10 1.588656e+00 -2.287607
11 2.000000e+00 -2.415137
12 2.517851e+00 -2.522978
13 3.169786e+00 -2.621386
14 3.990525e+00 -2.701105
15 5.023773e+00 -2.778751
16 6.324555e+00 -2.841699
17 7.962143e+00 -2.900664
18 1.002374e+01 -2.947035
19 1.261915e+01 -2.993301
20 1.588656e+01 -3.033517
21 2.000000e+01 -3.072003
22 2.517851e+01 -3.102536
23 3.169786e+01 -3.138539
24 3.990525e+01 -3.167577
25 5.023773e+01 -3.200739
26 6.324555e+01 -3.233111
27 7.962143e+01 -3.259738
28 1.002374e+02 -3.291657
29 1.261915e+02 -3.324449
30 1.588656e+02 -3.349988
31 2.000000e+02 -3.380031
32 2.517851e+02 -3.405850
33 3.169786e+02 -3.438225
34 3.990525e+02 -3.467420
35 5.023773e+02 -3.496026
36 6.324555e+02 -3.531125
37 7.962143e+02 -3.558215
38 1.002374e+03 -3.587526
39 1.261915e+03 -3.616800
40 1.588656e+03 -3.648891
41 2.000000e+03 -3.684342
42 2.517851e+03 -3.716174
43 3.169786e+03 -3.752631
44 3.990525e+03 -3.786956
45 5.023773e+03 -3.819529
46 6.324555e+03 -3.857214
47 7.962143e+03 -3.899199
48 1.002374e+04 -3.937206
49 1.261915e+04 -3.968795
50 1.588656e+04 -4.015991
51 2.000000e+04 -4.055811
52 2.517851e+04 -4.098894
53 3.169786e+04 -4.135608
54 3.990525e+04 -4.190248
55 5.023773e+04 -4.237104
56 6.324555e+04 -4.286103
57 7.962143e+04 -4.332090
58 1.002374e+05 -4.392748
59 1.261915e+05 -4.446233
60 1.588656e+05 -4.497845
61 2.000000e+05 -4.568541
62 2.517851e+05 -4.628460
63 3.169786e+05 -4.686546
64 3.990525e+05 -4.759202
65 5.023773e+05 -4.826938
66 6.324555e+05 -4.912130
67 7.962143e+05 -4.985855
68 1.002374e+06 -5.070668
69 1.261915e+06 -5.143341
70 1.588656e+06 -5.261585
71 2.000000e+06 -5.343636
72 2.517851e+06 -5.447189
73 3.169786e+06 -5.559962
74 3.990525e+06 -5.683828
75 5.023773e+06 -5.799319
76 6.324555e+06 -5.929599
77 7.962143e+06 -6.065907
78 1.002374e+07 -6.200967
79 1.261915e+07 -6.361633
80 1.588656e+07 -6.509538
81 2.000000e+07 -6.682960
82 2.517851e+07 -6.887793
83 3.169786e+07 -7.026138
84 3.990525e+07 -7.227990
85 5.023773e+07 -7.413960
86 6.324555e+07 -7.620247
87 7.962143e+07 -7.815754
88 1.002374e+08 -8.020447
89 1.261915e+08 -8.229911
90 1.588656e+08 -8.447927
91 2.000000e+08 -8.665613
4

2 に答える 2

9

根底にあるプロセスのアイデアがなければ、多項式に好きなだけ多くのコンポーネントを当てはめることもできます。あなたは仮説を検証しているようには見えません (たとえば、重力の強さは距離に反比例するなど)。そのため、機能的な形を好きなように釣り上げることができます。データは、どれが「正しい」かを示す可能性は低いです。

したがって、データを x および y コンポーネントを含むデータ フレームに読み込むと、次のことができます。

data$lx=log(data$x)
plot(data$lx,data$y) # needs at least a cubic polynomial 
m1 = lm(y~poly(lx,3),data=data) # fit a cubic
points(data$lx,fitted(m1),pch=19)

適合点はかなり近いです。多項式の次数を 3 から 7 に変更すると、点は同一になります。これは、Y 値が実際に X 値の 7 次多項式から得られているということですか? いいえ。しかし、ポイントを通過する曲線があります。

この縮尺では、隣接する点を直線で結ぶだけで、プロットが非常に滑らかになります。しかし、なぜ Y が X に依存するのか (逆二乗の法則や指数関数的成長など) についての基礎となる理論がなければ、あなたがしているのはドットを結合することだけであり、それを行う方法は無限にあります。

于 2013-02-01T12:16:27.760 に答える
8

x/y 対 x の回帰y低いデータに対して対をプロットし、少し遊んでみると、ほぼ線形でxあると思われるので、2 つのパラメーターのみに基づく関係が得られる回帰を試してください。x/yxx/yx

y = x / (a + b * x)

ここで、a と b は回帰係数です。

> lm(x / y ~ x, lo.data)

Call:
lm(formula = x/y ~ x, data = lo.data)

Coefficients:
(Intercept)            x  
    -0.1877      -0.3216  

MM.2上記は、drc R パッケージの MM.2 モデルに変換できます。以下に示すように、このモデルは高い R 2を持っています。また、他のモデルと比較するために使用できる AIC を計算します (低いほど良い)。

> library(drc)
> fm.mm2 <- drm(y ~ x, data = lo.data, fct = MM.2())
> cor(fitted(fm.mm2), lo.data$y)^2
[1] 0.9986303
> AIC(fm.mm2)
[1] -535.7969

CRS.6これは、他のいくつかの drc モデルを試すことを示唆しており、私たちが試したもののうち、CRS.6 は特に AIC が低く、視覚的によく適合しているようです。

> fm.crs6 <- drm(y ~ x, data = lo.data, fct = CRS.6())
> AIC(fm.crs6)
[1] -942.7866
> plot(fm.crs6) # see output below

これにより、2 パラメーター モデルから使用できるモデルの範囲が得られます。このMM.2モデルは、CRS.6 ほど適合 (AIC によると) は良くありませんが、それでもかなり適合し、2 つのパラメーターのみまたは 6 パラメーターの利点があります。CRS.6優れたAICを搭載したモデル。AIC は、より多くのパラメーターを持つモデルに対して既にペナルティを課しているため、より良い AIC を持つことは、より多くのパラメーターを持つことの結果ではないことに注意してください。

その他ローとハイの両方が同じモデル フォームを持つ必要があると考えられる場合は、ローとハイの両方に適合する単一のモデル フォームを見つけることが、モデル フォームを選択するための別の基準として使用される可能性があります。drc モデルに加えて、 Akbar et al, IRJFE, 2010の (2.1)、(2.2)、(2.3)、および (2.4) には、MM.2 モデルに似た降伏密度モデルもいくつかあります。試される。

スクリーンショット

更新: drc パッケージに関してこれを作り直しました。

于 2013-02-02T07:29:49.640 に答える