New in

Tabulky popisné statistiky

Pomocí nového příkazu dtable můžete snadno vytvořit tabulku 1. Vykazujte popisné statistiky. Porovnávejte statistiky mezi skupinami. Export do Wordu, Excelu, PDF, HTML a dalších formátů.

Přehled

Když publikujete svou práci, je typické připojit tabulku popisné statistiky, běžně známou jako „tabulka 1“; ta poskytuje čtenáři některé informace o vašem vzorku. Můžete například uvést některé demografické údaje, jako je průměrný věk a průměrný příjem. Tyto charakteristiky můžete také porovnat mezi jednotlivými skupinami, jako jsou regiony nebo obory zaměstnání.

Ve Stata 18 můžete pomocí dtable vytvořit tyto a mnoho dalších variant „tabulky 1“ a exportovat je do mnoha formátů. Můžeme například vytvořit tabulku a exportovat ji do aplikace Excel:

Nejdůležitější informace

  • Vytvořte tabulku ve stylu „Tabulka 1“ s následujícími údaji:

    • Souhrnné statistiky pro spojité a kategoriální proměnné

    • Souhrnné statistiky pro skupiny vašich dat

    • Testovací statistiky porovnávající skupiny na základě souhrnných statistik

    • Testovací statistiky upravené na základě průzkumu

    • Statistiky vážené průzkumy

  • Přizpůsobení tabulky

    • Přidání názvu s vlastním stylem písma

    • Přidávání poznámek s vlastním stylem písma

    • Přizpůsobení statistik vzorků, formátu, záhlaví sloupců a dalších údajů

  • Export tabulky

    • Word®

    • Excel®

    • PDF

    • HTML

    • LaTeX

    • A další

Tabulka 1-Excel

 

Nebo můžeme vytvořit tabulku a exportovat ji do HTML,

Tabulka 1-HTML

 

Slovo,

Tabulka 1-HTML

 

nebo PDF.

 

Protože je dtable postaven na sadě příkazů collect, která je určena pro přizpůsobení jakéhokoli typu tabulky, můžete pomocí příkazů collect dále přizpůsobovat vzhled svých tabulek i po jejich vytvoření pomocí dtable.

Podívejme se, jak to funguje

-> Jednoduchý příklad
-> Definování vlastních statistik
-> Další přizpůsobení pomocí collect

Pomocí nástroje dtable lze vytvořit tabulku popisné statistiky stejně snadno jako zadat proměnné, které chcete v tabulce uvést. dtable je navržen tak, abyste mohli vytvořit a exportovat tabulku do různých formátů v jednom kroku. U spojitých proměnných budou uvedeny průměry a směrodatné odchylky, u faktorových proměnných počty a procenta. Pokud je to vše, co potřebujete, jednoduše zadáte název souboru a formát souboru, do kterého chcete exportovat, a je hotovo. Tabulku však samozřejmě můžete upravit tak, že do ní zahrnete řadu statistik, provedete různé testy pro kontrolu rovnosti mezi skupinami, přidáte nadpis a poznámky a provedete další úpravy.

V níže uvedených příkladech si probereme, jak vytvořit, upravit a exportovat tabulky popisné statistiky.

Příklad sbírky

Pro začátek načteme data z druhého národního průzkumu zdraví a výživy (NHANES II) (McDowell et al. 1981). Chceme souhrnné statistiky pro uvedené proměnné, ale zvlášť pro každou kategorii diabetu. Všimněte si, že používáme faktorovou notaci proměnných, abychom naznačili, že pohlaví a rasa jsou kategoriální proměnné. A tabulku exportujeme do souboru table1.html:

. webuse nhanes2l, clear
(Second National Health and Nutrition Examination Survey)

