Skip to content

PROC GLM temperature–GDP models run unmodified on Jenner#1

Open
jenner-analytics wants to merge 1 commit into
MatRit:mainfrom
jenner-analytics:jenner-check/initial-bundles
Open

PROC GLM temperature–GDP models run unmodified on Jenner#1
jenner-analytics wants to merge 1 commit into
MatRit:mainfrom
jenner-analytics:jenner-check/initial-bundles

Conversation

@jenner-analytics

@jenner-analytics jenner-analytics commented Jul 20, 2026

Copy link
Copy Markdown

Jenneranalytics.com provides an API that runs SAS code, with support for more than 200 SAS procedures. You can also use it with AI assistants in a collaborative workspace. It's available for Mac on the Apple App Store, and by license for Windows and Linux.

We support the larger community by
(1) increasing access to SAS-compatible systems,
(2) by providing test coverage and a test coverage framework to public SAS repos in order to encourage the use of best practices in software engineering.

Your _M2_GLM.sas runs on Jenner unmodified — this PR adds a small compatibility bundle so you can see for yourself. It's the test we wrote for your project, shared in case it's useful, and was assembled with AI assistance as is most code in modern businesses today.

What stood out reading the four programs is how deliberately the specifications escalate. Model (1) leans on id and the iso*id nesting to soak up the sub-national panel units inside each country, then (2)–(4) walk outward to iso*yearn and finally the t5_varm*iso*yearn three-way term that lets the day-to-day-variability effect vary by country and year — a clean way to show the coefficient on t5_varm isn't hiding structure. Pairing /effectsize with the SS3 estimates so the partial eta-squared sits next to each term makes that progression easy to read straight off the listing.

The bundle lives entirely under jenner-check/ — nothing outside it is touched, nothing runs on merge, and there are no workflow files or hooks. Each subfolder holds a copy of the program (with the PROC IMPORT of T_econ.dta swapped for a self-contained DATA step of real rows sampled from your Stata file, so the PROC GLM statements run exactly as you wrote them), the captured log and listing from running it on Jenner, and an expected.json of the fields the runner re-checks:

jenner-check/
├── run_jenner.sh
├── README.md
├── t001_M1_GLM/   (Model 1 / 1* — id and iso*id fixed effects)
├── t002_M2_GLM/   (Model 2 — iso + yearn)
├── t003_M3_GLM/   (Model 3 — adds iso*yearn)
└── t004_M4_GLM/   (Model 4 — adds t5_varm*iso and t5_varm*iso*yearn)
    each: script.sas, autoexec.sas, expected.json, expected/{log.txt, output.txt}

To try one directly against the hosted API, check out this PR and run from the repo root (the jenner-check/ directory only exists on this branch):

gh pr checkout 1
curl -sS --data-binary @jenner-check/t002_M2_GLM/script.sas https://api.jenneranalytics.com/v1/quick

That returns the GLM listing as plain text. Running cd jenner-check && ./run_jenner.sh --all re-runs all four bundles and verifies the pinned fields in each expected.json. It's free to try, no signup; full API reference: the docs.

On data: the runner uploads only the SAS source text of the script it runs (plus a two-line autoexec) to api.jenneranalytics.com, which runs it and returns the log and listing. It does not read or upload any data files — the bundled samples are inline in the scripts themselves, and T_econ.dta and anything else on your machine stays there. Nothing is sent unless you run one of these commands yourself, exactly as with pasting a snippet into any hosted tool; since a script's own source is what's transmitted, you can review it first.

Merge it, close it, or ignore it — all fine, and no response is expected. We won't open further PRs in this repo. To opt out of any future contact, put no-more-prs in any comment or open an issue titled jenner-check: opt out.


Lawrence W. Sinclair
CEO / Jenner Analytics Ltd
linkedin.com/in/lwsinclair/

Adds jenner-check/ with four self-contained bundles built from the repo's
PROC GLM programs (_M1_GLM.._M4_GLM). Each swaps the PROC IMPORT of T_econ.dta
for a small inline DATA step of real rows sampled from that file and keeps the
model statements unchanged, plus the captured log/listing and a pinned
expected.json. Includes run_jenner.sh to re-run and verify them.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant