WebHU - Programozási kérdések és válaszok

R: egy függvény bemeneti tartományának megtalálása, amely bizonyos kimeneti tartományt ad

A pbeta()-t, a kumulatív valószínűség-eloszlási függvényt R-ben használom, hogy megkeressem a bemeneti értékek (p) valószínűségét 0-tól 1-ig. Azoknak a bemeneti értékeknek csak egy részhalmaza érdekel, amelyek 0,025 és 0,975 közötti valószínűségeket adnak (ez egy konfidenciaintervallum az adataim számára).

Az első megközelítésem az volt, hogy felsoroltam 99 értéket 0 és 1 között, és futtattam rajtuk a pbeta()-t, majd kivontam azokat az értékeket, amelyek kimenetei a megfelelő tartományban voltak:

alpha <- 50 # Set values for the other two pbeta() parameters.
beta <- 100

p <- c(seq(from=0.01, to=0.99, by=0.01)) # Inputs must be between 0.01 and 0.99 inclusive, so evaluate 99 points in that range.
pbeta_outputs <- c(rep(0,99)) # A vector to hold the pbeta() output.

for (i in seq(1:length(p)) ) { # Fill pbeta_outputs using pbeta().
  pbeta_outputs[i] <- pbeta(p[i], shape1=alpha, shape2=beta)
}

probabilities <- data.frame(p, pbeta_outputs) # Arrange inputs and outputs in a data frame.
probabilities_keep <- subset(probabilities, pbeta_outputs>=0.025 & pbeta_outputs<=0.975)  # Subset to keep only inputs with outputs in the right range.

De ez pontatlan. Ehelyett szeretném közvetlenül kiszámítani a bemeneti értékek azon tartományát, amely a megfelelő tartományban a pbeta() kimenetet eredményezné.

Valami hasonló:

successful_inputs <- find_input_range(pbeta(x, shape1=alpha, shape2=beta), 0.025:0.975)

Létezik ilyen funkció?


Válaszok:


1

Úgy tűnik, hogy amit keres, az qbeta?

alpha <- 50
beta <- 100

# get lower bound 
(lb <- qbeta(0.025, shape1 = alpha, shape2 = beta))
# [1] 0.2603782

# get upper bound
(ub <- qbeta(0.975, shape1 = alpha, shape2 = beta))
# [1] 0.4104985

pbeta(ub, shape1 = alpha, shape2 = beta) - pbeta(lb, shape1 = alpha, shape2 = beta)
# [1] 0.95
11.01.2021
  • Fantasztikus. Ez teljesen megoldja a problémámat, és olyan szemszögből, amelyre nem gondoltam. Köszönöm! 12.01.2021
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..