1

各被験者が12回の繰り返し測定(3年間で四半期ごと)を持つデータセットを分析しようとしています。時間勾配の被験者固有の推定値を抽出して、被験者が時間の経過とともに大幅に変化しているかどうかを評価したいと考えています。

私が現在持っているコードは一貫して、各被験者が時間の経過とともに非常に大幅な増加を示していることを示唆しています. これはありそうもないことですが、構文を調整してより正確なモデルを実行する方法がわかりません。このモデルがすべてのケースで重要な時間の勾配係数を見つける方法/理由を知っている人はいますか?

調査の簡単な説明: 分析対象の期間 (3 年間、四半期ごと) で請求回数が大幅に増加している手順コード (被験者) にフラグを付ける傾向レポートを作成しています。結果変数はカウントとして扱われます (0 で制限されますが、整数である必要はありません)。

%macro Zeroes(numzeroes);
   %local i;
   %do i = 1 %to %eval(&numzeroes-1);
      0
   %end;
   1;
%mend;

%macro EstimateStatement(numsubjects=);
   %local i;

   proc glimmix data=procdata11;
      class code;
      model billing_count=period_count / dist=NB link=log
      solution ddfm=betwithin;
      random intercept period_count / sub=code type=AR(1);
      random _residual_;  
      %do i = 1 %to &numsubjects;
         estimate "Slope for Code &i" period_count 1 | period_count 1 / subject %Zeroes(&i);
       %end;
      ods output estimates=sscoeff;
    run;
 %mend;

 %EstimateStatement(numsubjects=&num_codes)

このモデルをより正確かつ効率的にするための助けをいただければ幸いです。

ありがとう!

4

1 に答える 1

0

たぶん、正の傾きはデータの実際の特徴ですか? 各コードについて、billing_count と period_count をプロットするとどうなりますか?

プログラムに関しては、2 つの提案があります。

(1) type=AR(1) の使用

random intercept period_count / sub=code type=AR(1);

切片の分散が勾配の分散と等しくなるように強制します。この制約は、データと矛盾している可能性があります。AR(1) は、ランダム係数モデルの賢明な共分散構造ではありません。type=UN または type=UN(1) を試してください。

(2)ドロップ

random _residual_;

これを含めると、モデルが過剰に指定されます。負の二項分布には、すでにスケール パラメータがあります。

考慮すべきもう 1 つの点は、ランダム係数モデルが収縮推定量を生成することです。これにより、個々のコードの推定値が全体的なソリューションに向かって縮小されます。ランダム係数モデルから得られる勾配の推定値は、から得られる推定値と等しくなりません。コードごとに個別の回帰。クレフト等。このトピックの直感的なプレゼンテーションがあります (ここの p14 を参照してください http://tinyurl.com/ns99ojh )。

于 2015-07-08T23:38:45.833 に答える