Displaying large regression models without overwhelming the reader can be challenging. I believe that forestplots are amazingly well suited for this. The plot gives a quick understanding of the estimates position in comparison to other estimates, while also showcasing the uncertainty. This project started with some minor tweaks to prof. Thomas Lumleys forestplot and ended up in a complete remake of the function. In this post I’ll show you how to tame the plot using data from my latest article. Continue reading
I recently stumbled upon one of the most interesting articles in a while. Albert et al. questioned the long-standing theory behind low back pain by doing a double-blind randomized clinical controlled trial. They randomized patients to antibiotics or placebo for 100 days and found an impressive effect on pain and other outcomes in the treatment group. Continue reading
Compartment syndrome occurs most commonly after trauma to the lower leg. It causes excruciating pain and may result in muscle death and in some sever cases even death. Detecting these is therefore of uttermost importance and McQueen et al’s recent study on the subject is very welcome. They show that continuous intracompartmental pressure measurement in a clinical setting is feasible and has a high sensitivity and specificity. Continue reading
The key to programming is being lazy; it has actually been called a virtue by some. When I discovered the update() function it blew me away. Within short I had created a monster based upon this tiny function, allowing quick and easy output of regression tables that contain crude and adjusted estimates. In this post I’ll show you how to tame the printCrudeAndAdjusted() function in my Gmisc-package and show a little behind the scenes. Continue reading
When I started my PhD-studies I had this idea that if we know the exact medical status of the patients and implant characteristics we will be able to explain why and when people are re-operated after total hip replacements (THR). Three years later I have just published an article in the Bone and Joint Journal about how wrong I was. In this post I’ll try to give some personal reflections on the article. Continue reading
Although I’m not a shoulder surgeon, I find the rotator cuff injuries fascinating. The rotator cuff is a group of muscles that surround the shoulder, providing motion and stability. Out of the four muscles, the top one is usually the most troublesome, the supraspinatus. It has a sensitive tendon that can both become irritated and cause pain and be a vital part of a rotator cuff rupture. In this post I’m going to focus on the rupture part, also commonly known as a rotator cuff tear. Note, this is not a complete review of this vast subject, more my personal reflections.
Degenerative meniscal tears in the knee are a truly elusive problem for orthopaedic surgeons. As I have previously posted, degenerative meniscal tears are a common MRI finding in the healthy population above 40 years of age, and fail to correlate with actual knee symptoms, such as pain. As a surgeon it is tempting to try surgery for these injuries, but there is an increasing pile of evidence against this. This post is a comment on the most recent evidence, a NEJM study by Katz et al. Continue reading
As an orthopaedic surgeon I’m often interested in how a patient is doing after surgery compared to before. I call this as a transition between states, e.g. severe pain to moderate pain, and in order to better illustrate these transitions I’ve created something that I call a transition plot. It’s closely related to the plotMat for plotting networks but aimed at less complex relations with only a one-way relation between two groups of states.
This project started by me posting a question on Stack Overflow, the answers were (as always) excellent, but didn’t really satisfy my needs. What I wanted was a graphically appealing plot that I could control in extreme detail. Thanks to Paul Murrell’s excellent grid package I was able to generate a truly customizeable transition plot.
In this post I’ll give a short introduction with examples to what you can do with the transitionPlot()-function. I’ll try to walk you through simple transitions to more complex ones with group proportions and highlighted arrows. Continue reading
About two weeks ago I got frustrated with the bezierGrob function in the grid package. The lwd parameter is interpreted differently depending on device, the arrow at the end does not follow the line but is perpendicular (probably following the spline control), and the line parameter makes it difficult to control exactly where the line starts/ends. Thus I decided to make my own fancy line with an arrow at the end – at the time I thought: How hard can it be? In retrospect, I wish I never thought of the thing… This article is about the painful process of creating of an alternative to the bezierGrob. Continue reading
I put a lot of effort in to my first article to calculate the comorbidities of a patient according to the Charlson & Elixhauser scores. The available scripts were in SAS and Stata, as I started out using SPSS I decided to implement the code in the neat Python plugin that SPSS provides. In this post I’ll provide you with a detailed walk through of my code, and hopefully it will save you some time. Continue reading