2016-12-03 18 views
3

私は多変量重回帰分析を行っています。幸い、私はStataの中でそうする方法を示す優れたページを見つけた:多変量回帰分析における係数の等価性のテスト

http://www.ats.ucla.edu/stat/stata/dae/mvreg.htm

問題は、私が実行しているの基礎を行う方法を考え出したながら、私は、Rを使用しているということですRの多変量重回帰モデルでは、(リンクに示されているように)係数が各従属変数ごとに異なるかどうかはまだ分かりません。誰でもこの分析をRで計算する方法を知っていますか?同じ独立変数が各従属変数に異なる効果を及ぼすかどうかは、非常に有用なツールであると見ているようです。私はそれをやりたいと思っています!

UPDATE:ここで私はこれまでの自分のデータで何をやったかの再現性の例である:私は、この例で知りたいのは何

# data 
data(mtcars) 

# fitting a multivariate multiple regression where mpg and cyl are predicted by wt and hp 
car.mod <- lm(cbind(mpg,cyl) ~ wt + hp,data=mtcars) 

# see if there is a multivariate effect of wt and hp 
summary(manova(car.mod),test="W") 

# Get coefficients for each dependent variable 
summary(car.mod) 

は、私が「重量」の等価性をテストする方法であります「mpg」と「cyl」の両方で明らかに、これはtestコマンドを使用してStataで可能です。

+1

多くのR固有のリソースについては、[rタグ情報ページ](http://stackoverflow.com/tags/r/info)を参照してください。あなたはこれまで何を持っていますか? [再現可能な例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example#5963610)を追加する必要があります。 – alistaire

+1

これは完了です。 – user2917781

答えて

1

AFAIK、これを行うパッケージはありませんので、私は手動の解決策を行います。マニュアル解は、

z =(b1-b2)/(b1^2 + b2^2)^(1/2)である。

ここに(汚い)コードがあります。係数と標準誤差を抽出するより洗練された解があるかもしれません。

# extract coefficients and SEs 
coef_mpg <- coef(summary(car.mod))[[1]] 
coef_cyl <- coef(summary(car.mod))[[2]] 

# test equality of wt coefficients 
z_wt <- (coef_mpg[2, 1] - coef_cyl[2, 1])/(coef_mpg[2, 2]^2 + coef_cyl[2, 2]^2)^(1/2) 
p_wt <- 2*pnorm(-abs(z_wt)) 
p_wt 

しかし、私は少数の仮定を行うブートストラップソリューション、についてよりよく感じるだろう。

require(boot) 
b_b <- function(data=mtcars, indices) { 
    d <- data[indices, ] 
    model_mpg <- lm(mpg ~ wt + hp, data=d) 
    model_cyl <- lm(cyl ~ wt + hp, data=d) 
    return(coef(model_mpg)["wt"] - coef(model_cyl)["wt"]) 
} 
results <- boot(data=mtcars, statistic=b_b, R=1000) 
results 
関連する問題