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.