. dtable age weight bpsystol i.sex i.race, by(diabetes) export(table1.html, replace)

 

 
Diabetes status Not diabetic Diabetic Total   N 9,850 (95.2%) 499 (4.8%) 10,349 (100.0%) Age (years) 46.918 (17.193) 60.687 (11.475) 47.582 (17.216) Weight (kg) 71.658 (15.220) 76.670 (17.175) 71.900 (15.357) Systolic blood pressure 130.088 (22.759) 146.651 (28.387) 130.887 (23.332) Sex Male 4,698 (47.7%) 217 (43.5%) 4,915 (47.5%) Female 5,152 (52.3%) 282 (56.5%) 5,434 (52.5%) Race White 8,659 (87.9%) 404 (81.0%) 9,063 (87.6%) Black 1,000 (10.2%) 86 (17.2%) 1,086 (10.5%) Other 191 (1.9%) 9 (1.8%) 200 (1.9%)  
(collection DTable exported to file table1.html)

Takto snadno lze vytvořit a exportovat tabulku. Pokud dáváte přednost exportu této tabulky do jiného formátu, například LaTeX nebo PDF, stačí zadat příslušnou příponu souboru. Ačkoli se jedná o informativní tabulku, níže si ji dále přizpůsobíme.

Ve výchozím nastavení dtable uvádí průměry a směrodatné odchylky pro spojité proměnné a počty a procenta pro faktorové proměnné. Vidíme, že zhruba 95 % našeho vzorku není diabetiků, zatímco 5 % ano. Vidíme také, že průměrný systolický krevní tlak pro skupinu nediabetiků je 130 a průměr pro skupinu diabetiků je 147. Můžeme testovat, zda se průměrný systolický krevní tlak liší v závislosti na stavu diabetiků. Můžeme také otestovat, zda jsou pohlaví a stav diabetika nezávislé. Mohli bychom uvést testy porovnávající všechny proměnné napříč skupinami se statusem diabetika. Nás však nezajímá porovnání věkového nebo rasového složení obou skupin, proto tyto testy pro věk a rasu potlačíme. Potlačujeme také popisné statistiky pro celkový vzorek, sloupec označený „Celkem“:

. dtable age weight bpsystol i.sex i.race, by(diabetes, nototals tests)
continuous(age, test(none)) factor(race, test(none))
note: using test regress across levels of diabetes for weight and bpsystol.
note: using test pearson across levels of diabetes for sex.

 

 
Diabetes status Not diabetic Diabetic Test   N 9,850 (95.2%) 499 (4.8%) Age (years) 46.918 (17.193) 60.687 (11.475) Weight (kg) 71.658 (15.220) 76.670 (17.175) <0.001 Systolic blood pressure 130.088 (22.759) 146.651 (28.387) <0.001 Sex Male 4,698 (47.7%) 217 (43.5%) 0.066 Female 5,152 (52.3%) 282 (56.5%) Race White 8,659 (87.9%) 404 (81.0%) Black 1,000 (10.2%) 86 (17.2%) Other 191 (1.9%) 9 (1.8%)  
 

    Dále zadáme podvolbu place(seplabels), která umístí frekvenci pro každý podvzorek do popisku sloupce, ale na samostatný řádek. Ve výchozím nastavení se pro každou skupinu uvádějí četnosti i procenta, ale my chceme pouze četnosti. Dále můžeme upravit způsob zobrazení našich statistik pomocí volby sformat(); zde uzavíráme počty do závorek. Přidáme také poznámku s celkovou velikostí vzorku a ze záhlaví sloupce skryjeme popisek proměnné by().    

 

. dtable age weight bpsystol i.sex i.race, by(diabetes, nototals tests)
continuous(age, test(none)) factor(race, test(none))
sample(, statistics(freq) place(seplabels)) sformat("(N=%s)" frequency)
note(Total sample: N = 10,349)  column(by(hide))
note: using test regress across levels of diabetes for weight and bpsystol.
note: using test pearson across levels of diabetes for sex.
 
Not diabetic Diabetic Test
(N=9,850) (N=499)
 
