4

Rの調査データを使用してBox-Cox多変量変換を推定する方法を知っている人はいますか?層とクラスター(私が使用しているデータ)を考慮に入れているものは何も知りませんが、確率の重みを考慮に入れているものでも素晴らしいでしょう。確率の重みが適用されると、1つ以上の変数が変化する可能性があるため、変換が根本的に変化する可能性があります。エラーやBox-Coxアルゴリズムなどにも影響がある可能性がありますが、これは基本的に理論確認アプローチを超えています。

更新された質問

R関数powerTransformはうまく機能しますが、調査データについてはまだ何もないと思います。Stataはこれを処理できると思いましたが、Nickが指摘したように、そうではありません。サンプリングの重みを処理する唯一のBox-Cox変換はこれのようです

単変量と多変量の両方のBoxCox変換を確率加重データに適用できるR関数を知っていますか?

私はデータを持っていませんが、誰かがこれに対する解決策を見つけたかどうか疑問に思っていました。特定の例が与えられたときに人々が感謝することを私は知っています...

単変量Box-Cox: lmおよびsvyglm(調査パッケージ)オブジェクトを使用すると、単変量Box-Coxの結果が返されます。

library(survey)
data(api)
library(car)
dstrat<-svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)
Sur<-svyglm(api00~mobility, design=dstrat)
NotSur<-lm(api00~mobility, data=apistrat)
powerTransform(Sur)
powerTransform(NotSur)

ただし、実行するとNotSurと同じ(そしてSurとは異なる)結果が得られるため、調査オブジェクトを使用したpowerTransformationは正しくないと思います。

None<-svydesign(id=~1, weights=rep(1,nrow(apistrat)), data=apistrat, )
Sur2<-svyglm(api00~mobility, design=None)
powerTransform(Sur2)

実際のデータを使用する必要があるため、多変量正規性をどのように見つけるかについては、さらに確信が持てません。

summary(powerTransform(cbind(api00,mobility)~1,apistrat))
4

2 に答える 2

2

指定したリンクは、データ ステップ内で実行されている SAS のユーザー定義関数へのリンクのようです。メソッドを R に再プログラムできるはずです。

ここで提案されている SAS 法を見るとproc transreg、必要な累乗変換を推定するために使用されていることがわかります。その SAS proc は測量重量を受け入れません。weightそのプロシージャでオプションが何をするのかわかりません。ここを参照してください

更新: ここで提供された最初のリンクを詳しく調べましproc univariateデータに重みが含まれている場合、weightオプションを有効にして重み付けが行われているようです。ただし、weightfrom hereの詳細を見ると、分散を操作するために重みが使用されていることがわかります。データに対してその仮定で実行したいかどうかはわかりません。

于 2013-02-17T19:48:09.083 に答える
0

リンクされた SAS マクロのように重みを使用すると、最適な変換の適切な推定値が得られるはずですが、不合理な区間推定値が得られる可能性があります。これは、対数尤度比が標準のカイ 2 乗分布を持たないためです。

重みをスケーリングしてサンプル サイズに合計すると、おそらく大まかな間隔が得られますが、Box & Cox 法の適切な設計ベースの類似物には、「作業」尤度比のサンプリング分布が必要になります (AICおよびanovaメソッドで使用されるように)。調査用::svyglm)

于 2016-12-16T02:52:58.133 に答える