ワンクリックでインタラクション効果テーブルを生成できる scitb5 関数バージョン 1.4 (インタラクション効果関数 P のインタラクション) をリリースしました。

SCI 記事では、交互作用効果テーブル (通常は表 5) によって記事におまけが加えられ、記事の説得力が増し、結果の信頼性が高まり、データ マイニングも実行できます。
ここに画像の説明を挿入
インタラクション効果テーブルの作り方については以前の記事「R言語でインタラクション効果テーブルの作り方を教える」で紹介しましたので、詳しくはそちらをご覧ください。
今回は、forestmodel パッケージやその他の R パッケージを参考に、自作した scitb5 関数を公開しました。これは、主に時間を節約し、データ マイニングを実行するために、ワンクリックでインタラクション効果テーブルを生成するために使用されます。
なお、対象変数Xが連続変数である交互作用効果関数のみがリリースされており、間違って購入しても責任は負いません!
カテゴリ変数はまだ書き込まれており、しばらくしてから解放されるはずです。
scitb5 関数は、ロジスティック回帰、cox 回帰、および線形回帰モデルをサポートします。以下にそれを示します。まずロジスティック回帰を実行し
、早産データをインポートします (公式アカウントの返信: 早産データ、データは取得できます)

bc<-read.csv("E:/r/test/zaochan.csv",sep=',',header=TRUE)
bc <- na.omit(bc)
names(bc)
dput(names(bc))

ここに画像の説明を挿入
まずデータを整理します。このステップは必要です。階層化したい変数を因子に変換する必要があります。

bc$race<-ifelse(bc$race=="black",1,ifelse(bc$race=="white",2,3))
bc$smoke<-ifelse(bc$smoke=="nonsmoker",0,1)
bc$low<-factor(bc$low)
bc$race<-factor(bc$race)
bc$ht<-factor(bc$ht)
bc$ui<-factor(bc$ui)

次に関数をインポートします。関数ファイル 1.4final.R として書きました。ソースインポートを直接使用します。

source("E:/r/test/1.4final.R")

インポートが成功すると、次のアイコンが表示され、3 つの関数があることを示します。これは、読み込みが成功したことを意味します。次に、相互作用、つまり
ここに画像の説明を挿入
階層変数を定義する必要があります。cov1 は、次の共変量を意味します。階層変数の場合、共変量に含まれるように関数内の相互作用変数を設定します。そうでない場合は、エラーが報告されます。

cov1<-c("lwt","smoke","ptl","ui","ftv","race")	
Interaction<-c("race","smoke","ui")

定義が完了したら、scitb5 関数を使用できます。この関数には、survival パッケージと lmtest パッケージのサポートが必要です。これら 2 つのパッケージを最初にインストールする必要があります。関数の使用後、2 つのパッケージは自動的にロードされます。scitb5 関数について説明します。データはデータです。データ フレームの形式である必要があります。x はターゲット変数です。連続変数である必要があります。Y は結果変数です。ファミリーはモデルを定義し、ロジスティック回帰はロジットとして定義されます。

out<-scitb5(data=bc,x="age",y="low",Interaction=Interaction,cov = cov1,family="logit")

ここに画像の説明を挿入
文章コード相互作用効果テーブルを生成する。比較的簡単です。次に、cox 回帰を実行し、乳がんデータをインポートします (公式アカウントからの返信: 乳がん、データを取得できます)

library(foreign)
library("survival")
bc <- read.spss("E:/r/Breast cancer survival agec.sav",
                use.value.labels=F, to.data.frame=T)
bc <- na.omit(bc)

ここに画像の説明を挿入
カテゴリ変数を因子に変換

bc$er<-as.factor(bc$er)
bc$pr<-as.factor(bc$pr)
bc$ln_yesno<-as.factor(bc$ln_yesno)
bc$histgrad<-as.factor(bc$histgrad)
bc$pathscat<-as.factor(bc$pathscat)
dput(names(bc))

