x1> x2の確率の計算


7

私は、R、線形モデル、および確率計算を使用して確率について自己学習しています。現在、モデルからの2つの予測を比較する方法にこだわっています。私が使用しているデータはここからダウンロード(無料)されています:wmbriggs.com/public/sat.csv

df <- read.csv("sat.csv")              # Load data
lm <- lm(cgpa~hgpa+sat+ltrs,data=df)   # model to predict College GPA
new.df <- data.frame(hgpa=c(4,3),sat=c(1168,1168),ltrs=c(6,6))  # 2 scenario data. Same SAT and LTRS, differing Highschool GPA
predict(lm,new.df)                     # plug our scenario data into the model to predict cgpa based on input
       1        2
2.881214 2.508154

これが設定データです。より高い予測 CGPA(2.88)レイチェルの人と低い予測 CGPA(2.51)トバイアスの人に名前を付けましょう。私の質問は、レイチェルがトビアスよりも高いCGPAを持つ確率をどのように計算するのですか?曲線の下の領域を調べましたが、それが正しいのか、それとも正しく解釈しているのかわかりません。面積計算:

area <- pnorm(2.881214,1.9805,0.7492264)-pnorm(2.508154,1.9805,0.7492264) # area under the curve between the 2 predicted CGPAs
[1] 0.1259893

したがって、2つの予測の差はおおよそ12.5%です。ただし、レイチェルとトビアスが同じCGPAを生成するために同じ入力変数を持っている場合、どちらか1つがより高いCGPAを持つ確率は50/50です。真の確率を得るために、面積に0.5(62.5%)を追加しますか?私は道を離れて、何か他のことをする必要がありますか?

回答:


3

設定は通常、次の形式で表現されます。

y=Xβ+ε

以下のために -ベクトル応答の、モデル行列、およびパラメータの-ベクトル仮定の下で、ランダムエラーその等分散と相関していないとゼロは、つまり、nyn×kXkβε=(εi)σ2

E(ε)=0; Var(ε)=σ2In.

この場合、通常の最小二乗推定は次のようになります。

β^=(XX)Xy.

LETであるその行行列とそれぞれ、レイチェルとトーマスのための回帰の値を与えます。予測された応答はベクトルのます。実際の応答があるとこれらの新しいイプシロンは、元の独立したゼロ平均無相関ランダム変数、ある、および共通で差異。Z2×kzRzT2Zβ^zRβ+εRzTβ+εTϵσ2

私がと呼ぶレイチェルマイナストーマスのこれらの値の差は、単にδ

δ=(zRβ+εR)(zTβ+εT)=(1,1)Zβ+εRεT.

両側は行列(つまり、数値)であり、右側にされているため、明らかにランダムです。(右側はレイチェルのとトーマスさん、間の推定差ですプラス偏差レイチェルの実際と予測応答の間、マイナスの偏差トーマスの実際と予測応答の間。)私たちは、用語によって、その期待期間を計算することができます。1×1yεRεT

E(δ)=E((1,1)Zβ+εRεT)=(1,1)Zβ+00=z1βz2β.

これは、まさに予測されることです。予想される差は、予測値の差です。パラメータを推定値に置き換えることで推定できます。これを示すために、「」の上に帽子をかぶろう:E

(1)E^(δ)=(1,1)Zβ^=z1β^z2β^.

それが質問に現れるです。2.882.51

レイチェルとトーマスの違いについて、その分布に関する不確実性の2つの要素を表すことで分析を続けることができます。1つはとがランダムデータから推定され、もう1つはランダムな偏差の出現と。 βσεRεT

(2)Var(RachelThomas)=Var((1,1)Zβ^+εRεT)=(1,1)ZVar(β^)Z(1,1)+Var(εR)+Var(εT)=(1,1)ZVar(β^)Z(1,1)+2σ^2.

イプシロンの分散はによって推定されます。に依存するため、ません。を最小二乗推定で置き換えることにより、この分散を推定し、と書かれることもあります。σ^2Var(β^)σσ2σ^2Var^(β^)

これらの推定値は、上のの条件付き分布についてより具体的な仮定を行うことによってのみ確率に変換できます。yX 最も簡単なのは、が多変量正規であると仮定することです。そのため、(ベクトル線形変換であるため)自体は正規であり、したがって、その平均と分散がその分布を完全に決定します。その推定分布は、帽子をと置くことで得られます。yδyEVar

最後に、ソリューションに必要なすべての情報をまとめました。OLSプロシージャは、レイチェルの応答からトーマスの応答を差し引いた分布を、予測値の差に等しい平均と、推定誤差分散を含むによって推定された分散で正規であると推定します。係数推定値の分散共分散行列。(1)(2)σ^2Var(β^)

