我有两个向量为TRUE或FALSE的向量。基本上是关于家庭的数据以及他们是否拥有汽车以及他们是否有金表。 (注意,“汽车”和“金表”不是实际的类别,但它们是这个问题的有效替代品。)
我想找出汽车拥有权和手表拥有权之间的关系,并且可以根据使用的功能对统计数据和R使用一些建议。
这个想法是能够说: “如果有人有车,我们可以95%的信心说他们有25%的机会有金表”
我一直在搞乱Cross.Table和assocscats,基本上让我自己完全糊涂了我认为的标准统计数据问题。
有关应使用哪些测试/功能的快速见解?我的相关系数为.265,但想要量化信心。
我看了很多,包括: How do I get a contingency table? Contingency table on logistic regression in R with missing fitted values
谢谢!
答案 0 :(得分:0)
你正在寻找logit / probit回归。查看glm的使用(一般线性模型的简写)。在这类模型中,您需要将族指定为二项式,并带有指向probit / logit的链接。输入?glm,?family来读取这些函数的描述。它们使用na.action参数处理缺少的数据,该参数可以设置为na.pass。置信度将是系数+ - 系数的标准误差*临界值
答案 1 :(得分:0)
以下是详细信息,使用风险由您自行承担。我不是glm
专家,但r上有一些,也许他们会很友好地指出任何问题等等:
# reproducible data
set.seed(2)
car <- as.factor(sample(c("TRUE","FALSE"), 1000, replace=TRUE))
watch <- as.factor(sample(c("TRUE","FALSE"), 1000, replace=TRUE))
# inspect data
(mytable <- table(car,watch))
watch
car FALSE TRUE
FALSE 247 250
TRUE 254 249
summary(mytable)
Number of cases in table: 1000
Number of factors: 2
Test for independence of all factors:
Chisq = 0.06381, df = 1, p-value = 0.8006
# variables are probably not independent
# reshape for glm
(mydf <- as.data.frame(mytable))
car watch Freq
1 FALSE FALSE 247
2 TRUE FALSE 254
3 FALSE TRUE 250
4 TRUE TRUE 249
Aditya Sihag建议的模型:
summary(glmlp <- glm(watch ~ car, data = mydf, family=binomial(link=logit)))
Call:
glm(formula = watch ~ car, family = binomial(link = logit), data = mydf)
Deviance Residuals:
1 2 3 4
-1.177 -1.177 1.177 1.177
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.110e-16 1.414e+00 0 1
carTRUE -2.220e-16 2.000e+00 0 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 5.5452 on 3 degrees of freedom
Residual deviance: 5.5452 on 2 degrees of freedom
AIC: 9.5452
Number of Fisher Scoring iterations: 2
有关glm
的详细信息的实用页面:
http://www.ats.ucla.edu/stat/r/dae/probit.htm
http://data.princeton.edu/R/glms.html
https://stat.ethz.ch/pipermail/r-help/2007-March/126891.html
答案 2 :(得分:0)
另一种方法可以使用重新采样来获得2x2列联表中元素的置信区间:
set.seed(2)
car <- as.factor(sample(c("TRUE","FALSE"), 1000, replace=TRUE))
watch <- as.factor(sample(c("TRUE","FALSE"), 1000, replace=TRUE))
library(boot)
b <- boot(data.frame(car,watch), function(d,i) { table(d[i,]) }, 1000)
boot.ci(b, index=4, type="basic")
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 1000 bootstrap replicates
CALL :
boot.ci(boot.out = b, type = "basic", index = 4)
Intervals :
Level Basic
95% (222, 276 )
Calculations and Intervals on Original Scale
因此,手表和汽车概率的95%CI = 0.22,0.28。