Age (years) 46.918 (17.193) 60.687 (11.475)
Weight (kg) 71.658 (15.220) 76.670 (17.175) <0.001
Systolic blood pressure 130.088 (22.759) 146.651 (28.387) <0.001
Sex
Male 4,698 (47.7%) 217 (43.5%) 0.066
Female 5,152 (52.3%) 282 (56.5%)
Race
White 8,659 (87.9%) 404 (81.0%)
Black 1,000 (10.2%) 86 (17.2%)
Other 191 (1.9%) 9 (1.8%)
 
Total sample: N = 10,349

Nakonec zformátujeme průměry a směrodatné odchylky na dvě desetinná místa, přidáme nadpis a výslednou tabulku exportujeme do souboru HTML:

. dtable age weight bpsystol i.sex i.race, by(diabetes, nototals tests)
continuous(age, test(none)) factor(race, test(none))
sample(, statistics(freq) place(seplabels)) sformat("(N=%s)" frequency)
note(Total sample: N = 10,349) column(by(hide))
nformat(%7.2f mean sd) title(Table 1. Demographics) export(table1.html, replace)
note: using test regress across levels of diabetes for weight and bpsystol.
note: using test pearson across levels of diabetes for sex.

Table 1. Demographics
 
Not diabetic Diabetic Test
(N=9,850) (N=499)
 
Age (years) 46.92 (17.19) 60.69 (11.47)
Weight (kg) 71.66 (15.22) 76.67 (17.18) <0.001
Systolic blood pressure 130.09 (22.76) 146.65 (28.39) <0.001
Sex
Male 4,698 (47.7%) 217 (43.5%) 0.066
Female 5,152 (52.3%) 282 (56.5%)
Race
White 8,659 (87.9%) 404 (81.0%)
Black 1,000 (10.2%) 86 (17.2%)
Other 191 (1.9%) 9 (1.8%)
 
Total sample: N = 10,349
(collection DTable exported to file table1.html)

Definování vlastních statistik

dtable nabízí širokou škálu statistik, které můžete do tabulky zahrnout, například variační koeficient, geometrický průměr, šikmost a mnoho dalších. Možná však budete chtít kombinovat statistiky v jedné buňce. Například mezikvartilové rozpětí můžete umístit hned vedle mediánu. Pomocí dtable můžete vytvořit složené výsledky z libovolné z podporovaných statistik.

Níže chceme porovnat některá měření týkající se zdraví u osob, které prodělaly infarkt, s těmi, které ho neprodělaly. Chceme mít v jedné buňce průměry a směrodatné odchylky oddělené znaménkem plus minus. Kromě toho chceme, aby mezikvartilové rozpětí bylo umístěno hned vedle mediánu. Definujeme každý z těchto složených výsledků a určíme oddělovač. Poté zadáme statistiky, které chceme pro každou proměnnou. Přidáme také volbu svy, aby se statistiky počítaly pomocí vah průzkumu.

. dtable, by(heartatk, tests) svy
        define(meansd = mean sd, delimiter(" ± "))
        define(myiqr = p25 p75, delimiter("-"))
        continuous(age, stat(meansd) test(none))
        continuous(bmi, stat(meansd))
        continuous(bpsystol tcresult, stat(median myiqr))
note: using test regress across levels of heartatk for bmi, bpsystol, and tcresult.
 
Prior heart attack
No heart attack Had heart attack Total Test
 
N 113,647,835 (97.0%) 3,483,276 (3.0%) 117,131,111 (100.0%)
Age (years) 41.695 ± (15.320) 60.491 ± (9.054) 42.254 ± (15.504)
Body mass index (BMI) 25.235 ± (4.787) 26.604 ± (5.146) 25.276 ± (4.803) <0.001
Systolic blood pressure 122.000 110.000-138.000 138.000 122.000-150.000 124.000 110.000-140.000 <0.001
Serum cholesterol (mg/dL) 207.000 179.000-241.000 231.000 202.000-267.000 208.000 179.000-242.000 <0.001
 
 

 

 

Dále zformátujeme percentily a mediány na nula desetinných míst a mezikvartilové rozpětí uvedeme v závorce. Standardně jsou směrodatné odchylky umístěny v závorkách, ale níže závorky odstraníme:

 

 

