Forum Replies Created
-
AuthorPosts
-
Tim EricksonParticipant
Famous last words: should be fixed now. The ISP serving codap.xyz changed their servers and some settings needed to be updated.
Tim EricksonParticipantDang! I will look into this problem right away.
Tim EricksonParticipantI have just created a CODAP plugin that does various traditional tests. Although it is new July 2023, and I have not yet vetted all of the results, (a) you can find mistakes and let me know! and (b) by the time you read this, it will probably be pretty much fine.
For now, here is a link with the test machinery. Add a dataset, and drag attributes into the box:
A quick description:
https://github.com/eepsmedia/plugins/blob/master/testimate/README.md
Tim EricksonParticipantHi Cynthia! Now that it’s halfway through 2022, has that 2014 date changed? And is there an author? I see that sometimes in the past, I’ve used Finzer, W. 🙂
Tim EricksonParticipantWow! The first person to ask about this! I’m not sure where you’re starting, so I apologize if this advice is too basic or too advanced. Please keep replying if you need more help, or contact me directly.
One thing to try is to play a little game I wrote. Here is the link.
But you may want more instructions about how to set it up:
The decision tree tool, named Arbor, is a plugin. So the basic idea is:
- Make a CODAP document with your data
- Put the plugin into your document
- Do your analysis.
But how do you put the plugin in your document? There are several ways. Here is one:
- Choose Import from the “hamburger” menu in CODAP’s upper left.
- In the URL option, enter
- Click Import
You should see an empty tool with the label “drop your target attribute here.”
Drag the attribute you’re trying to predict from your data table and drop it in that area. You’ll see the beginning of a tree, describing the target attribute, which direction is “positive,” and the base rate.
To make a branch, drag a new attribute onto the bottom (white) box, the one with the base rate. The tree will branch according to values of that attribute.
Click the circular gray areas with (?) to assign diagnoses (predictions) to each branch. You will see the numbers of false positives (FP), etc., update at the bottom of the tree.
Various tabs let you control options and see a confusion matrix. There is also a help panel with more details.
To analyze the effectiveness of your tree and compare it to other trees you have made (suppose you want to make something like an AUC-ROC curve…) you need to “emit” data using the controls near the bottom of the Arbor tool. But note that this tool does not do logistic regression! You’re just making trees by hand!
I would be interested to know how many of our readers here would like, for example, a paper or a video describing more of this.
Tim EricksonParticipantYou can find an example of such a thing in Awash in Data (https://concord.org/awash-in-data). I did this using R “bookdown,” the same system Grolemund and Wickham use in Use R for Data Science. (In fact, I found out about that system from looking at the book and thinking, “it would be great to do an e-book about CODAP and have it look kinda like this.”)
I bet that one could do a similar thing in Jupyter, but I haven’t tried it.
It’s pretty easy to do on Canvas if that’s your LMS. Here’s how to do it:
- Make your CODAP document and share it, then click the “Embed” tab in the sharing box and copy the “embed” code that appears.
- In Canvas, editing a page or assignment, use the “Insert” menu and choose “Embed” (currently a cloud-y icon). Paste the embed code into the box that appears.
- At this point, when you go to student view, you’ll see that the CODAP window is way way way too small. So switch from Rich Text to the HTML editor. Find the CODAP code. There, change
width
andheight
to better values, like at least 800 and 600, or more if your students have enough screen space.
Hope this helps! Keep asking if it’s not enough!
Tim EricksonParticipantAlso, Rerandomize All appears in the ruler palette of the table.
Tim EricksonParticipantAha! BARTY has data only for 2015 to 2018. It should be clearer about why you didn’t get the data, or make it impossible for you to choose 2019. Sorry about that.
(You would think that we could get data for any time in the past, but in fact we don’t have such a system set up. So we download whole years and munge it before adding it to the special database we set up for BART data.)
Tim EricksonParticipantAnother take on this: Andee’s situation is one in which the State’s name or abbreviation is _unique_ in the data set. If we knew an attribute was not only categorical but also unique, we could conceivably do what Andee found natural: sort the table any way you want, and then plot the cases.
I bet it would not be too hard (ha ha ha) to determine automatically if an attribute had this “unique” property.
This may be part of the broader issue of “roles of attributes” where another one we have discussed is “time-like,” so that some time-series things might happen naturally in visualizations if it were on an axis.
Tim EricksonParticipantGo to the column header of the attribute with the random formula. Click to get its menu.
Rerandomize is in that menu!
October 4, 2018 at 2:33 pm in reply to: Creating a parent-level collection from a data interactive #744Tim EricksonParticipantLet me underline a current problem with this issue! Bill correctly points Anna to InteractiveFrameUpdate.
You might have thought — as I always do, and then I have a problem similar to Anna’s — that you could create the InteractiveFrame with that flag set, so that “prevent reorganization” is false (that is, “allow reorganization,” which is not what it’s called, is true… :).
But you can’t. Mostly. You have to create the Frame and then update it. As I have learned repeatedly. In case it might be useful so some poor sod following in our footsteps, some code that (currently) works:
await codapInterface.init(this.iFrameDescriptor, null) // now update the iframe to be mutable... const tMessage = { "action": "update", "resource": "interactiveFrame", "values": { "preventBringToFront": false, "preventDataContextReorg": false } }; const updateResult = await codapInterface.sendRequest(tMessage);
Oddly, it also seems to be the case that if you make more than one data context (more than one table), the second one can be reorganized. This leads us to wonder whether, perhaps, the flag should be attached to the data context (a.k.a. dataset, table) rather than to the entire iFrame, that is, to the entire plugin. I think the Wizards of Emeryville are considering this.
-
AuthorPosts