7

データセットを使用して R で非線形重回帰を実行しようとしています。数千行あるため、最初の数行をここに配置します。

      Header.1 Header.2   Header.3  Header.4 Header.5 Header.6 Header.7
1          -60      -45 615 720        1.8318          0.428    -11.614
2          -59      -45 616 720        1.8322          0.429    -11.498
3          -58      -45 617 720        1.8326          0.430    -11.383
4          -57      -45 618 720        1.8330          0.430    -11.267
5          -56      -45 619 720        1.8334          0.431    -11.152
6          -55      -45 620 720        1.8338          0.432    -11.036
7          -54      -45 621 720        1.8342          0.433    -10.921
8          -53      -45 622 720        1.8346          0.433    -10.806
9          -52      -45 623 720        1.8350          0.434    -10.691
10         -51      -45 624 720        1.8354          0.435    -10.576
11         -50      -45 625 720        1.8357          0.435    -10.461
12         -49      -45 626 720        1.8361          0.436    -10.347
13         -48      -45 627 720        1.8365          0.437    -10.232
14         -47      -45 628 720        1.8369          0.438    -10.118
15         -46      -45 629 720        1.8373          0.438    -10.003
16         -45      -45 630 720        1.8377          0.439     -9.889
17         -44      -45 631 720        1.8381          0.440     -9.775
18         -43      -45 632 720        1.8385          0.440     -9.660
19         -42      -45 633 720        1.8389          0.441     -9.546
20         -41      -45 634 720        1.8393          0.442     -9.432
21         -40      -45 635 720        1.8397          0.442     -9.318
22         -39      -45 636 720        1.8400          0.443     -9.205
23         -38      -45 637 720        1.8404          0.444     -9.091
24         -37      -45 638 720        1.8408          0.445     -8.977
25         -36      -45 639 720        1.8412          0.445     -8.864
26         -35      -45 640 720        1.8416          0.446     -8.751
27         -34      -45 641 720        1.8420          0.447     -8.637
28         -33      -45 642 720        1.8424          0.447     -8.524

Header.1 と Header.2 を独立変数として使用し、Header.7 を従属変数として使用して、非線形重回帰を実行する方法を非常に簡単な言葉で説明してもらえますか? を使用して線形重回帰を正常に実行しましたlm()が、 を使用しようとするとnls()、次のエラー メッセージが表示されました。

getInitial.default(func, data, mCall = as.list(match.call(func, : 「関数」オブジェクトの「getInitial」メソッドが見つかりません) のエラー

回帰を実行するためにさらに情報が必要な場合は、お知らせください。ありがとう。

4

2 に答える 2

10

を使用するnlsには、式と変数の開始値の両方を指定する必要があります。したがって、最初に行うことは、どのような種類の非線形式を試行して当てはめたいかを決定することです。

たとえば、次のようにします。

m2<-nls(Header.7 ~ Header.1*a + Header.2*b + c,data=data,start=c(a=0,b=0,c=0))

フィッティングしているモデルが線形であるため、通常の線形回帰と (ほぼ) 同じ結果が得られます。「デフォルト」の非線形回帰はないため、適合させる非線形モデルの種類を把握する必要があります。詳細?nlsについては、を参照してください。

于 2013-12-21T17:08:26.627 に答える
6

したがって、線形モデルでは、パラメーターは暗黙的に指定されます。

fit <- lm(Header.7 ~ Header.1 + Header.2, data=...)

モデルに適合します:

Header.7 = a * Header.1 + b * Header.2 + c

非線形モデルでは、@mrip が示すように、パラメーターを明示的に指定する必要があります。もちろん、非線形モデルでは、モデル式は任意に複雑になる可能性があります。

fit <- nls(Header.7 ~ exp(a*Header.1 + b/Header.2), data=..., start=c(...))

最後に、start はオプションです: nls(...) は推測を行います。しかし、モデルが意味のあるパラメーター値に収束するという保証はなく、まったく収束することさえありません。

于 2013-12-21T17:37:00.600 に答える