如何计算无法将变量彼此分开的2列中的观察数

时间:2019-02-18 09:42:17

标签: r

我有一个包含222个观测值和2个变量的数据框: landslide_z_prediction y (发生次数)

landslide_z_prediction 取值从0到1,而 ytest 取整数0或1。

我的任务是找出正确预测了多少预测的阳性/阴性。

  • 如果z <0.5->预测为负
  • 如果z> 0.5->预测为阳性
  • 如果y = 0->观察为负
  • 如果y = 1->观察为阳性

方案是:

a)如果z <0.5且y = 0->预测正确

b)如果z <0.5且y = 1->预测错误

c)如果z> 0.5且y = 1->预测正确

d)如果z> 0.5且y = 0->预测错误

我将222个观测值以data.frame格式放置

combined_predicitons <- data.frame(landslide_z_predicted, ytest)

如何提取每种情况下的发生次数?

2 个答案:

答案 0 :(得分:2)

嗨,

我为.priceText包找到了解决您问题的一种解决方案。这是代码:

@Override
    public void onBillingInitialized() {
        SkuDetails mysku = bp.getPurchaseListingDetails("minivip");
        String miniprice = mysku.priceText;
        minivip2text.setText(miniprice);
    }

首先,我生成一个名为dplyr的变量。如果预测正确与否,则为True / False。在第二个变量中,我列出了您问题中的所有案例,并将其命名为“ case_01”,“ case_02”,...。这样,我就可以按案例对数据框进行分组并计算发生的次数。

答案 1 :(得分:0)

如果我的理解正确,那么您希望创建一个 confusion matrix

为了做到这一点,我可以建议您:

1-根据您的阈值将z值更改为1或0:

由于您的阈值为0.5,因此您可以使用round

combined_predicitons$landslide_z_predicted_dicotomy = round(combined_predicitons$landslide_z_predicted)

否则,使用ifelse,如果预测的值超过阈值,则它将输出值为1,否则为0。

threshold = 0.5    
combined_predicitons$landslide_z_predicted_dicotomy = ifelse(combined_predicitons$landslide_z_predicted >= threshold, 1, 0)

2-创建table

table(combined_predicitons$y, combined_predicitons$landslide_z_predicted_dicotomy)

有了这个,您将获得每个场景的出现次数。