更新基於在評論
如何對這種做法再額外信息。運行相關網格 - 計算每行的預測變量的數量,然後輸入quickpred
個別相關性以反映閾值要求。
對於每預測1點或更小的預測(變化x<=1
來修改):
grid <- seq(0.1, 0.5, 0.05)
result <- apply(sapply(grid, function(x) { rowSums(quickpred(df, mincor=x)) } ), 1, function(x) {min(which(x<=1))})
result
age bmi hyp chl
1 7 8 8
因此,使用第一相關從grid
爲變量1,7號從可變2等
這可以直接插入quickpred
> quickpred(df, mincor=grid[result])
age bmi hyp chl
age 0 0 0 0
bmi 0 0 0 0
hyp 1 0 0 0
chl 1 0 0 0
其中每個變量至多有一個預測變量。如果我們想要3點或更少的預測,我們得到
> quickpred(df, mincor=grid[result])
age bmi hyp chl
age 0 0 0 0
bmi 1 0 1 1
hyp 1 0 0 1
chl 1 1 1 0
原來的答覆
你或許可以修復自己的計算參數的數量,然後選擇停產,讓您的所需數量預測。例如,如果我經歷seq(0.1, 0.5, 0.05)
定義的相關性,計算相應的二進制quickpred
預測矩陣的列總和(以獲得有關哪些列/變量包含在預測中的信息),然後計算是非零列我用下面的代碼
grid <- seq(0.1, 0.5, 0.05)
result <- sapply(grid, function(x) { sum(colSums(quickpred(df, mincor=x))>0) } )
產生
> result
[1] 4 4 4 4 4 4 3 1 1
說我只在我的模型要1個預測。那麼我將不得不使用0.45(= grid[min(which(result <= 1))]
)的最小絕對相關性,因爲這是我的預測矩陣第一次以一個預測變量(從這個網格出發)結束。
> quickpred(df, mincor=.45)
age bmi hyp chl
age 0 0 0 0
bmi 0 0 0 0
hyp 1 0 0 0
chl 1 0 0 0
所以age
是預測因子。並與mincor=.4
我得到
> quickpred(df, mincor=.40)
age bmi hyp chl
age 0 0 0 0
bmi 0 0 0 0
hyp 1 0 0 1
chl 1 0 1 0
其中涉及3個預測指標。
效果很好。不幸的是,我應該進一步指定 - 我期望指定每個結果的最大預測因子數。假設我需要15個預測結果;預測因子不需要相同的結果。這可能嗎? –
附加信息更新答案 – ekstroem