使用二项分布进行统计分析。

huangapple go评论97阅读模式
英文:

Perform statistical analysis using binomial distribution

问题

我正在尝试使用二项分布来测试一个“随机”模型,该模型只会随机地在50%的时间内回答“virginica”,25%的时间内回答“setosa”,以及最后25%的时间内回答“versicolor”,以查看我的逻辑回归模型是否更准确,反之亦然。这可以做到吗?以下是我的尝试...

  1. # 逻辑回归模型。
  2. glm <- glm(dummy_virginica_iris ~ Petal.Width + Sepal.Width,
  3. data = iris,
  4. family = 'binomial')
  5. summary(glm)
  6. # 分类器。
  7. glm.pred <- predict(glm, type="response")
  8. virginica <- ifelse(glm.pred > .5, TRUE, FALSE)
  9. table(iris$Species, virginica)
  10. # 预测表格。
  11. table(virginica, iris$dummy_virginica_iris)
  12. # 二项分布??
  13. rbinom(160, 1, 0.5)

请注意,我已经删除了一些代码的翻译,因为它们是代码的一部分,不需要进行翻译。如果您有任何其他问题,请随时提出。

英文:

I am trying to use the binomial distribution to test whether a "random" model that just randomly responds "virginica" 50% of the time, "setosa" 25% of the time and "versicolor" the last 25% of the time to see whether my logistic regression model is more accurate or vice versa. Can this be done? Here is my attempt...

  1. library(datasets)
  2. iris$dummy_virginica_iris <- 0
  3. iris$dummy_virginica_iris[iris$Species == 'virginica'] <- 1
  4. iris$dummy_virginica_iris
  5. # Logistic regression model.
  6. glm <- glm(dummy_virginica_iris ~ Petal.Width + Sepal.Width,
  7. data = iris,
  8. family = 'binomial')
  9. summary(glm)
  10. # Classifer.
  11. glm.pred <- predict(glm, type="response")
  12. virginica <- ifelse(glm.pred > .5, TRUE, FALSE)
  13. table(iris$Species, virginica)
  14. # Table of predictions.
  15. table(virginica, iris$dummy_virginica_iris)
  16. # Binomial distribution??
  17. rbinom(160, 1, 0.5)

答案1

得分: 0

你可以使用 sample 来完成这个任务:

  1. set.seed(1)
  2. rando <- sample(c('virginica', 'setosa', 'versicolor'), # 可能响应的向量
  3. prob = c(1/2, 1/4, 1/4), # 这些响应的概率
  4. size = length(virginica), # 需要的响应数量
  5. replace = TRUE) # 指定带替换的抽样
  6. table(rando, iris$dummy_virginica_iris)
  7. rando 0 1
  8. setosa 27 8
  9. versicolor 21 18
  10. virginica 52 24
  11. rando_virginica <- ifelse(rando == 'virginica', TRUE, FALSE)
  12. table(rando_virginica, iris$dummy_virginica_iris)
  13. rando_virginica 0 1
  14. FALSE 48 26
  15. TRUE 52 24
英文:

You can use sample to do this:

  1. set.seed(1)
  2. rando &lt;- sample(c(&#39;virginica&#39;, &#39;setosa&#39;, &#39;versicolor&#39;), # vector of possible responses
  3. prob = c(1/2, 1/4, 1/4), # probabilities of those responses
  4. size = length(virginica), # number of responses desired
  5. replace = TRUE) # specify sampling with replacement
  6. table(rando, iris$dummy_virginica_iris)
  7. rando 0 1
  8. setosa 27 8
  9. versicolor 21 18
  10. virginica 52 24
  11. rando_virginica &lt;- ifelse(rando == &#39;virginica&#39;, TRUE, FALSE)
  12. table(rando_virginica, iris$dummy_virginica_iris)
  13. rando_virginica 0 1
  14. FALSE 48 26
  15. TRUE 52 24

huangapple
  • 本文由 发表于 2020年1月3日 17:53:08
  • 转载请务必保留本文链接:https://go.coder-hub.com/59576383.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定