@wentorai/research-plugins 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/curated/analysis/README.md +64 -0
- package/curated/domains/README.md +104 -0
- package/curated/literature/README.md +53 -0
- package/curated/research/README.md +62 -0
- package/curated/tools/README.md +87 -0
- package/curated/writing/README.md +61 -0
- package/index.ts +39 -0
- package/mcp-configs/academic-db/ChatSpatial.json +17 -0
- package/mcp-configs/academic-db/academia-mcp.json +17 -0
- package/mcp-configs/academic-db/academic-paper-explorer.json +17 -0
- package/mcp-configs/academic-db/academic-search-mcp-server.json +17 -0
- package/mcp-configs/academic-db/agentinterviews-mcp.json +17 -0
- package/mcp-configs/academic-db/all-in-mcp.json +17 -0
- package/mcp-configs/academic-db/apple-health-mcp.json +17 -0
- package/mcp-configs/academic-db/arxiv-latex-mcp.json +17 -0
- package/mcp-configs/academic-db/arxiv-mcp-server.json +17 -0
- package/mcp-configs/academic-db/bgpt-mcp.json +17 -0
- package/mcp-configs/academic-db/biomcp.json +17 -0
- package/mcp-configs/academic-db/biothings-mcp.json +17 -0
- package/mcp-configs/academic-db/catalysishub-mcp-server.json +17 -0
- package/mcp-configs/academic-db/clinicaltrialsgov-mcp-server.json +17 -0
- package/mcp-configs/academic-db/deep-research-mcp.json +17 -0
- package/mcp-configs/academic-db/dicom-mcp.json +17 -0
- package/mcp-configs/academic-db/enrichr-mcp-server.json +17 -0
- package/mcp-configs/academic-db/fec-mcp-server.json +17 -0
- package/mcp-configs/academic-db/fhir-mcp-server-themomentum.json +17 -0
- package/mcp-configs/academic-db/fhir-mcp.json +19 -0
- package/mcp-configs/academic-db/gget-mcp.json +17 -0
- package/mcp-configs/academic-db/google-researcher-mcp.json +17 -0
- package/mcp-configs/academic-db/idea-reality-mcp.json +17 -0
- package/mcp-configs/academic-db/legiscan-mcp.json +19 -0
- package/mcp-configs/academic-db/lex.json +17 -0
- package/mcp-configs/ai-platform/Adaptive-Graph-of-Thoughts-MCP-server.json +17 -0
- package/mcp-configs/ai-platform/ai-counsel.json +17 -0
- package/mcp-configs/ai-platform/atlas-mcp-server.json +17 -0
- package/mcp-configs/ai-platform/counsel-mcp.json +17 -0
- package/mcp-configs/ai-platform/cross-llm-mcp.json +17 -0
- package/mcp-configs/ai-platform/gptr-mcp.json +17 -0
- package/mcp-configs/browser/decipher-research-agent.json +17 -0
- package/mcp-configs/browser/deep-research.json +17 -0
- package/mcp-configs/browser/everything-claude-code.json +17 -0
- package/mcp-configs/browser/gpt-researcher.json +17 -0
- package/mcp-configs/browser/heurist-agent-framework.json +17 -0
- package/mcp-configs/data-platform/4everland-hosting-mcp.json +17 -0
- package/mcp-configs/data-platform/context-keeper.json +17 -0
- package/mcp-configs/data-platform/context7.json +19 -0
- package/mcp-configs/data-platform/contextstream-mcp.json +17 -0
- package/mcp-configs/data-platform/email-mcp.json +17 -0
- package/mcp-configs/note-knowledge/ApeRAG.json +17 -0
- package/mcp-configs/note-knowledge/In-Memoria.json +17 -0
- package/mcp-configs/note-knowledge/agent-memory.json +17 -0
- package/mcp-configs/note-knowledge/aimemo.json +17 -0
- package/mcp-configs/note-knowledge/biel-mcp.json +19 -0
- package/mcp-configs/note-knowledge/cognee.json +17 -0
- package/mcp-configs/note-knowledge/context-awesome.json +17 -0
- package/mcp-configs/note-knowledge/context-mcp.json +17 -0
- package/mcp-configs/note-knowledge/conversation-handoff-mcp.json +17 -0
- package/mcp-configs/note-knowledge/cortex.json +17 -0
- package/mcp-configs/note-knowledge/devrag.json +17 -0
- package/mcp-configs/note-knowledge/easy-obsidian-mcp.json +17 -0
- package/mcp-configs/note-knowledge/engram.json +17 -0
- package/mcp-configs/note-knowledge/gnosis-mcp.json +17 -0
- package/mcp-configs/note-knowledge/graphlit-mcp-server.json +19 -0
- package/mcp-configs/reference-mgr/arxiv-cli.json +17 -0
- package/mcp-configs/reference-mgr/arxiv-search-mcp.json +17 -0
- package/mcp-configs/reference-mgr/chiken.json +17 -0
- package/mcp-configs/reference-mgr/claude-scholar.json +17 -0
- package/mcp-configs/reference-mgr/devonthink-mcp.json +17 -0
- package/mcp-configs/registry.json +447 -0
- package/openclaw.plugin.json +21 -0
- package/package.json +61 -0
- package/skills/analysis/dataviz/color-accessibility-guide/SKILL.md +230 -0
- package/skills/analysis/dataviz/geospatial-viz-guide/SKILL.md +218 -0
- package/skills/analysis/dataviz/interactive-viz-guide/SKILL.md +287 -0
- package/skills/analysis/dataviz/network-visualization-guide/SKILL.md +195 -0
- package/skills/analysis/dataviz/publication-figures-guide/SKILL.md +238 -0
- package/skills/analysis/dataviz/python-dataviz-guide/SKILL.md +195 -0
- package/skills/analysis/econometrics/causal-inference-guide/SKILL.md +197 -0
- package/skills/analysis/econometrics/iv-regression-guide/SKILL.md +198 -0
- package/skills/analysis/econometrics/panel-data-guide/SKILL.md +274 -0
- package/skills/analysis/econometrics/robustness-checks/SKILL.md +250 -0
- package/skills/analysis/econometrics/stata-regression/SKILL.md +117 -0
- package/skills/analysis/econometrics/time-series-guide/SKILL.md +235 -0
- package/skills/analysis/statistics/bayesian-statistics-guide/SKILL.md +221 -0
- package/skills/analysis/statistics/hypothesis-testing-guide/SKILL.md +210 -0
- package/skills/analysis/statistics/meta-analysis-guide/SKILL.md +206 -0
- package/skills/analysis/statistics/nonparametric-tests-guide/SKILL.md +221 -0
- package/skills/analysis/statistics/power-analysis-guide/SKILL.md +240 -0
- package/skills/analysis/statistics/sem-guide/SKILL.md +231 -0
- package/skills/analysis/statistics/survival-analysis-guide/SKILL.md +195 -0
- package/skills/analysis/wrangling/missing-data-handling/SKILL.md +224 -0
- package/skills/analysis/wrangling/pandas-data-wrangling/SKILL.md +242 -0
- package/skills/analysis/wrangling/questionnaire-design-guide/SKILL.md +234 -0
- package/skills/analysis/wrangling/text-mining-guide/SKILL.md +225 -0
- package/skills/domains/ai-ml/computer-vision-guide/SKILL.md +213 -0
- package/skills/domains/ai-ml/deep-learning-papers-guide/SKILL.md +200 -0
- package/skills/domains/ai-ml/llm-evaluation-guide/SKILL.md +194 -0
- package/skills/domains/ai-ml/prompt-engineering-research/SKILL.md +233 -0
- package/skills/domains/ai-ml/reinforcement-learning-guide/SKILL.md +254 -0
- package/skills/domains/ai-ml/transformer-architecture-guide/SKILL.md +233 -0
- package/skills/domains/biomedical/clinical-research-guide/SKILL.md +232 -0
- package/skills/domains/biomedical/clinicaltrials-api/SKILL.md +177 -0
- package/skills/domains/biomedical/epidemiology-guide/SKILL.md +200 -0
- package/skills/domains/biomedical/genomics-analysis-guide/SKILL.md +270 -0
- package/skills/domains/business/market-analysis-guide/SKILL.md +112 -0
- package/skills/domains/business/strategic-management-guide/SKILL.md +154 -0
- package/skills/domains/chemistry/computational-chemistry-guide/SKILL.md +266 -0
- package/skills/domains/chemistry/retrosynthesis-guide/SKILL.md +215 -0
- package/skills/domains/cs/algorithms-complexity-guide/SKILL.md +194 -0
- package/skills/domains/cs/dblp-api/SKILL.md +129 -0
- package/skills/domains/cs/software-engineering-research/SKILL.md +218 -0
- package/skills/domains/ecology/biodiversity-data-guide/SKILL.md +296 -0
- package/skills/domains/ecology/conservation-biology-guide/SKILL.md +198 -0
- package/skills/domains/ecology/gbif-api/SKILL.md +158 -0
- package/skills/domains/ecology/inaturalist-api/SKILL.md +173 -0
- package/skills/domains/economics/behavioral-economics-guide/SKILL.md +239 -0
- package/skills/domains/economics/development-economics-guide/SKILL.md +181 -0
- package/skills/domains/economics/fred-api/SKILL.md +189 -0
- package/skills/domains/education/curriculum-design-guide/SKILL.md +144 -0
- package/skills/domains/education/learning-science-guide/SKILL.md +150 -0
- package/skills/domains/finance/financial-data-analysis/SKILL.md +152 -0
- package/skills/domains/finance/quantitative-finance-guide/SKILL.md +151 -0
- package/skills/domains/geoscience/climate-science-guide/SKILL.md +158 -0
- package/skills/domains/geoscience/gis-remote-sensing-guide/SKILL.md +129 -0
- package/skills/domains/humanities/digital-humanities-guide/SKILL.md +181 -0
- package/skills/domains/humanities/philosophy-research-guide/SKILL.md +148 -0
- package/skills/domains/law/courtlistener-api/SKILL.md +213 -0
- package/skills/domains/law/legal-research-guide/SKILL.md +250 -0
- package/skills/domains/math/linear-algebra-applications/SKILL.md +227 -0
- package/skills/domains/math/numerical-methods-guide/SKILL.md +236 -0
- package/skills/domains/math/oeis-api/SKILL.md +158 -0
- package/skills/domains/pharma/clinical-pharmacology-guide/SKILL.md +165 -0
- package/skills/domains/pharma/drug-development-guide/SKILL.md +177 -0
- package/skills/domains/physics/computational-physics-guide/SKILL.md +300 -0
- package/skills/domains/physics/nasa-ads-api/SKILL.md +150 -0
- package/skills/domains/physics/quantum-computing-guide/SKILL.md +234 -0
- package/skills/domains/social-science/social-research-methods/SKILL.md +194 -0
- package/skills/domains/social-science/survey-research-guide/SKILL.md +182 -0
- package/skills/literature/discovery/citation-alert-guide/SKILL.md +154 -0
- package/skills/literature/discovery/conference-proceedings-guide/SKILL.md +142 -0
- package/skills/literature/discovery/literature-mapping-guide/SKILL.md +175 -0
- package/skills/literature/discovery/paper-tracking-guide/SKILL.md +211 -0
- package/skills/literature/discovery/rss-paper-feeds/SKILL.md +214 -0
- package/skills/literature/discovery/semantic-scholar-recs-guide/SKILL.md +164 -0
- package/skills/literature/fulltext/doaj-api/SKILL.md +120 -0
- package/skills/literature/fulltext/interlibrary-loan-guide/SKILL.md +163 -0
- package/skills/literature/fulltext/open-access-guide/SKILL.md +183 -0
- package/skills/literature/fulltext/pmc-oai-api/SKILL.md +184 -0
- package/skills/literature/fulltext/preprint-servers-guide/SKILL.md +128 -0
- package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +207 -0
- package/skills/literature/fulltext/unpaywall-api/SKILL.md +113 -0
- package/skills/literature/metadata/altmetrics-guide/SKILL.md +132 -0
- package/skills/literature/metadata/citation-network-guide/SKILL.md +236 -0
- package/skills/literature/metadata/crossref-api/SKILL.md +133 -0
- package/skills/literature/metadata/datacite-api/SKILL.md +126 -0
- package/skills/literature/metadata/doi-resolution-guide/SKILL.md +168 -0
- package/skills/literature/metadata/h-index-guide/SKILL.md +183 -0
- package/skills/literature/metadata/journal-metrics-guide/SKILL.md +188 -0
- package/skills/literature/metadata/opencitations-api/SKILL.md +128 -0
- package/skills/literature/metadata/orcid-api/SKILL.md +136 -0
- package/skills/literature/metadata/orcid-integration-guide/SKILL.md +178 -0
- package/skills/literature/search/arxiv-api/SKILL.md +95 -0
- package/skills/literature/search/biorxiv-api/SKILL.md +123 -0
- package/skills/literature/search/boolean-search-guide/SKILL.md +199 -0
- package/skills/literature/search/citation-chaining-guide/SKILL.md +148 -0
- package/skills/literature/search/database-comparison-guide/SKILL.md +100 -0
- package/skills/literature/search/europe-pmc-api/SKILL.md +120 -0
- package/skills/literature/search/google-scholar-guide/SKILL.md +182 -0
- package/skills/literature/search/mesh-terms-guide/SKILL.md +164 -0
- package/skills/literature/search/openalex-api/SKILL.md +134 -0
- package/skills/literature/search/pubmed-api/SKILL.md +130 -0
- package/skills/literature/search/scientify-literature-survey/SKILL.md +203 -0
- package/skills/literature/search/semantic-scholar-api/SKILL.md +134 -0
- package/skills/literature/search/systematic-search-strategy/SKILL.md +214 -0
- package/skills/research/automation/ai-scientist-guide/SKILL.md +228 -0
- package/skills/research/automation/data-collection-automation/SKILL.md +248 -0
- package/skills/research/automation/research-workflow-automation/SKILL.md +266 -0
- package/skills/research/deep-research/meta-synthesis-guide/SKILL.md +174 -0
- package/skills/research/deep-research/research-cog/SKILL.md +153 -0
- package/skills/research/deep-research/scoping-review-guide/SKILL.md +217 -0
- package/skills/research/deep-research/systematic-review-guide/SKILL.md +250 -0
- package/skills/research/funding/figshare-api/SKILL.md +163 -0
- package/skills/research/funding/grant-writing-guide/SKILL.md +233 -0
- package/skills/research/funding/nsf-grant-guide/SKILL.md +206 -0
- package/skills/research/funding/open-science-guide/SKILL.md +255 -0
- package/skills/research/funding/zenodo-api/SKILL.md +174 -0
- package/skills/research/methodology/action-research-guide/SKILL.md +201 -0
- package/skills/research/methodology/experimental-design-guide/SKILL.md +236 -0
- package/skills/research/methodology/grad-school-guide/SKILL.md +182 -0
- package/skills/research/methodology/grounded-theory-guide/SKILL.md +171 -0
- package/skills/research/methodology/mixed-methods-guide/SKILL.md +208 -0
- package/skills/research/methodology/qualitative-research-guide/SKILL.md +234 -0
- package/skills/research/methodology/scientify-idea-generation/SKILL.md +222 -0
- package/skills/research/paper-review/paper-reading-assistant/SKILL.md +266 -0
- package/skills/research/paper-review/peer-review-guide/SKILL.md +227 -0
- package/skills/research/paper-review/rebuttal-writing-guide/SKILL.md +185 -0
- package/skills/research/paper-review/scientify-write-review-paper/SKILL.md +209 -0
- package/skills/tools/code-exec/jupyter-notebook-guide/SKILL.md +178 -0
- package/skills/tools/code-exec/python-reproducibility-guide/SKILL.md +341 -0
- package/skills/tools/code-exec/r-reproducibility-guide/SKILL.md +236 -0
- package/skills/tools/code-exec/sandbox-execution-guide/SKILL.md +221 -0
- package/skills/tools/diagram/mermaid-diagram-guide/SKILL.md +269 -0
- package/skills/tools/diagram/plantuml-guide/SKILL.md +397 -0
- package/skills/tools/diagram/scientific-illustration-guide/SKILL.md +225 -0
- package/skills/tools/document/anystyle-api/SKILL.md +199 -0
- package/skills/tools/document/grobid-pdf-parsing/SKILL.md +294 -0
- package/skills/tools/document/markdown-academic-guide/SKILL.md +217 -0
- package/skills/tools/document/pdf-extraction-guide/SKILL.md +321 -0
- package/skills/tools/knowledge-graph/knowledge-graph-construction/SKILL.md +306 -0
- package/skills/tools/knowledge-graph/ontology-design-guide/SKILL.md +214 -0
- package/skills/tools/knowledge-graph/rag-methodology-guide/SKILL.md +325 -0
- package/skills/tools/ocr-translate/formula-recognition-guide/SKILL.md +367 -0
- package/skills/tools/ocr-translate/handwriting-recognition-guide/SKILL.md +211 -0
- package/skills/tools/ocr-translate/latex-ocr-guide/SKILL.md +204 -0
- package/skills/tools/ocr-translate/multilingual-research-guide/SKILL.md +234 -0
- package/skills/tools/scraping/academic-web-scraping/SKILL.md +326 -0
- package/skills/tools/scraping/api-data-collection-guide/SKILL.md +301 -0
- package/skills/tools/scraping/web-scraping-ethics-guide/SKILL.md +250 -0
- package/skills/writing/citation/bibtex-management-guide/SKILL.md +246 -0
- package/skills/writing/citation/citation-style-guide/SKILL.md +248 -0
- package/skills/writing/citation/reference-manager-comparison/SKILL.md +208 -0
- package/skills/writing/citation/zotero-api/SKILL.md +188 -0
- package/skills/writing/composition/abstract-writing-guide/SKILL.md +188 -0
- package/skills/writing/composition/discussion-writing-guide/SKILL.md +194 -0
- package/skills/writing/composition/introduction-writing-guide/SKILL.md +194 -0
- package/skills/writing/composition/literature-review-writing/SKILL.md +196 -0
- package/skills/writing/composition/methods-section-guide/SKILL.md +185 -0
- package/skills/writing/composition/response-to-reviewers/SKILL.md +215 -0
- package/skills/writing/composition/scientific-writing-guide/SKILL.md +152 -0
- package/skills/writing/latex/bibliography-management-guide/SKILL.md +206 -0
- package/skills/writing/latex/latex-drawing-guide/SKILL.md +234 -0
- package/skills/writing/latex/latex-ecosystem-guide/SKILL.md +240 -0
- package/skills/writing/latex/math-typesetting-guide/SKILL.md +231 -0
- package/skills/writing/latex/overleaf-collaboration-guide/SKILL.md +211 -0
- package/skills/writing/latex/tikz-diagrams-guide/SKILL.md +211 -0
- package/skills/writing/polish/academic-translation-guide/SKILL.md +175 -0
- package/skills/writing/polish/academic-writing-refiner/SKILL.md +143 -0
- package/skills/writing/polish/ai-writing-humanizer/SKILL.md +178 -0
- package/skills/writing/polish/grammar-checker-guide/SKILL.md +184 -0
- package/skills/writing/polish/plagiarism-detection-guide/SKILL.md +167 -0
- package/skills/writing/templates/beamer-presentation-guide/SKILL.md +263 -0
- package/skills/writing/templates/conference-paper-template/SKILL.md +219 -0
- package/skills/writing/templates/thesis-template-guide/SKILL.md +200 -0
- package/skills/writing/templates/thesis-writing-guide/SKILL.md +220 -0
- package/src/tools/arxiv.ts +131 -0
- package/src/tools/crossref.ts +112 -0
- package/src/tools/openalex.ts +174 -0
- package/src/tools/pubmed.ts +166 -0
- package/src/tools/semantic-scholar.ts +108 -0
- package/src/tools/unpaywall.ts +58 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: experimental-design-guide
|
|
3
|
+
description: "Design rigorous experiments using DOE, factorial designs, and response surfaces"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "test_tube"
|
|
7
|
+
category: "research"
|
|
8
|
+
subcategory: "methodology"
|
|
9
|
+
keywords: ["design of experiments", "DOE", "factorial design", "response surface methodology", "experimental design"]
|
|
10
|
+
source: "wentor"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Experimental Design Guide
|
|
14
|
+
|
|
15
|
+
A skill for designing rigorous experiments using formal Design of Experiments (DOE) methodology. Covers factorial designs, fractional factorials, response surface methods, and optimal design strategies for scientific research.
|
|
16
|
+
|
|
17
|
+
## Fundamental Principles
|
|
18
|
+
|
|
19
|
+
### Fisher's Three Principles
|
|
20
|
+
|
|
21
|
+
1. **Randomization**: Assign experimental units to treatments randomly to eliminate systematic bias
|
|
22
|
+
2. **Replication**: Include enough replicates to estimate experimental error and ensure statistical power
|
|
23
|
+
3. **Blocking**: Group similar experimental units to reduce nuisance variability
|
|
24
|
+
|
|
25
|
+
### Sample Size and Power Analysis
|
|
26
|
+
|
|
27
|
+
```python
|
|
28
|
+
from scipy import stats
|
|
29
|
+
import numpy as np
|
|
30
|
+
|
|
31
|
+
def power_analysis_ttest(effect_size: float, alpha: float = 0.05,
|
|
32
|
+
power: float = 0.80, ratio: float = 1.0) -> dict:
|
|
33
|
+
"""
|
|
34
|
+
Calculate required sample size for a two-sample t-test.
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
effect_size: Cohen's d (expected effect size)
|
|
38
|
+
alpha: Significance level
|
|
39
|
+
power: Desired statistical power
|
|
40
|
+
ratio: Ratio of n2/n1 (for unequal groups)
|
|
41
|
+
"""
|
|
42
|
+
from statsmodels.stats.power import TTestIndPower
|
|
43
|
+
analysis = TTestIndPower()
|
|
44
|
+
n1 = analysis.solve_power(
|
|
45
|
+
effect_size=effect_size,
|
|
46
|
+
alpha=alpha,
|
|
47
|
+
power=power,
|
|
48
|
+
ratio=ratio,
|
|
49
|
+
alternative='two-sided'
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
'n_per_group': int(np.ceil(n1)),
|
|
54
|
+
'total_n': int(np.ceil(n1) + np.ceil(n1 * ratio)),
|
|
55
|
+
'effect_size_d': effect_size,
|
|
56
|
+
'alpha': alpha,
|
|
57
|
+
'power': power,
|
|
58
|
+
'interpretation': (
|
|
59
|
+
f"Need {int(np.ceil(n1))} per group "
|
|
60
|
+
f"(total N = {int(np.ceil(n1) + np.ceil(n1 * ratio))}) "
|
|
61
|
+
f"to detect d = {effect_size} with {power*100:.0f}% power."
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
# Example: medium effect size
|
|
66
|
+
result = power_analysis_ttest(effect_size=0.5, alpha=0.05, power=0.80)
|
|
67
|
+
print(result['interpretation'])
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Full Factorial Designs
|
|
71
|
+
|
|
72
|
+
### 2^k Factorial Design
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
import itertools
|
|
76
|
+
import pandas as pd
|
|
77
|
+
|
|
78
|
+
def create_factorial_design(factors: dict, replicates: int = 3) -> pd.DataFrame:
|
|
79
|
+
"""
|
|
80
|
+
Create a full factorial experimental design.
|
|
81
|
+
|
|
82
|
+
Args:
|
|
83
|
+
factors: Dict mapping factor names to lists of levels
|
|
84
|
+
e.g., {'Temperature': [60, 80], 'Pressure': [1, 2], 'Catalyst': ['A', 'B']}
|
|
85
|
+
replicates: Number of replicates per combination
|
|
86
|
+
"""
|
|
87
|
+
factor_names = list(factors.keys())
|
|
88
|
+
factor_levels = list(factors.values())
|
|
89
|
+
|
|
90
|
+
# Generate all combinations
|
|
91
|
+
combinations = list(itertools.product(*factor_levels))
|
|
92
|
+
|
|
93
|
+
# Create design matrix with replicates
|
|
94
|
+
rows = []
|
|
95
|
+
run_order = 0
|
|
96
|
+
for rep in range(replicates):
|
|
97
|
+
for combo in combinations:
|
|
98
|
+
run_order += 1
|
|
99
|
+
row = {'Run': run_order, 'Replicate': rep + 1}
|
|
100
|
+
for name, value in zip(factor_names, combo):
|
|
101
|
+
row[name] = value
|
|
102
|
+
row['Response'] = None # To be filled with experimental data
|
|
103
|
+
rows.append(row)
|
|
104
|
+
|
|
105
|
+
design = pd.DataFrame(rows)
|
|
106
|
+
|
|
107
|
+
# Randomize run order
|
|
108
|
+
design = design.sample(frac=1, random_state=42).reset_index(drop=True)
|
|
109
|
+
design['RandomizedRun'] = range(1, len(design) + 1)
|
|
110
|
+
|
|
111
|
+
print(f"Design summary:")
|
|
112
|
+
print(f" Factors: {len(factors)}")
|
|
113
|
+
print(f" Levels per factor: {[len(v) for v in factors.values()]}")
|
|
114
|
+
print(f" Total treatments: {len(combinations)}")
|
|
115
|
+
print(f" Replicates: {replicates}")
|
|
116
|
+
print(f" Total runs: {len(design)}")
|
|
117
|
+
|
|
118
|
+
return design
|
|
119
|
+
|
|
120
|
+
# Example: 2^3 factorial
|
|
121
|
+
design = create_factorial_design({
|
|
122
|
+
'Temperature': [60, 80],
|
|
123
|
+
'Pressure': [1, 2],
|
|
124
|
+
'Catalyst': ['A', 'B']
|
|
125
|
+
}, replicates=3)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Analyzing Factorial Experiments
|
|
129
|
+
|
|
130
|
+
```python
|
|
131
|
+
import statsmodels.api as sm
|
|
132
|
+
from statsmodels.formula.api import ols
|
|
133
|
+
|
|
134
|
+
def analyze_factorial(df: pd.DataFrame, response: str,
|
|
135
|
+
factors: list[str]) -> dict:
|
|
136
|
+
"""
|
|
137
|
+
Analyze a factorial experiment using ANOVA.
|
|
138
|
+
"""
|
|
139
|
+
# Build formula with all main effects and interactions
|
|
140
|
+
main_effects = ' + '.join([f'C({f})' for f in factors])
|
|
141
|
+
interactions = ' + '.join([f'C({f1}):C({f2})'
|
|
142
|
+
for i, f1 in enumerate(factors)
|
|
143
|
+
for f2 in factors[i+1:]])
|
|
144
|
+
formula = f'{response} ~ {main_effects} + {interactions}'
|
|
145
|
+
|
|
146
|
+
model = ols(formula, data=df).fit()
|
|
147
|
+
anova_table = sm.stats.anova_lm(model, typ=2)
|
|
148
|
+
|
|
149
|
+
# Effect sizes (eta-squared)
|
|
150
|
+
ss_total = anova_table['sum_sq'].sum()
|
|
151
|
+
anova_table['eta_sq'] = anova_table['sum_sq'] / ss_total
|
|
152
|
+
|
|
153
|
+
return {
|
|
154
|
+
'anova_table': anova_table,
|
|
155
|
+
'r_squared': model.rsquared,
|
|
156
|
+
'significant_effects': anova_table[anova_table['PR(>F)'] < 0.05].index.tolist()
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Fractional Factorial Designs
|
|
161
|
+
|
|
162
|
+
When a full factorial has too many runs:
|
|
163
|
+
|
|
164
|
+
```python
|
|
165
|
+
def fractional_factorial_2k(k: int, resolution: int = 3) -> pd.DataFrame:
|
|
166
|
+
"""
|
|
167
|
+
Generate a 2^(k-p) fractional factorial design.
|
|
168
|
+
|
|
169
|
+
Args:
|
|
170
|
+
k: Number of factors
|
|
171
|
+
resolution: Design resolution (III, IV, or V)
|
|
172
|
+
"""
|
|
173
|
+
from pyDOE2 import fracfact
|
|
174
|
+
|
|
175
|
+
# Resolution III: 2^(k-p) where p minimizes runs
|
|
176
|
+
# Common designs:
|
|
177
|
+
# 2^(3-1) = 4 runs (Resolution III)
|
|
178
|
+
# 2^(4-1) = 8 runs (Resolution IV)
|
|
179
|
+
# 2^(5-2) = 8 runs (Resolution III)
|
|
180
|
+
# 2^(7-4) = 8 runs (Resolution III, Plackett-Burman)
|
|
181
|
+
|
|
182
|
+
design = fracfact(f'a b c {"d" if k >= 4 else ""} {"e" if k >= 5 else ""}')
|
|
183
|
+
df = pd.DataFrame(design, columns=[f'Factor_{i+1}' for i in range(design.shape[1])])
|
|
184
|
+
|
|
185
|
+
print(f"Fractional factorial: {len(df)} runs for {k} factors")
|
|
186
|
+
return df
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Response Surface Methodology (RSM)
|
|
190
|
+
|
|
191
|
+
### Central Composite Design
|
|
192
|
+
|
|
193
|
+
```python
|
|
194
|
+
def central_composite_design(factor_ranges: dict) -> pd.DataFrame:
|
|
195
|
+
"""
|
|
196
|
+
Create a Central Composite Design for response surface optimization.
|
|
197
|
+
"""
|
|
198
|
+
from pyDOE2 import ccdesign
|
|
199
|
+
|
|
200
|
+
k = len(factor_ranges)
|
|
201
|
+
design_coded = ccdesign(k, center=(4,), alpha='orthogonal', face='circumscribed')
|
|
202
|
+
|
|
203
|
+
factor_names = list(factor_ranges.keys())
|
|
204
|
+
df = pd.DataFrame(design_coded, columns=factor_names)
|
|
205
|
+
|
|
206
|
+
# Convert from coded (-1, +1) to natural units
|
|
207
|
+
for name, (low, high) in factor_ranges.items():
|
|
208
|
+
center = (high + low) / 2
|
|
209
|
+
half_range = (high - low) / 2
|
|
210
|
+
df[name] = center + df[name] * half_range
|
|
211
|
+
|
|
212
|
+
return df
|
|
213
|
+
|
|
214
|
+
# Example: optimize a chemical reaction
|
|
215
|
+
design = central_composite_design({
|
|
216
|
+
'Temperature_C': [50, 90],
|
|
217
|
+
'pH': [5, 9],
|
|
218
|
+
'Time_min': [10, 60]
|
|
219
|
+
})
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## Randomization and Blinding
|
|
223
|
+
|
|
224
|
+
- **Single-blind**: Participants do not know their treatment assignment
|
|
225
|
+
- **Double-blind**: Neither participants nor experimenters know assignments
|
|
226
|
+
- **Allocation concealment**: Assignment sequence is hidden until the moment of assignment
|
|
227
|
+
|
|
228
|
+
For computer-generated randomization, always record and report the random seed used. Use block randomization to ensure balanced groups when enrollment is sequential.
|
|
229
|
+
|
|
230
|
+
## Reporting Checklist
|
|
231
|
+
|
|
232
|
+
Follow CONSORT (clinical trials), ARRIVE (animal studies), or STROBE (observational) guidelines:
|
|
233
|
+
- State the primary and secondary outcomes before analysis
|
|
234
|
+
- Report all planned analyses, including non-significant results
|
|
235
|
+
- Describe randomization method and any deviations from protocol
|
|
236
|
+
- Include sample size justification with power analysis parameters
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grad-school-guide
|
|
3
|
+
description: "Practical advice for thriving in PhD programs and academic research"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🎓"
|
|
7
|
+
category: "research"
|
|
8
|
+
subcategory: "methodology"
|
|
9
|
+
keywords: ["research question formulation", "hypothesis formulation", "theoretical framework", "conceptual model"]
|
|
10
|
+
source: "https://github.com/poloclub/awesome-grad-school"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Graduate School Research Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Graduate school -- particularly a PhD program -- is a multi-year commitment that demands not only technical skills but also effective research methodology, advisor management, paper writing strategies, and career planning. The difference between thriving and merely surviving often comes down to having the right mental models and practical frameworks for the research process.
|
|
18
|
+
|
|
19
|
+
This guide distills wisdom from the awesome-grad-school repository (450+ stars, maintained by the Polo Club of Data Science at Georgia Tech) and supplements it with actionable frameworks for formulating research questions, developing hypotheses, structuring a theoretical framework, and managing the end-to-end research lifecycle. The advice here applies broadly across STEM and social-science disciplines.
|
|
20
|
+
|
|
21
|
+
Whether you are an incoming PhD student, a mid-program researcher seeking to improve your productivity, or an advanced candidate preparing for the job market, this skill provides concrete tools for each stage of the journey.
|
|
22
|
+
|
|
23
|
+
## Formulating Research Questions
|
|
24
|
+
|
|
25
|
+
A strong research question is the foundation of any good paper. It should be specific, answerable, and significant.
|
|
26
|
+
|
|
27
|
+
### The FINER Criteria
|
|
28
|
+
|
|
29
|
+
| Criterion | Description | Example Check |
|
|
30
|
+
|-----------|-------------|---------------|
|
|
31
|
+
| **F**easible | Can be answered with available resources | Do you have the data, compute, and time? |
|
|
32
|
+
| **I**nteresting | Engages the research community | Would peers read this at a top venue? |
|
|
33
|
+
| **N**ovel | Not already answered | Has Semantic Scholar search been done? |
|
|
34
|
+
| **E**thical | Follows research ethics standards | Does it require IRB approval? |
|
|
35
|
+
| **R**elevant | Advances the field meaningfully | Does it connect to open problems? |
|
|
36
|
+
|
|
37
|
+
### From Topic to Question: A Step-by-Step Process
|
|
38
|
+
|
|
39
|
+
1. **Survey the landscape.** Read 20-30 recent papers in your area.
|
|
40
|
+
2. **Identify gaps.** Look for "future work" sections and limitations.
|
|
41
|
+
3. **Narrow progressively.** Topic -> Sub-topic -> Specific question.
|
|
42
|
+
4. **Phrase as a question.** "Does X improve Y compared to Z in context W?"
|
|
43
|
+
5. **Test with the "so what?" check.** If the answer is yes or no, does it matter?
|
|
44
|
+
|
|
45
|
+
Example progression:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
Topic: Natural language processing
|
|
49
|
+
Sub-topic: Low-resource language translation
|
|
50
|
+
Gap: Few-shot methods underperform on morphologically rich languages
|
|
51
|
+
Question: Can morphological decomposition improve few-shot translation
|
|
52
|
+
quality for agglutinative languages?
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Developing Hypotheses and Theoretical Frameworks
|
|
56
|
+
|
|
57
|
+
### From Question to Hypothesis
|
|
58
|
+
|
|
59
|
+
A hypothesis is a testable, falsifiable prediction derived from your research question:
|
|
60
|
+
|
|
61
|
+
- **Directional:** "Method A will achieve higher BLEU scores than Method B on agglutinative language pairs."
|
|
62
|
+
- **Non-directional:** "There will be a significant difference in BLEU scores between Method A and Method B."
|
|
63
|
+
- **Null (H0):** "There is no significant difference in BLEU scores between Method A and Method B."
|
|
64
|
+
|
|
65
|
+
### Building a Conceptual Model
|
|
66
|
+
|
|
67
|
+
A conceptual model maps the relationships between your key variables:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
Independent Variable Moderator Dependent Variable
|
|
71
|
+
[Morphological [Language [Translation
|
|
72
|
+
Decomposition] ------> Typology] -----> Quality (BLEU)]
|
|
73
|
+
| ^
|
|
74
|
+
| Mediator |
|
|
75
|
+
+-------> [Vocabulary |
|
|
76
|
+
Coverage] --------------------+
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Document your conceptual model with:
|
|
80
|
+
1. **Constructs:** The abstract concepts (e.g., "translation quality").
|
|
81
|
+
2. **Operationalizations:** How you measure each construct (e.g., BLEU, COMET scores).
|
|
82
|
+
3. **Relationships:** Hypothesized causal or correlational links.
|
|
83
|
+
4. **Boundary conditions:** Where the model applies and where it does not.
|
|
84
|
+
|
|
85
|
+
## Managing Your Advisor and Research Workflow
|
|
86
|
+
|
|
87
|
+
### Communication Frameworks
|
|
88
|
+
|
|
89
|
+
**The Weekly Update Email:**
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
Subject: Weekly Update - [Your Name] - Week of [Date]
|
|
93
|
+
|
|
94
|
+
1. ACCOMPLISHED THIS WEEK
|
|
95
|
+
- Completed experiment X with results Y
|
|
96
|
+
- Drafted Section 3 of the paper
|
|
97
|
+
|
|
98
|
+
2. BLOCKERS
|
|
99
|
+
- Need access to GPU cluster for large-scale runs
|
|
100
|
+
- Waiting on co-author feedback on Section 2
|
|
101
|
+
|
|
102
|
+
3. PLAN FOR NEXT WEEK
|
|
103
|
+
- Run ablation study on components A, B, C
|
|
104
|
+
- Begin writing Section 4
|
|
105
|
+
|
|
106
|
+
4. DISCUSSION ITEMS FOR MEETING
|
|
107
|
+
- Should we include dataset Z in our evaluation?
|
|
108
|
+
- Timeline for submission to [Conference]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Research Productivity System
|
|
112
|
+
|
|
113
|
+
| Practice | Cadence | Tool |
|
|
114
|
+
|----------|---------|------|
|
|
115
|
+
| Daily progress log | End of each day | Plain text file or Notion |
|
|
116
|
+
| Literature reading | 2-3 papers/week | Zotero + annotations |
|
|
117
|
+
| Experiment tracking | Per run | Weights & Biases or MLflow |
|
|
118
|
+
| Writing | 30 min daily minimum | LaTeX or Markdown |
|
|
119
|
+
| Advisor meeting prep | Weekly | Structured update email |
|
|
120
|
+
| Research talks | Monthly (lab meeting) | 15-min presentation |
|
|
121
|
+
|
|
122
|
+
## Paper Writing Strategy
|
|
123
|
+
|
|
124
|
+
### The Reverse-Outline Method
|
|
125
|
+
|
|
126
|
+
1. Write bullet points for each section (1-2 sentences per paragraph).
|
|
127
|
+
2. Order bullets by logical flow.
|
|
128
|
+
3. Expand each bullet into a full paragraph.
|
|
129
|
+
4. Revise for transitions and coherence.
|
|
130
|
+
|
|
131
|
+
### Section-by-Section Tips
|
|
132
|
+
|
|
133
|
+
- **Introduction:** Open with a concrete problem, not "In recent years..."
|
|
134
|
+
- **Related Work:** Organize by theme, not chronologically. Compare approaches, do not just list them.
|
|
135
|
+
- **Methods:** Write so a competent researcher can reproduce your work.
|
|
136
|
+
- **Results:** Lead with the most important finding. Use tables for exact numbers, figures for trends.
|
|
137
|
+
- **Discussion:** Address limitations honestly. Reviewers respect self-awareness.
|
|
138
|
+
|
|
139
|
+
### Handling Rejection
|
|
140
|
+
|
|
141
|
+
Paper rejection is a normal part of academic life. The awesome-grad-school community recommends:
|
|
142
|
+
|
|
143
|
+
1. **Allow 24-48 hours to process emotions.** Do not respond immediately.
|
|
144
|
+
2. **Categorize each review comment** as: (a) valid and fixable, (b) valid but requires new experiments, (c) misunderstanding to clarify, or (d) subjective disagreement.
|
|
145
|
+
3. **Create an action plan** for addressing category (a) and (b) items.
|
|
146
|
+
4. **Resubmit to the next venue** with improvements, not just the same paper.
|
|
147
|
+
|
|
148
|
+
## Career Planning
|
|
149
|
+
|
|
150
|
+
### Timeline for a 5-Year PhD
|
|
151
|
+
|
|
152
|
+
| Year | Focus | Milestones |
|
|
153
|
+
|------|-------|-----------|
|
|
154
|
+
| 1 | Coursework + exploration | Pass qualifying exam, identify area |
|
|
155
|
+
| 2 | First project + first paper | Submit to workshop or conference |
|
|
156
|
+
| 3 | Core research + publications | 1-2 papers at top venues |
|
|
157
|
+
| 4 | Thesis writing + job market prep | Draft thesis proposal, internship |
|
|
158
|
+
| 5 | Defense + job search | Submit thesis, interview |
|
|
159
|
+
|
|
160
|
+
### Building Visibility
|
|
161
|
+
|
|
162
|
+
- Maintain a personal academic website with publications and blog posts.
|
|
163
|
+
- Present at conferences and workshops.
|
|
164
|
+
- Share preprints on arXiv before publication.
|
|
165
|
+
- Engage constructively on academic social media.
|
|
166
|
+
|
|
167
|
+
## Best Practices
|
|
168
|
+
|
|
169
|
+
- **Start writing early.** The paper is not separate from the research -- writing clarifies thinking.
|
|
170
|
+
- **Build a library of reusable code.** Experiment templates, plotting scripts, and data loaders save hours on each project.
|
|
171
|
+
- **Invest in relationships.** Collaborators, mentors, and peers are your most valuable resource.
|
|
172
|
+
- **Take care of your health.** PhD burnout is real. Set boundaries and maintain activities outside research.
|
|
173
|
+
- **Read broadly.** Some of the best ideas come from adjacent fields.
|
|
174
|
+
- **Track your accomplishments.** Maintain a running CV and a "brag document" for annual reviews and job applications.
|
|
175
|
+
|
|
176
|
+
## References
|
|
177
|
+
|
|
178
|
+
- [awesome-grad-school](https://github.com/poloclub/awesome-grad-school) -- Curated grad school advice (450+ stars)
|
|
179
|
+
- [A Survival Guide to a PhD](http://karpathy.github.io/2016/09/07/phd/) -- Andrej Karpathy
|
|
180
|
+
- [Modest Advice for New Graduate Students](https://stearnslab.yale.edu/modest-advice) -- Stephen Stearns, Yale
|
|
181
|
+
- [De-Mystifying Good Research](https://bigaidream.gitbooks.io/tech-blog/content/2014/de-mystifying-good-research.html) -- Fei-Fei Li
|
|
182
|
+
- [How to Write a Great Research Paper](https://www.microsoft.com/en-us/research/academic-program/write-great-research-paper/) -- Simon Peyton Jones
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grounded-theory-guide
|
|
3
|
+
description: "Apply grounded theory methodology to develop theory from data"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "seedling"
|
|
7
|
+
category: "research"
|
|
8
|
+
subcategory: "methodology"
|
|
9
|
+
keywords: ["grounded theory", "qualitative methodology", "theoretical sampling", "constant comparison", "coding"]
|
|
10
|
+
source: "wentor-research-plugins"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Grounded Theory Guide
|
|
14
|
+
|
|
15
|
+
A skill for applying grounded theory methodology (GTM) to generate theory grounded in empirical data. Covers the three major schools (Glaser, Strauss/Corbin, Charmaz), coding procedures, theoretical sampling, memo writing, and criteria for evaluating grounded theories.
|
|
16
|
+
|
|
17
|
+
## Three Schools of Grounded Theory
|
|
18
|
+
|
|
19
|
+
### Comparing Approaches
|
|
20
|
+
|
|
21
|
+
| Aspect | Classic (Glaser) | Straussian (Strauss & Corbin) | Constructivist (Charmaz) |
|
|
22
|
+
|--------|-----------------|------------------------------|-------------------------|
|
|
23
|
+
| Ontology | Objective reality | Pragmatist | Relativist/constructivist |
|
|
24
|
+
| Literature review | Delay until theory emerges | Early but non-constraining | Early, reflexive engagement |
|
|
25
|
+
| Coding paradigm | Open, selective, theoretical | Open, axial, selective | Initial, focused, theoretical |
|
|
26
|
+
| Verification | Emergent fit | Systematic validation | Co-construction with participants |
|
|
27
|
+
| Core output | Substantive theory | Process model | Interpretive theory |
|
|
28
|
+
| Key text | Glaser (1978) | Strauss & Corbin (1998) | Charmaz (2014) |
|
|
29
|
+
|
|
30
|
+
### Choosing an Approach
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Use Classic GTM when:
|
|
34
|
+
- You want the theory to emerge with minimal preconception
|
|
35
|
+
- You are studying a process in a substantive area
|
|
36
|
+
|
|
37
|
+
Use Straussian GTM when:
|
|
38
|
+
- You need a structured, systematic coding procedure
|
|
39
|
+
- Your discipline values replicable analytical steps
|
|
40
|
+
|
|
41
|
+
Use Constructivist GTM when:
|
|
42
|
+
- You acknowledge the researcher's role in co-creating meaning
|
|
43
|
+
- You study experiences, identities, or social processes
|
|
44
|
+
- You work in health, education, or social science
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## The Coding Process
|
|
48
|
+
|
|
49
|
+
### Three-Stage Coding
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
def grounded_theory_coding_stages() -> dict:
|
|
53
|
+
"""
|
|
54
|
+
Describe the three stages of grounded theory coding.
|
|
55
|
+
"""
|
|
56
|
+
return {
|
|
57
|
+
"stage_1_initial_coding": {
|
|
58
|
+
"also_called": "Open coding",
|
|
59
|
+
"description": (
|
|
60
|
+
"Examine data line by line or incident by incident. "
|
|
61
|
+
"Generate codes that stay close to the data. "
|
|
62
|
+
"Use gerunds (action words ending in -ing) to capture processes."
|
|
63
|
+
),
|
|
64
|
+
"example": {
|
|
65
|
+
"data": "I started looking for help online because the doctor "
|
|
66
|
+
"did not explain anything to me.",
|
|
67
|
+
"codes": [
|
|
68
|
+
"Seeking information online",
|
|
69
|
+
"Experiencing communication gap with provider",
|
|
70
|
+
"Taking initiative in own care"
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
"tips": [
|
|
74
|
+
"Code quickly -- do not overthink individual codes",
|
|
75
|
+
"Stay open; do not force data into preexisting categories",
|
|
76
|
+
"Code actions and processes, not topics",
|
|
77
|
+
"Write memos about ideas that arise during coding"
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
"stage_2_focused_coding": {
|
|
81
|
+
"also_called": "Axial coding (Strauss) or Focused coding (Charmaz)",
|
|
82
|
+
"description": (
|
|
83
|
+
"Select the most frequent and significant initial codes. "
|
|
84
|
+
"Use them to sort and synthesize larger amounts of data. "
|
|
85
|
+
"Identify relationships between categories."
|
|
86
|
+
),
|
|
87
|
+
"tasks": [
|
|
88
|
+
"Elevate initial codes to categories",
|
|
89
|
+
"Identify properties and dimensions of each category",
|
|
90
|
+
"Compare categories across cases",
|
|
91
|
+
"Begin developing a conceptual framework"
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
"stage_3_theoretical_coding": {
|
|
95
|
+
"also_called": "Selective coding",
|
|
96
|
+
"description": (
|
|
97
|
+
"Identify the core category that integrates all other "
|
|
98
|
+
"categories into a coherent theoretical framework. "
|
|
99
|
+
"Specify relationships between categories."
|
|
100
|
+
),
|
|
101
|
+
"output": "A substantive theory explaining the phenomenon"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Theoretical Sampling
|
|
107
|
+
|
|
108
|
+
### Sampling Driven by Emerging Theory
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
Traditional sampling: Decide sample before data collection
|
|
112
|
+
Theoretical sampling: Let the emerging theory guide who/what to sample next
|
|
113
|
+
|
|
114
|
+
Process:
|
|
115
|
+
1. Collect initial data (purposive sampling)
|
|
116
|
+
2. Analyze data, identify emerging categories
|
|
117
|
+
3. Ask: "Where should I look next to develop these categories?"
|
|
118
|
+
4. Sample deliberately to fill gaps in the emerging theory
|
|
119
|
+
5. Continue until theoretical saturation
|
|
120
|
+
|
|
121
|
+
Example:
|
|
122
|
+
Initial interviews: Patients with chronic illness
|
|
123
|
+
Emerging category: "Navigating insurance barriers"
|
|
124
|
+
Next sample: Interview insurance navigators and social workers
|
|
125
|
+
Emerging category: "Stigma in seeking help"
|
|
126
|
+
Next sample: Interview patients who avoided seeking help
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Memo Writing
|
|
130
|
+
|
|
131
|
+
### The Engine of Grounded Theory
|
|
132
|
+
|
|
133
|
+
Memos are the researcher's running commentary on codes, categories, and theoretical ideas. They are the primary mechanism for developing theory.
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
Memo types:
|
|
137
|
+
- Code memos: Define and elaborate a code or category
|
|
138
|
+
- Theoretical memos: Explore relationships between categories
|
|
139
|
+
- Operational memos: Record methodological decisions
|
|
140
|
+
- Reflexive memos: Examine researcher influence on the analysis
|
|
141
|
+
|
|
142
|
+
Memo example:
|
|
143
|
+
MEMO: "Becoming an expert patient" (2026-03-05)
|
|
144
|
+
|
|
145
|
+
Several participants describe a transition from passive
|
|
146
|
+
recipient of care to active manager of their condition.
|
|
147
|
+
This process seems to involve three phases: (1) initial
|
|
148
|
+
confusion and dependence, (2) information seeking and
|
|
149
|
+
experimentation, (3) confident self-management. The trigger
|
|
150
|
+
appears to be a critical incident (a misdiagnosis, a bad
|
|
151
|
+
interaction with a provider) that motivates the person to
|
|
152
|
+
take control. Compare with Corbin & Strauss's trajectory
|
|
153
|
+
framework. Need to sample someone early in the trajectory
|
|
154
|
+
to test whether the trigger is consistent.
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Evaluating Grounded Theory
|
|
158
|
+
|
|
159
|
+
### Quality Criteria
|
|
160
|
+
|
|
161
|
+
| Criterion | Description | How to Demonstrate |
|
|
162
|
+
|-----------|------------|-------------------|
|
|
163
|
+
| Fit | Theory fits the data it was derived from | Show clear evidence trail from data to codes to categories |
|
|
164
|
+
| Relevance | Theory addresses a real concern of participants | Member checking, resonance with practitioners |
|
|
165
|
+
| Workability | Theory explains the process and enables prediction | Apply the theory to new cases |
|
|
166
|
+
| Modifiability | Theory can be updated with new data | Show how the theory evolved during the study |
|
|
167
|
+
| Credibility | Analysis is thorough and systematic | Audit trail, reflexive memos, theoretical saturation |
|
|
168
|
+
|
|
169
|
+
## Reporting a Grounded Theory Study
|
|
170
|
+
|
|
171
|
+
Include: a clear description of the coding process and how categories were derived, a diagram or model of the theory, representative quotes for each major category, an explanation of theoretical sampling decisions, and a discussion of how the theory relates to existing literature. Use the SRQR (Standards for Reporting Qualitative Research) checklist to ensure completeness.
|