1

私は現在、Rpy2を使用してコックス比例ハザードモデリングを行っています-私の質問は他の関数とそれらを呼び出した結果もカバーすると思います。

関数を実行すると、関数の結果をベクトル形式で含む変数ができます。これを明示的に DataFrame ( resultsDataFrame = DataFrame(resultVector)) に変換しようとしました。これを行ってもエラーは返されません。ただし、resultsDataFrame.to_csvfile(filename)次のエラーが表示されます。

 Traceback (most recent call last):
 File "<pyshell#171>", line 1, in <module>
 modelFrame.to_csvfile('/Users/fortylashes/Documents/Matthews_Research/Cox_PH/ResultOutput_Exp1.csv')
 File "/Library/Python/2.7/site-packages/rpy2/robjects/vectors.py", line 1031, in to_csvfile
'col.names': col_names, 'qmethod': qmethod, 'append': append})
 RRuntimeError: Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) : 
 cannot coerce class ""coxph"" to a data.frame

さらに、私が単純に行うと:

 for result in resultVector:
        print (result)

モデルで使用されるデータセットの各エントリに関する情報を含む、結果の非常に長いリストを変数ごとに取得します (つまり、9,000 レコード x 9 変数 = 81,000 の不要な結果)。本当に必要な結果は、このベクトルの下部にあり、次のようになります。

                    coef       exp(coef)  se(coef)      z       p
   age_age6574   -0.057775     0.944      0.05469   -1.056   2.9e-01
   age_age75plus -0.020795     0.979      0.04891   -0.425   6.7e-01
   sex_female    -0.005304     0.995      0.03961   -0.134   8.9e-01
   stage_late    -0.261609     0.770      0.04527   -5.779   7.5e-09
   access        -0.000494     1.000      0.00069   -0.715   4.7e-01

   Likelihood ratio test=36.6  on 5 df, p=7.31e-07  n= 9752, number of events= 2601

*注: 最初の結果 (私が話していた 9,000 x 9) でデータが報告されたが、実際にはモデルで使用されなかったいくつかの変数がありました。

このデータを明示的に取得し、それを 1 つの長い順序付けられた行に入れ、それを csv ファイルに出力する方法があるかどうか疑問に思っていましたか?

::::アップデート::::

呼び出すtheModel.namesと、数値インデックスで呼び出すことができるさまざまなメジャーのリストを取得します。

 [1] "coefficients"      "var"               "loglik"           
 [4] "score"             "iter"              "linear.predictors"
 [7] "residuals"         "means"             "concordance"      
 [10] "method"            "n"                 "nevent"           
 [13] "terms"             "assign"            "wald.test"        
 [16] "y"                 "formula"           "call"   

これから、指数化できる係数を取得できます。ただし、必要な p 値、z スコア、尤度検定比は見つかりませんでした。

4

0 に答える 0