4

OLSを使用して線形モデルを近似し、変数間の測定単位が異なるため、Rの関数scaleを使用してリグレッサーをスケーリングしました。次に、lmコマンドを使用してモデルを近似し、近似されたモデルの係数を取得します。私の知る限り、近似モデルの係数は元のリグレッサー変数と同じ単位ではないため、解釈する前に縮小する必要があります。何も見つからなかったので、直接的な方法を探していました。誰かがそれを行う方法を知っていますか?

コードをご覧ください。提案した内容の実装を手伝っていただけませんか。

library(zoo)
filename="DataReg4.csv"
filepath=paste("C:/Reg/",filename, sep="")
separator=";"
readfile=read.zoo(filepath, sep=separator, header=T, format = "%m/%d/%Y", dec=".")
readfile=as.data.frame(readfile)
str(readfile)
DF=readfile
DF=as.data.frame(scale(DF)) 
fm=lm(USD_EUR~diff_int+GDP_US+Net.exports.Eur,data=DF)
summary(fm)
plot(fm)

申し訳ありませんが、これはデータです。

http://www.mediafire.com/?hmcp7urt0ag8187

4

3 に答える 3

11

デフォルトの引数で関数を使用した場合scale、リグレッサーは中央に配置され(平均を減算)、標準偏差で除算されます。係数を元の単位に変換せずに解釈できます。

他のすべてを一定に保つと、平均して、リグレッサの1つの標準偏差の変化は、そのリグレッサの係数に対応する従属変数の変化に関連付けられます。

モデルに切片の項を含めた場合、切片の解釈が変わることに注意してください。推定切片は、すべてのリグレッサーが平均レベルにあるときの従属変数の平均レベルを表すようになりました。これは、各変数から平均を差し引いた結果です。

非標準偏差の項で係数を解釈するには、各リグレッサーの標準偏差を計算し、それを係数で乗算します。

于 2013-01-24T23:31:39.097 に答える
4

スケーリングされた予測変数とスケーリングされていない応答変数を使用して行われた回帰から回帰係数をスケール除去または逆変換するには、切片と勾配を次のように計算する必要があります。

A = As - Bs*Xmean/sdx
B = Bs/sdx

したがって、回帰は、

Y = As - Bs*Xmean/sdx + Bs/sdx * X

どこ

As = intercept from the scaled regression
Bs = slope from the scaled regression
Xmean = the mean of the scaled predictor variable
sdx = the standard deviation of the predictor variable

これYもスケーリングされている場合は調整できますが、最終的にはデータセットでスケーリングしないことにしたようです。

于 2017-10-30T03:03:39.117 に答える
3

私があなたの説明を理解している場合(残念ながら現時点ではコードフリーです)、Y〜As + Bs * Xsの標準化された回帰係数が得られます。ここで、これらすべての「s」項目はスケーリングされた変数です。その場合、係数は、Xの1つの標準偏差のXの変化に関連するYの標準偏差スケールでの予測された変化です。scale関数は、スケーリングされたオブジェクトの属性の平均と標準偏差を記録します。そうでない場合は、コンソールログのどこかにそれらの見積もりがあります。XのdXの変化に対するdYの推定変化は、dY *(1 / sdY)= Bs * dX *(1 / sdX)である必要があります。予測はこれらの線に沿ったものでなければなりません:

Yest = As*(sdX) + Xmn + Bs*(Xs)*(sdX)

Y値を標準化する必要はなかったはずですが、Xの平均値の調整が簡単になるので、標準化する必要がなかったと思います。回答を実装して確認したい場合は、コードとサンプルデータを入力してください。@DanielGerlanceは、SDで除算するのではなく、乗算するという意味で正しいと思います。

于 2013-01-24T23:24:35.777 に答える