. dtable, by(heartatk, tests) svy
        define(meansd = mean sd, delimiter(" ± "))
        define(myiqr = p25 p75, delimiter("-"))
        continuous(age, stat(meansd) test(none))
        continuous(bmi, stat(meansd))
        continuous(bpsystol tcresult, stat(median myiqr))
        nformat(%6.0f p25 p75 median) sformat("(%s)" myiqr)
        nformat(%6.1f mean sd) sformat("%s" sd)
note: using test regress across levels of heartatk for bmi, bpsystol, and tcresult.
 
Prior heart attack
No heart attack Had heart attack Total Test
 
N 113,647,835 (97.0%) 3,483,276 (3.0%) 117,131,111 (100.0%)
Age (years) 41.7 ± 15.3 60.5 ± 9.1 42.3 ± 15.5
Body mass index (BMI) 25.2 ± 4.8 26.6 ± 5.1 25.3 ± 4.8 <0.001
Systolic blood pressure 122 (110-138) 138 (122-150) 124 (110-140) <0.001
Serum cholesterol (mg/dL) 207 (179-241) 231 (202-267) 208 (179-242) <0.001
 
 

 

 

Nakonec odstraníme popisek proměnné by(), změníme popisek sloupce „Celkem“ a změníme popisek p-hodnot:

 

 

. dtable, by(heartatk, tests) svy
        define(meansd = mean sd, delimiter(" ± "))
        define(myiqr = p25 p75, delimiter("-"))
        continuous(age, stat(meansd) test(none))
        continuous(bmi, stat(meansd))
        continuous(bpsystol tcresult, stat(median myiqr))
        nformat(%6.0f p25 p75 median) sformat("(%s)" myiqr)
        nformat(%6.1f mean sd) sformat("%s" sd)
        column(by(hide) total(All) test(P-value))
note: using test regress across levels of heartatk for bmi, bpsystol, and tcresult.
 
No heart attack Had heart attack All P-value
 
N 113,647,835 (97.0%) 3,483,276 (3.0%) 117,131,111 (100.0%)
Age (years) 41.7 ± 15.3 60.5 ± 9.1 42.3 ± 15.5
Body mass index (BMI) 25.2 ± 4.8 26.6 ± 5.1 25.3 ± 4.8 <0.001
Systolic blood pressure 122 (110-138) 138 (122-150) 124 (110-140) <0.001
Serum cholesterol (mg/dL) 207 (179-241) 231 (202-267) 208 (179-242) <0.001
 

Další přizpůsobení pomocí collect

Zatímco dtable je navržen tak, aby vytvořil a exportoval tabulku v jednom kroku, můžete tyto tabulky dále upravovat pomocí sady příkazů collect. Níže změníme barvu okrajů a barvu pozadí pro střídající se řádky v naší tabulce:

. collect style cell border_block[column-header corner],
border(top, color(cyan))
. * Change the border color above the corner and column headers to cyan

. collect style cell border_block[row-header item],
border(bottom, color(cyan))
border(top, color(cyan))
. * Change the border color above and below the results and row headers to cyan

. collect style cell cell_type[column-header], font(, bold)
. * Make the column headers bold

. collect style cell var[_N bmi tcresult], shading(background(cyan))
. /*
Change the background color to cyan for the rows corresponding to N,
BMI, and cholesterol
*/

Nakonec určíme, že šířka sloupců má být změněna tak, aby odpovídala obsahu tabulky, a tabulku exportujeme:

. collect style putdocx, layout(autofitcontents)

. collect export table2.docx, replace
(collection DTable exported to file table2.docx)

Here is our resulting document:

 

Tabulka 2-Slovo

 

Další příklady vytváření tabulek popisné statistiky najdete v [R] dtable.

Odkaz

McDowell, A., A. Engel, J. T. Massey a K. Maurer. 1981. Plan and operation of the Second National Health and Nutrition Examination Survey, 1976-1980 (Plán a průběh druhého národního průzkumu zdraví a výživy v letech 1976-1980). Vital and Health Statistics 1: 1144.