【问题标题】:R chisq.test test on data frameR chisq.test 数据框测试
【发布时间】:2017-10-30 06:02:43
【问题描述】:

我正在尝试对下面的数据框(称为“habitat.re”)进行 chi sqare 分析,但是当我提示它时,我很难读取数据,但是它给出了错误的结果使用 $expected 它返回 18 个不同的列,而应该有 3 个(每个站点一个)。

我能找到的所有旅游指南都将数据作为表格,但是我自己无法正确转换它。

【问题讨论】:

    标签: r chi-squared


    【解决方案1】:

    chisq.test 函数旨在处理两个变量,在这种情况下是列。如果您想比较所有三个列,那么我怀疑您会想要比较 1-22-33-3,例如

    chisq.test(x=habitat.re$Gidgee, y=habitat.re$`Ian's Place`)
    chisq.test(x=habitat.re$`Ian's Place`, y=habitat.re$`Saw Mulga`)
    chisq.test(x=habitat.re$Gidgee, y=habitat.re$`Saw Mulga`)
    

    实际上,只要输入上面的内容,就可以直接向 R 控制台显示很多有用的信息,如下所示:

    data:  habitat.re$Gidgee and y=habitat.re$`Ian's Place`
    X-squared = 5.5569, df = 1, p-value = 0.01841
    

    足够低的p-value 可能表明这两列实际上是相互依赖的。

    【讨论】:

    • 它仍然做同样的事情,它比较文字值的概率(例如,两者都有“14”的概率而不是比较每个组的分数)这个例子videodata frame有眼睛颜色 (x) 和头发颜色 (y),它们会返回类别可能性的结果。
    • 三列的类型是什么?是数字还是因子?
    • 它们是观察计数,我刚刚从 CSV 作为数据框导入并进行了一些整形
    • class(habitat.re$Gidgee)
    • 它说“数字”
    【解决方案2】:

    Pearson 的卡方检验要求将数据框制成矩阵表,其中仅包含您需要作为数值的变量。注:我的数据框被称为“habitat.re”

    habitat.df<-data.matrix(habitat.re, rownames.force = NA)# convert to matrix table
    habitat.df<- habitat.df[,-c(1,2,3)] # delete first 3 columns
    rownames(habitat.df) <- habitat.re$COMMON.NAME #pull names from original
    chisq.test(habitat.df) #do chisquare test
    chisq.test(habitat.df)$expected #return predicted values
    

    以下是我的数据框的图片

    habitat.re
    

    habitat.df
    

    【讨论】:

    • 您应该在问题中包含这些数据。
    猜你喜欢
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 2022-01-23
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    相关资源
    最近更新 更多