Published August 28, 2026
| Version v1
Dataset
Restricted
Dataset_The development and psychometric evaluation of the brief Compulsive Pornography Use Scale (CPUS-4)
Authors/Creators
- 1. Charles University
- 2. Birkbeck University of London
- 3. Palacký University Olomouc
Description
## 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
Notes
Files
Additional details
Related works
- Is referenced by
- 10.1186/s40359-026-05328-1 (DOI)