> rm(list=ls(all=TRUE))
>
> ##"chow1.txt"データファイルを"chow"に読み込み
> chow <- matrix(scan("chow.txt"),nrow=39,byrow=TRUE)
Read 195 items
>
> ##データ系列名を記述した"chowname.txt"を"chow.name"に読み込み
> chow.name <- scan("chowname.txt",what="")
Read 5 items
>
> ##"chow"の系列名を"chow.name"で定義
> ##行の名前を付けないことを"NULL""で宣言
> dimnames(chow) <- list(NULL,chow.name)
>
> ##パッケージ"data.frame"を用いて,桁数を縮小しデータスペースを最小化
> chow <- data.frame(chow)
> y <-chow$y
> maei <-chow$maei
> maex <-chow$maex
> atoi <-chow$atoi
> atox <-chow$atox
>
> ols <- lm(y~maei+maex+atoi+atox+0)
> ols.result <- summary(ols)
> #ols.result
>
> deviance <- deviance(ols)
> deviance
[1] 0.5995963
>
> AIC <- AIC(ols)
> AIC
[1] -42.15015
No.01883 Re: AICがマイナスに・・・・ 【青木繁伸】 2006/12/13(Wed) 07:26
せっかく実行例を挙げてくれても,chow1.txt がないので,誰も追試できません。
問題を再現できる最小限の環境を提示するのが良いと思います。
まあ,追試しなくても分かる部分はあるでしょうが
AIC のオンラインヘルプはお読みになった上で,問題が解決しないということですね
その中に出てくる関数,extractAIC もご覧になったと。。。
それと,質問とは関係ないですが,> chow <- data.frame(chow)としなくても,
> y <-chow$y
> maei <-chow$maei
> maex <-chow$maex
> atoi <-chow$atoi
> atox <-chow$atox
> ols <- lm(y~maei+maex+atoi+atox+0)> ols <- lm(y~maei+maex+atoi+atox+0, chow)だけでよいですよ。
No.01884 Re: AICがマイナスに・・・・ 【t】 2006/12/13(Wed) 07:49
返信有難う御座います
0.206463919 1 -0.029823558 0 0
0.667750917 1 0.206463919 0 0
0.381725071 1 0.667750917 0 0
0.186747415 1 0.381725071 0 0
-0.147817844 1 0.186747415 0 0
-0.02648574 1 -0.147817844 0 0
0.029830067 1 -0.02648574 0 0
0.240600427 1 0.029830067 0 0
0.157191515 1 0.240600427 0 0
-0.111039481 1 0.157191515 0 0
-0.18678349 1 -0.111039481 0 0
-0.102642978 1 -0.18678349 0 0
-0.09690602 1 -0.102642978 0 0
-0.153360807 1 -0.09690602 0 0
-0.111138571 1 -0.153360807 0 0
0.011758995 1 -0.111138571 0 0
-0.153426843 1 0.011758995 0 0
-0.093571115 1 -0.153426843 0 0
-0.114777076 1 -0.093571115 0 0
-0.074349235 1 -0.114777076 0 0
0.048378912 1 -0.074349235 0 0
-0.053732173 1 0.048378912 0 0
0.037053822 1 -0.053732173 0 0
-0.091014586 0 0 1 0.037053822
0.027895262 0 0 1 -0.091014586
-0.027319298 0 0 1 0.027895262
0.066432865 0 0 1 -0.027319298
-0.031347117 0 0 1 0.066432865
0.026532475 0 0 1 -0.031347117
0.031379921 0 0 1 0.026532475
-0.017753515 0 0 1 0.031379921
0.105861655 0 0 1 -0.017753515
-0.05492415 0 0 1 0.105861655
0.054667086 0 0 1 -0.05492415
0.058861203 0 0 1 0.054667086
0.003255725 0 0 1 0.058861203
0.063476269 0 0 1 0.003255725
0.028866314 0 0 1 0.063476269
0.05329061 0 0 1 0.028866314
chow1.txtの中身はこのように説明変数を二つに分けてありまして,
どこで分断するのが妥当かを検証するためにAICを使おうと思いまして計算しております
一応自分でAICを定義することによりプラスのAICが得られました.
オンラインヘルプも見たのですが,英語力の無さかいまいち根本的な問題が理解できませんでした・・・><
> rm(list=ls(all=TRUE))
>
> ##"chow1.txt"データファイルを"chow"に読み込み
> chow <- matrix(scan("chow.txt"),nrow=39,byrow=TRUE)
Read 195 items
>
> ##データ系列名を記述した"chowname.txt"を"chow.name"に読み込み
> chow.name <- scan("chowname.txt",what="")
Read 5 items
>
> ##"chow"の系列名を"chow.name"で定義
> ##行の名前を付けないことを"NULL""で宣言
> dimnames(chow) <- list(NULL,chow.name)
>
> ##パッケージ"data.frame"を用いて,桁数を縮小しデータスペースを最小化
> chow <- data.frame(chow)
> y <-chow$y
> maei <-chow$maei
> maex <-chow$maex
> atoi <-chow$atoi
> atox <-chow$atox
>
> ols <- lm(y~maei+maex+atoi+atox+0)
> ols.result <- summary(ols)
> #ols.result
>
> deviance <- deviance(ols)
> deviance
[1] 0.6214518
>
> #対数尤度
> ll <- -0.5*log(2*pi)-log(ols.result$sigma)-deviance/(2*ols.result$sigma^2)
>
> AIC <- -2*ll+2*4
> AIC
[1] 40.80683
>
> AICc <- -2*ll+2*4*(39/34)
> AICc
[1] 41.9833
>
● 「統計学関連なんでもあり」の過去ログ--- 039 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る