🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

Q&A

解決済

2回答

560閲覧

C statisticからCox-Snell R2を求めたいのですが…

uramasa

総合スコア1

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

0グッド

0クリップ

投稿2021/02/20 14:48

前提・実現したいこと

初心者で申し訳ありません。
論文doi.org/10.1002/sim.8806に記載されているようにC統計量(AUC値)から
Cox-Snell R2を求めたいです。
最終的にCox-Snell R2よりsample sizeを出したいと考えています。

APPENDIXにされているRコードを試してみているのですがうまくいきません。return以下で
エラーがでてきます。何とかならないでしょうか?

発生している問題・エラーメッセージ

return以下でエラーとなります。

エラー: 想定外の入力です in:
"}
return(list(R2.nagelkerke = as.numeric(fit$stats[’"

}

エラー: 予想外の '}' です in "}"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

おそらくWeb上に記載されているコードをそのままコピペして使われたのだろうと思いますが、そのコードの中に不適切な文字が使用されているためにエラーが起きています。
具体的には、普通のハイフン(U+002D)が別のハイフン(U+2010)に置き換わっています。
このようなちょっとした文字違いや表示されない制御文字などがエラーの原因になることがあるので、Web上にあるコードなどを利用する場合には注意が必要です。
また提示されているコード内で使用されている関数 lrm() を使用するために rms というライブラリを読み込む必要があろうかと思います。
こちらのコードを試して確認してみて下さい。

R

1library(rms) 2 3approximate_R2 <- function(auc, prev, n = 1000000){ 4mu <- sqrt(2) * qnorm(auc) 5LP <- c(rnorm(prev*n, mean=0, sd=1), rnorm((1-prev)*n, mean=mu, sd=1)) 6y <- c(rep(0, prev*n), rep(1, (1-prev)*n)) 7fit <- lrm(y ~LP) 8max_R2 <- function(prev){ 91-(prev^prev*(1-prev)^(1-prev))^2 10} 11return(list(R2.nagelkerke = as.numeric(fit$stats['R2']), 12R2.coxsnell = as.numeric(fit$stats['R2']) * max_R2(prev))) 13} 14 15set.seed(1234) 16approximate_R2(auc = 0.81, prev = 0.77, n=1000000) 17 18 19# $R2.nagelkerke 20# [1] 0.3183689 21 22# $R2.coxsnell 23# [1] 0.2100957 24 25

A note on estimating the Cox‐Snell R2 from a reported C statistic (AUROC) to inform sample size calculations for developing a prediction model with a binary outcome

投稿2021/02/22 08:32

fiwa

総合スコア1192

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uramasa

2021/02/23 04:56

ありがとうございました。助かりました。 コピペして修正していたのですが、まさかハイフンとは気づきませんでした。
guest

0

ソースのどこかに誤字脱字があるんでしょう。カッコか引用符が抜けている可能性が高いです。頑張って探してください。

投稿2021/02/20 15:39

KojiDoi

総合スコア13692

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KojiDoi

2021/02/20 19:29

奇怪にも-1つけられてしまいましたが、ソースが提示されていないので、これ以上の具体的な回答は無理ですね。エスパーじゃねえんだからさ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問