共変量と交互作用変数を定義する

cov1<-c("pathsize", "lnpos", "er", "pr", "histgrad",
        "pathscat", "ln_yesno")
Interaction<-c("histgrad","er", "pr")

関数を使用して交互作用効果テーブルを生成します。cox 回帰を使用する場合、時間を定義する必要があります。定義しないとエラーが報告されます。

out<-scitb5(data=bc,x="age",y="status",Interaction=Interaction,cov = cov1,time="time",family="cox")

ここに画像の説明を挿入
次に、線形回帰を実行します。これは ggplot2 パッケージの自動車データです。

bc<-as.data.frame(ggplot2::mpg)
dput(names(bc))

ここに画像の説明を挿入
カテゴリ変数を因子に変換

bc$cyl<-as.factor(bc$cyl)
bc$model<-as.factor(bc$model)
bc$drv<-as.factor(bc$drv)
bc$fl<-as.factor(bc$fl)
bc$class<-as.factor(bc$class)
bc$trans<-as.factor(bc$trans)

共変量とカテゴリ変数を定義する

cov1<-c("model", "displ","cyl", "trans", "drv", 
        "cty", "hwy", "fl", "class")
Interaction<-c("drv","fl","class","model")

表を作り、ここでの線形回帰の係数をβとします。

out<-scitb5(data=bc,x="displ",y="hwy",Interaction=Interaction,cov = cov1,family="linear")

ここに画像の説明を挿入
ここに画像の説明を挿入
ここで問題があります。なぜ「drv」、「fl」、「class」、「model」という 4 つの階層変数を定義し、最後に変数「drv」だけを作成し、情報プロンプトが「fl」、
「 3 つの変数「クラス」、「モデル」は層別化には適していません。
[1] 「fl は階層化に適していません」
[1] 「クラスは階層化に適していません」
[1] 「モデルは階層化に適していません」
これについては後で説明しますが、これを説明するためにファンのデータを使用します問題が発生しました。まずこのデータをインポートします

bc<-read.csv("E:/r/fensi/final1.csv",sep=',',header=TRUE)
dput(names(bc))

カテゴリ変数を因子に変換する

bc[,c("x2", "x3", "x4", "x5", "x6", "x7")] <- lapply(bc[,c("x2", "x3", "x4", "x5", "x6", "x7")], factor)
str(bc)

共変量と交互作用変数を定義する

Interaction<-c("x2", "x3", "x4","x5")
cov<-c("x2", "x3", "x4", "x5", "x6", "x7")

テーブルを生成します。ここでも 3 つの値が生成されます。x5 は生成されません

out<-scitb5(data=bc,x="x1",y="y",Interaction=Interaction,cov = cov,family="logit")

ここに画像の説明を挿入
ここに画像の説明を挿入
「x5 は階層化に適していません」と表示されますが、これは変数 x5 が階層化されたインタラクションに適していないことを意味します。まず、x5 データを見てみましょう。多くのレイヤーがあり、4 つのレイヤーに分類されています。

levels(factor(bc[,"x5"]))

ここに画像の説明を挿入
サブグループを見てみましょう. x5==1 のとき、x6 と x7 のデータはすべて 0 であり、他の変数はありません. このようにモデルを組み合わせることができないため、エラーが報告されます。この変数は自動的に破棄されます。

be<-subset(bc,bc$x5==1)

ここに画像の説明を挿入
したがって、データが少なく、階層変数の種類が多すぎると、モデリングに失敗し、分類できなくなります。他のパッケージでも試してみましたが、同様にモデリングに失敗しました。

scitb5 関数コードについては、次の記事を参照してください。

ワンクリックでインタラクション効果テーブルを生成できる scitb5 関数バージョン 1.4 (インタラクション効果関数 P のインタラクション) をリリースしました。

この機能はまだ更新中です。エラーや良い提案があれば、私に連絡してください。

おすすめ

転載: blog.csdn.net/dege857/article/details/130640120