1

Similar documents
> usdata01 と打ち込んでエンター キーを押すと V1 V2 V : : : : のように表示され 読み込まれていることがわかる ここで V1, V2, V3 は R が列のデータに自 動的につけた変数名である ( variable

様々なミクロ計量モデル†

Microsoft PowerPoint - e-stat(OLS).pptx

dae opixrae 1 Feb Mar Apr May Jun と表示される 今 必要なのは opixrae のデータだけなので > opixrae=opixdaa$opi

切片 ( 定数項 ) ダミー 以下の単回帰モデルを考えよう これは賃金と就業年数の関係を分析している : ( 賃金関数 ) ここで Y i = α + β X i + u i, i =1,, n, u i ~ i.i.d. N(0, σ 2 ) Y i : 賃金の対数値, X i : 就業年数. (

Microsoft Word - Matlab_R_MLE.docx

スライド 1

スライド 1

まず y t を定数項だけに回帰する > levelmod = lm(topixrate~1) 次にこの出力を使って先ほどのレジームスイッチングモデルを推定する 以下のように入力する > levelswmod = msmfit(levelmod,k=,p=0,sw=c(t,t)) ここで k はレジ

13章 回帰分析

回帰分析 単回帰

多変量解析 ~ 重回帰分析 ~ 2006 年 4 月 21 日 ( 金 ) 南慶典

Dependent Variable: LOG(GDP00/(E*HOUR)) Date: 02/27/06 Time: 16:39 Sample (adjusted): 1994Q1 2005Q3 Included observations: 47 after adjustments C -1.5

Microsoft PowerPoint - 統計科学研究所_R_重回帰分析_変数選択_2.ppt

ファイナンスのための数学基礎 第1回 オリエンテーション、ベクトル

tshaifu423

R による共和分分析 1. 共和分分析を行う 1.1 パッケージ urca インスツールする 共和分分析をするために R のパッケージ urca をインスツールする パッケージとは通常の R には含まれていない 追加的な R のコマンドの集まりのようなものである R には追加的に 600 以上のパッ

0 部分的最小二乗回帰 Partial Least Squares Regression PLS 明治大学理 学部応用化学科 データ化学 学研究室 弘昌

Microsoft PowerPoint - 資料04 重回帰分析.ppt

分析のステップ Step 1: Y( 目的変数 ) に対する値の順序を確認 Step 2: モデルのあてはめ を実行 適切なモデルの指定 Step 3: オプションを指定し オッズ比とその信頼区間を表示 以下 このステップに沿って JMP の操作をご説明します Step 1: Y( 目的変数 ) の

タイトルを修正 軸ラベルを挿入グラフツール デザイン グラフ要素を追加 軸ラベル 第 1 横 ( 縦 ) 軸 凡例は削除 横軸は, 軸の目盛範囲の最小値 最 大値を手動で設定して調整 図 2 散布図の仕上げ見本 相関係数の計算 散布図を見ると, 因果関係はともかく, 人口と輸送量の間には相関関係があ

消費 統計学基礎実習資料 2017/11/27 < 回帰分析 > 1. 準備 今回の実習では あらかじめ河田が作成した所得と消費のファイルを用いる 課題 19 統計学基礎の講義用 HP から 所得と消費のファイルをダウンロードしてみよう 手順 1 検索エンジンで 河田研究室 と入力し検索すると 河田

201711grade2.pdf

Microsoft Word - appendix_b

Microsoft Word - å“Ÿåłžå¸°173.docx

Kumamoto University Center for Multimedia and Information Technologies Lab. 熊本大学アプリケーション実験 ~ 実環境における無線 LAN 受信電波強度を用いた位置推定手法の検討 ~ InKIAI 宮崎県美郷

Microsoft PowerPoint - S11_1 2010Econometrics [互換モード]

Excelにおける回帰分析(最小二乗法)の手順と出力

3. みせかけの相関単位根系列が注目されるのは これを持つ変数同士の回帰には意味がないためだ 単位根系列で代表的なドリフト付きランダムウォークを発生させてそれを確かめてみよう yと xという変数名の系列をを作成する yt=0.5+yt-1+et xt=0.1+xt-1+et 初期値を y は 10

Microsoft Word - reg.doc

統計的データ解析

14 化学実験法 II( 吉村 ( 洋 mmol/l の半分だったから さんの測定値は くんの測定値の 4 倍の重みがあり 推定値 としては 0.68 mmol/l その標準偏差は mmol/l 程度ということになる 測定値を 特徴づけるパラメータ t を推定するこの手

1.民営化

Probit , Mixed logit

Microsoft Word - 補論3.2

Microsoft Word - reg2.doc

経済統計分析1 イントロダクション

PowerPoint プレゼンテーション

Microsoft PowerPoint - Econometrics pptx

基礎統計

PowerPoint プレゼンテーション

<4D F736F F F696E74202D E738A5889BB8BE688E68A4F82CC926E89BF908492E882C98AD682B782E98CA48B862E707074>

Microsoft Word - 訋é⁄‘組渋å�¦H29æœ�末試é¨fi解ç�fl仟㆓.docx

7. フィリップス曲線 経済統計分析 (2014 年度秋学期 ) フィリップス曲線の推定 ( 経済理論との関連 ) フィリップス曲線とは何か? 物価と失業の関係 トレード オフ 政策運営 ( 財政 金融政策 ) への含意 ( 計量分析の手法 ) 関数形の選択 ( 関係が直線的でない場合の推定 ) 推

If(A) Vx(V) 1 最小 2 乗法で実験式のパラメータが導出できる測定で得られたデータをよく近似する式を実験式という. その利点は (M1) 多量のデータの特徴を一つの式で簡潔に表現できること. また (M2) y = f ( x ) の関係から, 任意の x のときの y が求まるので,

ビジネス統計 統計基礎とエクセル分析 正誤表

以下の内容について説明する 1. VAR モデル推定する 2. VAR モデルを用いて予測する 3. グレンジャーの因果性を検定する 4. インパルス応答関数を描く 1. VAR モデルを推定する ここでは VAR(p) モデル : R による時系列分析の方法 2 y t = c + Φ 1 y t

横浜市環境科学研究所

Microsoft PowerPoint - GLMMexample_ver pptx

回帰分析 重回帰(1)

回帰分析 重回帰(3)

基礎統計

発表の流れ 1. 回帰分析とは? 2. 単回帰分析単回帰分析とは? / 単回帰式の算出 / 単回帰式の予測精度 <R による演習 1> 3. 重回帰分析重回帰分析とは? / 重回帰式の算出 / 重回帰式の予測精度 質的変数を含む場合の回帰分析 / 多重共線性の問題 変数選択の基準と方法 <R による

2. 時系列分析 プラットフォームの使用法 JMP の 時系列分析 プラットフォームでは 一変量の時系列に対する分析を行うことができます この章では JMP のサンプルデ ータを用いて このプラットフォームの使用法をご説明します JMP のメニューバーより [ ヘルプ ] > [ サンプルデータ ]

Microsoft PowerPoint - Econometrics

Excelによるデータ分析

数値計算法

memo

と入力する すると最初の 25 行が表示される 1 行目は変数の名前であり 2 列目は企業番号 (1,,10),3 列目は西暦 (1935,,1954) を表している ( 他のパネルデータを分析する際もデ ータをこのように並べておかなくてはならない つまりまず i=1 を固定し i=1 の t に関

カイ二乗フィット検定、パラメータの誤差

景気指標の新しい動向

. 分析内容及びデータ () 分析内容中長期の代表的金利である円金利スワップを題材に 年 -5 年物のイールドスプレッドの変動を自己回帰誤差モデル * により時系列分析を行った * ) 自己回帰誤差モデル一般に自己回帰モデルは線形回帰モデルと同様な考え方で 外生変数の無いT 期間だけ遅れのある従属変

講義「○○○○」

NLMIXED プロシジャを用いた生存時間解析 伊藤要二アストラゼネカ株式会社臨床統計 プログラミング グループグルプ Survival analysis using PROC NLMIXED Yohji Itoh Clinical Statistics & Programming Group, A

_0212_68<5A66><4EBA><79D1>_<6821><4E86><FF08><30C8><30F3><30DC><306A><3057><FF09>.pdf

日心TWS

RSS Higher Certificate in Statistics, Specimen A Module 3: Basic Statistical Methods Solutions Question 1 (i) 帰無仮説 : 200C と 250C において鉄鋼の破壊応力の母平均には違いはな

PowerPoint プレゼンテーション

EBNと疫学

スライド 1

Microsoft Word - 計量研修テキスト_第5版).doc

ボルツマンマシンの高速化

4 段階推定法とは 予測に使うモデルの紹介 4 段階推定法の課題 2

Microsoft Word - SDA2012kadai07.doc

Microsoft Word - mstattext02.docx

Microsoft Word - Time Series Basic - Modeling.doc

<4D F736F F D208EC08CB18C7689E68A E F AA957A82C682948C9F92E82E646F63>

関数の定義域を制限する 関数のコマンドを入力バーに打つことにより 関数の定義域を制限することが出来ます Function[ < 関数 >, <x の開始値 >, <x の終了値 > ] 例えば f(x) = x 2 2x + 1 ( 1 < x < 4) のグラフを描くには Function[ x^

Microsoft Word - regression.doc

Microsoft Word - eviews6_

計算機シミュレーション

Microsoft PowerPoint - R-stat-intro_04.ppt [互換モード]

以下 変数の上のドットは時間に関する微分を表わしている (ex. 2 dx d x x, x 2 dt dt ) 付録 E 非線形微分方程式の平衡点の安定性解析 E-1) 非線形方程式の線形近似特に言及してこなかったが これまでは線形微分方程式 ( x や x, x などがすべて 1 次で なおかつ

Microsoft PowerPoint - 測量学.ppt [互換モード]

最小二乗法とロバスト推定

0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生

Microsoft PowerPoint - ch04j

Microsoft Word - econome4.docx

データ解析

第7章

スライド タイトルなし

DVIOUT

初めてのプログラミング

情報工学概論

Microsoft Word - apstattext04.docx

Microsoft Word - eviews1_

CAEシミュレーションツールを用いた統計の基礎教育 | (株)日科技研

13章 回帰分析

Microsoft Word doc

Microsoft Word - regression.doc

Transcription:

R による非線形最小二乗法. 非線形回帰モデル回帰モデルにおいて被説明変数が未知パラメータについて線形である場合は 線形回帰モデル とよばれる 例えば以下のようなモデルはすべて線形回帰モデルの例である ( 例 ) y x, ( 例 2) y log( x ), ( 例 3) log y x このようなモデルの場合は通常の最小二乗法によって未知パラメータ α β を推定する事ができる このような線形回帰モデルに対して 被説明変数が未知パラメータについて非線形である場合は 非線形回帰モデル と呼ばれる 例えば以下のようなモデルである ( 例 4) y exp( x ), ( 例 5) y exp( x ) ( 例 6) y sn( x ), ( 例 7) y x z このようなモデルはより一般的に y m( x, θ) と表せる ここで x は説明変数のベクトル θ は未知パラメータのベクトル ε は直接観測できない誤差項である 説明変数 x と誤差項 ε は独立であると仮定する 例えば上記の例 5 では x = x, θ = (α, β), m( x, θ ) exp( x ) となる このような非線形回帰モデルに含まれる未知パラメータを推定するには非線形最小二乗法と呼ばれる方法を用いる 非線形最小二乗法の具体的なやり方はここでは述べない ( 線形の最小二乗法と原理的にはまったく同じである ) 以下では R によって上記のようなモデルを推定する方法のみを述べる 2. R 関数 nls による非線形最小二乗法 2. 人口データの非線形モデル推定 R によって非線形最小二乗推定法を行うやり方を簡単に説明する 説明のために用いるデータとして パッケージの car の中に入っているアメリカの 0 年ごとの人口の推移のデータ ( 単位 : 百万人 ) を使用する まずパッケージ car をダウンロード ( インスツール ) する ( パッケージのダウンロードおよびインスツールの仕方はすでに説明したので省略 ) 次に > lbrary(car) としてパッケージを R に読み込ませて使用できるようにする パッケージを読み込んだので ここに入っている USPop というデータ ( アメリカの人口推移 ) が使用できる 最初の 5 行を見てみると > head(uspop,5) populaton 790 3.92924 2 800 5.308483 3 80 7.23988 4 820 9.638453 5 830 2.860702 となっている は西暦である データの特徴を視覚的にとらえるために散布図を描いてみる > plot(populaton~, data=uspop, man="u.s. populaton") この資料は私のゼミおよび講義で R の使用法を説明するために作成した資料です ホームページ上で公開しており 自由に参照して頂いて構いません ただし 内容について 一応検証してありますが 間違いがあるかもしれません 間違いがあった場合でもそれによって生じるいかなる損害 不利益について責任は負いかねますのでご了承ください

すると以下のような散布図が描かれる U.S. populaton populaton 0 50 00 50 200 250 800 850 900 950 2000 この図より明らかなように人口は西暦に比例して増えていくもののその関係は直線的ではない 例えばここに最小二乗法によって推定した直線を書き込んでみよう > ablne(lm(populaton~,data=uspop)) すると 以下のように直線が書き込まれる この直線はあまりデータにフィットしていないことがわかる U.S. populaton populaton 0 50 00 50 200 250 800 850 900 950 2000 上記から考えられるのは人口の推移は西暦と非線形の関係にあるであろうという事である そこで以下のような非線形回帰モデルを考える y m( x, ) exp[ ( 0, =,,N. x )] 2

ここで y は人口 x は西暦である 未知パラメータは θ = (α, β 0, β ) の 3 つである このような非線形のモデルを推定する R の関数として nls 関数がある 上記のモデルを nls 関数を用いて推定してみよう 以下のように入力する > result=nls(populaton~a/(+exp(-(b0+b*))), + start=lst(a=400,b0=-49,b=0.025),data= USPop, trace=true) ここで populaton は USPop のデータにある populaton が被説明変数である事を表している ~ の後の a/(+exp(-(b0+b*))) はそれに対して具体的にどのような非線形の関数をあてはめるかを指定している は USPop にある という変数である コマンドを打ち込んでいる途中で Enter キーを押せば次の行に移り その際 + と表示される ここでは上記の部分を打ち込んだ後 Enter キーによって次の行に移っている そこから次の start=lst(a=400,b0=-49,b=0.025) を打ち込んでいるが これは初期値と呼ばれるものである 非線形最小二乗法を始めるにはまず未知パラメータの値として初期値を指定する必要がある そこから収束計算によって 未知パラメータの真の値の推定値を計算する 初期値は基本的には適当な値でよいが 通常 この初期値が真の値に近ければ近いほど収束計算が早く終わる 逆に初期値が真の値から離れているほど計算に時間がかかる また場合によっては初期値が異なると計算結果が異なるという事もある いくつか異なった初期値を試すのが普通である ここでは上記のようにした 最後の trace=true は途中の収束計算の経過を表示するかどうかを指定するものである trace=true であれば途中の収束計算の経過を表示し trace=false であれば表示しない 何も入力しなければ自動的に trace=false となる Enter キーを押して上記のコマンドを実行すると 計算の途中結果が表示される 左からそれぞれ 非線形最小二乗法の残差平方和の値 a の値 b0 の値 b の値 の収束計算の途中経過が表示される 推定結果は summary 関数によって見ることができる > summary(result) Formula: populaton ~ a/( + exp(-(b0 + b * ))) Parameters: Estmate Std. Error t value Pr(> t ) a 440.833328 35.00036 2.60.4e-0 *** b0-42.706978.83938-23.22 2.08e-5 *** b 0.02606 0.00007 2.45 8.87e-5 *** --- Sgnf. codes: 0 *** 0.00 ** 0.0 * 0.05. 0. Resdual standard error: 4.909 on 9 degrees of freedom Number of teratons to convergence: 6 Acheved convergence tolerance:.48e-06 パラメータの推定値は Parameters: の下の Estmate の列に並んでいる Std.Error, t value, Pr(> t ) は標準誤差 それぞれ t 値 ( 推定値 / 標準誤差 : 真の値が 0 という帰無仮説の検定用 ) その P 値である Resdual standard error は誤差項 ε の標準偏差の推定値である 推定値の下での この非線形回帰モデルの残差は > resduals(result) によって見ることができる ( 確認してください ) また 推定値の下でのあてはめ値は 3

> predct(result) によって見ることができる ( 確認してください ) 実際の西暦と人口の値の散布図に非線形の当てはめ値の曲線を書き込むこともできる ( 以前の図を閉じて ) 改めて 実際の西暦と人口の散布図を書いておこう > plot(populaton~,uspop) 次にこの散布図に当てはま値の曲線を加えるために > lnes(seq(790,2000,by=0),predct(result)) と入力し エンターキーを押す ここで seq(790,2000,by=0) は 790 から 2000 まで 0 ずつ増加させた数列 ( 英語で sequence) のデータを作るという意味である すると散布図に当てはめ値の曲線が書き込まれた以下の図が出力される populaton 0 50 00 50 200 250 800 850 900 950 2000 上記の手順は例えば 曲線を書き込む手順をいくつかに段階わけして > pre=predct(result) > p=seq(790,2000,by=0) ( ここで p は予測 -predct- 用の西暦という事で p を付けているが 名前は何でもよい ) > lnes(p,pre) としても同じ図が出力される ( 確認してください ) さらに残差をプロットするには > res=resduals(result) > plot(uspop$,res,type='b') > ablne(h=0,lty=2) というコマンドを実行する 2 行目の ablne は線を加えるという事で h=0 は y 軸の 0 の部分に水平な (horzontal) 線を加えるという事である lty=2 はその線が点線となるようにするという事である 以下のような図が出力される 4

-5 0 5 800 850 900 950 2000 USPop$ また もとのデータは 2000 年までしかないが それ以降の年の人口の予測値を推定値の下でのこの非線形モデルを使用して予測したものを計算することもできる まず > p2 = data.frame(=seq(790,200,by=0)) によって 790 年から 200 年までの 0 年ごとのデータを作る 次に > pre2=predct(result,p2) とすれば 200 年以降 (23 個めから ) の予測値も出力され それに pre2 という名前がつけられる 最後に予測図と実際の値との図は > plot(populaton~,uspop,xlm=c(790,200),ylm=c(0,450)) > lnes(p2$,pre2) によって描くことができる 以下のような図が出力される populaton 0 00 200 300 400 res 800 850 900 950 2000 2050 200 5

2000 年以降の予測値が図示されているのがわかる 2.2 誤差項を AR() モデルにしてみる上の残差のプロットは残差に正の系列相関があることを示唆している 実際に残差の自己相関を > acf(resduals(result),lag.max=0) で計算してみると以下のようになる Seres resduals(result) ACF -0.4-0.2 0.0 0.2 0.4 0.6 0.8.0 これより 次の自己相関が高いことがわかる よって ( この図ではむしろ MA() のように見えるが ひとます ) 誤差項が AR() モデルに従っているとしてモデル化してみよう 以下のようなモデルを考える y 0 2 4 6 8 0 exp[ ( 0 x )], u, u ~..d. (0, σ 2 ) ここで ε = y α /(+exp[ (β 0 + β x )]) を ε = ε + u に代入すると このモデルは y y u () exp[ ( 0 x )] exp[ ( 0 x )] と表すことができる このモデルを推定してみよう このモデルの推定において注意すべき点の つが の推定である 定常性を仮定するなら の値の取 りうる範囲は < < となる よって推定値もこの範囲の値にならなければならないが 通常統計ソ フトの最適化アルゴリズムでは未知パラメーターについて最適化する際 パラメーターの取りうる範囲に制約を課さずに最適化するものがほとんどである つまりこの場合 そのようなアルゴリズムを用いて上記の を推定すると 計算の途中で が上記の範囲の外側の値を取ってしまう可能性があり その場合は目 的関数がおかしな値をとりアルゴリズムがストップしてしまう ( ただし 後に見るように実は nls 関数にはパラメーターの範囲を指定することができるアルゴリズムが存在する が ひとまずそれは使用しないものとして話を進める ) このような問題を避けるためには 例えば を直接推定するのではなく はある無制 約パラメーター κ の関数で その関数は から の間の値をとる すなわち ( ) ( ) であるして κ を推定し κ の推定値 ˆ を用いて を ˆ ( ˆ ) と推定する方法が考えられる こ のような変換としては 例えば ( ) 2( ), Lag ( ) exp( ) が考えられる ( ) はロジスティック分布の分布関数であり (0, ) の範囲の値を取るが それを 2 倍して を引いているので ( ) は (, ) の範囲の値を取ることになる それでは () 式のモデルを推定する ただし 今回は自己相関は正の値なので の取りうる値としては (0, ) とすれば十分であろう よって ( ) ( ) とする この時 () 式をパラメーター κ について書き直 6

すと y y u (2) exp[ ( 0 x )] exp( ) exp[ ( 0 x )] となる このモデルの推定において必要な系列は y y, x, x であるので それらを作っておこう ( データの数が一つ減ることに注意 ) 元のデータを見てみると > USPop$populaton [] 3.92924 5.308483 7.23988 9.638453 2.860702 [6] 7.063353 23.9876 3.44332 38.55837 50.89209 [] 62.979766 76.2268 92.228496 06.02537 23.202624 [6] 32.64569 5.325798 79.32375 203.30203 226.54299 [2] 248.709873 28.42906 > USPop$ [] 790 800 80 820 830 840 850 860 870 880 890 900 [3] 90 920 930 940 950 960 970 980 990 2000 なので 元のデータはそれぞれ 22 個ある ここからまず y の系列を作る ( これを pop とする ) > pop=uspop$populaton[2:22] > pop [] 5.308483 7.23988 9.638453 2.860702 7.063353 [6] 23.9876 3.44332 38.55837 50.89209 62.979766 [] 76.2268 92.228496 06.02537 23.202624 32.64569 [6] 5.325798 79.32375 203.30203 226.54299 248.709873 [2] 28.42906 同様に y の系列は ( これを popl とする L は lag の L) > popl=uspop$populaton[:2] > popl [] 3.92924 5.308483 7.23988 9.638453 2.860702 [6] 7.063353 23.9876 3.44332 38.55837 50.89209 [] 62.979766 76.2268 92.228496 06.02537 23.202624 [6] 32.64569 5.325798 79.32375 203.30203 226.54299 [2] 248.709873 同様に x と x の系列は > =USPop$[2:22] > L=USPop$[:2] と作ることができる それでは (2) 式を推定してみよう 以下のコマンドを打ち込む ( 少し長いが ) > result2=nls(pop~a/(+exp(-(b0+b*))) + +(/(+exp(-k)))*(popl-(a/(+exp(-(b0+b*l))))), + start=lst(a=400,b0=-49,b=0.025,k=0),trace=true) ( 適当なところで改行していることに注意 ) 結果は > summary(result2) Formula: pop ~ a/( + exp(-(b0 + b * ))) + (/( + exp(-k))) * (popl - (a/( + exp(-(b0 + b * L))))) Parameters: Estmate Std. Error t value Pr(> t ) a 633.93269 253.42655 2.504 0.022749 * b0-36.09054 6.823476-5.289 6.0e-05 *** 7

b 0.07933 0.003754 4.777 0.00075 *** k.666962.52234.095 0.288789 --- Sgnf. codes: 0 *** 0.00 ** 0.0 * 0.05. 0. Resdual standard error: 3.42 on 7 degrees of freedom Number of teratons to convergence: 2 Acheved convergence tolerance: 6.28e-06 となる ( ここで κ の推定値が有意になっていないが これは直観的には が 0.5 と有意に異ならないという ことで が 0 と異ならないということではないことに注意 ) κ の推定値から の推定値を計算してみると > /(+exp(-.666962)) [] 0.84704 である だいたいˆ 0.84 であり かなり高い値になっている 残差をプロットしてみると > plot(resduals(result2),type="l") resduals(result2) -8-6 -4-2 0 2 4 5 0 5 20 Index のようになる その自己相関は > acf(resduals(result2),lag.max=0) Seres resduals(result2) ACF -0.4-0.2 0.0 0.2 0.4 0.6 0.8.0 0 2 4 6 8 0 となる 一応自己相関が消えているのがわかる またあてはめ値のグラフは > plot(pop~) > lnes(seq(800,2000,by=0),predct(result2)) Lag より下の図のようになる (pop と は 800 から 2000 までの値であることに注意 ) 下の図のさらに 8

下の図はもとのあてはめ値のグラフ 0 50 00 50 200 250 800 850 900 950 2000 populaton 0 50 00 50 200 250 pop 800 850 900 950 2000 若干あてはまりがよくなっているのが見て取れる これは推定結果のところの誤差項の分散が小さくなっていることからもわかる このモデルを用いて予測を行うこともできるが 若干の注意が必要である このモデルでは説明変数に被説明変数のラグが入っているため 期先予測であれば ( 被説明変数の ) 現在の値 2 期先予測であれば 期先の値が必要になる 期先の値はもちろんまだ観測されていないので その予測値で置き換えて 2 期先予測を行い またその 2 期先予測値を用いて 3 期先予測を行うという逐次的に予測値を計算する必要が出てくる 4. アルゴリズム port を使用してパラメーターの範囲を指定するさて 上記では最適化のアルゴリズムにおいてパラメーターの範囲が指定できない場合の対処法を見てみたが 実は nls 関数では最適化の際にパラメーターの範囲を指定できる port というアルゴリズムが使用できる このアルゴリズムを使用することによって 最適化の際にそれぞれのパラメーターが取りうる範囲の上限と下限を指定することができる このアルゴリズムを用いて () 式のモデルにおいて を直接 推定してみよう ( ここで は f というパラメーターで表すとする ) 以下のように入力する > result2=nls(pop~a/(+exp(-(b0+b*)))+ + f*(popl-(a/(+exp(-(b0+b*l))))), + alg="port",start=lst(a=400,b0=-49,b=0.025,f=0), + lower=lst(a=0,b0=-inf,b=0,f=-),upper=lst(a=inf,b0=inf,b=inf,f=)) 9

ここで alg="port" によって port ( 何かの略だろうがよくわからない ) というアルゴリズムを使用することを指定し lower=lst(a=0,b0=-inf,b=0,f=-) でそれぞれのパラメーターの下限を upper=lst(a=inf,b0=inf,b=inf,f=)) で上限を指定している (Inf は を意味する ) 推定結果は > summary(result2) Formula: pop ~ a/( + exp(-(b0+b*)))+f*(popl-(a/(+exp(-(b0 + b * L))))) Parameters: Estmate Std. Error t value Pr(> t ) a 633.927689 253.3598 2.504 0.022747 * b0-36.0957 6.823368-5.289 6.0e-05 *** b 0.07933 0.003754 4.777 0.00075 *** f 0.8468 0.203389 4.36 0.00069 *** --- Sgnf. codes: 0 *** 0.00 ** 0.0 * 0.05. 0. Resdual standard error: 3.42 on 7 degrees of freedom Algorthm "port", convergence message: relatve convergence (4) となる 今回も f の推定値がほぼ 0.84 であり そのほかの推定値もほぼ同じである 0