このRコードは、式および示されている計算を直接実行します。(1)(2)

fit <- lm(cgpa ~ hgpa + sat + ltrs, data=df)         # model to predict College GPA
Z <- as.matrix(data.frame(intercept=1, hgpa=c(4,3), sat=c(1168,1168),ltrs=c(6,6)))

cont <- matrix(c(1,-1), 1, 2)             # Rachel - Thomas "contrast".
beta.hat <- coef(fit)                     # Estimated coefficients for prediction
delta.hat <- cont %*% Z %*% beta.hat      # Predicted mean difference 
sigma.hat <- sigma(fit)                   # Estimated error SD
var.delta.hat <- cont %*% Z %*% vcov(fit) %*% t(Z) %*% t(cont) + 2 * sigma.hat^2
pnorm(0, -delta.hat, sqrt(var.delta.hat)) # Chance Rachel > Thomas

これらのデータの出力はです。OLSは、レイチェルのCGPAがトーマスのCGPAを超える可能性があると推定しています。(このケースでは、レイチェルとトーマスが非常に似ているため、モデルが非常によく適合し、データ量が非常に多いため、が小さいとはとても無視することができた。それは常にそうではありません。)0.6767%Var^(δ^)2σ^2

これが予測間隔の計算の基礎となるメカニズムです。この分布を使用して、レイチェルとトーマスのCGPAの差の予測間隔を計算できます。


@Taylorモデルは、個々の応答が形式であることを表明します。帽子はモデル推定値を使用する場合にのみ表示されます。私は混乱してそれを書いたことがわかります-これは、モデルの2つの定式化の間の移行を行う痕跡です。私がそれを修正させてください、そうすればそれが一貫して見えるかどうかがわかります。zβ+ϵ
whuber

@whuber:質問:なぜ '-delta.hat'(負)ですか?また、ecnor {stats}を使用して、pnormを独自の推定cdfに置き換えることはできますか?lmの推定に何か影響はありますか?(lmは正規性を想定していません)。
Maximilian

1
@Max(1)pnormは、変数がその引数より小さくなる可能性を計算しますが、より大きい可能性が必要です。厳密に言うと、私はを呼び出す必要がありましたがpnorm(0, delta.hat, sqrt(var.delta.hat), lower.tail=FALSE)、その対称性を利用してステートメントを短くしました。(2)あなたのecdfに提案する値は不明確です。(3)非正規応答分布の場合、一般化線形モデルまたは他の一般化が必要になる可能性があります。
whuber

0

あなたの問題は簡単に聞こえるかもしれませんが、それは驚くほど複雑です。

RachelのCPGA(と呼ぶ)がTobias '()より大きい確率を評価するために、それらの、および-scoresが何であるかを知っていることは、を書くことと同じです。はスコアです。と書けるので、y1y2hgpasatltrsP(y2y1>0|X)Xyi=yi^+ϵi

P(y2y1>0|X)=P(ϵ2ϵ1N(0,2σy2)+y2^y1^=2.88122.5082>0|X)=P(ϵ2ϵ1<0,373)

確かにがわからないので、ここで行き詰まります。ここでできる最善のことは、回帰残差の分散を計算して推定することです。サンプルが十分に大きい場合()、これは収束します。σy2σy2

の推定エラーを無視する場合は、これをRに実装できます。σy2^

sigma_hat <- summary(lm)$sigma
e2_min_e1 <- diff(predict(lm, new.df)) * -1

pnorm(e2_min_e1, 0, 2*sigma_hat)
# 0.6255

ことは正しくありません。yi=yi^+ϵi
テイラー

何故なの?(実際には線形射影ですが、通常の線形回帰の仮定の下では、これは条件式でもあります)そして常にとepsilonの平均はゼロyi^E(yi|Xi)yi=E(yi|Xi)+ϵi
KenHBS

y^i=E(yi|xi)^
テイラー

@KenS。ケンありがとう。「se.fit = TRUE」を追加するだけで、「predict()」で標準エラーを取得できることはわかっています。私はあなたのコードでそれを試しました、そしてそれは私にエラーメッセージを与えました: 'r [i1]-r [-length(r):-( length(r)-lag + 1L)]のエラー:バイナリへの非数値引数オペレーター」
クニオ

OLSの標準的な仮定の1つは、線形関数形式が正しく指定されていることです。その仮定が成り立つ場合、です。私はあなたの要点を理解しているとは思いません。それは単なる表記上の違いでしょうか?yi=E(yi|Xi)+ϵi
KenHBS 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.