2017-03-21 20 views
1

私はr glmを使用して年ごとにポーソンデータをモデル化しています。だから私は毎年T [i]暴露を数えます。ポアソンファミリーログリンク出力を伴うr glmは、y = a + bxのモデル係数a、bを生成する。glm出力の標準誤差

私が必要とするのは、aの標準誤差ではなく、bの標準誤差ではない(a + bx)の標準誤差です。私が実装しようとしている解決策を説明しているドキュメントは、aとbのパラメータから計算するのは簡単ではないので、これはソフトウェアによって計算されるべきだと言います。おそらくSASは計算を行いますが、Rでそれを認識していません。

パラメータ推定ハンドブック(NUREG/CR-6823、公開文書)のセクション7.2.4.5の作業を進めており、式7.2 。統計学者でもないので、これを見つけるのは非常に難しいです。

ここでのゲームは、各年の信頼区間ではなく、モデル出力に90%の同時信頼区間を見つけることです。

これをここに追加すると、いくつかのコードを表示できます。下の最初の答えは、私をかなり近づけるようです。統計学者は、ここで信頼区間を構成するために次の関数をまとめました。これは動作するようです。

# trend line simultaneous confidence intervals 
# according to HOPE 7.2.4.5 
HOPE = function(x, ...){ 
t = data$T 
mle<-predict(model, newdata=data.frame(x=data$x), type="response") 
se = as.data.frame(predict(model, newdata=data.frame(x=data$x), type="link", se.fit=TRUE))[,2] 
chi = qchisq(.90, df=n-1) 
upper = (mle + (chi * se))/t 
lower = (mle - (chi * se))/t 
return(as.data.frame(cbind(mle, t, upper, lower))) 

}

+0

モデルから予測された値に標準誤差が必要な場合は、 'predict.glm'を見てください。 – aosmith

答えて

1

私はあなたがモデルから予測を作成するときに、引数se.fit=TRUEを提供する必要があると思う:

hotmod<-glm(...) 
predz<-predict(hotmod, ..., se.fit=TRUE) 

次に、あなたが使って推定標準誤差を見つけることができるはずです。

predz$se.fit 

ここでこのソフトウェアを手作業で実行する場合は、ハードあなたが提案としてあってはならない。

covmat<-vcov(hotmod) 
coeffs<-coef(hotmod) 

その後、私は標準誤差は、単純であるべきだと思う:%*%は、このソフトウェアでは行列乗算のために使用することができる

sqrt(t(coeffs) %*% covmat %*% coeffs) 

演算子。

+1

ありがとう、それは私を近づけた。ここで統計家が働くように見える機能を構築しました。次のコードは、各年のxとTがデータフレームのデータに含まれていることを前提としています。 –

+0

元の質問に答えました。私の答えはあなた自身で投稿することもできます。私は自分の答えを編集することもできます。 – Ouistiti

+0

はい、ありがとうございます。あなたは私がすべてのプロトコルに精通していないと言うことができます。 –

関連する問題