Dataset_The development and psychometric evaluation of the brief Compulsive Pornography Use Scale (CPUS-4)
收藏资源简介:
## Overview Overview Dataset obsahuje individuální odpovědi z průřezového online dotazníkového šetření u dospělých v České republice. Studie byla zaměřena na vývoj a psychometrické ověření čtyřpoložkové škály Compulsive Pornography Use Scale (CPUS-4), která zachycuje behaviorální projevy kompulzivního užívání pornografie v návaznosti na rámec ICD-11 pro kompulzivní sexuální chování. Součástí dat jsou sociodemografické údaje, charakteristiky užívání pornografie a položky a skóry CPUS-4, PAST, DASS-21 a UCLA-3. Rukopis uvádí výchozí vzorek 1 134 respondentů a analytický vzorek 1 023 respondentů po vyloučení 111 případů s chybějícími položkami hlavních psychometrických nástrojů. Data slouží především k psychometrickým analýzám a studiu souvislostí mezi užíváním pornografie, psychickými obtížemi a osamělostí. Nereprezentativní výběr, sebevýpovědní měření a průřezový design omezují zobecnitelnost a neumožňují vyvozovat kauzalitu. CPUS-4 není samostatným diagnostickým nástrojem. Jedná se o citlivé osobní údaje, které mohou být zpřístupněny pouze na základě žádosti adresované autorům a s jejich souhlasem. Související článek: Babilonová, T., Pontes, H. M., Pipová, H., Reháková, T., Komrska, Š., & Suchá, J. (2026). The development and psychometric evaluation of the brief Compulsive Pornography Use Scale (CPUS-4). BMC Psychology. https://doi.org/10.1186/s40359-026-05328-1. ## Methods • Průřezové, neintervenční online dotazníkové šetření u dospělých v České republice. • Nepravděpodobnostní příležitostný výběr a samovýběr; distribuce přes sociální sítě Facebook, Instagram a Discord. • Sběr probíhal od ledna do března 2024. • Analytický vzorek: N = 1 023, 364 mužů, 632 žen, 10 osob v kategorii "jiné" a 17 chybějících údajů o genderu. Respondenti jsou ve věku 18–72 let, průměrný věk je 27,52 roku (SD = 7,74). • Pro EFA a CFA byl analytický vzorek náhodně rozdělen se stratifikací podle genderu a věkových tercilů: EFA n = 511, CFA n = 512. Chybějící gender tvořil samostatné stratum. ## Data structure Proměnná / proměnné Popis, jednotka a kódování ID Číselný identifikátor záznamu; 1 089 dostupných jedinečných hodnot. Date Datum a čas záznamu. Time Číselný údaj 146–9 249; doba vyplňování v sekundách. Gender 1 = muž, 2 = žena, 4 = jiné; mapování odvozené dle výše uvedeného postupu. Kód 3 (nechci odpovědět) se nevyskytuje. Age Věk v letech; 18–72. occupation 0 = neuvedeno; 1 = student/ka; 2 = zaměstnaný/á; 3 = OSVČ; 4 = nezaměstnaný/á / nestudující; 5 = jiné (např. rodičovská dovolená, důchod, dlouhodobá péče). education 0 = neuvedeno; 1 = základní (ISCED 2); 2 = střední bez maturity (ISCED 3); 3 = střední s maturitou (ISCED 3); 4 = vyšší odborné (ISCED 5); 5 = vysokoškolské (ISCED 6–8). ageporn Odhadovaný věk prvního kontaktu s pornografickým materiálem, roky; 0–40. Nula znamená nikdy. porn30d Počet případů sledování pornografie za posledních 30 dnů; 0–50. Jde o počet sledování, nikoli počet dnů. porntime1 Průměrná denní doba sledování pornografie v pracovní den, v hodinách (rozpětí 0–5) porntime2 Průměrná denní doba sledování pornografie ve volný den, v hodinách (rozpětí 0–12). ucla1, ucla2, ucla3 Položky osamělosti; v souboru 0, 1, 2, 3. Nula znamená, že respondent položku nevyplnil. Odpovědi byly kódovány na škále od 1 do 3 následovně: 1 = téměř nikdy, 2 = někdy a 3 = často. ucla_ts Součet položek ucla1–ucla3. past1–past25 Každý celočíselný index od 1 do 25 označuje samostatnou položku PAST. Odpovědi byly kódovány na škále od 0 do 4 následovně: 0 = nikdy, 1 = jeden až dvakrát, 2 = zřídka, 3 = někdy a 4 = často. past_ts Součet položek past1–past25. cpus1, cpus2, cpus3, cpus4 Položky CPUS-4; Odpovědi byly kódovány na škále od 1 do 5 následovně: 1 = nikdy, 2 = málokdy, 3 = někdy, 4 = často a 5 = velmi často. Nula znamená, že respondent položku nevyplnil. cpus_ts Součet položek cpus1–cpus4 dass1, dass6, dass8, dass11, dass12, dass14, dass18 Sedm položek faktoru stresu DASS-21. Odpovědi byly kódovány na škále od 0 do 3 následovně: 0 = vůbec se mě to netýkalo, 1 = do určité míry nebo někdy se mě to týkalo, 2 = do velké míry nebo často se mě to týkalo a 3 = velice nebo skoro vždy se mě to týkalo. dass3, dass5, dass10, dass13, dass16, dass17, dass21 Sedm položek faktoru deprese DASS-21. Odpovědi byly kódovány na škále od 0 do 3 následovně: 0 = vůbec se mě to netýkalo, 1 = do určité míry nebo někdy se mě to týkalo, 2 = do velké míry nebo často se mě to týkalo a 3 = velice nebo skoro vždy se mě to týkalo. dass2, dass4, dass7, dass9, dass15, dass19, dass20 Sedm položek faktoru úzkosti DASS-21. Odpovědi byly kódovány na škále od 0 do 3 následovně: 0 = vůbec se mě to netýkalo, 1 = do určité míry nebo někdy se mě to týkalo, 2 = do velké míry nebo často se mě to týkalo a 3 = velice nebo skoro vždy se mě to týkalo. dep_ts Součet sedmi položek faktoru deprese. anx_ts Součet sedmi položek faktoru úzkosti. str_ts Součet sedmi položek faktoru stresu. ## Usage Jak data načíst Příklad pro Python s pandas a openpyxl. Soubory umístěte do pracovního adresáře. Kód zachovává původní hodnoty a neprovádí neověřené překódování. Příklad pro Python: from pathlib import Path import pandas as pd path = Path("dataset_cpus.xlsx") df = pd.read_excel(path, sheet_name="Data", engine="openpyxl") df = df.dropna(axis=1, how="all") # pouze zcela prázdné sloupce print("Řádkové pozice a proměnné:", df.shape) # (1134, 72) print("Zcela prázdné řádky:", df.isna().all(axis=1).sum()) # 14 items = ( [f"ucla{i}" for i in range(1, 4)] + [f"past{i}" for i in range(1, 26)] + [f"cpus{i}" for i in range(1, 5)] + [f"dass{i}" for i in range(1, 22)] ) analytic = df.dropna(subset=items).copy() print("Kompletní případy:", len(analytic)) # 1023 # Jde o reprodukci výběru podle chybějících položek, # nikoli potvrzení správnosti veškerého kódování. print("Nuly v UCLA v analytickém vzorku:", analytic[["ucla1", "ucla2", "ucla3"]].eq(0).any(axis=1).sum()) # 6 # Přepočet do nového sloupce, bez přepsání uloženého skóru. past_items = [f"past{i}" for i in range(1, 26)] df["past_ts_recomputed"] = df[past_items].sum(axis=1, min_count=25) available = df[["past_ts", "past_ts_recomputed"]].notna().all(axis=1) mismatch = available & df["past_ts"].ne(df["past_ts_recomputed"]) print(df.loc[mismatch, ["ID", "past_ts", "past_ts_recomputed"]]) Požadavky na software nebo závislosti Pro uvedený příklad je potřeba Python 3, pandas a openpyxl (pip install pandas openpyxl). Pro reprodukci publikovaných analýz je relevantní R a balíčky uvedené v oddílu Methods. XLSX lze prohlížet také v Excelu nebo LibreOffice Calc. Známá omezení pro re-use • Prázdné buňky znamenají, že údaj byl odstraněn v rámci čištění dat. • Výběr kompletních případů reprodukuje velikost analytického vzorku a tabulku 1. • Vzorek je nereprezentativní a převažují ženy a mladší dospělí. Nelze z něj bez dalšího odvozovat populační prevalenci ani zobecňovat výsledky na děti, klinickou populaci nebo jiné jazykové prostředí. • Sebevýpovědní údaje mohou být ovlivněny vybavováním a sociální žádoucností. Jednotlivé nástroje mají rozdílná referenční období. • Použití datasetu je podmíněno vyžádáním od korespondenčního autora, jeho licence je CC BY 4.0. • Před veřejným sdílením je nutné vyjasnit zacházení s přesnými časovými značkami a dalšími potenciálně rozlišujícími údaji. ## Change log - 2026-09-26: První vydání ## Contact Jaroslava Suchá, jaroslava.sucha@upol.cz ACCESS CONDITIONS Access to this record is restricted due to: Personal sensitive data. Access may be granted for legitimate research purposes upon reasonable request and subject to approval by the data steward. To request access, please contact: Jaroslava Suchá (jaroslava.sucha@upol.cz). The request should include: • brief project description and intended use • institutional affiliation • agreement to sign a Data Use Agreement (DUA), if required



