-2

我有两个向量,它们是 TRUE 或 FALSE。基本上是关于家庭的数据,以及他们是否拥有汽车以及是否有金表。(注意,“汽车”和“金表”不是实际的类别,但它们是这个问题的有效替代品)。

我想找出汽车所有权和手表所有权之间的关系,并且可以就使用哪些功能对统计数据和 R 提出一些建议。

这个想法是能够说:“如果有人有车,我们可以有 95% 的信心说他们有 25% 的机会拥有金表”

我一直在搞乱 Cross.Table 和 assocscats 并且基本上让自己对我认为的标准统计问题完全感到困惑。

关于应该使用哪些测试/功能的任何快速见解?我的相关性为 0.265,但想量化置信度。

我环顾四周,包括: 如何获得应急表? R中缺少拟合值的逻辑回归列联表

谢谢!!

4

3 回答 3

0

你会想要做一个 logit / probit 回归。查找 glm 的用法(一般线性模型的简写)。在此类模型中,您需要将族指定为二项式,并带有指向 probit / logit 的链接。键入 ?glm, ?family 以阅读有关这些功能的说明。他们使用 na.action 参数处理丢失的数据,该参数可以设置为 na.pass。置信度为估计系数 +- 系数标准误差 * 临界值

于 2013-04-01T03:47:43.247 回答
0

这是细节的镜头,使用风险自负。我不是glm专家,但这里有一些关于的问题,也许他们会很好地指出任何问题,等等:

# 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

于 2013-04-01T04:30:30.940 回答
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。

于 2013-04-01T10:52:36.840 回答