> n <- 300
> x <- rnorm(n, mean=10, sd=1)
> e <- rnorm(n, mean=0, sd=2)
> a <- 7
> y <- a + x + e
> d <- data.frame(x,y)
> lm.out <- lm(y~1+offset(x), data=d)
> summary(lm.out)
Call:
lm(formula = y ~ 1 + offset(x), data = d)
Residuals:
Min 1Q Median 3Q Max
-6.2107 -1.2351 -0.0889 1.3389 5.1611
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6.9713 0.1114 62.59 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.929 on 299 degrees of freedom
> (a.hat <- mean(y) - mean(x))
[1] 6.971308
> y.hat <- a.hat + x
> (sigma.e <- sqrt(sum((y - y.hat)^2)/(n-1)))
[1] 1.929243
No.22671 Re: オフセット項を含む単回帰モデルのパラメタ推定 【新春】 2019/01/13(Sun) 16:46
質問させていただいた件,誤差伝播の法則に基づく次の計算で,summary関数で表示される結果と一致する値が得られました.> n <- 300以上,思いつきましたのでご報告いたします.
> x <- rnorm(n, mean=10, sd=1)
> e <- rnorm(n, mean=0, sd=2)
> a <- 7
> y <- a + x + e
> d <- data.frame(x,y)
> lm.out <- lm(y~1+offset(x), data=d)
> summary(lm.out)
Call:
lm(formula = y ~ 1 + offset(x), data = d)
Residuals:
Min 1Q Median 3Q Max
-5.4845 -1.3463 0.0459 1.3090 4.8227
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.0122 0.1123 62.42 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.946 on 299 degrees of freedom
> var.xbar <- sum((x - mean(x))^2)/(n*(n-1))
> var.ybar <- sum((y - mean(y))^2)/(n*(n-1))
> cov.xybar <- cov(x,y)/n
> (sigma.a <- sqrt(var.xbar + var.ybar - 2*cov.xybar))
[1] 0.1123454
より適切な方法があれば,ご指摘いただければ幸いです.
No.22672 Re: オフセット項を含む単回帰モデルのパラメタ推定 【青木繁伸】 2019/01/13(Sun) 21:30
基本的には,lm や lm.fit など,関連するソースを読んでいけば良いと言うことになります。
ご存じとは思いますが,ソースを見るのは,コンソールに lm などと入力するだけです。
また,実際にどのように解析が進むのかをみるのは debug(lm) などとした後,lm を実行するということでよいでしょう。debug についての事前の知識は必要でしょうが。
No.22673 Re: オフセット項を含む単回帰モデルのパラメタ推定 【新春】 2019/01/14(Mon) 16:12
青木先生,
ソースコードの確認やdebugの活用など,ご指摘ありがとうございます.
丁寧にソースコードを追って,どのような計算が行われているのかを確認したいと思います.
ご助言いただけましたこと,また,このような質問の場を維持していただいていることに感謝申し上げます.
● 「統計学関連なんでもあり」の過去ログ--- 048 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る