他の変数を提供する限り、変数がどのように作成されたかを推測するアルゴリズム、プログラム、または関数を探しています。コンピュータープログラマーはこれを「逆コンパイル」と呼び、アーキテクトは「リバースエンジニアリング」と呼ぶと思いますが、統計学者がそれを何と呼ぶか、またはそれを行うための受け入れられた方法があるかどうかはわかりません.
呼び出されたカテゴリにカテゴリ列があり、それがどのように構築されたのか正確にはわかりません。しかし、それを作成するためにどの変数が使用されたかは知っています..または、少なくとも、作成に使用された変数の完全なセットを提供できます-それらのすべてが使用されたわけではありません.data.frame
newvar
# start with an example data set
x <- mtcars
# # # # # # # # # # # # # # # # # # # # # # # #
# pretend this block of code is a black box
x <-
transform(
x ,
newvar =
ifelse( mpg > 24 , 1 ,
ifelse( cyl == 6 , 9 ,
ifelse( hp > 120 , 4 ,
ifelse( mpg > 22 , 7 , 2 ) ) ) )
)
# end of unknown block of code
# # # # # # # # # # # # # # # # # # # # # # # #
# now knowing that `mtcars` has only 11 columns to choose from
names(x)
# how were these 11 columns used to construct `newvar`?
table( x$newvar )
# here's a start..
y <- data.frame( ftable( x[ , c( 'mpg' , 'cyl' , 'hp' , 'newvar' ) ] ) )
# ..combinations with any records
y[y[,5]!=0,]
# but that's not enough to back-out the construction
したがって、線形回帰または決定木を使用して の構築を取り消すことができると思いますがnewvar
、ブラック ボックス内で何が起こったのかを正確に把握するには、少し考えて係数をつなぎ合わせる必要があります。
いわば、ブラックボックスを推測する利用可能なアルゴリズムはありますか? ありがとう!!