Как бы вы посчитали количество элементов, которые истинны в векторе? - PullRequest
0 голосов
/ 06 марта 2020

PDF=Fr(r)=1/(1+r)^2 и Rsample=Xsample/Ysample, где X, Y - независимые экспоненциальные распределения со скоростью = 0,001.xsample = 100 значений, хранящихся в x, ysample = 100 значений, хранящихся в y.

Найти FR CDF ( r) соответствует PDF и оцените это при r ∈ {0.1,0.2,0.25,0.5,1,2,4,5,10}. Найдите пропорции значений в R-образце, меньшие, чем каждое из этих значений r, и постройте зависимости от FR (0,1), FR (0,2), ..., FR (5), FR (10). Что показывает этот график?

Я знаю, что CDF является неотъемлемой частью PDF, но разве это не даст мне отрицательные значения r.also для раздела пропорций, как бы вы посчитали количество элементов, которые true, это количество элементов, для которых R-выборка меньше, чем каждый элемент из r.

r=c(0.1,0.2,0.2,0.5,1,2,4,5,10)
prop=c(1:9)
for(i in 1:9)
{
x=Rsample<r[i]
prop[i]=c(TRUE,FALSE)
}
sum(prop[i])

Ответы [ 2 ]

2 голосов
/ 06 марта 2020

Вы сделали несколько разных ошибок здесь. Решение должно выглядеть примерно так.

Начните с определения переменных и получения образцов из экспоненциального распределения, используя rexp(100, 0.001):

r <- c(0.1, 0.2, 0.25, 0.5, 1, 2, 4, 5, 10)

set.seed(69) # Make random sample reproducible
x <- rexp(100, 0.001) # 100 random samples from exponential distribution
y <- rexp(100, 0.001) # 100 random samples from exponential distribution

Rsample <- x/y

Сложная часть получает долю Rsample, которая меньше каждого значения r. Для этого мы можем использовать sapply вместо al oop.

props <- sapply(r, function(x) length(which(Rsample < x))/length(Rsample))

. Мы получаем cdf из pdf, интегрируя (не показано):

cdf_at_r <- 1/(-r-1)  # Integral of 1/(1+r)^2 at above values of r

И мы можем посмотрим, что произойдет, когда мы построим пропорции, которые меньше выборки, по сравнению с cdf:

plot(cdf_at_r, props)

# What do we notice?
lines(c(-1, 0), c(0, 1), lty = 2, col = "red")

Создано в 2020-03-05 с помощью представьте пакет (v0.3.0)

1 голос
/ 06 марта 2020

Вот как вы можете посчитать количество элементов, для которых R-выборка меньше, чем каждый элемент r:

r=c(0.1,0.2,0.2,0.5,1,2,4,5,10)
prop=c(1:9)
less = 0;
for(i in 1:9)
{
    if (Rsample<r[i]) {
        less = less + 1
    }
}
sum(prop[i])
less
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...